diff --git a/.vscode/launch.json b/.vscode/launch.json index 981d986f..a059cc46 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -35,7 +35,7 @@ "name": "Pixl.js Openocd Debug", "cwd": "${workspaceRoot}", "executable": "fw/_build/pixljs.out", - "armToolchainPath": "D:/dev/SDKs/gcc-arm-none-eabi-10-2020-q4-major/bin", + "armToolchainPath": "", "request": "launch", "type": "cortex-debug", "servertype": "openocd", diff --git a/docs/en/05+5-translation.md b/docs/en/05+5-translation.md index 76f6d4b2..51acf930 100644 --- a/docs/en/05+5-translation.md +++ b/docs/en/05+5-translation.md @@ -1,26 +1,92 @@ -# Transalation +# Translation -## How to update exists translation +## Firmware -1. Edit fw/data/i18n.csv with your favorite text editor. For vscode, extension "Edit csv" is recommended. -2. Run `fw/scripts/i18n_gen.py` to generate new language files. -3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv -4. Run `make full` rebuild firmware +## How to update existing translation + +When editing CSV files with VSCode, the extension [Edit CSV](https://marketplace.visualstudio.com/items?itemName=janisdd.vscode-edit-csv) is recommended. + +**Windows** requires you to have [Python](https://www.python.org/downloads/) and [Git](https://git-scm.com/download/windows) installed and within your `$PATH` +For **Linux**, most distributions come with `python` and `git` by default and **macOS** comes bundled with `python`, but to use `git` you either need to install the Command Line tools via `xcode-select –-install`, or download [Git](https://git-scm.com/download/mac) separately. + +### Windows -note:
-The script `font_data_gen.sh` only can be run in Git Bash windows in Windows. +1. Clone this repository + `git clone https://github.com/solosky/pixl.js.git; cd pixl.js` +2. Edit `fw/data/i18n.csv` +3. Run `py.exe fw/scripts/i18n_gen.py` to generate new language files. +4. _Optional:_ Run `py.exe fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv` +5. [Build the Firmware](03-Build-Firmware.md) + +### Linux and macOS + +1. Clone this repository + `git clone https://github.com/solosky/pixl.js.git; cd pixl.js` +2. Edit `fw/data/i18n.csv` +3. Run `python3 fw/scripts/i18n_gen.py` to generate new language files. +4. Optional: Run `python fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv` +5. [Build the Firmware](03-Build-Firmware.md) ## How to add new language translation -1. Add new column in fw/data/i18n.csv, for example "ja_JP" +The process is similar to updating an existing translation, and has the same requirements depending on your Operating System. + +1. Add new column in `fw/data/i18n.csv`, for example "ja_JP" 2. Run `fw/scripts/i18n_gen.py` to generate new language files. -3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv +3. Optional: Run `fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv` 4. Edit `fw/application/src/i18n/language.h` and `fw/application/src/i18n/language.c` to adopt new language 5. Edit Makefile to include `$(PROJ_DIR)/i18n/ja_JP.c` as C source files -6. Run `make full` rebuild firmware +6. [Build the Firmware](03-Build-Firmware.md) + +## Font notes + +For release builds (RELEASE=1), the firmware uses wenquanyi_9pt_u8g2.bdf to display unicode characters. +Please check if the new language character codepoint is included in wenquanyi_9pt_u8g2.bdf or not. +If not, it's not recommended supporting the new language due to the MCU internal flash restrictions. + +## Web App + +### How to update existing translation + +The language file can be found under `web/src/i18n' + +## How to add new language translation + +In this example, we will add a Japanese (ja_JP) translation: + +1. Copy the `en_US.js` file and name it `ja_JP.js` +2. Translate the string within `ja_JP.js` including the `changeok` message. + + Don't translate the other language names. + + Add your language at the bottom of the `lang {` section: + + `ja: '日本語',` + +3. Edit `web/src/i18n/index.js` while keeping its current structure, adding: + + ```js + import elementJaLocale from 'element-ui/lib/locale/lang/ja' // element-ui + lang import jaLocale from './ja_JP' elementJpLocale + ``` + + And extending `messages`: + + ```js + ja_JP: { + ...jaLocale, + ...elementJaLocale, + }, + ``` + +4. Add your language to the other `.js` files (within the `lang: {` section): + + `vueja: '日本語',` -## Font notes +5. Add your language to the `web/src/App.vue` file: -For release build (RELEASE=1), the firmware use wenquanyi_9pt_u8g2.bdf to display unicode characters.
-Please check new language charater codepoint is included in wenquanyi_9pt_u8g2.bdf or not.
-If not, I am not recommended to support the new language due to the MCU internal flash restrction. \ No newline at end of file +```js + + {{ $t('lang.ja') }} + +``` diff --git a/fw/application/Makefile b/fw/application/Makefile index 313f2451..7792905e 100644 --- a/fw/application/Makefile +++ b/fw/application/Makefile @@ -341,6 +341,7 @@ SRC_FILES += \ $(PROJ_DIR)/i18n/nl_NL.c \ $(PROJ_DIR)/i18n/pt_BR.c \ $(PROJ_DIR)/i18n/pt_PT.c \ + $(PROJ_DIR)/i18n/ru_RU.c \ $(PROJ_DIR)/i18n/language.c \ $(PROJ_DIR)/hal/hal_nfc_t2t.c \ $(PROJ_DIR)/amiidb/db_amiibo.c \ @@ -733,10 +734,10 @@ CFLAGS += -DBOARD_$(BOARD) ifneq ($(RELEASE), 1) CFLAGS += -DDEBUG CFLAGS += -DEBUG_NRF -# CFLAGS += -DU8G2_USE_LARGE_GB2312_FONT +#CFLAGS += -DU8G2_USE_LARGE_FONTS else CFLAGS += -DNDEBUG -CFLAGS += -DU8G2_USE_LARGE_GB2312_FONT +CFLAGS += -DU8G2_USE_LARGE_FONTS endif CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_NRF5X CFLAGS += -DMBEDTLS_CONFIG_FILE=\"nrf_crypto_mbedtls_config.h\" diff --git a/fw/application/src/app/amiibo/scene/amiibo_scene_amiibo_detail_menu.c b/fw/application/src/app/amiibo/scene/amiibo_scene_amiibo_detail_menu.c index 58a09ba2..09c5218d 100644 --- a/fw/application/src/app/amiibo/scene/amiibo_scene_amiibo_detail_menu.c +++ b/fw/application/src/app/amiibo/scene/amiibo_scene_amiibo_detail_menu.c @@ -125,16 +125,11 @@ static void amiibo_scene_amiibo_detail_menu_on_selected(mui_list_view_event_t ev amiibo_scene_amiibo_detail_no_key_msg(app); return; } - char txt[32]; settings_data_t *p_settings = settings_get_data(); p_settings->auto_gen_amiibo = !p_settings->auto_gen_amiibo; - snprintf(txt, sizeof(txt), "%s [%s]", getLangString(_L_AUTO_RANDOM_GENERATION), - p_settings->auto_gen_amiibo ? getLangString(_L_ON) : getLangString(_L_OFF)); settings_save(); - string_set_str(p_item->text, txt); - - mui_scene_dispatcher_previous_scene(app->p_scene_dispatcher); + mui_list_view_item_set_sub_text(p_item, (p_settings->auto_gen_amiibo ? getLangString(_L_ON_F) : getLangString(_L_OFF_F))); } break; case AMIIBO_DETAIL_MENU_REMOVE_AMIIBO: { @@ -160,13 +155,11 @@ void amiibo_scene_amiibo_detail_menu_on_enter(void *user_data) { mui_list_view_add_item(app->p_list_view, 0xe1c5, getLangString(_L_RANDOM_GENERATION), (void *)AMIIBO_DETAIL_MENU_RAND_UID); - - char txt[32]; settings_data_t *p_settings = settings_get_data(); - snprintf(txt, sizeof(txt), "%s [%s]", getLangString(_L_AUTO_RANDOM_GENERATION), - p_settings->auto_gen_amiibo ? getLangString(_L_ON) : getLangString(_L_OFF)); - mui_list_view_add_item(app->p_list_view, 0xe1c6, txt, (void *)AMIIBO_DETAIL_MENU_AUTO_RAND_UID); + mui_list_view_add_item_ext(app->p_list_view, 0xe1c6, getLangString(_L_AUTO_RANDOM_GENERATION), + (p_settings->auto_gen_amiibo ? getLangString(_L_ON_F) : getLangString(_L_OFF_F)), + (void *)AMIIBO_DETAIL_MENU_AUTO_RAND_UID); mui_list_view_add_item(app->p_list_view, 0xe1c7, getLangString(_L_DELETE_TAG), (void *)AMIIBO_DETAIL_MENU_REMOVE_AMIIBO); mui_list_view_add_item(app->p_list_view, 0xe068, getLangString(_L_BACK_TO_DETAILS), diff --git a/fw/application/src/app/amiibo/scene/amiibo_scene_file_browser_menu.c b/fw/application/src/app/amiibo/scene/amiibo_scene_file_browser_menu.c index 169a605e..20f31092 100644 --- a/fw/application/src/app/amiibo/scene/amiibo_scene_file_browser_menu.c +++ b/fw/application/src/app/amiibo/scene/amiibo_scene_file_browser_menu.c @@ -255,10 +255,10 @@ static void amiibo_scene_file_browser_menu_on_selected(mui_list_view_event_t eve case FILE_BROWSER_MENU_REMOVE_FOLDER: { char msg[64]; - snprintf(msg, sizeof(msg), "%s %s ?", getLangString(_L_DELETE), string_get_cstr(app->current_file)); - mui_msg_box_set_header(app->p_msg_box, getLangString(_L_DELETE)); + snprintf(msg, sizeof(msg), _T(DELETE_FILE), string_get_cstr(app->current_file)); + mui_msg_box_set_header(app->p_msg_box, getLangString(_L_TIPS)); mui_msg_box_set_message(app->p_msg_box, msg); - mui_msg_box_set_btn_text(app->p_msg_box, getLangString(_L_DELETE), NULL, getLangString(_L_CANCEL)); + mui_msg_box_set_btn_text(app->p_msg_box, getLangString(_L_CONFIRM), NULL, getLangString(_L_CANCEL)); mui_msg_box_set_btn_focus(app->p_msg_box, 2); mui_msg_box_set_event_cb(app->p_msg_box, amiibo_scene_file_browser_menu_msg_box_remove_folder_event_cb); @@ -298,9 +298,9 @@ void amiibo_scene_file_browser_menu_on_enter(void *user_data) { (void *)FILE_BROWSER_MENU_CREATE_AMIIBO_BATCH); if (string_cmp_str(app->current_file, "..") != 0) { char txt[32]; - snprintf(txt, sizeof(txt), "%s..", getLangString(_L_RENAME)); + snprintf(txt, sizeof(txt), "%s", getLangString(_L_RENAME)); mui_list_view_add_item(app->p_list_view, ICON_EMPTY, txt, (void *)FILE_BROWSER_MENU_RENAME_FOLDER); - snprintf(txt, sizeof(txt), "%s..", getLangString(_L_DELETE)); + snprintf(txt, sizeof(txt), "%s", getLangString(_L_DELETE)); mui_list_view_add_item(app->p_list_view, ICON_DELETE, txt, (void *)FILE_BROWSER_MENU_REMOVE_FOLDER); } mui_list_view_add_item(app->p_list_view, ICON_BACK, getLangString(_L_BACK_TO_FILE_LIST), diff --git a/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_detail_menu.c b/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_detail_menu.c index cd50ef6c..60c4254e 100644 --- a/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_detail_menu.c +++ b/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_detail_menu.c @@ -95,8 +95,8 @@ static void amiidb_scene_amiibo_detail_menu_on_selected(mui_list_view_event_t ev char txt[32]; settings_data_t *p_settings = settings_get_data(); p_settings->auto_gen_amiibo = !p_settings->auto_gen_amiibo; - snprintf(txt, sizeof(txt), "[%s]", - p_settings->auto_gen_amiibo ? getLangString(_L_ON) : getLangString(_L_OFF)); + snprintf(txt, sizeof(txt), "%s", + p_settings->auto_gen_amiibo ? getLangString(_L_ON_F) : getLangString(_L_OFF_F)); settings_save(); string_set_str(p_item->sub_text, txt); @@ -108,7 +108,7 @@ static void amiidb_scene_amiibo_detail_menu_on_selected(mui_list_view_event_t ev char txt[32]; settings_data_t *p_settings = settings_get_data(); p_settings->qrcode_enabled = !p_settings->qrcode_enabled; - snprintf(txt, sizeof(txt), "[%s]", p_settings->qrcode_enabled ? getLangString(_L_ON) : getLangString(_L_OFF)); + snprintf(txt, sizeof(txt), "%s", p_settings->qrcode_enabled ? getLangString(_L_ON_F) : getLangString(_L_OFF_F)); settings_save(); string_set_str(p_item->sub_text, txt); @@ -139,11 +139,11 @@ void amiidb_scene_amiibo_detail_menu_on_enter(void *user_data) { char txt[32]; settings_data_t *p_settings = settings_get_data(); - snprintf(txt, sizeof(txt), "[%s]", p_settings->auto_gen_amiibo ? getLangString(_L_ON) : getLangString(_L_OFF)); + snprintf(txt, sizeof(txt), "%s", p_settings->auto_gen_amiibo ? getLangString(_L_ON_F) : getLangString(_L_OFF_F)); mui_list_view_add_item_ext(app->p_list_view, 0xe1c6, getLangString(_L_AUTO_RANDOM_GENERATION), txt, (void *)AMIIDB_DETAIL_MENU_AUTO_RAND_UID); - snprintf(txt, sizeof(txt), "[%s]", p_settings->qrcode_enabled ? getLangString(_L_ON) : getLangString(_L_OFF)); + snprintf(txt, sizeof(txt), "%s", p_settings->qrcode_enabled ? getLangString(_L_ON_F) : getLangString(_L_OFF_F)); mui_list_view_add_item_ext(app->p_list_view, 0xe006, getLangString(_L_SHOW_QRCODE), txt, (void *)AMIIDB_DETAIL_MENU_SHOW_QRCODE); mui_list_view_add_item(app->p_list_view, ICON_FAVORITE, getLangString(_L_APP_AMIIDB_DETAIL_FAVORITE), diff --git a/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_search.c b/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_search.c index f47de382..19498567 100644 --- a/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_search.c +++ b/fw/application/src/app/amiidb/scene/amiidb_scene_amiibo_search.c @@ -23,6 +23,21 @@ static void amiidb_scene_amiibo_search_text_input_event_cb(mui_text_input_event_ } } +static void amiidb_msg_box_error_cb(mui_msg_box_event_t event, mui_msg_box_t *p_msg_box) { + app_amiidb_t *app = p_msg_box->user_data; + mui_view_dispatcher_switch_to_view(app->p_view_dispatcher, AMIIDB_VIEW_ID_LIST); +} + +static void amiidb_show_message(app_amiidb_t *app, const char *msg) { + mui_msg_box_set_header(app->p_msg_box, getLangString(_L_ERR)); + mui_msg_box_set_message(app->p_msg_box, msg); + mui_msg_box_set_btn_text(app->p_msg_box, NULL, getLangString(_L_KNOW), NULL); + mui_msg_box_set_btn_focus(app->p_msg_box, 1); + mui_msg_box_set_event_cb(app->p_msg_box, amiidb_msg_box_error_cb); + + mui_view_dispatcher_switch_to_view(app->p_view_dispatcher, AMIIDB_VIEW_ID_MSG_BOX); +} + static void amiidb_scene_amiibo_search_list_view_on_selected(mui_list_view_event_t event, mui_list_view_t *p_list_view, mui_list_item_t *p_item) { uint16_t icon = p_item->icon; @@ -49,6 +64,10 @@ static void amiidb_scene_amiibo_search_list_view_on_selected(mui_list_view_event mui_text_input_set_event_cb(app->p_text_input, amiidb_scene_amiibo_search_text_input_event_cb); mui_view_dispatcher_switch_to_view(app->p_view_dispatcher, AMIIDB_VIEW_ID_INPUT); } break; + + case ICON_ERROR: { + amiidb_show_message(app, _T(APP_AMIIDB_MORE_MESSAGE)); + } break; } } diff --git a/fw/application/src/app/settings/scene/settings_scene_main.c b/fw/application/src/app/settings/scene/settings_scene_main.c index 70fdd3ba..d90c2e68 100644 --- a/fw/application/src/app/settings/scene/settings_scene_main.c +++ b/fw/application/src/app/settings/scene/settings_scene_main.c @@ -169,7 +169,7 @@ static void settings_scene_main_reload(void *user_data) { (void *)SETTINGS_MAIN_MENU_OLED_CONTRAST); #else if (p_settings->lcd_backlight == 0) { - snprintf(txt, sizeof(txt), "[%s]", getLangString(_L_OFF)); + snprintf(txt, sizeof(txt), "%s", getLangString(_L_OFF_F)); } else { snprintf(txt, sizeof(txt), "[%d%%]", p_settings->lcd_backlight); } diff --git a/fw/application/src/hal/hal_spi_flash.c b/fw/application/src/hal/hal_spi_flash.c index 3d91bce2..cfc1c934 100644 --- a/fw/application/src/hal/hal_spi_flash.c +++ b/fw/application/src/hal/hal_spi_flash.c @@ -40,7 +40,7 @@ #define MTC_W25Q32_BV (0x4016) /* W25Q32BV */ #define MTC_W25Q32_DW (0x6016) /* W25Q32DW */ #define MTC_W25Q64_BV_CV (0x4017) /* W25Q64BV W25Q64CV */ -#define MTC_W25Q64_DW (0x4017) /* W25Q64DW */ +#define MTC_W25Q64_DW (0x6017) /* W25Q64DW */ #define MTC_W25Q128_BV (0x4018) /* W25Q128BV */ #define MTC_W25Q256_FV (TBD) /* W25Q256FV */ #define MTC_MX25L25645_GM2I (0x2019) /* MX25L25645GM2I-10G */ @@ -151,38 +151,48 @@ ret_code_t hal_spi_flash_info(flash_info_t *info) { memory_type_capacity = rx[1]; memory_type_capacity = (memory_type_capacity << 8) | rx[2]; - if (memory_type_capacity == MTC_MX25L25645_GM2I) { - NRF_LOG_INFO("MX25L25645GM2I-10G detection"); - info->block_count = 8192; - } else if (memory_type_capacity == MTC_W25Q128_BV) { - NRF_LOG_INFO("W25Q128BV detection"); - info->block_count = 4096; - } else if (memory_type_capacity == MTC_W25Q64_BV_CV) { - NRF_LOG_INFO("W25Q64BV or W25Q64CV detection"); - info->block_count = 2048; - } else if (memory_type_capacity == MTC_W25Q64_DW) { - NRF_LOG_INFO("W25Q64DW detection"); - info->block_count = 2048; - } else if (memory_type_capacity == MTC_W25Q32_BV) { - NRF_LOG_INFO("W25Q32BV detection"); - info->block_count = 1024; - } else if (memory_type_capacity == MTC_W25Q32_DW) { - NRF_LOG_INFO("W25Q32DW detection"); - info->block_count = 1024; - } else if (memory_type_capacity == MTC_W25Q16_BV_CL_CV) { - NRF_LOG_INFO("W25Q16BV or W25Q16CL or W25Q16CV detection"); - info->block_count = 512; - } else if (memory_type_capacity == MTC_W25Q16_DW) { - NRF_LOG_INFO("W25Q16DW detection"); - info->block_count = 512; - } else { - NRF_LOG_INFO("Memory Capacity error! %d", memory_type_capacity); - info->block_count = 0; - return NRF_ERROR_INVALID_PARAM; + switch (memory_type_capacity) { + case MTC_MX25L25645_GM2I: + NRF_LOG_INFO("MX25L25645GM2I-10G detection"); + info->block_count = 8192; + break; + case MTC_W25Q128_BV: + NRF_LOG_INFO("W25Q128BV detection"); + info->block_count = 4096; + break; + case MTC_W25Q64_BV_CV: + NRF_LOG_INFO("W25Q64BV or W25Q64CV detection"); + info->block_count = 2048; + break; + case MTC_W25Q64_DW: + NRF_LOG_INFO("W25Q64DW detection"); + info->block_count = 2048; + break; + case MTC_W25Q32_BV: + NRF_LOG_INFO("W25Q32BV detection"); + info->block_count = 1024; + break; + case MTC_W25Q32_DW: + NRF_LOG_INFO("W25Q32DW detection"); + info->block_count = 1024; + break; + case MTC_W25Q16_BV_CL_CV: + NRF_LOG_INFO("W25Q16BV or W25Q16CL or W25Q16CV detection"); + info->block_count = 512; + break; + case MTC_W25Q16_DW: + NRF_LOG_INFO("W25Q16DW detection"); + info->block_count = 512; + break; + default: + NRF_LOG_INFO("Memory Capacity error! %d", memory_type_capacity); + info->block_count = 0; + return NRF_ERROR_INVALID_PARAM; } return NRF_SUCCESS; } + ret_code_t hal_spi_flash_read(uint32_t address, void *buffer, size_t size) { uint8_t tx[4]; diff --git a/fw/application/src/i18n/de_DE.c b/fw/application/src/i18n/de_DE.c index fbd39085..b0968e08 100644 --- a/fw/application/src/i18n/de_DE.c +++ b/fw/application/src/i18n/de_DE.c @@ -4,30 +4,30 @@ const char * const lang_de_DE[_L_COUNT] = { [_L_OFF] = "AUS", [_L_ON_F] = "[AN]", [_L_OFF_F] = "[AUS]", - [_L_BACK] = "[Zurück]", + [_L_BACK] = "Zurück", [_L_ERR] = "Fehler", [_L_ERR_CODE] = "Fehlercode", - [_L_APP_AMIIBO] = "Amiibo-Emulator", + [_L_APP_AMIIBO] = "Amiibo Emulator", [_L_APP_AMIIBOLINK] = "AmiiboLink", - [_L_APP_BLE] = "BLE-Dateitransfer", - [_L_APP_BLE_TITLE] = "BLE-Dateitransfer", - [_L_APP_PLAYER] = "Videospieler", + [_L_APP_BLE] = "BLE Dateitransfer", + [_L_APP_BLE_TITLE] = "BLE Dateitransfer", + [_L_APP_PLAYER] = "Videoplayer", [_L_APP_SET] = "Einstellungen", [_L_APP_SET_VERSION] = "Version", [_L_APP_SET_STORAGE_USED] = "Belegt", - [_L_APP_SET_STORAGE] = "Speicher", - [_L_APP_SET_OLED_CONTRAST] = "OLED-Kontrast", - [_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED-Kontrast", + [_L_APP_SET_STORAGE] = "Externer Speicher", + [_L_APP_SET_OLED_CONTRAST] = "OLED Kontrast", + [_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED Kontrast", [_L_APP_SET_LCD_BACKLIGHT] = "Beleuchtung", [_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Helligkeit", - [_L_APP_SET_ANIM] = "Menü-Animation", - [_L_APP_SET_LIPO_BAT] = "LiPO-Batterie", + [_L_APP_SET_ANIM] = "Menü Animation", + [_L_APP_SET_LIPO_BAT] = "LiPO Batterie", [_L_APP_SET_SHOW_MEM_USAGE] = "Speicheranzeige", - [_L_APP_SET_HIBERNATE] = "Schnell-Wecken", - [_L_APP_SET_SLEEP_TIMEOUT] = "Schlaf-Timeout", + [_L_APP_SET_HIBERNATE] = "Schnelles Aufwachen", + [_L_APP_SET_SLEEP_TIMEOUT] = "Standby nach", [_L_APP_SET_LANGUAGE] = "Sprache", - [_L_APP_SET_DFU] = "Firmw.-Aktualisierung", - [_L_APP_SET_REBOOT] = "System-Neustart", + [_L_APP_SET_DFU] = "Firmw. Aktualisierung", + [_L_APP_SET_REBOOT] = "System Neustart", [_L_APP_SET_RESET_DEFAULT] = "Standardeinstellungen", [_L_APP_SET_RESET_DEFAULT_SUCCESS] = "Einstellungen zurückgesetzt!", [_L_APP_SET_RESET_DEFAULT_CONFIRM] = "Auf Standardeinstellungen zurücksetzen?", @@ -36,131 +36,134 @@ const char * const lang_de_DE[_L_COUNT] = { [_L_45S] = "45 Sekunden", [_L_1MIN] = "1 Minute", [_L_2MIN] = "2 Minuten", - [_L_3MIN] = "3 Min", - [_L_AMIIBO_KEY_UNLOADED] = "Schlüssel nicht gefunden", - [_L_UPLOAD_KEY_RETAIL_BIN] = "Laden Sie die Datei key_retail.bin in das Stammverzeichnis des Speichers.", + [_L_3MIN] = "3 Minuten", + [_L_AMIIBO_KEY_UNLOADED] = "Amiibo Schlüssel fehlt", + [_L_UPLOAD_KEY_RETAIL_BIN] = "Platzieren Sie die Datei key_retail.bin im Hauptverzeichnis des Speichers.", [_L_KNOW] = "Verstanden", - [_L_RANDOM_GENERATION] = "Zufällige Tag-Nummer", - [_L_AUTO_RANDOM_GENERATION] = "Autom. random.", - [_L_SHOW_QRCODE] = "QR-Code", + [_L_RANDOM_GENERATION] = "Zufällige UUID", + [_L_AUTO_RANDOM_GENERATION] = "Zufällige UUID (Automatisch)", + [_L_SHOW_QRCODE] = "QR Code", [_L_DELETE_TAG] = "Tag löschen", - [_L_DELETE_TAG_CONFIRM] = "Bestätigen Sie das\nLöschen %s?", - [_L_BACK_TO_DETAILS] = "Zurück zu Tag-Details", - [_L_BACK_TO_FILE_LIST] = "[Zurück zur Liste]", - [_L_BACK_TO_MAIN_MENU] = "[Hauptmenü]", + [_L_DELETE_TAG_CONFIRM] = "Löschen von %s bestätigen?", + [_L_BACK_TO_DETAILS] = "Zurück zu Tag Details", + [_L_BACK_TO_FILE_LIST] = "Zurück zur Liste", + [_L_BACK_TO_MAIN_MENU] = "Hauptmenü", [_L_FORMAT] = "Formatieren", [_L_FORMAT_STORAGE] = "Speicher formatieren", [_L_DELETE_ALL_DATA] = "Alle Daten löschen?", - [_L_DELETING_MESSAGE] = "Formatierung..", - [_L_MESSAGE] = "Nachricht", + [_L_DELETING_MESSAGE] = "Formatiere...", + [_L_MESSAGE] = "Meldung", [_L_CONFIRM] = "Bestätigen", [_L_CANCEL] = "Abbrechen", - [_L_BACK_TO_LIST] = "[Zurück zur Liste]", - [_L_NOT_MOUNTED] = "Speicher nicht ausgerüstet", + [_L_BACK_TO_LIST] = "Zurück zur Liste", + [_L_NOT_MOUNTED] = "Speicher nicht eingebunden", [_L_MOUNTED_LFS] = "===Speicher [LFS]===", [_L_MOUNTED_FFS] = "===Speicher [FFS]===", [_L_TOTAL_SPACE] = "Gesamt", [_L_AVAILABLE_SPACE] = "Frei", - [_L_NOT_AMIIBO_FILE] = "Dies ist keine Amiibo-Datei", + [_L_NOT_AMIIBO_FILE] = "Keine Amiibo Datei", [_L_READ_FILE_FAILED] = "Lesen fehlgeschlagen", [_L_INPUT_FOLDER_NAME] = "Ordnername eingeben:", - [_L_INPUT_AMIIBO_NAME] = "Amiibo-Name eingeben:", - [_L_DELETE] = "Löschen", + [_L_INPUT_AMIIBO_NAME] = "Amiibo Namen eingeben:", + [_L_DELETE_FILE] = "%s löschen ?", + [_L_DELETE] = "Löschen...", + [_L_TIPS] = "Bestätigen", [_L_INPUT_NEW_NAME] = "Neuen Namen eingeben:", [_L_INVALID_INPUT] = "Ungültige Eingabe", - [_L_CREATE_NEW_FOLDER] = "Neuer Ordner..", - [_L_CREATE_NEW_TAG] = "Neuer Tag..", - [_L_CREATE_NEW_TAG_BATCH] = "Mehrere Tags..", - [_L_INPUT_TAG_NUM] = "Tag-Anzahl eingeben:", - [_L_CREATE_TOO_MANY_NUM] = "Nur maximal %d Tags in einem Stapel erstellt.", + [_L_CREATE_NEW_FOLDER] = "Neuer Ordner...", + [_L_CREATE_NEW_TAG] = "Neuer Tag...", + [_L_CREATE_NEW_TAG_BATCH] = "Mehrere Tags erstellen...", + [_L_INPUT_TAG_NUM] = "Tag Anzahl eingeben:", + [_L_CREATE_TOO_MANY_NUM] = "Sie können nur maximal %d Tags auf einmal erstellen.", [_L_CREATING_TAG_BATCH] = "Tag erstellen", [_L_CREATING_TAG_FAILED] = "Erstellen von Tag %s fehlgeschlagen!", - [_L_RENAME] = "Umbenennen", + [_L_RENAME] = "Umbenennen...", [_L_OPEN_FOLDER_FAILED] = "Ordner konnte nicht geöffnet werden", [_L_RENAME_FAILED] = "Umbenennen fehlgeschlagen\nFehlercode", [_L_MAIN_RETURN] = "[Zurück]", - [_L_RANDOM_MODE_MANUAL] = "Zufällig (Manuell)", - [_L_RANDOM_MODE_AUTO] = "Zufällig (Automatisch)", + [_L_RANDOM_MODE_MANUAL] = "Zufällige UUID (Manuell)", + [_L_RANDOM_MODE_AUTO] = "Zufällige UUID (Automatisch)", [_L_SEQUENCE_MODE] = "Sequentieller Modus", - [_L_READ_WRITE_MODE] = "Lese-Schreib-Modus", + [_L_READ_WRITE_MODE] = "Lese-Schreibmodus", [_L_AMIIBOLINK_V1] = "V1", [_L_AMIIBOLINK_V2] = "V2", [_L_AMILOOP] = "AmiLoop", [_L_MODE] = "Modus", - [_L_AUTO_RANDOM] = "Autom. randomisieren", - [_L_COMPATIBLE_MODE] = "Kompat. Modus", + [_L_AUTO_RANDOM] = "Zufällige UUID (Automatisch)", + [_L_COMPATIBLE_MODE] = "Kompabilitäts Modus", [_L_TAG_DETAILS] = "[Zurück zu Details]", [_L_MAIN_MENU] = "[Hauptmenü]", - [_L_MODE_RANDOM] = "Manuell", + [_L_MODE_RANDOM] = "Zufällige UUID (Manuell)", [_L_MODE_CYCLE] = "Sequentiell", - [_L_MODE_NTAG] = "Lese/Schreib", - [_L_MODE_RANDOM_AUTO_GEN] = "Automatisch", - [_L_BLANK_TAG] = "Leerer NFC-Tag", - [_L_APP_AMIIDB] = "Amiibo-Datenbank", - [_L_APP_AMMIDB_BROWSER] = "Browser..", - [_L_APP_AMIIDB_SEARCH] = "Suche..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Meine Favoriten..", - [_L_APP_AMIIDB_MY_TAGS] = "Meine Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Einstellungen..", + [_L_MODE_NTAG] = "Lesen/Schreiben", + [_L_MODE_RANDOM_AUTO_GEN] = "Zufällig (Auto.)", + [_L_BLANK_TAG] = "Leerer NFC Tag", + [_L_APP_AMIIDB] = "Amiibo Datenbank", + [_L_APP_AMMIDB_BROWSER] = "Navigieren...", + [_L_APP_AMIIDB_SEARCH] = "Suche...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Meine Favoriten...", + [_L_APP_AMIIDB_MY_TAGS] = "Meine Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Einstellungen...", [_L_APP_AMIIDB_EXIT] = "[Beenden]", [_L_APP_AMIIDB_BACK] = "[Zurück]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Schlüssel", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "geladen", - [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "fehlend", - [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Steckplatznummer", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorit..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Speichern unter..", + [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NICHT geladen", + [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Steckplatzanzahl", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorit...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Speichern unter...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Zurück zu Details]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Zurück zur Liste]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Suche:", - [_L_APP_AMIIDB_MORE] = "[Mehr..]", + [_L_APP_AMIIDB_MORE] = "[Mehr...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "Zu viele Ergebnisse. Bitte Suche eingrenzen.", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Zurücksetzen..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Zurücksetzen...", [_L_APP_AMIIDB_CONFIRM] = "Bestätigen", [_L_APP_AMIIDB_CANCEL] = "Abbrechen", [_L_APP_AMIIDB_TIPS] = "Bestätigen", - [_L_APP_AMIIDB_NEW] = "Neu..", - [_L_APP_AMIIDB_EMPTY] = "Leeren..", - [_L_APP_AMIIDB_DELETE] = "Löschen..", - [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Neuer Favoriten-Ordner:", - [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Favoritenordner leeren?", - [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Favoritenordner löschen?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Fav.-Ordner auswählen..", + [_L_APP_AMIIDB_NEW] = "Neu...", + [_L_APP_AMIIDB_EMPTY] = "Leeren...", + [_L_APP_AMIIDB_DELETE] = "Löschen...", + [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Neuer Fav.-Ordner:", + [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Fav.-Ordner leeren?", + [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Löschen Bestätigen?", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Fav.-Ordner auswählen...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Favorit erstellt ", - [_L_APP_AMIIDB_FAV_FAILED] = "Favorit fehlgeschlagen!", + [_L_APP_AMIIDB_FAV_FAILED] = "Favorisieren fehlgeschlagen!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Speichern erfolgreich", [_L_APP_AMIIDB_SLOT_SAVE_FAILED] = "Speichern fehlgeschlagen!", - [_L_APP_CHAMELEON] = "Karten-Emulator", + [_L_APP_CHAMELEON] = "Karten Emulator", [_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL] = "Normal", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Verweigern", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorieren", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", - [_L_APP_CHAMELEON_INITIALIZING] = "Daten initialisieren..", + [_L_APP_CHAMELEON_INITIALIZING] = "Daten initialisieren...", [_L_APP_CHAMELEON_CARD_SLOT] = "Steckplatz", [_L_APP_CHAMELEON_CARD_NICK] = "Spitzname", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Typ", - [_L_APP_CHAMELEON_CARD_DATA] = "Daten..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Erweitert..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Steckplätze..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Steckplätze", - [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Spitzname erfolgreich", - [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Spitzname fehlgeschlagen!", - [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Spitzname eingeben:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Laden..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Speichern..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Zurücksetzen..", + [_L_APP_CHAMELEON_CARD_DATA] = "Daten...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Erweitert...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Steckplatz Einstellungen...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Steckplatz Nummer", + [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Spitzname erfolgreich gesetzt", + [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Spitzname setzen fehlgeschlagen!", + [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Spitznamen eingeben:", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Laden...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Speichern...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Zurücksetzen...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Daten zurückgesetzt", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Datei nicht gefunden", - [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Dateigröße inkorrekt", - [_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Laden fehlgeschlagen", - [_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Laden erfolgreich", - [_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Dateinamen eingeben:", - [_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "Speichern fehlgeschlagen!", - [_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Speichern erfolgreich", - [_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Benutzermodus", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Dateigröße stimmt nicht überein", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Laden der Datei fehlgeschlagen", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Datei erfolgreich geladen", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Datei Namen eingeben:", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "Datei speichern fehlgeschlagen!", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Datei erfolgreich gespeichert", + [_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Benutzerdefinierter Modus", [_L_APP_CHAMELEON_CARD_GEN1A_MODE] = "Gen1A aktiv", - [_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Randomisierte UID", + [_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Zufällige UID", [_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS] = "UID generiert", [_L_APP_CHAMELEON_CARD_GEN2_MODE] = "Gen2 aktiv", [_L_APP_CHAMELEON_CARD_WRITE_MODE] = "Schreibmodus", diff --git a/fw/application/src/i18n/en_US.c b/fw/application/src/i18n/en_US.c index 17a570b5..61c31833 100644 --- a/fw/application/src/i18n/en_US.c +++ b/fw/application/src/i18n/en_US.c @@ -51,7 +51,7 @@ const char * const lang_en_US[_L_COUNT] = { [_L_FORMAT] = "Format", [_L_FORMAT_STORAGE] = "Format Storage", [_L_DELETE_ALL_DATA] = "This will delete all data. Confirm format?", - [_L_DELETING_MESSAGE] = "Formatting ..", + [_L_DELETING_MESSAGE] = "Formatting ...", [_L_MESSAGE] = "Message", [_L_CONFIRM] = "Confirm", [_L_CANCEL] = "Cancel", @@ -65,17 +65,19 @@ const char * const lang_en_US[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Failed read the file", [_L_INPUT_FOLDER_NAME] = "Input Folder Name:", [_L_INPUT_AMIIBO_NAME] = "Input Amiibo Name:", - [_L_DELETE] = "Delete", + [_L_DELETE_FILE] = "Delete %s ?", + [_L_DELETE] = "Delete...", + [_L_TIPS] = "Confirm", [_L_INPUT_NEW_NAME] = "Input New Name:", [_L_INVALID_INPUT] = "Invalid Input", - [_L_CREATE_NEW_FOLDER] = "Create New Folder..", - [_L_CREATE_NEW_TAG] = "Create New Tag..", - [_L_CREATE_NEW_TAG_BATCH] = "Batch Create New Tag..", + [_L_CREATE_NEW_FOLDER] = "Create New Folder...", + [_L_CREATE_NEW_TAG] = "Create New Tag...", + [_L_CREATE_NEW_TAG_BATCH] = "Batch Create New Tag...", [_L_INPUT_TAG_NUM] = "Input Tag Number:", [_L_CREATE_TOO_MANY_NUM] = "Only max %d tags created in a batch.", [_L_CREATING_TAG_BATCH] = "Creating tag", [_L_CREATING_TAG_FAILED] = "Create tag %s failed!", - [_L_RENAME] = "Rename", + [_L_RENAME] = "Rename...", [_L_OPEN_FOLDER_FAILED] = "Failed to open folder", [_L_RENAME_FAILED] = "Failed to rename\nError code", [_L_MAIN_RETURN] = "[RETURN]", @@ -97,35 +99,36 @@ const char * const lang_en_US[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Rand. (Auto)", [_L_BLANK_TAG] = "Blank NFC tag", [_L_APP_AMIIDB] = "Amiibo Database", - [_L_APP_AMMIDB_BROWSER] = "Browser..", - [_L_APP_AMIIDB_SEARCH] = "Search..", - [_L_APP_AMIIDB_MY_FAVORITES] = "My Favorites..", - [_L_APP_AMIIDB_MY_TAGS] = "My Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Settings..", + [_L_APP_AMMIDB_BROWSER] = "Browser...", + [_L_APP_AMIIDB_SEARCH] = "Search...", + [_L_APP_AMIIDB_MY_FAVORITES] = "My Favorites...", + [_L_APP_AMIIDB_MY_TAGS] = "My Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Settings...", [_L_APP_AMIIDB_EXIT] = "[Exit]", [_L_APP_AMIIDB_BACK] = "[Back]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Keys", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Loaded", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NOT Loaded", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Slot Num.", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorite..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Save As..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorite...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Save As...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Back to Detail]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Back to List]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Search:", - [_L_APP_AMIIDB_MORE] = "[More..]", + [_L_APP_AMIIDB_MORE] = "[More...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "Too many results. Try a more specific search.", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Reset..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Reset...", [_L_APP_AMIIDB_CONFIRM] = "Confirm", [_L_APP_AMIIDB_CANCEL] = "Cancel", [_L_APP_AMIIDB_TIPS] = "Confirm", - [_L_APP_AMIIDB_NEW] = "New..", - [_L_APP_AMIIDB_EMPTY] = "Empty..", - [_L_APP_AMIIDB_DELETE] = "Delete..", + [_L_APP_AMIIDB_NEW] = "New...", + [_L_APP_AMIIDB_EMPTY] = "Empty...", + [_L_APP_AMIIDB_DELETE] = "Delete...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "New Fav. Folder:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Empty Fav. Folder?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Confirm Delete?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Select Fav. Folder..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Select Fav. Folder...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Favorite Success", [_L_APP_AMIIDB_FAV_FAILED] = "Favorite Failed!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Save Success", @@ -135,21 +138,21 @@ const char * const lang_en_US[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Deny", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignore", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", - [_L_APP_CHAMELEON_INITIALIZING] = "Initializing data ..", + [_L_APP_CHAMELEON_INITIALIZING] = "Initializing data ...", [_L_APP_CHAMELEON_CARD_SLOT] = "Slot", [_L_APP_CHAMELEON_CARD_NICK] = "Nick", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Type", - [_L_APP_CHAMELEON_CARD_DATA] = "Data..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Advanced..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Slots Settings..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Slot Num..", + [_L_APP_CHAMELEON_CARD_DATA] = "Data...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Advanced...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Slots Settings...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Slot Num...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Set Nick Success", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Set Nick Failed!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Input Nick:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Load..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Save..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Factory..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Load...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Save...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Factory...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Data Factory Success", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "File Not Found", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "File Size Not Match", diff --git a/fw/application/src/i18n/es_ES.c b/fw/application/src/i18n/es_ES.c index aedc2cdb..372f0485 100644 --- a/fw/application/src/i18n/es_ES.c +++ b/fw/application/src/i18n/es_ES.c @@ -43,15 +43,15 @@ const char * const lang_es_ES[_L_COUNT] = { [_L_RANDOM_GENERATION] = "Nuevo serial aleat.", [_L_AUTO_RANDOM_GENERATION] = "Serial alea. aut", [_L_SHOW_QRCODE] = "Mostrar QR", - [_L_DELETE_TAG] = "Borrar amiibo..", + [_L_DELETE_TAG] = "Borrar amiibo...", [_L_DELETE_TAG_CONFIRM] = "¿\nBorrar %s\n?", [_L_BACK_TO_DETAILS] = "[Detalles amiibo]", [_L_BACK_TO_FILE_LIST] = "[Lista Archivos]", [_L_BACK_TO_MAIN_MENU] = "[Menú Principal]", - [_L_FORMAT] = "Formatear..", + [_L_FORMAT] = "Formatear...", [_L_FORMAT_STORAGE] = "Formatear mem. Flash", [_L_DELETE_ALL_DATA] = "Se borrará todos los\ndatos.", - [_L_DELETING_MESSAGE] = "Formateando..", + [_L_DELETING_MESSAGE] = "Formateando...", [_L_MESSAGE] = "Inicializar", [_L_CONFIRM] = "Confirmar", [_L_CANCEL] = "Cancelar", @@ -65,17 +65,19 @@ const char * const lang_es_ES[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Error al leer archivo", [_L_INPUT_FOLDER_NAME] = "Nombre carpeta:", [_L_INPUT_AMIIBO_NAME] = "Nombre amiibo:", - [_L_DELETE] = "Borrar", + [_L_DELETE_FILE] = "¿Borrar el %s ?", + [_L_DELETE] = "Borrar...", + [_L_TIPS] = "Confirmar", [_L_INPUT_NEW_NAME] = "Nuevo nombre:", [_L_INVALID_INPUT] = "Entrada inválida", - [_L_CREATE_NEW_FOLDER] = "Crear carpeta..", - [_L_CREATE_NEW_TAG] = "Crear amiibo..", - [_L_CREATE_NEW_TAG_BATCH] = "Crear amiibo en lote..", + [_L_CREATE_NEW_FOLDER] = "Crear carpeta...", + [_L_CREATE_NEW_TAG] = "Crear amiibo...", + [_L_CREATE_NEW_TAG_BATCH] = "Crear amiibo en lote...", [_L_INPUT_TAG_NUM] = "¿Cuántos?", [_L_CREATE_TOO_MANY_NUM] = "Sólo se puede crear %d en lote", [_L_CREATING_TAG_BATCH] = "Creando", [_L_CREATING_TAG_FAILED] = "¡Error al crear %s!", - [_L_RENAME] = "Renombrar", + [_L_RENAME] = "Renombrar...", [_L_OPEN_FOLDER_FAILED] = "Fallo al abrir carpeta", [_L_RENAME_FAILED] = "Fallo al renombrar\nCódigo de error", [_L_MAIN_RETURN] = "[Volver]", @@ -97,35 +99,36 @@ const char * const lang_es_ES[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Aleat. auto.", [_L_BLANK_TAG] = "Amiibo no asignado", [_L_APP_AMIIDB] = "Base datos amiibo", - [_L_APP_AMMIDB_BROWSER] = "Explorar..", - [_L_APP_AMIIDB_SEARCH] = "Buscar..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Mis Favoritos..", - [_L_APP_AMIIDB_MY_TAGS] = "Mis amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Configuraciones..", + [_L_APP_AMMIDB_BROWSER] = "Explorar...", + [_L_APP_AMIIDB_SEARCH] = "Buscar...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Mis Favoritos...", + [_L_APP_AMIIDB_MY_TAGS] = "Mis amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Configuraciones...", [_L_APP_AMIIDB_EXIT] = "[Menú Principal]", [_L_APP_AMIIDB_BACK] = "[Volver]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Llaves", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Cargadas", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NO cargadas", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Cant. ranuras", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorito..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Asignar en..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorito...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Asignar en...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Volver a Detalles]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Volver a Lista]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Buscar:", - [_L_APP_AMIIDB_MORE] = "[Más..]", + [_L_APP_AMIIDB_MORE] = "[Más...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Borrar..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Borrar...", [_L_APP_AMIIDB_CONFIRM] = "Confirmar", [_L_APP_AMIIDB_CANCEL] = "Cancelar", [_L_APP_AMIIDB_TIPS] = "Confirmar", - [_L_APP_AMIIDB_NEW] = "Nueva..", - [_L_APP_AMIIDB_EMPTY] = "Vaciar..", - [_L_APP_AMIIDB_DELETE] = "Borrar..", + [_L_APP_AMIIDB_NEW] = "Nueva...", + [_L_APP_AMIIDB_EMPTY] = "Vaciar...", + [_L_APP_AMIIDB_DELETE] = "Borrar...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Nueva Carp. Favoritos:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "¿Vaciar Carp. Favoritos?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "¿Confirma borrado?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selec. carp. favoritos..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selec. carp. favoritos...", [_L_APP_AMIIDB_FAV_SUCCESS] = "¡Favorito correcto!", [_L_APP_AMIIDB_FAV_FAILED] = "¡Favorito fallido!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Asignación correcta", @@ -135,21 +138,21 @@ const char * const lang_es_ES[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Negar", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorar", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Caché", - [_L_APP_CHAMELEON_INITIALIZING] = "Inicializando ambiente.\nPor favor espere..", + [_L_APP_CHAMELEON_INITIALIZING] = "Inicializando ambiente.\nPor favor espere...", [_L_APP_CHAMELEON_CARD_SLOT] = "Ranura", [_L_APP_CHAMELEON_CARD_NICK] = "Apodo", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Tipo", - [_L_APP_CHAMELEON_CARD_DATA] = "Datos..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avanzado..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Configuración..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Cant. ranuras..", + [_L_APP_CHAMELEON_CARD_DATA] = "Datos...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avanzado...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Configuración...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Cant. ranuras...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Apodo cambiado.", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "¡Falló cambio apodo!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Apodo:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Cargar..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Guardar..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Inicializar..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Cargar...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Guardar...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Inicializar...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "¡Datos inicializados!", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Archivo no encontrado", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Tamaño archivo incorrecto", diff --git a/fw/application/src/i18n/fr_FR.c b/fw/application/src/i18n/fr_FR.c index f0c7e974..d3773122 100644 --- a/fw/application/src/i18n/fr_FR.c +++ b/fw/application/src/i18n/fr_FR.c @@ -39,7 +39,7 @@ const char * const lang_fr_FR[_L_COUNT] = { [_L_3MIN] = "3 min.", [_L_AMIIBO_KEY_UNLOADED] = "Clé Amiibo Non Chargée", [_L_UPLOAD_KEY_RETAIL_BIN] = "Téléchargez le fichier key_retail.bin dans le répertoire racine du stockage.", - [_L_KNOW] = "Compris (NOTE please feel free to simply change any entry as needed)", + [_L_KNOW] = "Compris", [_L_RANDOM_GENERATION] = "Randomiser la Balise", [_L_AUTO_RANDOM_GENERATION] = "Randomisation Automatique", [_L_SHOW_QRCODE] = "Afficher le Code QR", @@ -51,7 +51,7 @@ const char * const lang_fr_FR[_L_COUNT] = { [_L_FORMAT] = "Format", [_L_FORMAT_STORAGE] = "Format de Stockage", [_L_DELETE_ALL_DATA] = "Cette opération efface toutes les données. Confirmer le formatage?", - [_L_DELETING_MESSAGE] = "Formatage ..", + [_L_DELETING_MESSAGE] = "Formatage ...", [_L_MESSAGE] = "Message", [_L_CONFIRM] = "Confirmer", [_L_CANCEL] = "Annuler", @@ -65,17 +65,19 @@ const char * const lang_fr_FR[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Échec de la lecture du fichier", [_L_INPUT_FOLDER_NAME] = "Nom du Dossier D'entrée:", [_L_INPUT_AMIIBO_NAME] = "Nom de l'Amiibo D'entrée:", - [_L_DELETE] = "Supprimer", + [_L_DELETE_FILE] = "Supprimer le %s ?", + [_L_DELETE] = "Supprimer...", + [_L_TIPS] = "Confirmer", [_L_INPUT_NEW_NAME] = "Nouveau nom D'entrée:", [_L_INVALID_INPUT] = "Entrée Invalide", - [_L_CREATE_NEW_FOLDER] = "Créer un Nouveau Dossier..", - [_L_CREATE_NEW_TAG] = "Créer une Nouvelle Étiquette..", - [_L_CREATE_NEW_TAG_BATCH] = "Créer de Nouvelles Étiquettes Par Lot..", + [_L_CREATE_NEW_FOLDER] = "Créer un Nouveau Dossier...", + [_L_CREATE_NEW_TAG] = "Créer une Nouvelle Étiquette...", + [_L_CREATE_NEW_TAG_BATCH] = "Créer de Nouvelles Étiquettes Par Lot...", [_L_INPUT_TAG_NUM] = "Saisir le Numéro de l'Étiquette:", [_L_CREATE_TOO_MANY_NUM] = "Seulement %d balises maximum créées dans un lot.", [_L_CREATING_TAG_BATCH] = "Création d'une balise", [_L_CREATING_TAG_FAILED] = "La création de la balise %s a échoué!", - [_L_RENAME] = "Renommer", + [_L_RENAME] = "Renommer...", [_L_OPEN_FOLDER_FAILED] = "Échec de l'ouverture du dossier", [_L_RENAME_FAILED] = "Échec du renommage.\nCode d'Erreur", [_L_MAIN_RETURN] = "[RETOUR]", @@ -97,35 +99,36 @@ const char * const lang_fr_FR[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Aléatoire (Automatique)", [_L_BLANK_TAG] = "Étiquette NFC vierge", [_L_APP_AMIIDB] = "Base de Données Amiibo", - [_L_APP_AMMIDB_BROWSER] = "Naviguer..", - [_L_APP_AMIIDB_SEARCH] = "Recherche..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Mes Favoris..", - [_L_APP_AMIIDB_MY_TAGS] = "Mes Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Paramètres..", + [_L_APP_AMMIDB_BROWSER] = "Naviguer...", + [_L_APP_AMIIDB_SEARCH] = "Recherche...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Mes Favoris...", + [_L_APP_AMIIDB_MY_TAGS] = "Mes Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Paramètres...", [_L_APP_AMIIDB_EXIT] = "[Quitter]", [_L_APP_AMIIDB_BACK] = "[Retour]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Touches", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Chargée", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NON Chargée", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Numéro d'Emplacement", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorite..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Enregistrer Sous..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorite...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Enregistrer Sous...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Retour au Détail]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Retour à la Liste]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Recherche:", - [_L_APP_AMIIDB_MORE] = "[Plus..]", + [_L_APP_AMIIDB_MORE] = "[Plus...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Réinitialiser..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Réinitialiser...", [_L_APP_AMIIDB_CONFIRM] = "Confirmer", [_L_APP_AMIIDB_CANCEL] = "Annuler", [_L_APP_AMIIDB_TIPS] = "Confirmer", - [_L_APP_AMIIDB_NEW] = "Nouveau..", - [_L_APP_AMIIDB_EMPTY] = "Vider..", - [_L_APP_AMIIDB_DELETE] = "Supprimer..", + [_L_APP_AMIIDB_NEW] = "Nouveau...", + [_L_APP_AMIIDB_EMPTY] = "Vider...", + [_L_APP_AMIIDB_DELETE] = "Supprimer...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Nouveau Dossier Favori:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Vider le Dossier Favori?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Confirmer la Suppression?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Sélectionner le Dossier Favori..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Sélectionner le Dossier Favori...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Succès du Favori", [_L_APP_AMIIDB_FAV_FAILED] = "Échec du Favori!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Sauvegarder Succès", @@ -134,22 +137,22 @@ const char * const lang_fr_FR[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL] = "Normal", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Refuser", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorer", - [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Zwischenspeicher", - [_L_APP_CHAMELEON_INITIALIZING] = "Initialisation des données ..", + [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", + [_L_APP_CHAMELEON_INITIALIZING] = "Initialisation des données ...", [_L_APP_CHAMELEON_CARD_SLOT] = "Fente", [_L_APP_CHAMELEON_CARD_NICK] = "Pseudo", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Type de Données", - [_L_APP_CHAMELEON_CARD_DATA] = "Données..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avancé..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Paramètres des Emplacements..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Numéro d'Emplacement..", + [_L_APP_CHAMELEON_CARD_DATA] = "Données...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avancé...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Paramètres des Emplacements...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Numéro d'Emplacement...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Définir le Pseudo Succès", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Définir le Pseudo a Échoué!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Entrer le Pseudo:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Charger..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Sauvegarder..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Rétablir Les Valeurs Par Défaut..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Charger...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Sauvegarder...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Rétablir Les Valeurs Par Défaut...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Réinitialisation des Données Succès", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Fichier Non Trouvé", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "La Taille du Fichier ne Correspond Pas", diff --git a/fw/application/src/i18n/hu_HU.c b/fw/application/src/i18n/hu_HU.c index f4875cc3..36402679 100644 --- a/fw/application/src/i18n/hu_HU.c +++ b/fw/application/src/i18n/hu_HU.c @@ -51,7 +51,7 @@ const char * const lang_hu_HU[_L_COUNT] = { [_L_FORMAT] = "Formátum ", [_L_FORMAT_STORAGE] = "Formátum Tárolás", [_L_DELETE_ALL_DATA] = "Minden adatot töröl. Formázás megerősítése?", - [_L_DELETING_MESSAGE] = "Formázás ..", + [_L_DELETING_MESSAGE] = "Formázás ...", [_L_MESSAGE] = "Üzenet", [_L_CONFIRM] = "Megerősítés", [_L_CANCEL] = "Megszüntet", @@ -65,17 +65,19 @@ const char * const lang_hu_HU[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Fájl beolvasása sikerten", [_L_INPUT_FOLDER_NAME] = "Bemeneti Mappa Neve:", [_L_INPUT_AMIIBO_NAME] = "Amiibo Neve:", - [_L_DELETE] = "Töröl", + [_L_DELETE_FILE] = "Törli a %s fájlt?", + [_L_DELETE] = "Töröl...", + [_L_TIPS] = "Megerősítés", [_L_INPUT_NEW_NAME] = "Új Név Bevitele:", [_L_INVALID_INPUT] = "Érvénytelen Bemenet", - [_L_CREATE_NEW_FOLDER] = "Új Mappa Létrehozása..", - [_L_CREATE_NEW_TAG] = "Új Címke Létrehozása..", - [_L_CREATE_NEW_TAG_BATCH] = "Kötegelt Új Címke Létrehozása..", + [_L_CREATE_NEW_FOLDER] = "Új Mappa Létrehozása...", + [_L_CREATE_NEW_TAG] = "Új Címke Létrehozása...", + [_L_CREATE_NEW_TAG_BATCH] = "Kötegelt Új Címke Létrehozása...", [_L_INPUT_TAG_NUM] = "Beviteli Címke Száma:", [_L_CREATE_TOO_MANY_NUM] = "Max. létrehozható címke egy kötegben %d", [_L_CREATING_TAG_BATCH] = "Címke létrehozása", [_L_CREATING_TAG_FAILED] = "Címke létrehozása %s sikertelen!", - [_L_RENAME] = "Átnevezés", + [_L_RENAME] = "Átnevezés...", [_L_OPEN_FOLDER_FAILED] = "Mappa megnyitása sikertelen ", [_L_RENAME_FAILED] = "Átnevezés Sikertelen\nHibakód", [_L_MAIN_RETURN] = "[VISSZA]", @@ -97,35 +99,36 @@ const char * const lang_hu_HU[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Random (Automat.)", [_L_BLANK_TAG] = "Üres NFC Címke", [_L_APP_AMIIDB] = "Amiibo Adatbázis", - [_L_APP_AMMIDB_BROWSER] = "Böngésző..", - [_L_APP_AMIIDB_SEARCH] = "Keresés..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Kedvencek..", - [_L_APP_AMIIDB_MY_TAGS] = "Amiiboim..", - [_L_APP_AMIIDB_SETTINGS] = "Beállítások..", + [_L_APP_AMMIDB_BROWSER] = "Böngésző...", + [_L_APP_AMIIDB_SEARCH] = "Keresés...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Kedvencek...", + [_L_APP_AMIIDB_MY_TAGS] = "Amiiboim...", + [_L_APP_AMIIDB_SETTINGS] = "Beállítások...", [_L_APP_AMIIDB_EXIT] = "[Kilépés]", [_L_APP_AMIIDB_BACK] = "[Vissza]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Kulcsok", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Betöltve", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NINCS betöltve", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Slot Száma", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Kedvenc..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Mentés Másként..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Kedvenc...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Mentés Másként...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Vissza a Részletekhez]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Vissza a Listához]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Keresés:", - [_L_APP_AMIIDB_MORE] = "[Bővebben..]", + [_L_APP_AMIIDB_MORE] = "[Bővebben...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "<Üres Amiibo>", - [_L_APP_AMIIDB_SLOT_DELETE] = "Újraindítás..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Újraindítás...", [_L_APP_AMIIDB_CONFIRM] = "Megerősítés", [_L_APP_AMIIDB_CANCEL] = "Törlés", [_L_APP_AMIIDB_TIPS] = "Megerősítés", - [_L_APP_AMIIDB_NEW] = "Új..", - [_L_APP_AMIIDB_EMPTY] = "Üres..", - [_L_APP_AMIIDB_DELETE] = "Törlés..", + [_L_APP_AMIIDB_NEW] = "Új...", + [_L_APP_AMIIDB_EMPTY] = "Üres...", + [_L_APP_AMIIDB_DELETE] = "Törlés...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Új Kedvenc Mappa:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Üres Kedvenc Mappa?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Törlés Megerősítése?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Kedvenc Mappa Kiválasztása..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Kedvenc Mappa Kiválasztása...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Kedvenc Sikeres", [_L_APP_AMIIDB_FAV_FAILED] = "Kedvenc Sikertelen!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Sikeresen Mentve", @@ -135,21 +138,21 @@ const char * const lang_hu_HU[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Tagadni", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Figyelmen Kívül Hagyni", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Elrejt", - [_L_APP_CHAMELEON_INITIALIZING] = "Az adatok inicializálása ..", + [_L_APP_CHAMELEON_INITIALIZING] = "Az adatok inicializálása ...", [_L_APP_CHAMELEON_CARD_SLOT] = "Cella", [_L_APP_CHAMELEON_CARD_NICK] = "Becenév", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Típus", - [_L_APP_CHAMELEON_CARD_DATA] = "Adatok..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Fejlett..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Cella Beállításai..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Cella Száma..", + [_L_APP_CHAMELEON_CARD_DATA] = "Adatok...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Fejlett...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Cella Beállításai...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Cella Száma...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Becenév Beállítása Sikeres", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Becenév Beállítása Sikertelen!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Becenév Bevitele:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Betöltés..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Mentés..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Visszaállítás..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Betöltés...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Mentés...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Visszaállítás...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Adatok Visszaállítása Sikeres", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Fájl Nem Található", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Fájl Mérete Nem Egyezik", diff --git a/fw/application/src/i18n/it_IT.c b/fw/application/src/i18n/it_IT.c index 92e41261..984d529b 100644 --- a/fw/application/src/i18n/it_IT.c +++ b/fw/application/src/i18n/it_IT.c @@ -48,10 +48,10 @@ const char * const lang_it_IT[_L_COUNT] = { [_L_BACK_TO_DETAILS] = "[Torna ai dettagli del tag]", [_L_BACK_TO_FILE_LIST] = "[Torna alla lista dei file]", [_L_BACK_TO_MAIN_MENU] = "[Torna al menu principale]", - [_L_FORMAT] = "Formatta..", + [_L_FORMAT] = "Formatta...", [_L_FORMAT_STORAGE] = "Formatta memoria", [_L_DELETE_ALL_DATA] = "Questo cancellerà tutti i dati.\nConferma la formattazione?", - [_L_DELETING_MESSAGE] = "Formattazione in corso ..", + [_L_DELETING_MESSAGE] = "Formattazione in corso ...", [_L_MESSAGE] = "Messaggio", [_L_CONFIRM] = "Conferma", [_L_CANCEL] = "Annulla", @@ -65,17 +65,19 @@ const char * const lang_it_IT[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Errore nella lettura del file", [_L_INPUT_FOLDER_NAME] = "Nome cartella:", [_L_INPUT_AMIIBO_NAME] = "Nome Amiibo:", - [_L_DELETE] = "Elimina", + [_L_DELETE_FILE] = "Eliminare %s ?", + [_L_DELETE] = "Elimina...", + [_L_TIPS] = "Conferma", [_L_INPUT_NEW_NAME] = "Nuovo nome:", [_L_INVALID_INPUT] = "Input non valido", - [_L_CREATE_NEW_FOLDER] = "Crea cartella..", - [_L_CREATE_NEW_TAG] = "Crea Amiibo..", - [_L_CREATE_NEW_TAG_BATCH] = "Crea Amiibo in serie..", + [_L_CREATE_NEW_FOLDER] = "Crea cartella...", + [_L_CREATE_NEW_TAG] = "Crea Amiibo...", + [_L_CREATE_NEW_TAG_BATCH] = "Crea Amiibo in serie...", [_L_INPUT_TAG_NUM] = "Numero di tag:", [_L_CREATE_TOO_MANY_NUM] = "Numero max di %d tag in serie.", [_L_CREATING_TAG_BATCH] = "Creazione tag", [_L_CREATING_TAG_FAILED] = "Creazione tag %s fallita!", - [_L_RENAME] = "Rinomina", + [_L_RENAME] = "Rinomina...", [_L_OPEN_FOLDER_FAILED] = "Errore nell'apertura della cartella", [_L_RENAME_FAILED] = "Errore nella rinomina\nCodice errore", [_L_MAIN_RETURN] = "[Torna indietro]", @@ -97,35 +99,36 @@ const char * const lang_it_IT[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Auto. casuale", [_L_BLANK_TAG] = "Amiibo non assegnato", [_L_APP_AMIIDB] = "Database Amiibo", - [_L_APP_AMMIDB_BROWSER] = "Esplora..", - [_L_APP_AMIIDB_SEARCH] = "Cerca..", - [_L_APP_AMIIDB_MY_FAVORITES] = "I miei preferiti..", - [_L_APP_AMIIDB_MY_TAGS] = "I miei Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Impostazioni..", + [_L_APP_AMMIDB_BROWSER] = "Esplora...", + [_L_APP_AMIIDB_SEARCH] = "Cerca...", + [_L_APP_AMIIDB_MY_FAVORITES] = "I miei preferiti...", + [_L_APP_AMIIDB_MY_TAGS] = "I miei Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Impostazioni...", [_L_APP_AMIIDB_EXIT] = "[Menu principale]", [_L_APP_AMIIDB_BACK] = "[Torna indietro]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Chiavi", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Caricate", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NON caricate", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Num. slot", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Preferito..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Assegna a..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Preferito...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Assegna a...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Torna ai dettagli]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Torna alla lista]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Cerca:", - [_L_APP_AMIIDB_MORE] = "[Più..]", + [_L_APP_AMIIDB_MORE] = "[Più...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Elimina..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Elimina...", [_L_APP_AMIIDB_CONFIRM] = "Conferma", [_L_APP_AMIIDB_CANCEL] = "Annulla", [_L_APP_AMIIDB_TIPS] = "Conferma", - [_L_APP_AMIIDB_NEW] = "Nuovo..", - [_L_APP_AMIIDB_EMPTY] = "Svuota..", - [_L_APP_AMIIDB_DELETE] = "Cancella..", + [_L_APP_AMIIDB_NEW] = "Nuovo...", + [_L_APP_AMIIDB_EMPTY] = "Svuota...", + [_L_APP_AMIIDB_DELETE] = "Cancella...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Nuova cart. preferiti:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Svuotare cart. preferiti?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Conferma cancellazione?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selez. cart. preferiti..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selez. cart. preferiti...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Preferito aggiunto!", [_L_APP_AMIIDB_FAV_FAILED] = "Preferito non aggiunto!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Assegnazione corretta", @@ -135,21 +138,21 @@ const char * const lang_it_IT[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Nega", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignora", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", - [_L_APP_CHAMELEON_INITIALIZING] = "Inizializzazione ambiente.\nPer favore attendi..", + [_L_APP_CHAMELEON_INITIALIZING] = "Inizializzazione ambiente.\nPer favore attendi...", [_L_APP_CHAMELEON_CARD_SLOT] = "Slot", [_L_APP_CHAMELEON_CARD_NICK] = "Nickname", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Tipo", - [_L_APP_CHAMELEON_CARD_DATA] = "Dati..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avanzato..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Impostazioni..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Num. slot..", + [_L_APP_CHAMELEON_CARD_DATA] = "Dati...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avanzato...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Impostazioni...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Num. slot...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Cambio nickname riuscito.", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Cambio nickname fallito!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Nickname:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Carica..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Salva..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Inizializza..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Carica...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Salva...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Inizializza...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Dati inizializzati!", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "File non trovato", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Dimensione file non corretta", diff --git a/fw/application/src/i18n/ja_JP.c b/fw/application/src/i18n/ja_JP.c index 19546c56..030ae4c2 100644 --- a/fw/application/src/i18n/ja_JP.c +++ b/fw/application/src/i18n/ja_JP.c @@ -51,7 +51,7 @@ const char * const lang_ja_JP[_L_COUNT] = { [_L_FORMAT] = "フォーマット", [_L_FORMAT_STORAGE] = "保存領域フォーマット", [_L_DELETE_ALL_DATA] = "これですべてのデータが削除されます。よろしいですか?", - [_L_DELETING_MESSAGE] = "書式設定 ..", + [_L_DELETING_MESSAGE] = "書式設定 ...", [_L_MESSAGE] = "メッセージ", [_L_CONFIRM] = "確認", [_L_CANCEL] = "キャンセル", @@ -65,17 +65,19 @@ const char * const lang_ja_JP[_L_COUNT] = { [_L_READ_FILE_FAILED] = "ファイルの読み込みに失敗しました", [_L_INPUT_FOLDER_NAME] = "入力フォルダ名:", [_L_INPUT_AMIIBO_NAME] = "入力Amiibo名:", - [_L_DELETE] = "削除", + [_L_DELETE_FILE] = "%s を削除しますか ?", + [_L_DELETE] = "削除...", + [_L_TIPS] = "確認する", [_L_INPUT_NEW_NAME] = "新しい名前を入力してください:", [_L_INVALID_INPUT] = "無効な入力", - [_L_CREATE_NEW_FOLDER] = "新しいフォルダを作成..", - [_L_CREATE_NEW_TAG] = "新規タグ作成..", - [_L_CREATE_NEW_TAG_BATCH] = "新規タグの一括作成..", + [_L_CREATE_NEW_FOLDER] = "新しいフォルダを作成...", + [_L_CREATE_NEW_TAG] = "新規タグ作成...", + [_L_CREATE_NEW_TAG_BATCH] = "新規タグの一括作成...", [_L_INPUT_TAG_NUM] = "タグ番号を入力:", [_L_CREATE_TOO_MANY_NUM] = "1つのバッチで作成されるタグの数はは最大 %d までです。", [_L_CREATING_TAG_BATCH] = "タグの作成", [_L_CREATING_TAG_FAILED] = "タグ %s の作成に失敗しました!", - [_L_RENAME] = "名前の変更", + [_L_RENAME] = "名前の変更...", [_L_OPEN_FOLDER_FAILED] = "フォルダを開けませんでした", [_L_RENAME_FAILED] = "名前の変更に失敗しました。\nエラーコード", [_L_MAIN_RETURN] = "[リターン]", @@ -97,35 +99,36 @@ const char * const lang_ja_JP[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "ランダム化(自動)", [_L_BLANK_TAG] = "ブランクNFCタグ", [_L_APP_AMIIDB] = "Amiiboデータベース", - [_L_APP_AMMIDB_BROWSER] = "ブラウザ..", - [_L_APP_AMIIDB_SEARCH] = "検索..", - [_L_APP_AMIIDB_MY_FAVORITES] = "お気に入り..", - [_L_APP_AMIIDB_MY_TAGS] = "マイAmiibo..", - [_L_APP_AMIIDB_SETTINGS] = "設定..", + [_L_APP_AMMIDB_BROWSER] = "ブラウザ...", + [_L_APP_AMIIDB_SEARCH] = "検索...", + [_L_APP_AMIIDB_MY_FAVORITES] = "お気に入り...", + [_L_APP_AMIIDB_MY_TAGS] = "マイAmiibo...", + [_L_APP_AMIIDB_SETTINGS] = "設定...", [_L_APP_AMIIDB_EXIT] = "[終了]", [_L_APP_AMIIDB_BACK] = "[戻る]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "キー", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "ロードされました", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "ロードされていません", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "スロット番号", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "お気に入り..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "名前を付けて保存..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "お気に入り...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "名前を付けて保存...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[詳細に戻る]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[リストに戻る]", [_L_APP_AMIIDB_SEARCH_HEAD] = "検索する:", - [_L_APP_AMIIDB_MORE] = "[もっと見る..]", + [_L_APP_AMIIDB_MORE] = "[もっと見る...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "リセット..", + [_L_APP_AMIIDB_SLOT_DELETE] = "リセット...", [_L_APP_AMIIDB_CONFIRM] = "確認する", [_L_APP_AMIIDB_CANCEL] = "キャンセルする", [_L_APP_AMIIDB_TIPS] = "確認する", - [_L_APP_AMIIDB_NEW] = "新規..", - [_L_APP_AMIIDB_EMPTY] = "空..", - [_L_APP_AMIIDB_DELETE] = "削除..", + [_L_APP_AMIIDB_NEW] = "新規...", + [_L_APP_AMIIDB_EMPTY] = "空...", + [_L_APP_AMIIDB_DELETE] = "削除...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "新しいお気に入りフォルダ:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "お気に入りフォルダを空にしますか?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "削除してよろしいですか?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "お気に入りフォルダを選択..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "お気に入りフォルダを選択...", [_L_APP_AMIIDB_FAV_SUCCESS] = "お気に入りに追加されました", [_L_APP_AMIIDB_FAV_FAILED] = "お気に入りに追加できませんでした!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "保存されました", @@ -135,21 +138,21 @@ const char * const lang_ja_JP[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "拒否", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "無視", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "キャッシュ", - [_L_APP_CHAMELEON_INITIALIZING] = "データの初期化 ..", + [_L_APP_CHAMELEON_INITIALIZING] = "データの初期化 ...", [_L_APP_CHAMELEON_CARD_SLOT] = "スロット", [_L_APP_CHAMELEON_CARD_NICK] = "ニックネーム", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "タイプ", - [_L_APP_CHAMELEON_CARD_DATA] = "データ..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "詳細設定..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "スロット設定..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "スロット番号..", + [_L_APP_CHAMELEON_CARD_DATA] = "データ...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "詳細設定...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "スロット設定...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "スロット番号...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "ニックネームが設定されました", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "ニックネームが設定できませんでした!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "ニックネームを入力してください:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "ロード..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "保存..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "初期化..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "ロード...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "保存...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "初期化...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "初期化成功", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "ファイルが見つかりません", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "ファイルサイズが一致しません", diff --git a/fw/application/src/i18n/language.c b/fw/application/src/i18n/language.c index 7e861989..3b49b9b7 100644 --- a/fw/application/src/i18n/language.c +++ b/fw/application/src/i18n/language.c @@ -8,10 +8,11 @@ typedef struct { const LanguageData const languageData[LANGUAGE_COUNT] = { [LANGUAGE_ZH_HANS] = {.strings = lang_zh_Hans}, [LANGUAGE_EN_US] = {.strings = lang_en_US}, [LANGUAGE_ZH_TW] = {.strings = lang_zh_TW}, [LANGUAGE_ES_ES] = {.strings = lang_es_ES}, - [LANGUAGE_IT_IT] = {.strings = lang_it_IT}, [LANGUAGE_HU_HU] = {.strings = lang_hu_HU}, - [LANGUAGE_DE_DE] = {.strings = lang_de_DE}, [LANGUAGE_FR_FR] = {.strings = lang_fr_FR}, - [LANGUAGE_NL_NL] = {.strings = lang_nl_NL}, [LANGUAGE_PT_BR] = {.strings = lang_pt_BR}, + [LANGUAGE_IT_IT] = {.strings = lang_it_IT}, [LANGUAGE_HU_HU] = {.strings = lang_hu_HU}, + [LANGUAGE_DE_DE] = {.strings = lang_de_DE}, [LANGUAGE_FR_FR] = {.strings = lang_fr_FR}, + [LANGUAGE_NL_NL] = {.strings = lang_nl_NL}, [LANGUAGE_PT_BR] = {.strings = lang_pt_BR}, [LANGUAGE_JA_JP] = {.strings = lang_ja_JP}, [LANGUAGE_PT_PT] = {.strings = lang_pt_PT}, + [LANGUAGE_RU_RU] = {.strings = lang_ru_RU}, }; // 当前语言设置 (Current language setting) @@ -31,32 +32,35 @@ const char *getLangString(L_StringID stringID) { void setLanguage(Language lang) { currentLanguage = lang; } const char *getLangDesc(Language lang) { - if (lang == LANGUAGE_ZH_HANS) { - return "简体中文"; - } else if (lang == LANGUAGE_EN_US) { - return "English"; - } else if (lang == LANGUAGE_ZH_TW) { - return "繁體中文(臺灣)"; - } else if (lang == LANGUAGE_ES_ES) { - return "Español"; - } else if (lang == LANGUAGE_IT_IT) { - return "Italiano"; - } else if (lang == LANGUAGE_HU_HU) { - return "Magyar"; - } else if (lang == LANGUAGE_DE_DE) { - return "Deutsch"; - } else if (lang == LANGUAGE_FR_FR) { - return "Français"; - } else if (lang == LANGUAGE_NL_NL) { - return "Dutch (Nederlands)"; - } else if (lang == LANGUAGE_PT_BR) { - return "Português(Brazil)"; - } else if (lang == LANGUAGE_JA_JP) { - return "日本語"; - } else if (lang == LANGUAGE_PT_PT) { - return "Português(Portugal)"; - } else { - return "@@LANG@@"; + switch (lang) { + case LANGUAGE_ZH_HANS: + return "简体中文"; + case LANGUAGE_EN_US: + return "English"; + case LANGUAGE_ZH_TW: + return "繁體中文(臺灣)"; + case LANGUAGE_ES_ES: + return "Español"; + case LANGUAGE_IT_IT: + return "Italiano"; + case LANGUAGE_HU_HU: + return "Magyar"; + case LANGUAGE_DE_DE: + return "Deutsch"; + case LANGUAGE_FR_FR: + return "Français"; + case LANGUAGE_NL_NL: + return "Dutch (Nederlands)"; + case LANGUAGE_PT_BR: + return "Português(Brazil)"; + case LANGUAGE_JA_JP: + return "日本語"; + case LANGUAGE_PT_PT: + return "Português(Portugal)"; + case LANGUAGE_RU_RU: + return "Русский"; + default: + return "@@LANG@@"; } } diff --git a/fw/application/src/i18n/language.h b/fw/application/src/i18n/language.h index 42a2bb72..eaca12f5 100644 --- a/fw/application/src/i18n/language.h +++ b/fw/application/src/i18n/language.h @@ -23,6 +23,7 @@ typedef enum { LANGUAGE_JA_JP, LANGUAGE_PT_PT, LANGUAGE_IT_IT, + LANGUAGE_RU_RU, LANGUAGE_COUNT } Language; @@ -38,6 +39,7 @@ extern const char* lang_pt_BR[_L_COUNT]; extern const char* lang_ja_JP[_L_COUNT]; extern const char* lang_pt_PT[_L_COUNT]; extern const char* lang_it_IT[_L_COUNT]; +extern const char* lang_ru_RU[_L_COUNT]; // 获取字符串的函数 (Get language string function) const char* getLangString(L_StringID stringID); diff --git a/fw/application/src/i18n/nl_NL.c b/fw/application/src/i18n/nl_NL.c index b979dfee..ab983593 100644 --- a/fw/application/src/i18n/nl_NL.c +++ b/fw/application/src/i18n/nl_NL.c @@ -51,7 +51,7 @@ const char * const lang_nl_NL[_L_COUNT] = { [_L_FORMAT] = "Formatteren", [_L_FORMAT_STORAGE] = "Opslag Formatteren", [_L_DELETE_ALL_DATA] = "Hierdoor worden alle gegevens gewist. Formatteren bevestigen?", - [_L_DELETING_MESSAGE] = "Formatteren ..", + [_L_DELETING_MESSAGE] = "Formatteren ...", [_L_MESSAGE] = "Bericht", [_L_CONFIRM] = "Bevestigen", [_L_CANCEL] = "Annuleren", @@ -65,17 +65,19 @@ const char * const lang_nl_NL[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Lezen van het bestand is mislukt", [_L_INPUT_FOLDER_NAME] = "Naam Invoermap:", [_L_INPUT_AMIIBO_NAME] = "Naam Amiibo Invoeren:", - [_L_DELETE] = "Verwijder", + [_L_DELETE_FILE] = "%s verwijderen ?", + [_L_DELETE] = "Verwijder...", + [_L_TIPS] = "Bevestigen", [_L_INPUT_NEW_NAME] = "Nieuwe Naam Invoeren:", [_L_INVALID_INPUT] = "Ongeldige Invoer", - [_L_CREATE_NEW_FOLDER] = "Nieuwe Map Maken..", - [_L_CREATE_NEW_TAG] = "Nieuwe Tag Aanmaken..", - [_L_CREATE_NEW_TAG_BATCH] = "Nieuwe Tags in een Batch Aanmaken..", + [_L_CREATE_NEW_FOLDER] = "Nieuwe Map Maken...", + [_L_CREATE_NEW_TAG] = "Nieuwe Tag Aanmaken...", + [_L_CREATE_NEW_TAG_BATCH] = "Nieuwe Tags in een Batch Aanmaken...", [_L_INPUT_TAG_NUM] = "Labelnummer Invoeren:", [_L_CREATE_TOO_MANY_NUM] = "Maximum %d tags aangemaakt in een batch.", [_L_CREATING_TAG_BATCH] = "Tag aanmaken", [_L_CREATING_TAG_FAILED] = "Aanmaken tag %s mislukt!", - [_L_RENAME] = "Hernoem", + [_L_RENAME] = "Hernoem...", [_L_OPEN_FOLDER_FAILED] = "Kan map niet openen", [_L_RENAME_FAILED] = "Hernoemen mislukt.\nFoutcode", [_L_MAIN_RETURN] = "[TERUG]", @@ -97,35 +99,36 @@ const char * const lang_nl_NL[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Willekeurig (Automatisch)", [_L_BLANK_TAG] = "Lege NFC-tag", [_L_APP_AMIIDB] = "Amiibo-Database", - [_L_APP_AMMIDB_BROWSER] = "Browser..", - [_L_APP_AMIIDB_SEARCH] = "Zoeken..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Mijn Favorieten..", - [_L_APP_AMIIDB_MY_TAGS] = "Mijn Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Instellingen..", + [_L_APP_AMMIDB_BROWSER] = "Browser...", + [_L_APP_AMIIDB_SEARCH] = "Zoeken...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Mijn Favorieten...", + [_L_APP_AMIIDB_MY_TAGS] = "Mijn Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Instellingen...", [_L_APP_AMIIDB_EXIT] = "[Afsluiten]", [_L_APP_AMIIDB_BACK] = "[Terug]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Toetsen", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Geladen", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NIET Geladen", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Slotnummer", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favoriet..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Opslaan Als..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favoriet...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Opslaan Als...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Terug naar Detail]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Terug naar Lijst].", [_L_APP_AMIIDB_SEARCH_HEAD] = "Zoeken:", - [_L_APP_AMIIDB_MORE] = "[Meer..]", + [_L_APP_AMIIDB_MORE] = "[Meer...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Reset..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Reset...", [_L_APP_AMIIDB_CONFIRM] = "Bevestigen", [_L_APP_AMIIDB_CANCEL] = "Annuleren", [_L_APP_AMIIDB_TIPS] = "Bevestigen", - [_L_APP_AMIIDB_NEW] = "Nieuw..", - [_L_APP_AMIIDB_EMPTY] = "Leeg..", - [_L_APP_AMIIDB_DELETE] = "Verwijderen..", + [_L_APP_AMIIDB_NEW] = "Nieuw...", + [_L_APP_AMIIDB_EMPTY] = "Leeg...", + [_L_APP_AMIIDB_DELETE] = "Verwijderen...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Nieuwe Favoriete Map:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Favoriete Map Leegmaken?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Verwijderen Bevestigen?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selecteer Favoriete Map..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selecteer Favoriete Map...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Favoriet Geslaagd", [_L_APP_AMIIDB_FAV_FAILED] = "Favoriet Mislukt!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Opslaan Succes", @@ -135,21 +138,21 @@ const char * const lang_nl_NL[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Weigeren", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Negeren", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", - [_L_APP_CHAMELEON_INITIALIZING] = "Gegevens Initialiseren ..", + [_L_APP_CHAMELEON_INITIALIZING] = "Gegevens Initialiseren ...", [_L_APP_CHAMELEON_CARD_SLOT] = "Slot", [_L_APP_CHAMELEON_CARD_NICK] = "Bijnaam", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Type", - [_L_APP_CHAMELEON_CARD_DATA] = "Gegevens..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Geavanceerd..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Slot Instellingen..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Slotnummer..", + [_L_APP_CHAMELEON_CARD_DATA] = "Gegevens...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Geavanceerd...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Slot Instellingen...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Slotnummer...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Bijnaam Instellen Succes", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Bijnaam Instellen Mislukt!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Voer Bijnaam In:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Laden..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Opslaan..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Terugzetten Naar Standaard..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Laden...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Opslaan...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Terugzetten Naar Standaard...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Fabriekgegeven terugzetten Succesvol", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Bestand Niet Gevonden", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Bestandsgrootte Komt Niet Overeen", diff --git a/fw/application/src/i18n/pt_BR.c b/fw/application/src/i18n/pt_BR.c index 5ca2a0da..270a1805 100644 --- a/fw/application/src/i18n/pt_BR.c +++ b/fw/application/src/i18n/pt_BR.c @@ -51,7 +51,7 @@ const char * const lang_pt_BR[_L_COUNT] = { [_L_FORMAT] = "Formatar", [_L_FORMAT_STORAGE] = "Formatar Armazenamento", [_L_DELETE_ALL_DATA] = "Isso excluirá todos os dados. Confirmar a formatação?", - [_L_DELETING_MESSAGE] = "Formatando ..", + [_L_DELETING_MESSAGE] = "Formatando ...", [_L_MESSAGE] = "Mensagem", [_L_CONFIRM] = "Confirmar", [_L_CANCEL] = "Cancelar", @@ -65,17 +65,19 @@ const char * const lang_pt_BR[_L_COUNT] = { [_L_READ_FILE_FAILED] = "Falha na Leitura do Arquivo", [_L_INPUT_FOLDER_NAME] = "Nome da Pasta de Entrada:", [_L_INPUT_AMIIBO_NAME] = "Nome do Amiibo de Entrada:", - [_L_DELETE] = "Excluir", + [_L_DELETE_FILE] = "Excluir %s ?", + [_L_DELETE] = "Excluir...", + [_L_TIPS] = "Confirmar", [_L_INPUT_NEW_NAME] = "Novo Nome de Entrada:", [_L_INVALID_INPUT] = "Entrada Inválida", - [_L_CREATE_NEW_FOLDER] = "Criar Nova Pasta..", - [_L_CREATE_NEW_TAG] = "Criar Nova Tag..", - [_L_CREATE_NEW_TAG_BATCH] = "Criar Novas Tags em Lote..", + [_L_CREATE_NEW_FOLDER] = "Criar Nova Pasta...", + [_L_CREATE_NEW_TAG] = "Criar Nova Tag...", + [_L_CREATE_NEW_TAG_BATCH] = "Criar Novas Tags em Lote...", [_L_INPUT_TAG_NUM] = "Número da Tag de Entrada:", [_L_CREATE_TOO_MANY_NUM] = "Somente no máximo %d tags criadas em um lote.", [_L_CREATING_TAG_BATCH] = "Criando tag", [_L_CREATING_TAG_FAILED] = "Falha ao criar a tag %s!", - [_L_RENAME] = "Renomear", + [_L_RENAME] = "Renomear...", [_L_OPEN_FOLDER_FAILED] = "Falha ao abrir a pasta", [_L_RENAME_FAILED] = "Falha ao renomear\nCódigo de erro", [_L_MAIN_RETURN] = "[RETORNO]", @@ -97,35 +99,36 @@ const char * const lang_pt_BR[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "Randomização (Automática)", [_L_BLANK_TAG] = "Tag NFC em Branco", [_L_APP_AMIIDB] = "Banco de Dados Amiibo", - [_L_APP_AMMIDB_BROWSER] = "Navegador..", - [_L_APP_AMIIDB_SEARCH] = "Pesquisar..", - [_L_APP_AMIIDB_MY_FAVORITES] = "Meus Favoritos..", - [_L_APP_AMIIDB_MY_TAGS] = "Meu Amiibo..", - [_L_APP_AMIIDB_SETTINGS] = "Configurações..", + [_L_APP_AMMIDB_BROWSER] = "Navegador...", + [_L_APP_AMIIDB_SEARCH] = "Pesquisar...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Meus Favoritos...", + [_L_APP_AMIIDB_MY_TAGS] = "Meu Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Configurações...", [_L_APP_AMIIDB_EXIT] = "[Sair]", [_L_APP_AMIIDB_BACK] = "[Retornar]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Teclas", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Carregado", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NÃO Carregadas", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Número do Slot", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorito..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Salvar como..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorito...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Salvar como...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Voltar Para Detalhes]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Voltar Para a Lista]", [_L_APP_AMIIDB_SEARCH_HEAD] = "Pesquisar:", - [_L_APP_AMIIDB_MORE] = "[Mais..]", + [_L_APP_AMIIDB_MORE] = "[Mais...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "", [_L_APP_AMIIDB_EMPTY_TAG] = "", - [_L_APP_AMIIDB_SLOT_DELETE] = "Reiniciar..", + [_L_APP_AMIIDB_SLOT_DELETE] = "Reiniciar...", [_L_APP_AMIIDB_CONFIRM] = "Confirmar", [_L_APP_AMIIDB_CANCEL] = "Cancelar", [_L_APP_AMIIDB_TIPS] = "Confirmar", - [_L_APP_AMIIDB_NEW] = "Novo..", - [_L_APP_AMIIDB_EMPTY] = "Vazio..", - [_L_APP_AMIIDB_DELETE] = "Excluir..", + [_L_APP_AMIIDB_NEW] = "Novo...", + [_L_APP_AMIIDB_EMPTY] = "Vazio...", + [_L_APP_AMIIDB_DELETE] = "Excluir...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Nova Pasta de Favoritos:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Esvaziar Pasta de Favoritos?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Confirmar Exclusão?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selecionar Pasta Favorita..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selecionar Pasta Favorita...", [_L_APP_AMIIDB_FAV_SUCCESS] = "Favorito Bem-Sucedido", [_L_APP_AMIIDB_FAV_FAILED] = "Favorito Falhou!", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Salvar Com Êxito", @@ -135,21 +138,21 @@ const char * const lang_pt_BR[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Negar", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorar", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache", - [_L_APP_CHAMELEON_INITIALIZING] = "Inicialização de Dados ..", + [_L_APP_CHAMELEON_INITIALIZING] = "Inicialização de Dados ...", [_L_APP_CHAMELEON_CARD_SLOT] = "Slot", [_L_APP_CHAMELEON_CARD_NICK] = "Apelido", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "Tipo de Dados", - [_L_APP_CHAMELEON_CARD_DATA] = "Dados..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avançado..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Configurações de Slots..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Número do Slot..", + [_L_APP_CHAMELEON_CARD_DATA] = "Dados...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Avançado...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Configurações de Slots...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Número do Slot...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Apelido Definido com Sucesso", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Falha ao Definir Apelido!", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Insira o Apelido:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Carregar..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Salvar..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Restaurar Padrões..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Carregar...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Salvar...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Restaurar Padrões...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Restauração de Dados Bem-Sucedida", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Arquivo Não Encontrado", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Tamanho do Arquivo Não Corresponde", diff --git a/fw/application/src/i18n/ru_RU.c b/fw/application/src/i18n/ru_RU.c new file mode 100644 index 00000000..b4cbb811 --- /dev/null +++ b/fw/application/src/i18n/ru_RU.c @@ -0,0 +1,172 @@ +#include "string_id.h" +const char * const lang_ru_RU[_L_COUNT] = { + [_L_ON] = "Включено", + [_L_OFF] = "Выключено", + [_L_ON_F] = "[Вкл]", + [_L_OFF_F] = "[Выкл]", + [_L_BACK] = "[Назад]", + [_L_ERR] = "Ошибка", + [_L_ERR_CODE] = "Код ошибки", + [_L_APP_AMIIBO] = "Эмулятор Amiibo", + [_L_APP_AMIIBOLINK] = "AmiiboLink", + [_L_APP_BLE] = "Передача файлов", + [_L_APP_BLE_TITLE] = "по Bluetooth", + [_L_APP_PLAYER] = "Видеоплеер", + [_L_APP_SET] = "Настройки", + [_L_APP_SET_VERSION] = "Версия", + [_L_APP_SET_STORAGE_USED] = "Занято", + [_L_APP_SET_STORAGE] = "Накопитель", + [_L_APP_SET_OLED_CONTRAST] = "Контрастность", + [_L_APP_SET_OLED_CONTRAST_TITLE] = "Контраст OLED", + [_L_APP_SET_LCD_BACKLIGHT] = "Подсветка", + [_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Яркость подсветки", + [_L_APP_SET_ANIM] = "Анимация меню", + [_L_APP_SET_LIPO_BAT] = "Батарея LiPO", + [_L_APP_SET_SHOW_MEM_USAGE] = "Статус памяти", + [_L_APP_SET_HIBERNATE] = "Гибернация", + [_L_APP_SET_SLEEP_TIMEOUT] = "Таймаут сна", + [_L_APP_SET_LANGUAGE] = "Язык", + [_L_APP_SET_DFU] = "Обновление ПО", + [_L_APP_SET_REBOOT] = "Перезагрузка", + [_L_APP_SET_RESET_DEFAULT] = "Сброс настроек", + [_L_APP_SET_RESET_DEFAULT_SUCCESS] = "Сброс выполнен", + [_L_APP_SET_RESET_DEFAULT_CONFIRM] = "Выполнить?", + [_L_15S] = "15 секунд", + [_L_30S] = "30 секунд", + [_L_45S] = "45 секунд", + [_L_1MIN] = "1 минута", + [_L_2MIN] = "2 минуты", + [_L_3MIN] = "3 минуты", + [_L_AMIIBO_KEY_UNLOADED] = "Отсутствует файл ключа", + [_L_UPLOAD_KEY_RETAIL_BIN] = "Поместите key_retail.bin\n в корень накопителя", + [_L_KNOW] = "[Понятно]", + [_L_RANDOM_GENERATION] = "Сгенерировать UUID", + [_L_AUTO_RANDOM_GENERATION] = "Автогенерация", + [_L_SHOW_QRCODE] = "QR-код", + [_L_DELETE_TAG] = "Удалить тег", + [_L_DELETE_TAG_CONFIRM] = "Удалить %s?", + [_L_BACK_TO_DETAILS] = "[Назад к деталям]", + [_L_BACK_TO_FILE_LIST] = "[Назад к списку]", + [_L_BACK_TO_MAIN_MENU] = "[В главное меню]", + [_L_FORMAT] = "Отформатировать", + [_L_FORMAT_STORAGE] = "Форматирование", + [_L_DELETE_ALL_DATA] = "Это удалит все данные.\nВыполнить?", + [_L_DELETING_MESSAGE] = "Форматирование...", + [_L_MESSAGE] = "Сообщение", + [_L_CONFIRM] = "Да", + [_L_CANCEL] = "Отмена", + [_L_BACK_TO_LIST] = "[Назад к списку]", + [_L_NOT_MOUNTED] = "==[Не подключён]==", + [_L_MOUNTED_LFS] = "==Подключён[LFS]==", + [_L_MOUNTED_FFS] = "==Подключён[FFS]==", + [_L_TOTAL_SPACE] = "Ёмкость", + [_L_AVAILABLE_SPACE] = "Свободно", + [_L_NOT_AMIIBO_FILE] = "Этот файл не Amiibo", + [_L_READ_FILE_FAILED] = "Ошибка чтения файла", + [_L_INPUT_FOLDER_NAME] = "Задайте имя папки:", + [_L_INPUT_AMIIBO_NAME] = "Задайте имя Amiibo:", + [_L_DELETE_FILE] = "Удалить %s?", + [_L_DELETE] = "Удалить...", + [_L_TIPS] = "Внимание", + [_L_INPUT_NEW_NAME] = "Задайте новое имя:", + [_L_INVALID_INPUT] = "Недопустимый ввод", + [_L_CREATE_NEW_FOLDER] = "Создать новую папку...", + [_L_CREATE_NEW_TAG] = "Создать новый тег...", + [_L_CREATE_NEW_TAG_BATCH] = "Создать группу тегов...", + [_L_INPUT_TAG_NUM] = "Задайте число тегов:", + [_L_CREATE_TOO_MANY_NUM] = "За раз можно создать\n не более %d тегов", + [_L_CREATING_TAG_BATCH] = "Создание тега", + [_L_CREATING_TAG_FAILED] = "Ошибка создания тега %s", + [_L_RENAME] = "Переименовать...", + [_L_OPEN_FOLDER_FAILED] = "Ошибка открытия папки", + [_L_RENAME_FAILED] = "Ошибка переименования", + [_L_MAIN_RETURN] = "[Назад]", + [_L_RANDOM_MODE_MANUAL] = "Ручная генерация UUID", + [_L_RANDOM_MODE_AUTO] = "Автогенерация UUID", + [_L_SEQUENCE_MODE] = "Последовательный", + [_L_READ_WRITE_MODE] = "Чтение-запись", + [_L_AMIIBOLINK_V1] = "V1", + [_L_AMIIBOLINK_V2] = "V2", + [_L_AMILOOP] = "AmiLoop", + [_L_MODE] = "Режим", + [_L_AUTO_RANDOM] = "Автогенерация", + [_L_COMPATIBLE_MODE] = "Совместимость", + [_L_TAG_DETAILS] = "[Назад к деталям]", + [_L_MAIN_MENU] = "[В главное меню]", + [_L_MODE_RANDOM] = "Ручная генерация", + [_L_MODE_CYCLE] = "Последовательный", + [_L_MODE_NTAG] = "Чтение-запись", + [_L_MODE_RANDOM_AUTO_GEN] = "Автогенерация", + [_L_BLANK_TAG] = "Пустой тег", + [_L_APP_AMIIDB] = "База данных Amiibo", + [_L_APP_AMMIDB_BROWSER] = "Обозреватель...", + [_L_APP_AMIIDB_SEARCH] = "Поиск...", + [_L_APP_AMIIDB_MY_FAVORITES] = "Моё избранное...", + [_L_APP_AMIIDB_MY_TAGS] = "Мои Amiibo...", + [_L_APP_AMIIDB_SETTINGS] = "Настройки...", + [_L_APP_AMIIDB_EXIT] = "[Выход]", + [_L_APP_AMIIDB_BACK] = "[Назад]", + [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Ключ", + [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "Загружен", + [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "Отсутствует", + [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Число ячеек", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "В избранное...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Сохранить как...", + [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Назад к деталям]", + [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[Назад к списку]", + [_L_APP_AMIIDB_SEARCH_HEAD] = "Поиск:", + [_L_APP_AMIIDB_MORE] = "[Дальше...]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "Очень много совпадений.\nУточните запрос.", + [_L_APP_AMIIDB_EMPTY_TAG] = "<пустой тег>", + [_L_APP_AMIIDB_SLOT_DELETE] = "Сброс...", + [_L_APP_AMIIDB_CONFIRM] = "Да", + [_L_APP_AMIIDB_CANCEL] = "Отмена", + [_L_APP_AMIIDB_TIPS] = "Внимание", + [_L_APP_AMIIDB_NEW] = "Новая папка...", + [_L_APP_AMIIDB_EMPTY] = "Очистить...", + [_L_APP_AMIIDB_DELETE] = "Удалить...", + [_L_APP_AMIIDB_FAV_NEW_HEAD] = "Новая папка избранного:", + [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Выполнить удаление\n избранного?", + [_L_APP_AMIIDB_FAV_DELETE_MSG] = "Выполнить удаление?", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Выбрать папку избранного...", + [_L_APP_AMIIDB_FAV_SUCCESS] = "Добавлено", + [_L_APP_AMIIDB_FAV_FAILED] = "Ошибка добавления", + [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Сохранено", + [_L_APP_AMIIDB_SLOT_SAVE_FAILED] = "Ошибка сохранения", + [_L_APP_CHAMELEON] = "Эмулятор карт", + [_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL] = "Разрешена", + [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Запрещена", + [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Игнорируется", + [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "В кэш", + [_L_APP_CHAMELEON_INITIALIZING] = "Инициализация...", + [_L_APP_CHAMELEON_CARD_SLOT] = "Ячейка", + [_L_APP_CHAMELEON_CARD_NICK] = "Название", + [_L_APP_CHAMELEON_CARD_ID] = "ID", + [_L_APP_CHAMELEON_CARD_TYPE] = "Тип", + [_L_APP_CHAMELEON_CARD_DATA] = "Данные...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "Дополнительно...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Управление ячейками...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Число ячеек...", + [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Название задано", + [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Недопустимое название", + [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Задайте название карты:", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Загрузка...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Сохранение...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Сброс...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Данные сброшены", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Файл не обнаружен", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Файл несоразмерен", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Ошибка загрузки файла", + [_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Данные загружены", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Задайте имя файла:", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "Ошибка сохранения файла", + [_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Данные сохранены", + [_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Заказной режим", + [_L_APP_CHAMELEON_CARD_GEN1A_MODE] = "Gen1A", + [_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Сгенерировать UID", + [_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS] = "UID сгенерирован", + [_L_APP_CHAMELEON_CARD_GEN2_MODE] = "Gen2", + [_L_APP_CHAMELEON_CARD_WRITE_MODE] = "Запись", + [_L_APP_CHAMELEON_CARD_ADV_ID_EDIT_INVALID_INPUT] = "Недопустимый ввод", + [_L_APP_CHAMELEON_CARD_TYPE_FACTORY_DATA_CONFRIM] = "Тип карты изменен.\nСбросить данные карты?", +}; diff --git a/fw/application/src/i18n/string_id.h b/fw/application/src/i18n/string_id.h index 30f18c3e..f675f8a3 100644 --- a/fw/application/src/i18n/string_id.h +++ b/fw/application/src/i18n/string_id.h @@ -66,7 +66,9 @@ typedef enum { _L_READ_FILE_FAILED, _L_INPUT_FOLDER_NAME, _L_INPUT_AMIIBO_NAME, + _L_DELETE_FILE, _L_DELETE, + _L_TIPS, _L_INPUT_NEW_NAME, _L_INVALID_INPUT, _L_CREATE_NEW_FOLDER, @@ -115,6 +117,7 @@ typedef enum { _L_APP_AMIIDB_DETAIL_BACK_LIST, _L_APP_AMIIDB_SEARCH_HEAD, _L_APP_AMIIDB_MORE, + _L_APP_AMIIDB_MORE_MESSAGE, _L_APP_AMIIDB_EMPTY_TAG, _L_APP_AMIIDB_SLOT_DELETE, _L_APP_AMIIDB_CONFIRM, diff --git a/fw/application/src/i18n/zh_Hans.c b/fw/application/src/i18n/zh_Hans.c index c17bed0b..82823369 100644 --- a/fw/application/src/i18n/zh_Hans.c +++ b/fw/application/src/i18n/zh_Hans.c @@ -51,7 +51,7 @@ const char * const lang_zh_Hans[_L_COUNT] = { [_L_FORMAT] = "格式化", [_L_FORMAT_STORAGE] = "格式化存储", [_L_DELETE_ALL_DATA] = "将删除所有数据。\n确认格式化?", - [_L_DELETING_MESSAGE] = "格式化中..", + [_L_DELETING_MESSAGE] = "格式化中...", [_L_MESSAGE] = "提示", [_L_CONFIRM] = "确定", [_L_CANCEL] = "取消", @@ -65,17 +65,19 @@ const char * const lang_zh_Hans[_L_COUNT] = { [_L_READ_FILE_FAILED] = "读取文件失败", [_L_INPUT_FOLDER_NAME] = "输入文件夹名:", [_L_INPUT_AMIIBO_NAME] = "输入amiibo名:", - [_L_DELETE] = "删除", + [_L_DELETE_FILE] = "删除 %s ?", + [_L_DELETE] = "删除...", + [_L_TIPS] = "提示", [_L_INPUT_NEW_NAME] = "输入新名:", [_L_INVALID_INPUT] = "无效的输入", - [_L_CREATE_NEW_FOLDER] = "新建文件夹..", - [_L_CREATE_NEW_TAG] = "新建标签..", - [_L_CREATE_NEW_TAG_BATCH] = "批量创建标签..", + [_L_CREATE_NEW_FOLDER] = "新建文件夹...", + [_L_CREATE_NEW_TAG] = "新建标签...", + [_L_CREATE_NEW_TAG_BATCH] = "批量创建标签...", [_L_INPUT_TAG_NUM] = "输入标签数量:", [_L_CREATE_TOO_MANY_NUM] = "一次最多只能创建%d个标签", [_L_CREATING_TAG_BATCH] = "创建标签", [_L_CREATING_TAG_FAILED] = "写入 %s 标签失败", - [_L_RENAME] = "重命名", + [_L_RENAME] = "重命名...", [_L_OPEN_FOLDER_FAILED] = "打开文件夹失败", [_L_RENAME_FAILED] = "重命名失败", [_L_MAIN_RETURN] = "[返回]", @@ -97,35 +99,36 @@ const char * const lang_zh_Hans[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "随机(自动)", [_L_BLANK_TAG] = "空标签", [_L_APP_AMIIDB] = "Amiibo数据库", - [_L_APP_AMMIDB_BROWSER] = "查看..", - [_L_APP_AMIIDB_SEARCH] = "搜索..", - [_L_APP_AMIIDB_MY_FAVORITES] = "我的收藏..", - [_L_APP_AMIIDB_MY_TAGS] = "我的数据..", - [_L_APP_AMIIDB_SETTINGS] = "设置..", + [_L_APP_AMMIDB_BROWSER] = "查看...", + [_L_APP_AMIIDB_SEARCH] = "搜索...", + [_L_APP_AMIIDB_MY_FAVORITES] = "我的收藏...", + [_L_APP_AMIIDB_MY_TAGS] = "我的数据...", + [_L_APP_AMIIDB_SETTINGS] = "设置...", [_L_APP_AMIIDB_EXIT] = "[退出]", [_L_APP_AMIIDB_BACK] = "[返回]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "密钥文件", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "已加载", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "未加载", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "数据槽位", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "收藏..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "保存为..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "收藏...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "保存为...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[返回详情]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[返回列表]", [_L_APP_AMIIDB_SEARCH_HEAD] = "搜索:", [_L_APP_AMIIDB_MORE] = "[更多]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "搜索结果过多,尝试增加搜索词。", [_L_APP_AMIIDB_EMPTY_TAG] = "<空标签>", - [_L_APP_AMIIDB_SLOT_DELETE] = "重置..", + [_L_APP_AMIIDB_SLOT_DELETE] = "重置...", [_L_APP_AMIIDB_CONFIRM] = "确认", [_L_APP_AMIIDB_CANCEL] = "取消", [_L_APP_AMIIDB_TIPS] = "提示", - [_L_APP_AMIIDB_NEW] = "新建..", - [_L_APP_AMIIDB_EMPTY] = "清空..", - [_L_APP_AMIIDB_DELETE] = "删除..", + [_L_APP_AMIIDB_NEW] = "新建...", + [_L_APP_AMIIDB_EMPTY] = "清空...", + [_L_APP_AMIIDB_DELETE] = "删除...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "新建收藏夹:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "确认清空收藏夹?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "确认删除?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "选择收藏夹..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "选择收藏夹...", [_L_APP_AMIIDB_FAV_SUCCESS] = "收藏成功", [_L_APP_AMIIDB_FAV_FAILED] = "收藏失败", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "保存成功", @@ -135,21 +138,21 @@ const char * const lang_zh_Hans[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "拒绝", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "忽略", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "缓存", - [_L_APP_CHAMELEON_INITIALIZING] = "初始化, 请稍后..", + [_L_APP_CHAMELEON_INITIALIZING] = "初始化, 请稍后...", [_L_APP_CHAMELEON_CARD_SLOT] = "卡槽", [_L_APP_CHAMELEON_CARD_NICK] = "卡名", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "卡类型", - [_L_APP_CHAMELEON_CARD_DATA] = "卡数据..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "卡高级设置..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "卡槽管理..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "卡槽数量..", + [_L_APP_CHAMELEON_CARD_DATA] = "卡数据...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "卡高级设置...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "卡槽管理...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "卡槽数量...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "设置卡名成功", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "设置卡名失败", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "输入卡名:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "加载..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "导出..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "重置..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "加载...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "导出...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "重置...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "卡片初始化成功", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "文件不存在", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "文件大小不匹配", diff --git a/fw/application/src/i18n/zh_TW.c b/fw/application/src/i18n/zh_TW.c index aed23d52..f275109c 100644 --- a/fw/application/src/i18n/zh_TW.c +++ b/fw/application/src/i18n/zh_TW.c @@ -51,7 +51,7 @@ const char * const lang_zh_TW[_L_COUNT] = { [_L_FORMAT] = "格式化", [_L_FORMAT_STORAGE] = "格式化儲存", [_L_DELETE_ALL_DATA] = "將刪除所有資料。\n確認格式化?", - [_L_DELETING_MESSAGE] = "格式化中..", + [_L_DELETING_MESSAGE] = "格式化中...", [_L_MESSAGE] = "提示", [_L_CONFIRM] = "確定", [_L_CANCEL] = "取消", @@ -65,17 +65,19 @@ const char * const lang_zh_TW[_L_COUNT] = { [_L_READ_FILE_FAILED] = "讀取檔案失敗", [_L_INPUT_FOLDER_NAME] = "輸入資料夾名稱:", [_L_INPUT_AMIIBO_NAME] = "輸入amiibo名稱:", - [_L_DELETE] = "刪除", + [_L_DELETE_FILE] = "刪除 %s ?", + [_L_DELETE] = "刪除...", + [_L_TIPS] = "提示", [_L_INPUT_NEW_NAME] = "輸入新名稱:", [_L_INVALID_INPUT] = "無效的輸入", - [_L_CREATE_NEW_FOLDER] = "新建資料夾..", - [_L_CREATE_NEW_TAG] = "新建標籤..", - [_L_CREATE_NEW_TAG_BATCH] = "批量創建標簽..", + [_L_CREATE_NEW_FOLDER] = "新建資料夾...", + [_L_CREATE_NEW_TAG] = "新建標籤...", + [_L_CREATE_NEW_TAG_BATCH] = "批量創建標簽...", [_L_INPUT_TAG_NUM] = "輸入標簽數量:", [_L_CREATE_TOO_MANY_NUM] = "一次最多只能創建%d個標簽", [_L_CREATING_TAG_BATCH] = "創建標簽", [_L_CREATING_TAG_FAILED] = "寫入 %s 標簽失敗", - [_L_RENAME] = "重新命名", + [_L_RENAME] = "重新命名...", [_L_OPEN_FOLDER_FAILED] = "開啟資料夾失敗", [_L_RENAME_FAILED] = "重新命名失敗", [_L_MAIN_RETURN] = "[返回]", @@ -97,35 +99,36 @@ const char * const lang_zh_TW[_L_COUNT] = { [_L_MODE_RANDOM_AUTO_GEN] = "隨機(自動)", [_L_BLANK_TAG] = "空標籤", [_L_APP_AMIIDB] = "Amiibo數據庫", - [_L_APP_AMMIDB_BROWSER] = "查看..", - [_L_APP_AMIIDB_SEARCH] = "搜索..", - [_L_APP_AMIIDB_MY_FAVORITES] = "我的收藏..", - [_L_APP_AMIIDB_MY_TAGS] = "我的數據..", - [_L_APP_AMIIDB_SETTINGS] = "設置..", + [_L_APP_AMMIDB_BROWSER] = "查看...", + [_L_APP_AMIIDB_SEARCH] = "搜索...", + [_L_APP_AMIIDB_MY_FAVORITES] = "我的收藏...", + [_L_APP_AMIIDB_MY_TAGS] = "我的數據...", + [_L_APP_AMIIDB_SETTINGS] = "設置...", [_L_APP_AMIIDB_EXIT] = "[退出]", [_L_APP_AMIIDB_BACK] = "[返回]", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "密鑰文件", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "已加載", [_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "未加載", [_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "數據槽位", - [_L_APP_AMIIDB_DETAIL_FAVORITE] = "收藏..", - [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "保存爲..", + [_L_APP_AMIIDB_DETAIL_FAVORITE] = "收藏...", + [_L_APP_AMIIDB_DETAIL_SAVE_AS] = "保存爲...", [_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[返回詳情]", [_L_APP_AMIIDB_DETAIL_BACK_LIST] = "[返回列表]", [_L_APP_AMIIDB_SEARCH_HEAD] = "搜索:", [_L_APP_AMIIDB_MORE] = "[更多]", + [_L_APP_AMIIDB_MORE_MESSAGE] = "搜索結果過多,嘗試增加搜索詞。", [_L_APP_AMIIDB_EMPTY_TAG] = "<空標簽>", - [_L_APP_AMIIDB_SLOT_DELETE] = "重置..", + [_L_APP_AMIIDB_SLOT_DELETE] = "重置...", [_L_APP_AMIIDB_CONFIRM] = "確認", [_L_APP_AMIIDB_CANCEL] = "取消", [_L_APP_AMIIDB_TIPS] = "提示", - [_L_APP_AMIIDB_NEW] = "新建..", - [_L_APP_AMIIDB_EMPTY] = "清空..", - [_L_APP_AMIIDB_DELETE] = "删除..", + [_L_APP_AMIIDB_NEW] = "新建...", + [_L_APP_AMIIDB_EMPTY] = "清空...", + [_L_APP_AMIIDB_DELETE] = "删除...", [_L_APP_AMIIDB_FAV_NEW_HEAD] = "新建收藏夾:", [_L_APP_AMIIDB_FAV_EMPTY_MSG] = "確認清空收藏夾?", [_L_APP_AMIIDB_FAV_DELETE_MSG] = "確認刪除?", - [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "選擇收藏夾..", + [_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "選擇收藏夾...", [_L_APP_AMIIDB_FAV_SUCCESS] = "收藏成功", [_L_APP_AMIIDB_FAV_FAILED] = "收藏失敗", [_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "保存成功", @@ -135,21 +138,21 @@ const char * const lang_zh_TW[_L_COUNT] = { [_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "拒絕", [_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "忽略", [_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "緩存", - [_L_APP_CHAMELEON_INITIALIZING] = "初始化, 請稍後..", + [_L_APP_CHAMELEON_INITIALIZING] = "初始化, 請稍後...", [_L_APP_CHAMELEON_CARD_SLOT] = "卡槽", [_L_APP_CHAMELEON_CARD_NICK] = "卡名", [_L_APP_CHAMELEON_CARD_ID] = "ID", [_L_APP_CHAMELEON_CARD_TYPE] = "卡類型", - [_L_APP_CHAMELEON_CARD_DATA] = "卡數據..", - [_L_APP_CHAMELEON_CARD_ADVANCED] = "卡高級設置..", - [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "卡槽管理..", - [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "卡槽數量..", + [_L_APP_CHAMELEON_CARD_DATA] = "卡數據...", + [_L_APP_CHAMELEON_CARD_ADVANCED] = "卡高級設置...", + [_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "卡槽管理...", + [_L_APP_CHAMELEON_CARD_SLOT_NUM] = "卡槽數量...", [_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "設置卡名成功", [_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "設置卡名失敗", [_L_APP_CHAMELEON_CARD_INPUT_NICK] = "輸入卡名:", - [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "加載..", - [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "導出..", - [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "重置..", + [_L_APP_CHAMELEON_CARD_DATA_LOAD] = "加載...", + [_L_APP_CHAMELEON_CARD_DATA_SAVE] = "導出...", + [_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "重置...", [_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "卡片初始化成功", [_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "文件不存在", [_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "文件大小不匹配", diff --git a/fw/application/src/mod/vfs/vfs_driver_spiffs.c b/fw/application/src/mod/vfs/vfs_driver_spiffs.c index fcb682ae..d4e145cc 100644 --- a/fw/application/src/mod/vfs/vfs_driver_spiffs.c +++ b/fw/application/src/mod/vfs/vfs_driver_spiffs.c @@ -49,16 +49,28 @@ static s32_t vfs_spiffs_map_error_code(s32_t err) { return VFS_ERR_FAIL; } -static int32_t vfs_check_file_path(const char* file_path){ - if(strlen(file_path) >= VFS_MAX_PATH_LEN){ +static int32_t vfs_check_file_path(const char *file_path) { + if (strlen(file_path) >= VFS_MAX_PATH_LEN) { return VFS_ERR_MAXNM; } - const char* basename; + const char *basename; size_t length; cwk_path_get_basename(file_path, &basename, &length); - if(length <= 0 || length >= VFS_MAX_NAME_LEN){ + if (length <= 0 || length >= VFS_MAX_NAME_LEN) { + return VFS_ERR_MAXNM; + } + return VFS_OK; +} + +static int32_t vfs_check_folder_path(const char *file_path) { + int32_t ret = vfs_check_file_path(file_path); + if (ret != VFS_OK) { + return ret; + } + if (strlen(file_path) + strlen(VFS_SPIFFS_FOLDER_NAME) + 1 >= VFS_MAX_PATH_LEN) { return VFS_ERR_MAXNM; } + return VFS_OK; } @@ -160,6 +172,11 @@ int32_t vfs_spiffs_stat_file(const char *file, vfs_obj_t *obj) { char path[SPIFFS_OBJ_NAME_LEN]; memset(obj, 0, sizeof(vfs_obj_t)); + int res = vfs_check_file_path(file); + if (res != VFS_OK) { + return res; + } + if (SPIFFS_stat(&fs, file, &s) == SPIFFS_OK) { cwk_path_get_basename(s.name, &basename, &length); @@ -289,12 +306,15 @@ int32_t vfs_spiffs_close_dir(vfs_dir_t *fd) { int32_t vfs_spiffs_create_dir(const char *dir) { char path[VFS_MAX_PATH_LEN]; - NRF_LOG_INFO("create dir %s\n", nrf_log_push(dir)); - int res = vfs_check_file_path(dir); - if(res != VFS_OK){ + NRF_LOG_INFO("create dir %s, %d\n", nrf_log_push(dir), strlen(dir)); + int res = vfs_check_folder_path(dir); + if (res != VFS_OK) { + NRF_LOG_INFO("folder path check failed: %d", res); return res; } + snprintf(path, sizeof(path), "%s/%s", dir, VFS_SPIFFS_FOLDER_NAME); + res = SPIFFS_creat(&fs, path, 0); return vfs_spiffs_map_error_code(res); } @@ -335,13 +355,13 @@ int32_t vfs_spiffs_rename_dir_internal(const char *dir_name, const char *new_dir vfs_spiffs_dir_t *p_dir = &dir; int32_t err_code = VFS_OK; - int ret = vfs_check_file_path(dir_name); - if( ret != VFS_OK){ + int ret = vfs_check_folder_path(dir_name); + if (ret != VFS_OK) { return ret; } - int ret2 = vfs_check_file_path(new_dir_name); - if( ret2 != VFS_OK){ + int ret2 = vfs_check_folder_path(new_dir_name); + if (ret2 != VFS_OK) { return ret; } @@ -396,7 +416,7 @@ int32_t vfs_spiffs_rename_dir(const char *dir_name, const char *new_dir_name) { /**file operations*/ int32_t vfs_spiffs_open_file(const char *file, vfs_file_t *fd, uint32_t flags) { int ret = vfs_check_file_path(file); - if( ret != VFS_OK){ + if (ret != VFS_OK) { return ret; } fd->handle = SPIFFS_open(&fs, file, flags, 0); @@ -464,7 +484,7 @@ int32_t vfs_spiffs_write_file_data(const char *file, void *buff, size_t buff_siz NRF_LOG_INFO("write file data %s\n", nrf_log_push(file)); int ret = vfs_check_file_path(file); - if( ret != VFS_OK){ + if (ret != VFS_OK) { return ret; } @@ -499,10 +519,16 @@ int32_t vfs_spiffs_read_file_data(const char *file, void *buff, size_t buff_size } int32_t vfs_spiffs_rename_file(const char *file, const char *new_file) { - if (strlen(new_file) >= SPIFFS_OBJ_NAME_LEN) { - NRF_LOG_INFO("rename file error, file %s new file %s is too long"); - return VFS_ERR_MAXNM; + int32_t ret = vfs_check_file_path(file); + if (ret != VFS_OK) { + return ret; } + + ret = vfs_check_file_path(new_file); + if (ret != VFS_OK) { + return ret; + } + NRF_LOG_INFO("rename file %s => %s\n", nrf_log_push(file), nrf_log_push(new_file)); int res = SPIFFS_rename(&fs, file, new_file); return vfs_spiffs_map_error_code(res); diff --git a/fw/application/src/mui/mui_resource.c b/fw/application/src/mui/mui_resource.c index 740ae582..cd92fd36 100644 --- a/fw/application/src/mui/mui_resource.c +++ b/fw/application/src/mui/mui_resource.c @@ -4,14 +4,14 @@ //** /resources/bmp/app_amiibo_database_32x32.bmp //************************************************************************ const uint8_t app_amiibo_database_32x32_data[] = { -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x1f,0x00,0x80,0xff,0xff, -0x01,0xc0,0x0f,0xf0,0x03,0xf0,0x00,0x00,0x0f,0x78,0x00,0x00,0x1e,0x18,0x00, -0x38,0x18,0x18,0x00,0x38,0x18,0x18,0x00,0x38,0x18,0x78,0x00,0x00,0x1e,0xf8, -0x00,0x00,0x1f,0xd8,0x0f,0xf0,0x1b,0x98,0xff,0xff,0x19,0x18,0xf8,0x1f,0x18, -0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x78,0x00,0x00,0x1e,0xf8,0x00,0x00, -0x1f,0xd8,0x0f,0xf0,0x1b,0x98,0xff,0xff,0x19,0x18,0xf8,0x1f,0x18,0x18,0x00, -0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x78,0x00,0x00,0x1e,0xf0, -0x00,0x00,0x0f,0xc0,0x0f,0xf0,0x03,0x80,0xff,0xff,0x01,0x00,0xf8,0x1f,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x03,0x20,0x00,0x00,0x04,0xa0,0x3e, +0x00,0x04,0x20,0x00,0x00,0x04,0x20,0x00,0x00,0x04,0xc0,0xff,0xff,0x03,0x80, +0xff,0xff,0x01,0xc0,0xff,0xff,0x03,0x20,0x00,0x00,0x04,0xa0,0x3e,0x1e,0x04, +0x20,0x00,0x3f,0x04,0x20,0x80,0x73,0x04,0xc0,0xbf,0x61,0x03,0x80,0xbf,0x61, +0x01,0xc0,0xbf,0x63,0x03,0x20,0x00,0x6f,0x04,0xa0,0x3e,0x6e,0x04,0x20,0x00, +0x00,0x04,0x20,0x00,0x00,0x04,0xc0,0xff,0xff,0x03,0x80,0xff,0xff,0x01,0x68, +0xff,0xff,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; const xbm_t app_amiibo_database_32x32 = {.width = 32, .height = 32, .data = app_amiibo_database_32x32_data}; diff --git a/fw/application/src/mui/u8g2_font_wqy12_t_gb2312a.c b/fw/application/src/mui/u8g2_font_wqy12_t_gb2312a.c index 5d8e7a1d..90fa8c12 100644 --- a/fw/application/src/mui/u8g2_font_wqy12_t_gb2312a.c +++ b/fw/application/src/mui/u8g2_font_wqy12_t_gb2312a.c @@ -1,1253 +1,1281 @@ - -#include "mui_u8g2.h" - -#include "u8x8.h" - - -/* - Fontname: -wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-P-119-ISO10646-1 - Copyright: (null) - Glyphs: 1552/30503 - BBX Build Mode: 0 -*/ -#ifdef U8G2_USE_LARGE_GB2312_FONT -const uint8_t u8g2_font_wqy12_t_gb2312a[39601] U8G2_FONT_SECTION("u8g2_font_wqy12_t_gb2312a") = - "\20\0\3\2\4\4\4\4\5\14\15\0\376\10\376\12\377\1d\2\332\5n \5\0\230\26!\7\221\212" - "\26\247\0\42\7\64\371\26\221)#\16\226\210\67Q\313\260D\275\14K\324\2$\17\245xV\331RQ" - "\62QK\224\312\26\1%\20\226x\66Q\322EK\302\64\211\222.Z\2&\16\205\210VY\22%Y" - "eJ\242H\11'\6\61\372\25\3(\13\263yVI\224D\335\242,)\14\263y\26Y\224E]\242" - "$\2*\14u\210V\225\312AY\232\42\0+\13w\210xqm\30\262\270\6,\7\62z\26\212\2" - "-\7\25\310\26\203\0.\6!\212\25\2/\14\304xvMY)+e\65\0\60\12\205\210\66K\346" - "[\262\0\61\11\205\210\26c\237\6\1\62\13\205\210\66K\26\326\332\6\1\63\15\205\210\26C\32&k" - "\30\16\12\0\64\16\206\210wZ\22u\311\222aL\23\0\65\15\205\210\26C\22\206C\32\206\203\2\66" - "\15\205\210\66K\30\16IfK\26\0\67\13\205\210\26\203X\13\263\260\4\70\15\205\210\66K\246%K" - "fK\26\0\71\15\205\210\66KfK\206PK\26\0:\7a\210\22\222\0;\11\202z\26C\254(" - "\0<\10\225\210\226Y\327\16=\10\65\270\26\203:\10>\11\225\210\26i\267\216\0\77\15\225\210\66K" - "\246\205\221\226Ca\4@\24\247xX[%\221\264DR\224\212R\221\22%\313&\0A\16\207\210x" - "q\232\204IV\32\224T\15B\15\206\210\27\203\22\212\303\22\32\207\5C\14\206\210\67C\22\252\35\223" - "!\1D\15\207\210\30\203\24&\251\307d\220\0E\13\205\210\26\307p\30\213\203\0F\13\205\210\26\307" - "pH\302F\0G\15\206\210\67C\22\252\265QL\6\1H\13\206\210\27\241q\30D\307\0I\11\203" - "\210\24K\324\313\0J\10\243hT\375i\1K\16\205\210\26\231\224\224\64-\211*Y\0L\11\205\210" - "\26a\37\7\1M\20\207\210\30\332\220-\25\245\42ER\244\252\1N\15\206\210\27\341\246DR\242\215" - "\306\0O\14\207\210X[%uM\262l\2P\14\205\210\26C\222\331\6%,\2Q\16\227xX[" - "%uM\262l\7\22\0R\20\206\210\27C\224%Y\222%C\324\226\204\1S\14\205\210\66\203\230\256" - "a\70(\0T\12\207\210\30\207,\356\33\0U\12\206\210\27\241\37\223!\1V\17\207\210\30\251\232d" - "QV\11\223\64\316\0W\21\211\210\32Y\246eZ\245S\322\224\264\25\263\10X\16\206\210\27\241\230D" - "\231\26\265\204b\0Y\14\207\210\30i\222U\322\270\33\0Z\12\207\210\30\207\264\317\303\20[\11\263z" - "\26C\324\237\6\134\15\245x\26a\32\246a\32\246a\0]\11\263y\26S\177\32\2^\10\65\350V" - "YR\13_\7\25x\26\203\0`\7\62\371\25I\24a\14e\210\66K\226\14\232\226\14\1b\14\205" - "\210\26a\70$\231\333\240\0c\10d\210\65C\326\70d\13\205\210\226\225AsK\206\0e\13e\210" - "\66K\66\14a:\4f\11\203\210\64\323\20u\2g\14\205h\66\203\346\226\14a\262\0h\13\205\210" - "\26a\70$\231\267\0i\7\201\210\22\311\60j\11\242h\63Y\322\313\0k\15\205\210\26a))i" - "IT\311\2l\7\201\210\22\7\1m\16g\210\30\213\22ER$ER$\25n\11e\210\26C\222" - "y\13o\12e\210\66K\346\226,\0p\14\205h\26C\222\271\15J\30\2q\13\205h\66\203\346\226" - "\14a\1r\10c\210\24C\324\11s\14e\210\66K\226\250I\226,\0t\12\203\210\24Q\64Dm" - "\2u\11e\210\26\231\267d\10v\14e\210\26\231\226\224\222,\214\0w\17g\210\30Q$EJE" - "\351\26e\11\0x\13e\210\26YR\253\324\264\0y\15\205h\26\231\226\224\222,\314\302\14z\12e" - "\210\26\203\230\265\15\2{\13\243xTIT\311\242\266\0|\7\261z\25\17\2}\13\243x\24YT" - "K\242\226\10~\7&\270\67\222\5\200\17\225\210VR%\33\242l\210\302(R\0\241\7\201\210\22\311" - "\60\277\12\204\210U\71\220E\265p\301\20\267\210\230i\16W\223\60\311J\203\222\252\1\303\21\267\210X" - "JTG\343\64\11\223\254\64(\251\32\311\14\265\210vu\340\30\16cq\20\312\15\265\210VY\22\17" - "c\70\214\305A\315\12\263\210TI\270D\275\14\326\16\247\210XI\16n\225\324\65\311\262\11\332\14\266" - "\210wa\16\205~L\206\4\334\14\246\210\67Q\16\204~L\206\4\337\15\205\210\66R%JJ\225\314" - "\224\0\340\15\225\210\66i\216\254\311\240i\311\20\341\15\225\210vudM\6MK\206\0\343\15\225\210" - "\66\246\34X\223A\323\222!\344\15\205\210\66u`M\6MK\206\0\347\13\204h\65C\326\70%\22" - "\0\350\15\225\210\66i\216,\331\60\204\351\20\351\15\225\210vud\311\206!L\207\0\352\16\225\210V" - "Y\222\3K\66\14a:\4\353\15\205\210\66u`\311\206!L\207\0\355\11\222\210\63Z\322\13\0\361" - "\13\225\210\66\246xH\62o\1\363\13\225\210vud\311\334\222\5\365\16\246\210\66\222\35\31\222\320c" - "\62$\0\366\13\205\210\66u`\311\334\222\5\372\13\225\210vu \363\226\14\1\374\12\205\210\66\345\314" - "[\62\4\0\0\0\70N\11\7\270P\31\12 SN\12fWO\12P\134B\12\200`o\12\231e" - "\317\13Pl\21\12\267t\366\13\14|s\12\257\202\371\12\375\214\23\12\343\224\303\13\63\377\377\1M\14" - "\205\210\66;\260dn\311\2\1Q\15\225\210VI;\260dn\311\2 \23\10\33\311\34\17\2 \34" - "\13E\376<\221\224(C\42 \35\14E\371\34\312\220(\221\224\0\60\1\10\63\210\34\231\24\60\2\13" - "D\213\30\273x\34" - "\273x\134\311\260\225\262R\62(\305,\231\262R\61RZ\244,\315\222,\322\2W@\35\273x\134a" - "\32\246a\66,i\224\14Q%\215\222\64J\322!\311\264$\36\6\1WG\33\273x\134Y\234\305\321" - "p\210\243b\224\225\222,\211\264h\323r,G\24\0WO\32\273x\134\71\226\14C\224F\203\26V" - "C\61S\62\245\64\265\3\71\226\1WP\27\273x\274\71\20\25\243bTKz\333\322x\70\347X:" - "\34\4WW\35\273x\134a\32\246\321\240\14R\222\205I\26&Y\62\14\221\226\211I\16d\241\32W" - "[\32\273x\134\71\26\15Z\216\14\71\224\14C\24\246Y,\205Zq\30\304\64W\203\32\273x\134Y" - "\34\246\321p\320\221(+eM\331\22%b\222c\361\60\4W\213\37\273x<\303\224%Q\222%Q" - "\222\14\203\222%Q\222%a\24\231s\340\220\3\351p\20W\316\33\273x<\261\24'\245\341\255\264\64" - "%]\224DR\232\224D\251U\244\254\0W\337\33\273x\134\251\226&Q\62\34\304\312RJ:%\213" - "&F\232R\223\22\71\13W\372\30\273x|\305\341\230\305K\234\314Y\66\34\244&eP\324t\70\10" - "X\2\32\273x\134\255Imx\207\224aH\242\64\34\206\34\310\201\203\234\16\7\1XT\35\273x\134" - "\265\312\60D\225\312\240\24\243\254\222,Q\216\15\203\62e\361 g\11\0X^\31\273x\274\351\360\224" - "E\311p\314\262\341\240U\243Z\62(q:\34\4X\203\36\273x\134a\232\14C\224%\321p\220j" - "\245A\213\262L\31\24\61\311\201(\311D\1X\223\32\273x\34\17b\224\16C\230\206\303\20\246\321p" - "\220\232\224AQ\343\341\2X\231\37\273x\32\273x\274" - "\351pPs *F\265\244\267-Lr K\323A\7\22\0YG\33\273x\274\361pMr \313" - "\206\203\216\204\203\22fI\70(\71\226C\22\0YH\27\273x\274\351p\320\252%ePtt\70\347" - "@Tk\311\304\0YO\31\273x\274\361p\215\207\203V\35\206H\313\244a\210\223\34\310BU\1Y" - "V\33\273x\34Q\26&\321\240%RfR\262\70\321\241t\70\210I\254I: YW\32\273x\234" - "\361p\320\302pX\22%\316\6\71\7\36\304\34\12\303aP\0Ye\31\273x\234\71\360\224t\212\246" - "h\70ES\245\313p\20\223\34\310\262uYs\30\273x\234\71\226c\361p\320\312Y\32\246K\16\351" - "H\244\255\11\0Yy\36\273x\134a\32%\331\220$S\222,Q\262\224\222NIe\213\222T\11\223" - "Fu\20Y}\33\273x\134\71\226\15\207\60K\262\60\311J\303\220\24C\261\222\225\262(\235\0Y\202" - " \273x\134\71\226#\203\62HI-JjI\224dI\224d\221\224E\322\240DI\246c\0Y\231" - "\34\273x\134a\32f\203\242d\211\22U\242JT\325\242,\315\222\254\232\205\42\0Y\256\35\273x<" - "\331\260d\341\60\204IeX\232\223&)i\222\22Q)%QI\12\7Y\306 \273x<\331 e" - "R\62$MI-J\206S\42%Q\322$e\231\62H\305$\7\24\0Y\313 \273x\134a\32f" - "\203\22eI-J\206!\211r \211\6I\312\242\244\226D\311\260f\1Y\354\34\273x\134\321\60\65" - "\15S\226T\246\244S\322)\351\26%\233\22e\221T\34\6Z\1 \273x\374@\222#Q\62\34\222" - "\64L\226(\211Z\206!\211\222N\221\224H\221\262Da\0Z\3\34\273x\134a\32fC\62HI" - "\26&\303)\13\223,\215\6M\13\243Z\70\14Z\5 \273x<\71\26\15\7)\311\222(\311\22\245" - "\27KT\311\264$\314\222,\211\222(\33\206\0Z\34\42\273x<\311\220,QR\31\226\212\222,\211" - "\322\242$\203\222(}JZ\224\312RJ\242J\24\1ZZ\37\273x\134\321\240E\245\341\240\64eI" - "\42)\345\244\62hQ\226)\203\24iI\70(\0[P\30\273x\134\303\220C\71\224C\71\226\16\7" - "\65\307r,G\352P\14[W\31\273x\274\361pHrD\32\224\34\310\241t\70\250\71\226c\71\262" - "\2[X\31\273x\234\361p\320r(\31\266\64\23\263d\70\205i\230\206i\264\1[f\31\272y<" - "QVJ\242\341\240#\321\260#\71\22\16\207\64\207r`\4[i\33\273x\34\203\24'\303\24\246Y" - "\224)C\64F\265(\213\212\225\266J$\6[\203\30\273x\274\361pHrDJ\303\34\213\326\35\311" - "\261\70\213\303a\10[\210\31\273x\274\71\230\16\207$\7\222\64\35\356@\234\345@\224c\71\62\2[" - "\211\30\273x\274\361pHrD\13\323x\70hU-\7v$\322V\1[\214\33\273x\274\361pH" - "rD\32\224\34\36\16a\222\3Q\16DY\224U\322![\230\32\273x\274\361pHrD\32\206\260" - ":\254\71\66\14a\32\16C\230&\0[\232\33\273x\274\361pHrDG\262a\220s \312\201h" - "\10\243\70\251f\303\20[\235\32\273x\234\71\230\16\357P\64\14\71\220c\71p\310\201$G\242h\70" - "\10[\236\31\273x\334\351pH\312Z\22eu J\207C\234CI\16d\331*[\242\30\272y\234" - "\351p\220\322h\330\222(\313dI\32\16Q\330\70L\0[\243\31\273x\274\351\360\16E\303\220S\206" - "!L\303a\10\323p\30\242\341 [\244\32\273x\274\351\360\16)\303\220\204\71\224\245\203\222\3\71p" - "\310\201t\70\10[\253\30\272y\234\351p\320\221h\30\213\303\16\17\203\24G\303 \305\11\0[\263\32" - "\273x\274\351\360\30*\303\220\244\71p\310\201t\70Hi\230\206\303\20\1[\264\31\272y\234\351pP" - "\302D\31\226(\14\207\71\35\16Q\26\17\331\220\15[\266\31\273x\274\351\360\16)\303\220dIVi" - "\215DeI\243\222VT\1[\271\30\273x\274\351\360\224E\335\242$\12\263\264\244\14\212V\316\342A" - "\3[\275\32\273x\274\351\360\224E\311p\314\322a\10\243bTL\272E\331\20\16\1[\304\32\273x" - "\274\351\360\30*\303\220d\265\341\240#\341\20\205Qq\210rd\2[\306\32\273x\274\351\360V\351-" - "jL\242dH\6%\315\201\250\30\25\207!\2[\314\30\273x\274\351\360\16E\303\220\16r\26\16\247" - "\254\64\234\262\322p\1[\337\35\273x\274\351\360\222e\312\220\14\211\22%Q\22V\206$\321\221d\270" - "E%\233\0[\353\31\273x\274\351\360\226*\322\22\245\341\62\246\341pP\232*=%\211\2[\371\33" - "\273x\374H\64\204\351p\12\263$,\25\263$K\302,\11\243\64\311\241\14[\373\33\273x<\303\240" - "c\341\60\344X\66\14:\224\15\7)\214\263\34\251C!\0[\374\35\273x\134\303\20\246\341\60$Q" - "\16d\303\240\3\331p\320\352@\224\3Q\16i\0\134\4\34\273x\134q\64hQV\32\16IV\32" - "\246ZR\31\266R\26e\225LR\0\134\6\34\273x\134Y\34\15J\251\246$j\226\204QM\31\6" - "%*fI\230\206\241\4\134\7\37\273x|\305$\32\224\236\222(\211\206,\11\243\312pPJ-Y" - "\22%i\22e\13\0\134\15\35\273x\134I\230t\212\24-\31\16R\22F\203R\14\245A\13\323p" - "\251\254\21\0\134\16\35\273x\34a\224%\303 V\244!\211*CTL\222\341\216D\303A\13\343H" - "\2\134\17\30\273x\274\71\226c\71\20\25\243,\312JY(Vs\244\16\305\0\134\21\32\273x\274\71" - "\226#\245\64\311Ja\222E\71\220\344P\16\345\210\274#\0\134\24\30\272y\134\71\64\14J\16\210Q" - "\134J\302\250-\252eb\226\215\0\134$\32\273x\234Q\16dq<\34\304$G\352@\224\3Q\234" - "U\302L\36\2\134\61\36\273x|\265a\251#Q\62\34\222(\251\15I\65J\262D\351EI\244J" - "I\311\4\134<\33\273x\134\303\240\305Y\234\15\203\226cI\230%\221\230\254Q\232D\251\70\14\134=" - "\31\273x\134\303\20\246a\32\16C\230\305aI\312\302(\211\324:\30\2\134>\33\273x\134\303\240\305" - "\331\60h\241\70\310\331\220\15r\66d\203\226\204\231:\10\134@\36\273x\134\303\240\305\331\60h\71\66" - "\234r J\206\250\22U\242!J\242\222\16(\0\134B\33\273x\134\303\240\305\331\60h\71\226\14[" - "\216\15\247,\216jQ\230d\303\20\134E\34\273x\134\303\240\305\331\60h\345\341\224\305\311\260%a\226" - "\204Q\64,Y\230\0\134O\31\273x\134\303)\7\242\341\224\204YT\34N\215\303\251-\312\242b\4" - "\134U\31\273x<\303)\7\242\341\324\70\234\32\207CRj\311\244JT\22\5\134^\37\273x<\303" - ")\7\242\341\224\3Q\62la\232\14C\224D\225d\70$Y\246$C\42\134q\27\271y\234\71\22" - "f\231\226i\231\226i\231\226i\331p\320\201\0\134\201\30\272x \273x\134a\234e\303\62DY\224EImJ\262$J\262$+EZ\224DI\224" - "\204\1e\77\37\273x\374@\66,q\66d\221\22%K)\311\222(\311\222(\11\263d\212\306$\326" - "\2eE\33\273x|\345,\33\226!\253\204QiPJ-Q\255\224eC\224D\321\26eH\35\273" - "x\134a\234e\303\62DI\242DY\322\26%Y\22%aKVM\212Z\0eL\34\273x|R" - "\66\246\341p\211\262(\251\205I\62HI\255\224\225\6)\251m\1eO\37\273x\34\273x\134\303\20\246\341\60\204i\70\14q\222FI\224%\245,iN\302\341 fB\35\273" - "x\374@\66$\203\22e\245,\33\236\302(\32NI\24\15Q\222c\71\62\1fZ\36\273x\274\351" - "\64DI)K\206AYJI\247\244\62,\65mJ\242\60\252eC\0fh\36\273x\134\303\20\246" - "\341\60\204i\66\34\222\34K\206!\312\261\341\220\224\222(\222\26\0fn\32\273x|\305\341T\211\262" - "\244i\70\350\360\60\204i\70\14a\32\16C\4fz\37\272y<\71\64$\203\222E\303 E\322\220" - "DI\244\14C\226f\303\220\245\331\60$\0f\202\37\273x\134q\62([\22\205\203\62hQ\22\15" - "I\24\16C\230\206\303\20\246\341\60D\0f\227\36\273x\374@\66<%Y\22U\242\341)\7\242d" - "P\206$K\242d\220\263xP\0f\362\27\272y|Q\34e\303A*I%\251\64<\225\244\322\360" - "\216\4f\364\31\273x<\303!\216\207A+e\303\240\225\262aP\223\34\312\21\333:f\370\33\273x" - "\134\303\220\3Q\64\34\324(\33\316\351p\220\322p\30\302\64\34\206\10f\374\32\272y\134\303\230Da" - "\224D\303A*\15\7\35\35\326(\7\304!\32\2f\376\31\271y\134\265\341 EK\313p\310\261a" - "\210\322h\30\242\64\32\206\4g\0\33\273x\134\303\20\246\341\60\204i\64\34\224(\7\236*Q\64D" - "\246H\236\4g\10\32\271y\134\303\20\245Q\32\15C\224Fi\64\14Q\32\245I\230\310\11\0g\11" - "\30\273x\234\361p\320rl\30\305,\31\246b:\254a\32\246\231\4g\13\36\273x\33\273x|\265a\211\263!\31\222,G*C\226c\321\60e" - "IOMK\30kL\37\273x\34\227\34\210\262%\32\224\266aP\342,Z\262()%\311\22%i" - "\222ec\0kb\27\272y\274\71\224Cq\24GC\26\305Q\34\305Q\34\205\303!kc\32\253x" - "\34\17j\216\345@\224\3\321\240E\71\20\345@\224\3Q:\34\4kd\36\273x|\345,\316\242\244" - "\226D\311\242%Y\230da\222\205I\26%\311\22\15\351\0ke\31\273x\274\71\20\15Z\224\3Q" - ":\34\324\34\251\225ji\216\210\203\14kw\34\273x<\303!\311J\211\244EY\66\34\222(\253\234" - "\224>\15ITL\206\3k{\30\273x\34\17Z\216\225\227\250\245$%R\245\16Dq\26\25\243y" - "k\265\34\273x|\312\246%Y\230dK\264\344\330\62HY)L\242!\13+Y\244\11k\301\33\273" - "x\34\213\262\204IEY\32\223d\270cC\62,\305,\11\253Ke+k\315\34\273x\134\303\20&" - "Y\30\25\323h\70HI\26F\305\64\33\16\71\222#\32\0k\317\33\273x\134\71\66\134r(\32\326" - "$\212\206\203\324\230%\331p\310\221\34\321\0k\322\30\273x\274\351pP\343\341\234\16\7\251i\70(" - "Y\224\15\207X\3k\324\25\272y\34aOI\230DC\242\205}Q\262-S\207\0k\333\27\273x" - "\334\333\240c\71\66d\203\216\345\330\360\216\205i\30\17\2l\21\31\272y\34/\71\220\344@\62\134\262" - "\64K\207\203XJ\62%\213\326\1l\24\32\273x|\71\66\14Y\16%\303\224\243\303\216\345X\224\3" - "Q\216\324!\1l\27\33\273x|\71\66\14R\16%\303\220\344\340\60\350H\61\252jI\24Y\302," - "l\64\30\273x\274\71\226c\225!Q\322\244\234T\243bTk\211\222\260\14l\70\31\273x\274\71\30" - "\17Y\34ECRN\344(I\243ZmJr(\6lB\32\273x\274Q\16d\311pPs \252" - "&u`\7\222jT\322\62Q\5lI\33\273x<\71\220%\303 fQR\13\223\254%\314\222H" - "\15+YS\242\6l_\32\273x<\71\30\15J\34&Y\234\245a\32fj\230\206\311\60(\71\4" - "l`\37\273x\35\273x<\261\226\14\71\20n\311\226(\305\244SR\61%\265(\211Z\242J$\5m" - "A\32\273x\34ie\30\324Z\313\60dq\226\64II-J:%=E\2mN\34\273x\32\273x\245\331pG\207\203\324d\23y\217\37\273x<\321\60D\71<(C\222" - "\205\311\240\345\330pQ\242HI\206!J\242\226a\10y\273\33\273x\274\351p\220\222\306\250\230\64\16" - "C\16\304\303\251%J\6%\212\25\0y\301\32\273x|\362\230\206\331 \245Y:\245J\61\211\262\312" - "\60D\305(G\0y\315\33\273x|R\66\246\321\360\22\265D\221RJ\224aP\302\64L\303\64\314" - "\0y\321\34\273x|b\262EY\230$\203\230\225\62-\211\224p\11\267H\312\342,N\0y\322\33" - "\273x|\265\61\215\222\312\220\224Z\242d)*Q\244\304Y\32fj\242\2y\360\31\273x|J\270" - "\305\321p\220\32\303\245IJz*iQ\61\315\64\0y\373\33\273x|\265\203T\34\226(\13-J" - "\230DC\242eJ\224\324\322\60\332\0z\13\36\273x|\311\240LY)K\206d\320rL\31$%" - "\12\245A)\246a\232\14C\0z\15\36\273x|R\64DI-\314\206C\26e\321\62H\212\226\224" - "\6-\312JY)R\0z.\34\273x|\311\240\214i\64\274\324\242AS\332\222a\22\263$\32\264" - "\60M\206!z\61\35\273x|\241\62M\225(\32\224\266h\320\224\266d\230\244\244\313\60D\265R\244" - "\0z\77\36\273x|R\66\15S\26%\203\62d\71\66\234\222\64Q\222E\351)I\226(\11\5z" - "v\30\273x\274\351\360\224E\325,\12\323\34\31v \212\263\250\30\315\3zz\30\273x\274\361pH" - "rD\213\342\60\223\303a\7r,\307\342\341\20z\177\32\273x\274\351\360\224EJ\232$\303 f\351" - "pMr \212\263P\32\1z\201\31\273x\274\361pH\242\222\24\226\222r\224\15\207\64\207\222X\223" - "t@z\227\36\272y\274\341pP\302\244\224%\303!\211\262(\31\246)\211\42\251\22%\321\60(\0" - "z\313\30\273x\274\71\230\16\207\234\20\246a\34\345@\224\3I\216\205\303Az\326\36\273x|\311 " - "%\265(\211\222,\311\302$J\322$\223\323\341\230\345@\22\16\7\1z\331\34\273x\65" - "&\215Z\0\226b\35\273x\34C\24FY%\31N\251\22\15J\224\3\321pHJ\225\250\242U\244" - "T\226d\36\273x\34CV\252DI\224%R\262(a\26\15\247,\233\222\266(\222\262H\325\0\226" - "\206 \273x\34C\222F\311\240T\264D\234\222D\233\222Z\224\14\7)K\242A\211\263h\30\4\226" - "\217 \273x\34c\226(\303\220\64j\203R\213\222\344\220tJ\244dH\262$J\62\65\212\6\1\226" - "\220\42\273x\34C\62D\225\250\222\14\213\222&\245A\211\322$J\6E\211\302$Q\232\222(\21\207" - "\10\226\250!\273x\34CVR\206%*i\303\220\204IiY\242\244eH\222\245\224\264%Q\22e" - "C\0\226\274\30\273x\134Y<\134\264\60\31\6\255<\14Zy\70\207\303A\16\1\226\276\35\273x\334" - "I\64DI\232\14C\64eI)\214\206\251-I\206\245\251\30\345\300\1\226\304\37\273x|\345(\211" - "\206\203\224%a\244dI\64(\245$*\15K\226\204I\333\220\14\2\226\306\34\273x|I\16d\351" - "pP\242\34\70hQ\16\34\264(\35\16ZR\233\242\1\226\314\37\273x\134I\224&\215I\62,\203" - "\22%\225a\351\224T\206\245S\62(\221\224\14r\10\226\350\30\273x\34\17j\216\305\303)+%\235" - "\42O\225NY)\213\24\0\226\352\31\273x<\303\71\35\36CEI\224\34\35\356X\66\14:\26\15" - "\27\0\226\366\31\273x<\303\71\35\236\222R\70k\222\226I\303\220C\71\260c\32\0\226\367\30\273x" - "<\303\71\35\36CEI\224\64\36NYi\70e\245\341\2\226\373\30\273x<\303\71\35^\242J\62" - "\234\262\322p\312J\303\71L\207\1\227\0\31\273x<\303\71\35^\224DI\323\341 \346\300S%j" - "\211Z\22\5\227\6\34\273x<\303\71\35^\242\312\240\14Z\30.\203\230\205\311\60H\71\242\14\203\0" - "\227\23\34\273x<\303\71\35^\242J\62\15Q\16DC\62D\71\20\15\307(\33\262A\227\36\32\273" - "x<\303\71\35\236\222\322\260\14Q\61\32Na\24\15IT\325\242I\227\62\36\273x<\303\71\35\236" - "\222\322 \15I\224H\311\220\211\221\264\34\222Z\224\14\321\220\0\227\70\34\273x<\303\71\35\236\222\322" - "p\220*Q\62(C\322)\31\16Y)\213\42\5\227R\30\273x\274\361p\316\201C\16\244\303A\13" - "\323a\15\323a\15#\0\227Y\37\273x\134a\66,[%\33\222!\13\223d\70(Q%R\222!" - "J\244\60*&\66\0\227^\34\273x\234I\216\24\7e\20\223\34\251\16\311\220&\71R\34\224AL" - "r\244\10\227`\34\273x\134u\340 e\351p\220\322p\30\342$\34\224AL\302A\31\304$\4\227" - "b\30\272y\34\17a\216\304\303A*IC$\225\244!\222J\303;\22\227i\31\273x|\265\341\240" - "\225\7\35\311\201C\30\25\207!\7\322\341\240\246\0\227\215\35\273x<\265l\70(\215\311\226\206\331\360" - "RJ\222A\211\262P\32\244$\213\264\0\227\363\32\273x\274\361p\314r \11\207\203\16\17C\230\206" - "\303\20\246\341\60D\0\227\365\35\273x\134Y\70(a\226\14J\343\260d\71\20\15\253\26)\303\240i" - "\351\260)\0\230\30\36\273x|\311\60\211Y\224\14K\244\225\206C\222\205\311\240\224\262(\33\264\250\230" - "\204\1\230^\36\273x\34IeP\306\332pH\262d\32\226\266(\33\16I\26e\203RKj[\0" - "\230o\42\273x<\203\62$Y\224\15\312\220dI\224\14\312\220D\211\24)\311\220tJ\224aH\372" - "\267\0\230u\31\273x\34\17j\16\34\302\64\214\212Q\61*FJ\34\305\241$'\0\230\177\35\273x" - "\134\331 \245\321\240\14R\226)]\224.\303\322\224%\245$\13\265$\326\2\230\206\33\273x|\321\240" - "\205\225(\224\206!\252\305IeH\32\223\266\260%\214\262\0\230\221\37\273x|\321\240\24\263d\30\224" - "R\66\14J-J\272(-JE\252\224\302$\321\264\0\230\230!\273x\11\225\210\26i\267\216\0\77\15\225\210\66K" + "\246\205\221\226Ca\4@\24\247xX[%\221\264DR\224\212R\221\22%\313&\0A\16\207\210x" + "q\232\204IV\32\224T\15B\15\206\210\27\203\22\212\303\22\32\207\5C\14\206\210\67C\22\252\35\223" + "!\1D\15\207\210\30\203\24&\251\307d\220\0E\13\205\210\26\307p\30\213\203\0F\13\205\210\26\307" + "pH\302F\0G\15\206\210\67C\22\252\265QL\6\1H\13\206\210\27\241q\30D\307\0I\11\203" + "\210\24K\324\313\0J\10\243hT\375i\1K\16\205\210\26\231\224\224\64-\211*Y\0L\11\205\210" + "\26a\37\7\1M\20\207\210\30\332\220-\25\245\42ER\244\252\1N\15\206\210\27\341\246DR\242\215" + "\306\0O\14\207\210X[%uM\262l\2P\14\205\210\26C\222\331\6%,\2Q\16\227xX[" + "%uM\262l\7\22\0R\20\206\210\27C\224%Y\222%C\324\226\204\1S\14\205\210\66\203\230\256" + "a\70(\0T\12\207\210\30\207,\356\33\0U\12\206\210\27\241\37\223!\1V\17\207\210\30\251\232d" + "QV\11\223\64\316\0W\21\211\210\32Y\246eZ\245S\322\224\264\25\263\10X\16\206\210\27\241\230D" + "\231\26\265\204b\0Y\14\207\210\30i\222U\322\270\33\0Z\12\207\210\30\207\264\317\303\20[\11\263z" + "\26C\324\237\6\134\15\245x\26a\32\246a\32\246a\0]\11\263y\26S\177\32\2^\10\65\350V" + "YR\13_\7\25x\26\203\0`\7\62\371\25I\24a\14e\210\66K\226\14\232\226\14\1b\14\205" + "\210\26a\70$\231\333\240\0c\10d\210\65C\326\70d\13\205\210\226\225AsK\206\0e\13e\210" + "\66K\66\14a:\4f\11\203\210\64\323\20u\2g\14\205h\66\203\346\226\14a\262\0h\13\205\210" + "\26a\70$\231\267\0i\7\201\210\22\311\60j\11\242h\63Y\322\313\0k\15\205\210\26a))i" + "IT\311\2l\7\201\210\22\7\1m\16g\210\30\213\22ER$ER$\25n\11e\210\26C\222" + "y\13o\12e\210\66K\346\226,\0p\14\205h\26C\222\271\15J\30\2q\13\205h\66\203\346\226" + "\14a\1r\10c\210\24C\324\11s\14e\210\66K\226\250I\226,\0t\12\203\210\24Q\64Dm" + "\2u\11e\210\26\231\267d\10v\14e\210\26\231\226\224\222,\214\0w\17g\210\30Q$EJE" + "\351\26e\11\0x\13e\210\26YR\253\324\264\0y\15\205h\26\231\226\224\222,\314\302\14z\12e" + "\210\26\203\230\265\15\2{\13\243xTIT\311\242\266\0|\7\261z\25\17\2}\13\243x\24YT" + "K\242\226\10~\7&\270\67\222\5\200\17\225\210VR%\33\242l\210\302(R\0\241\7\201\210\22\311" + "\60\277\12\204\210U\71\220E\265p\301\20\267\210\230i\16W\223\60\311J\203\222\252\1\303\21\267\210X" + "JTG\343\64\11\223\254\64(\251\32\311\14\265\210vu\340\30\16cq\20\312\15\265\210VY\22\17" + "c\70\214\305A\315\12\263\210TI\270D\275\14\326\16\247\210XI\16n\225\324\65\311\262\11\332\14\266" + "\210wa\16\205~L\206\4\334\14\246\210\67Q\16\204~L\206\4\337\15\205\210\66R%JJ\225\314" + "\224\0\340\15\225\210\66i\216\254\311\240i\311\20\341\15\225\210vudM\6MK\206\0\343\15\225\210" + "\66\246\34X\223A\323\222!\344\15\205\210\66u`M\6MK\206\0\347\13\204h\65C\326\70%\22" + "\0\350\15\225\210\66i\216,\331\60\204\351\20\351\15\225\210vud\311\206!L\207\0\352\16\225\210V" + "Y\222\3K\66\14a:\4\353\15\205\210\66u`\311\206!L\207\0\355\11\222\210\63Z\322\13\0\361" + "\13\225\210\66\246xH\62o\1\363\13\225\210vud\311\334\222\5\365\16\246\210\66\222\35\31\222\320c" + "\62$\0\366\13\205\210\66u`\311\334\222\5\371\13\225\210\66i\16d\336\222!\372\13\225\210vu " + "\363\226\14\1\374\12\205\210\66\345\314[\62\4\0\0\0\70\60\247\6\71N\272\10\241Q\267\12\220T\15" + "\12\77Y\231\12z^\253\12bb\354\13\21go\13\25on\12\350x\64\12\300\177\23\13\21\211\177" + "\12\270\217\203\13\22\377\377\1M\14\205\210\66;\260dn\311\2\1Q\15\225\210VI;\260dn\311" + "\2\4\1\15\245\210\66\345a\14\207\261\70\10\4\20\16\205\210VK\224D\232\66\14\231\26\4\21\15\205" + "\210\26\307pH\62\333\240\0\4\22\16\205\210\26C\222i\203\222\331\6\5\4\23\11\205\210\26\307>\2" + "\4\24\23\227xXC\26eQ\26eQ-\312\222aP\3\4\27\16\205\210\66K\26Fj\250%\13" + "\0\4\30\15\205\210\26\231\323\222(\311\244\5\4\32\17\205\210\26\231\224\224\246J\224dZ\0\4\34\21" + "\207\210\30\351\66dKE\251H\221\24\251\1\4\35\14\205\210\26\231m\30\62\267\0\4\36\13\205\210\66" + "K\346[\262\0\4\37\11\205\210\26\67\277\5\4 \15\205\210\26C\222i\203\22\66\2\4!\14\205\210" + "\66K&vK\26\0\4\42\12\205\210\26\203\24\366\11\4#\14\205\210\26\231\267d\10\7\5\4$\21" + "\207\210x\341\240D\221\24I\221T\31\304\14\4'\13\205\210\26\231[\62\204\15\4-\16\205\210\66K" + "\26&C\30j\311\2\4/\17\205\210\66\203\246%C\22%\221\246\5\4\60\13d\210\65b\62DR" + "\62\4\61\15\224\210u\211\222-\221S\242\0\4\62\15d\210\25K\64$\221\64$\0\4\63\11d\210" + "\25\203\326\15\4\64\17vxW[\222%Y\22U\206!\14\4\65\14d\210\65J\64lQ\242\0\4" + "\66\16g\210\30Q\245mK\232\42\251\0\4\67\13d\210\65JT\224\22\5\4\70\15e\210\26\231\264" + "$J\62i\1\4\71\17\225\210\66\265\34\310\244%Q\222I\13\4:\14d\210\25\221\222HII\12" + "\4;\12d\210\65K\277H\1\4<\14f\210\27\341\64D\213\307\0\4=\13d\210\25\221\64L\246" + "\0\4>\13d\210\65J\344\224(\0\4\77\11d\210\25\203\344)\4@\16\205h\26\211I\323&E" + "\11C\0\4A\13d\210\65J\244\225\22\5\4B\12e\210\26\203\24v\2\4C\14\204h\25\221\245" + "I\312\242\14\4D\23\247hxq\70(Q$ER$U\6\61\316\0\4E\14e\210\26YR\253" + "\324\264\0\4F\20ux\26Q\22%Q\22%Q\62\210\1\4G\12d\210\25\221)\331\12\4H\20" + "g\210\30Q$ER$ER\64\14\2\4I\22xx\31Q%\252D\225\250\22U\206A\7\2\4" + "K\16f\210\27\241\70DR\42%C\24\4L\14d\210\25Y\266D\322\220\0\4M\14d\210\65J" + "\24iR\242\0\4N\17f\210\27\221R\32\42%R\42\13\0\4O\14d\210\65C$%K\42\5" + "\4Q\16\204\210\25Q\252D\303\26%\12\0 \23\10\33\311\34\17\2 \34\13E\376<\221\224(C" + "\42 \35\14E\371\34\312\220(\221\224\0\60\1\10\63\210\34\231\24\60\2\13D\213\30\273x\34\273x\134\311\260\225\262R\62(\305,\231\262R" + "\61RZ\244,\315\222,\322\2W@\35\273x\134a\32\246a\66,i\224\14Q%\215\222\64J\322" + "!\311\264$\36\6\1WG\33\273x\134Y\234\305\321p\210\243b\224\225\222,\211\264h\323r,G" + "\24\0WO\32\273x\134\71\226\14C\224F\203\26VC\61S\62\245\64\265\3\71\226\1WP\27\273" + "x\274\71\20\25\243bTKz\333\322x\70\347X:\34\4WW\35\273x\134a\32\246\321\240\14R" + "\222\205I\26&Y\62\14\221\226\211I\16d\241\32W[\32\273x\134\71\26\15Z\216\14\71\224\14C" + "\24\246Y,\205Zq\30\304\64W\203\32\273x\134Y\34\246\321p\320\221(+eM\331\22%b\222" + "c\361\60\4W\213\37\273x<\303\224%Q\222%Q\222\14\203\222%Q\222%a\24\231s\340\220\3" + "\351p\20W\316\33\273x<\261\24'\245\341\255\264\64%]\224DR\232\224D\251U\244\254\0W\337" + "\33\273x\134\251\226&Q\62\34\304\312RJ:%\213&F\232R\223\22\71\13W\372\30\273x|\305" + "\341\230\305K\234\314Y\66\34\244&eP\324t\70\10X\2\32\273x\134\255Imx\207\224aH\242" + "\64\34\206\34\310\201\203\234\16\7\1XT\35\273x\134\265\312\60D\225\312\240\24\243\254\222,Q\216\15" + "\203\62e\361 g\11\0X^\31\273x\274\351\360\224E\311p\314\262\341\240U\243Z\62(q:\34" + "\4X\203\36\273x\134a\232\14C\224%\321p\220j\245A\213\262L\31\24\61\311\201(\311D\1X" + "\223\32\273x\34\17b\224\16C\230\206\303\20\246\321p\220\232\224AQ\343\341\2X\231\37\273x\32\273x\274\351pPs *F\265\244\267-Lr K" + "\323A\7\22\0YG\33\273x\274\361pMr \313\206\203\216\204\203\22fI\70(\71\226C\22\0" + "YH\27\273x\274\351p\320\252%ePtt\70\347@Tk\311\304\0YO\31\273x\274\361p\215" + "\207\203V\35\206H\313\244a\210\223\34\310BU\1YV\33\273x\34Q\26&\321\240%RfR\262" + "\70\321\241t\70\210I\254I: YW\32\273x\234\361p\320\302pX\22%\316\6\71\7\36\304\34" + "\12\303aP\0Ye\31\273x\234\71\360\224t\212\246h\70ES\245\313p\20\223\34\310\262uYs" + "\30\273x\234\71\226c\361p\320\312Y\32\246K\16\351H\244\255\11\0Yy\36\273x\134a\32%\331" + "\220$S\222,Q\262\224\222NIe\213\222T\11\223Fu\20Y}\33\273x\134\71\226\15\207\60K" + "\262\60\311J\303\220\24C\261\222\225\262(\235\0Y\202 \273x\134\71\226#\203\62HI-JjI" + "\224dI\224d\221\224E\322\240DI\246c\0Y\231\34\273x\134a\32f\203\242d\211\22U\242J" + "T\325\242,\315\222\254\232\205\42\0Y\256\35\273x<\331\260d\341\60\204IeX\232\223&)i\222" + "\22Q)%QI\12\7Y\306 \273x<\331 eR\62$MI-J\206S\42%Q\322$e" + "\231\62H\305$\7\24\0Y\313 \273x\134a\32f\203\22eI-J\206!\211r \211\6I\312" + "\242\244\226D\311\260f\1Y\354\34\273x\134\321\60\65\15S\226T\246\244S\322)\351\26%\233\22e" + "\221T\34\6Z\1 \273x\374@\222#Q\62\34\222\64L\226(\211Z\206!\211\222N\221\224H\221" + "\262Da\0Z\3\34\273x\134a\32fC\62HI\26&\303)\13\223,\215\6M\13\243Z\70\14" + "Z\5 \273x<\71\26\15\7)\311\222(\311\22\245\27KT\311\264$\314\222,\211\222(\33\206\0" + "Z\34\42\273x<\311\220,QR\31\226\212\222,\211\322\242$\203\222(}JZ\224\312RJ\242J" + "\24\1ZZ\37\273x\134\321\240E\245\341\240\64eI\42)\345\244\62hQ\226)\203\24iI\70(" + "\0[P\30\273x\134\303\220C\71\224C\71\226\16\7\65\307r,G\352P\14[W\31\273x\274\361" + "pHrD\32\224\34\310\241t\70\250\71\226c\71\262\2[X\31\273x\234\361p\320r(\31\266\64" + "\23\263d\70\205i\230\206i\264\1[f\31\272y\33\273x\134\303\240\305\331\60h\241\70\310\331\220\15r\66d\203\226\204\231:\10\134@\36\273x" + "\134\303\240\305\331\60h\71\66\234r J\206\250\22U\242!J\242\222\16(\0\134B\33\273x\134\303" + "\240\305\331\60h\71\226\14[\216\15\247,\216jQ\230d\303\20\134E\34\273x\134\303\240\305\331\60h" + "\345\341\224\305\311\260%a\226\204Q\64,Y\230\0\134O\31\273x\134\303)\7\242\341\224\204YT\34" + "N\215\303\251-\312\242b\4\134U\31\273x<\303)\7\242\341\324\70\234\32\207CRj\311\244JT" + "\22\5\134^\37\273x<\303)\7\242\341\224\3Q\62la\232\14C\224D\225d\70$Y\246$C" + "\42\134q\27\271y\234\71\22f\231\226i\231\226i\231\226i\331p\320\201\0\134\201\30\272x \273x\134a\234e\303\62DY\224EImJ\262$J" + "\262$+EZ\224DI\224\204\1e\77\37\273x\374@\66,q\66d\221\22%K)\311\222(\311" + "\222(\11\263d\212\306$\326\2eE\33\273x|\345,\33\226!\253\204QiPJ-Q\255\224e" + "C\224D\321\26eH\35\273x\134a\234e\303\62DI\242DY\322\26%Y\22%aKVM\212" + "Z\0eL\34\273x|R\66\246\341p\211\262(\251\205I\62HI\255\224\225\6)\251m\1eO" + "\37\273x\34\273x\134\303\20\246\341\60\204i\70\14q\222FI\224%\245," + "iN\302\341 fB\35\273x\374@\66$\203\22e\245,\33\236\302(\32NI\24\15Q\222c\71" + "\62\1fZ\36\273x\274\351\64DI)K\206AYJI\247\244\62,\65mJ\242\60\252eC\0" + "fh\36\273x\134\303\20\246\341\60\204i\66\34\222\34K\206!\312\261\341\220\224\222(\222\26\0fn" + "\32\273x|\305\341T\211\262\244i\70\350\360\60\204i\70\14a\32\16C\4fz\37\272y<\71\64" + "$\203\222E\303 E\322\220DI\244\14C\226f\303\220\245\331\60$\0f\202\37\273x\134q\62(" + "[\22\205\203\62hQ\22\15I\24\16C\230\206\303\20\246\341\60D\0f\227\36\273x\374@\66<%" + "Y\22U\242\341)\7\242dP\206$K\242d\220\263xP\0f\362\27\272y|Q\34e\303A*" + "I%\251\64<\225\244\322\360\216\4f\364\31\273x<\303!\216\207A+e\303\240\225\262aP\223\34" + "\312\21\333:f\370\33\273x\134\303\220\3Q\64\34\324(\33\316\351p\220\322p\30\302\64\34\206\10f" + "\374\32\272y\134\303\230Da\224D\303A*\15\7\35\35\326(\7\304!\32\2f\376\31\271y\134\265" + "\341 EK\313p\310\261a\210\322h\30\242\64\32\206\4g\0\33\273x\134\303\20\246\341\60\204i\64" + "\34\224(\7\236*Q\64D\246H\236\4g\10\32\271y\134\303\20\245Q\32\15C\224Fi\64\14Q" + "\32\245I\230\310\11\0g\11\30\273x\234\361p\320rl\30\305,\31\246b:\254a\32\246\231\4g" + "\13\36\273x\33\273x|\265a\211\263!\31\222" + ",G*C\226c\321\60eIOMK\30kL\37\273x\34\227\34\210\262%\32\224\266aP\342," + "Z\262()%\311\22%i\222ec\0kb\27\272y\274\71\224Cq\24GC\26\305Q\34\305Q" + "\34\205\303!kc\32\253x\34\17j\216\345@\224\3\321\240E\71\20\345@\224\3Q:\34\4kd" + "\36\273x|\345,\316\242\244\226D\311\242%Y\230da\222\205I\26%\311\22\15\351\0ke\31\273" + "x\274\71\20\15Z\224\3Q:\34\324\34\251\225ji\216\210\203\14kw\34\273x<\303!\311J\211" + "\244EY\66\34\222(\253\234\224>\15ITL\206\3k{\30\273x\34\17Z\216\225\227\250\245$%" + "R\245\16Dq\26\25\243yk\265\34\273x|\312\246%Y\230dK\264\344\330\62HY)L\242!" + "\13+Y\244\11k\301\33\273x\34\213\262\204IEY\32\223d\270cC\62,\305,\11\253Ke+" + "k\315\34\273x\134\303\20&Y\30\25\323h\70HI\26F\305\64\33\16\71\222#\32\0k\317\33\273" + "x\134\71\66\134r(\32\326$\212\206\203\324\230%\331p\310\221\34\321\0k\322\30\273x\274\351pP" + "\343\341\234\16\7\251i\70(Y\224\15\207X\3k\324\25\272y\34aOI\230DC\242\205}Q\262" + "-S\207\0k\333\27\273x\334\333\240c\71\66d\203\216\345\330\360\216\205i\30\17\2l\21\31\272y" + "\34/\71\220\344@\62\134\262\64K\207\203XJ\62%\213\326\1l\24\32\273x|\71\66\14Y\16%" + "\303\224\243\303\216\345X\224\3Q\216\324!\1l\27\33\273x|\71\66\14R\16%\303\220\344\340\60\350" + "H\61\252jI\24Y\302,l\64\30\273x\274\71\226c\225!Q\322\244\234T\243bTk\211\222\260" + "\14l\70\31\273x\274\71\30\17Y\34ECRN\344(I\243ZmJr(\6lB\32\273x\274" + "Q\16d\311pPs \252&u`\7\222jT\322\62Q\5lI\33\273x<\71\220%\303 f" + "QR\13\223\254%\314\222H\15+YS\242\6l_\32\273x<\71\30\15J\34&Y\234\245a\32" + "fj\230\206\311\60(\71\4l`\37\273x\35\273x<\261\226\14\71\20n\311\226(\305\244SR\61%" + "\265(\211Z\242J$\5mA\32\273x\34ie\30\324Z\313\60dq\226\64II-J:%=" + "E\2mN\34\273x\32\273x\245\331pG\207\203\324d\23y\217\37\273x" + "<\321\60D\71<(C\222\205\311\240\345\330pQ\242HI\206!J\242\226a\10y\273\33\273x\274" + "\351p\220\222\306\250\230\64\16C\16\304\303\251%J\6%\212\25\0y\301\32\273x|\362\230\206\331 " + "\245Y:\245J\61\211\262\312\60D\305(G\0y\315\33\273x|R\66\246\321\360\22\265D\221RJ" + "\224aP\302\64L\303\64\314\0y\321\34\273x|b\262EY\230$\203\230\225\62-\211\224p\11\267" + "H\312\342,N\0y\322\33\273x|\265\61\215\222\312\220\224Z\242d)*Q\244\304Y\32fj\242" + "\2y\360\31\273x|J\270\305\321p\220\32\303\245IJz*iQ\61\315\64\0y\373\33\273x|" + "\265\203T\34\226(\13-J\230DC\242eJ\224\324\322\60\332\0z\13\36\273x|\311\240LY)" + "K\206d\320rL\31$%\12\245A)\246a\232\14C\0z\15\36\273x|R\64DI-\314\206" + "C\26e\321\62H\212\226\224\6-\312JY)R\0z.\34\273x|\311\240\214i\64\274\324\242A" + "S\332\222a\22\263$\32\264\60M\206!z\61\35\273x|\241\62M\225(\32\224\266h\320\224\266d" + "\230\244\244\313\60D\265R\244\0z\77\36\273x|R\66\15S\26%\203\62d\71\66\234\222\64Q\222" + "E\351)I\226(\11\5zv\30\273x\274\351\360\224E\325,\12\323\34\31v \212\263\250\30\315\3" + "zz\30\273x\274\361pHrD\213\342\60\223\303a\7r,\307\342\341\20z\177\32\273x\274\351\360" + "\224EJ\232$\303 f\351pMr \212\263P\32\1z\201\31\273x\274\361pH\242\222\24\226\222" + "r\224\15\207\64\207\222X\223t@z\227\36\272y\274\341pP\302\244\224%\303!\211\262(\31\246)" + "\211\42\251\22%\321\60(\0z\313\30\273x\274\71\230\16\207\234\20\246a\34\345@\224\3I\216\205\303" + "Az\326\36\273x|\311 %\265(\211\222,\311\302$J\322$\223\323\341\230\345@\22\16\7\1z" + "\331\34\273x\65&\215Z\0\226b\35" + "\273x\34C\24FY%\31N\251\22\15J\224\3\321pHJ\225\250\242U\244T\226d\36\273x\34" + "CV\252DI\224%R\262(a\26\15\247,\233\222\266(\222\262H\325\0\226\206 \273x\34C\222" + "F\311\240T\264D\234\222D\233\222Z\224\14\7)K\242A\211\263h\30\4\226\217 \273x\34c\226" + "(\303\220\64j\203R\213\222\344\220tJ\244dH\262$J\62\65\212\6\1\226\220\42\273x\34C\62" + "D\225\250\222\14\213\222&\245A\211\322$J\6E\211\302$Q\232\222(\21\207\10\226\250!\273x\34" + "CVR\206%*i\303\220\204IiY\242\244eH\222\245\224\264%Q\22eC\0\226\274\30\273x" + "\134Y<\134\264\60\31\6\255<\14Zy\70\207\303A\16\1\226\276\35\273x\334I\64DI\232\14C" + "\64eI)\214\206\251-I\206\245\251\30\345\300\1\226\304\37\273x|\345(\211\206\203\224%a\244d" + "I\64(\245$*\15K\226\204I\333\220\14\2\226\306\34\273x|I\16d\351pP\242\34\70hQ" + "\16\34\264(\35\16ZR\233\242\1\226\314\37\273x\134I\224&\215I\62,\203\22%\225a\351\224T" + "\206\245S\62(\221\224\14r\10\226\350\30\273x\34\17j\216\305\303)+%\235\42O\225NY)\213" + "\24\0\226\352\31\273x<\303\71\35\36CEI\224\34\35\356X\66\14:\26\15\27\0\226\366\31\273x" + "<\303\71\35\236\222R\70k\222\226I\303\220C\71\260c\32\0\226\367\30\273x<\303\71\35\36CE" + "I\224\64\36NYi\70e\245\341\2\226\373\30\273x<\303\71\35^\242J\62\234\262\322p\312J\303" + "\71L\207\1\227\0\31\273x<\303\71\35^\224DI\323\341 \346\300S%j\211Z\22\5\227\6\34" + "\273x<\303\71\35^\242\312\240\14Z\30.\203\230\205\311\60H\71\242\14\203\0\227\23\34\273x<\303" + "\71\35^\242J\62\15Q\16DC\62D\71\20\15\307(\33\262A\227\36\32\273x<\303\71\35\236\222" + "\322\260\14Q\61\32Na\24\15IT\325\242I\227\62\36\273x<\303\71\35\236\222\322 \15I\224H" + "\311\220\211\221\264\34\222Z\224\14\321\220\0\227\70\34\273x<\303\71\35\236\222\322p\220*Q\62(C" + "\322)\31\16Y)\213\42\5\227R\30\273x\274\361p\316\201C\16\244\303A\13\323a\15\323a\15#" + "\0\227Y\37\273x\134a\66,[%\33\222!\13\223d\70(Q%R\222!J\244\60*&\66\0" + "\227^\34\273x\234I\216\24\7e\20\223\34\251\16\311\220&\71R\34\224ALr\244\10\227`\34\273" + "x\134u\340 e\351p\220\322p\30\342$\34\224AL\302A\31\304$\4\227b\30\272y\34\17a" + "\216\304\303A*IC$\225\244!\222J\303;\22\227i\31\273x|\265\341\240\225\7\35\311\201C\30" + "\25\207!\7\322\341\240\246\0\227\215\35\273x<\265l\70(\215\311\226\206\331\360RJ\222A\211\262P" + "\32\244$\213\264\0\227\363\32\273x\274\361p\314r \11\207\203\16\17C\230\206\303\20\246\341\60D\0" + "\227\365\35\273x\134Y\70(a\226\14J\343\260d\71\20\15\253\26)\303\240i\351\260)\0\230\30\36" + "\273x|\311\60\211Y\224\14K\244\225\206C\222\205\311\240\224\262(\33\264\250\230\204\1\230^\36\273x" + "\34IeP\306\332pH\262d\32\226\266(\33\16I\26e\203RKj[\0\230o\42\273x<\203" + "\62$Y\224\15\312\220dI\224\14\312\220D\211\24)\311\220tJ\224aH\372\267\0\230u\31\273x" + "\34\17j\16\34\302\64\214\212Q\61*FJ\34\305\241$'\0\230\177\35\273x\134\331 \245\321\240\14" + "R\226)]\224.\303\322\224%\245$\13\265$\326\2\230\206\33\273x|\321\240\205\225(\224\206!\252" + "\305IeH\32\223\266\260%\214\262\0\230\221\37\273x|\321\240\24\263d\30\224R\66\14J-J\272" + "(-JE\252\224\302$\321\264\0\230\230!\273xuser_data; const char *msg = string_get_cstr(p_toast_view->message); + mui_canvas_set_font(p_canvas, u8g2_font_wqy12_t_gb2312a); if (p_toast_view->is_visible && string_size(p_toast_view->message) > 0) { uint8_t mw = mui_canvas_get_width(p_canvas) - 16; uint8_t th = mui_element_text_height(p_canvas, mw, msg); diff --git a/fw/data/i18n.csv b/fw/data/i18n.csv index 29efa171..bcf47dbf 100644 --- a/fw/data/i18n.csv +++ b/fw/data/i18n.csv @@ -1,169 +1,172 @@ -CODE,en_US,zh_Hans,zh_TW,es_ES,hu_HU,de_DE,fr_FR,nl_NL,pt_BR,ja_JP,it_IT -_L_ON,ON,开,開,SI,BE,AN,ACTIVÉ,AAN,LIGADO,オン,SI -_L_OFF,OFF,关,關,NO,KI,AUS,DÉSACTIVÉ,UIT,DESLIGADO,オフ,NO -_L_ON_F,[ON],[开],[開],[SI],[BE],[AN],[ACTIVÉ],[AAN],[LIGADO],[オン],[SI] -_L_OFF_F,[OFF],[关],[關],[NO],[KI],[AUS],[DÉSACTIVÉ],[UIT],[DESLIGADO],[オフ],[NO] -_L_BACK,Back,返回,返回,[Atrás],Vissza,[Zurück],Retour,Terug,Voltar,戻る,Indietro -_L_ERR,Error,错误,錯誤,Error,Hiba,Fehler,Erreur,Fout,Erro,エラー,Errore -_L_ERR_CODE,Error Code,错误码,錯誤碼,Código error,Hibakód,Fehlercode,Code d'Erreur,Foutcode,Código de Erro,エラーコード,Codice errore -_L_APP_AMIIBO,Amiibo Emulator,Amiibo模拟器,Amiibo模擬器,Emulador de amiibo,Amiibo Emulátor,Amiibo-Emulator,Emulateur Amiibo,Amiibo-Emulator,Emulador de Amiibo,Amiiboエミュレータ,Emulatore Amiibo -_L_APP_AMIIBOLINK,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink -_L_APP_BLE,BLE File Transfer,蓝牙传输,藍牙傳送,Transferencia BLE,BLE Fájltovábbítás,BLE-Dateitransfer,Transfert de Fichiers BLE,BLE Bestandsoverdracht,Transferência de Arquivos BLE,BLEファイル転送,Trasferimento file BLE -_L_APP_BLE_TITLE,BLE File Transfer,蓝牙传输,藍牙傳送,Transferencia BLE,BLE Fájltovábbítás,BLE-Dateitransfer,Transfert de Fichiers BLE,BLE Bestandsoverdracht,Transferência de Arquivos BLE,BLEファイル転送,Trasferimento file BLE -_L_APP_PLAYER,Video Player,动画播放器,動畫播放器,Reproductor vídeo,Video Lejátszó,Videospieler,Lecteur Vidéo,Videospeler,Reprodutor de Vídeo,ビデオプレーヤー,Lettore video -_L_APP_SET,Settings,系统设置,系統設定,Configuraciones,Beállítások,Einstellungen,Paramètres,Instellingen,Configurações,設定,Impostazioni -_L_APP_SET_VERSION,Version,版本,版本,Versión,Verzió,Version,Version,Versie,Versão,バージョン,Versione -_L_APP_SET_STORAGE_USED,Used,已用,已用,Usado,Használt,Belegt,Utilisé,Gebruikt,Usado,使用ストレージ,Usato -_L_APP_SET_STORAGE,External Storage,外置存储,外置存儲,M. Flash,Külső Tároló,Speicher,Stockage Externe,Externe Opslag,Armazenamento Externo,外部ストレージ,Memoria esterna -_L_APP_SET_OLED_CONTRAST,OLED Contrast,OLED对比度,OLED對比度,Contraste OLED,OLED Kontraszt,OLED-Kontrast,Contraste OLED,OLED-Contrast,Contraste do OLED,OLEDコントラスト,Contrasto OLED -_L_APP_SET_OLED_CONTRAST_TITLE,OLED Contrast,OLED对比度,OLED對比度,Contraste OLED,OLED Kontraszt,OLED-Kontrast,Contraste OLED,OLED-Contrast,Contraste do OLED,OLEDコントラスト,Contrasto OLED -_L_APP_SET_LCD_BACKLIGHT,Backlight,背光亮度,背光亮度,Brillo,Háttérvilágítás,Beleuchtung,Rétroéclairage,Achtergrondverlichting,Luz de Fundo,バックライト,Luminosità -_L_APP_SET_LCD_BACKLIGHT_TITLE,Backlight Brightness,背光亮度,背光亮度,Brillo de fondo,Háttérvilágítás Fényerő,Helligkeit,Luminosité du Rétroéclairage,Helderheid Achtergrondverlichting,Brilho da Luz de Fundo,バックライトの明るさ,Luminosità schermo -_L_APP_SET_ANIM,Menu Animation,动画效果,動畫效果,Animar menú,Menü Animáció,Menü-Animation,Animation du Menu,Menu-Animatie,Animação do Menu,メニュー アニメーション,Animazione menu -_L_APP_SET_LIPO_BAT,LiPO Battery,LiPO电池,LiPO電池,Batería LiPO,LiPO Akkumulátor,LiPO-Batterie,Batterie LiPO,LiPO-Batterij,Bateria LiPO,LiPOバッテリー,Batteria LiPO -_L_APP_SET_SHOW_MEM_USAGE,Memory Used,内存使用率,記憶體使用率,Mem. usada,Használt Memória,Speicheranzeige,Mémoire Utilisée,Gebruikt Geheugen,Memória Usada,使用メモリ,Memoria usata -_L_APP_SET_HIBERNATE,Fast Wakeup,快速唤醒,快速喚醒,Hibernar,Gyors Ébresztés,Schnell-Wecken,Réveil Rapide,Snel Ontwaken,Despertar Rápido,高速起動,Risveglio rapido -_L_APP_SET_SLEEP_TIMEOUT,Sleep Timeout,休眠时间,休眠時間,Dormir en:,Alvási Időkorlát,Schlaf-Timeout,Délai de mise en veille,Time-out Slaapstand,Tempo Limite de Suspensão,スリープタイムアウト,Timeout di sospensione -_L_APP_SET_LANGUAGE,Language,系统语言,系統語言,Idioma,Nyelv,Sprache,Langue,Taal,Idioma,言語,Lingua -_L_APP_SET_DFU,Firmware Update,固件更新,軟體升級,Actualizar firmware,Firmware Frissítés,Firmw.-Aktualisierung,Mise à Jour du Micrologiciel,Firmware Bijwerken,Atualização de Firmware,ファームウェア更新,Aggiornamento firmware -_L_APP_SET_REBOOT,System Reboot,重启设备,重啟設備,Reiniciar,Rendszer Újraindítása,System-Neustart,Redémarrage du Système,Systeem Herstarten,Reinicialização do Sistema,システム再起動,Riavvio del sistema -_L_APP_SET_RESET_DEFAULT,Reset Default Setting,重置默认配置,重置默認配置,Restablecer config.,Alapért. Beállítás Visszaállítása,Standardeinstellungen,Rétablir les Paramètres par Défaut,Terugzetten Naar Standaardwaarden,Restaurar Configurações Padrão,デフォルト設定に戻す,Ripristina impostazioni predefinite -_L_APP_SET_RESET_DEFAULT_SUCCESS,Reset Success!,重置成功,重置成功,¡Configuración Restablecida!,Alapért. Beállítások Visszaállítása,Einstellungen zurückgesetzt!,Réinitialiser les Paramètres Par Défaut,Standaardinstellingen Herstellen,Redefinir a Configuração Padrão,設定を初期化,Ripristino riuscito! -_L_APP_SET_RESET_DEFAULT_CONFIRM,Confirm Reset Settings?,确认重置默认设置?,确认重置默认设置?,,,Auf Standardeinstellungen zurücksetzen?,,,,,Conferma il ripristino delle impostazioni? -_L_15S,15 Seconds,15秒,15秒,15 segundos,15 sec.,15 Sekunden,15 sec.,15 sec.,15 seg.,15秒,15 secondi -_L_30S,30 Seconds,30秒,30秒,30 segundos,30 sec.,30 Sekunden,30 sec.,30 sec.,30 seg.,30秒,30 secondi -_L_45S,45 Seconds,45秒,45秒,45 segundos,45 sec.,45 Sekunden,45 sec.,45 sec.,45 seg.,45秒,45 secondi -_L_1MIN,1 Minute,1分钟,1分鐘,1 minuto,1 min.,1 Minute,1 min.,1 min.,1 min.,1分,1 minuto -_L_2MIN,2 Minutes,2分钟,2分鐘,2 minutos,2 min.,2 Minuten,2 min.,2 min.,2 min.,2分,2 minuti -_L_3MIN,3 Minutes,3分钟,3分鐘,3 minutos,3 min.,3 Min,3 min.,3 min.,3 min.,3分,3 minuti -_L_AMIIBO_KEY_UNLOADED,Amiibo Key not loaded,Amiibo Key未加载,Amiibo Key未載入,Sin llave amiibo,Amiibo kulcs nincs betöltve,Schlüssel nicht gefunden,Clé Amiibo Non Chargée,Amiibo-Sleutel Niet Geladen,A chave Amiibo não foi carregada,Amiiboキーが読み込まれない,Chiave Amiibo non caricata -_L_UPLOAD_KEY_RETAIL_BIN,Upload the file key_retail.bin to the root directory of the storage.,上传文件 key_retail.bin\n到存储根目录下。,上傳檔案 key_retail.bin\n到儲存根目錄下。,Suba el archivo\nkey_retail.bin\nal directorio raíz.,Töltse fel a key_retail.bin fájlt a gyökérkönyvtárába.,Laden Sie die Datei key_retail.bin in das Stammverzeichnis des Speichers.,Téléchargez le fichier key_retail.bin dans le répertoire racine du stockage.,Upload het bestand key_retail.bin naar de hoofdmap van de opslag.,Carregue o arquivo key_retail.bin no diretório raiz do armazenamento.,key_retail.binファイルをストレージのルートディレクトリにアップロードする。,Carica il file key_retail.bin nella directory root della memoria. -_L_KNOW,Got it,知道了,知道了,Entendido,Megvan,Verstanden,Compris (NOTE please feel free to simply change any entry as needed),Begrepen,Entendi,了解,Ho Capito -_L_RANDOM_GENERATION,Rand. Tag,随机生成,隨機產生,Nuevo serial aleat.,Véletlengenerátor,Zufällige Tag-Nummer,Randomiser la Balise,Willekeurige Tag,Randomizar Etiqueta,タグのランダム化,Tag casuale -_L_AUTO_RANDOM_GENERATION,Auto Rand.,自动随机生成,自動隨機產生,Serial alea. aut,Automat. Véletlengenerátor,Autom. random.,Randomisation Automatique,Automatische Randomisatie,Randomização Automática,自動ランダム化,Casuale automatico -_L_SHOW_QRCODE,Display QR Code,显示二维码,顯示二維碼,Mostrar QR,QR-kód Megjelenítése,QR-Code,Afficher le Code QR,QR-Code Weergeven,Exibir QR Code,QRコード表示,Mostra codice QR -_L_DELETE_TAG,Delete Tag,删除标签,刪除標籤,Borrar amiibo..,Címke Törlése,Tag löschen,Supprimer la Balise,Tag Verwijderen,Excluir Etiqueta,タグの削除,Elimina tag -_L_DELETE_TAG_CONFIRM,Confirm Delete %s ?,确认删除 %s ?,確認刪除 %s ?,¿\nBorrar %s\n?,Törlés Megerősítése?,Bestätigen Sie das\nLöschen %s?,Confirmer la Suppression de %s ?,Bevestig Verwijderen %s ?,Confirmar Exclusão de %s ?,%s を削除しますか?,Conferma eliminazione %s\n? -_L_BACK_TO_DETAILS,Back to Tag Details,返回详情,返回詳情,[Detalles amiibo],Vissza a Címke Részletkhez,Zurück zu Tag-Details,Retour Aux Détails de L'étiquette,Terug naar Tag Details,Voltar Aos Detalhes da Tag,タグの詳細に戻る,[Torna ai dettagli del tag] -_L_BACK_TO_FILE_LIST,Back to File List,返回文件列表,返回檔案清單,[Lista Archivos],Vissza a Fájl Listához,[Zurück zur Liste],Retour à La Liste Des Fichiers,Terug naar Bestandslijst,Voltar Para a Lista de Arquivos,ファイル一覧に戻る,[Torna alla lista dei file] -_L_BACK_TO_MAIN_MENU,Back to Main Menu,返回主菜单,返回主選單,[Menú Principal],Vissza a Főmenübe,[Hauptmenü],Retour au Menu Principal,Terug naar Hoofdmenu,Voltar ao Menu Principal,メインメニューに戻る,[Torna al menu principale] -_L_FORMAT,Format,格式化,格式化,Formatear..,"Formátum ",Formatieren,Format,Formatteren,Formatar,フォーマット,Formatta.. -_L_FORMAT_STORAGE,Format Storage,格式化存储,格式化儲存,Formatear mem. Flash,Formátum Tárolás,Speicher formatieren,Format de Stockage,Opslag Formatteren,Formatar Armazenamento,保存領域フォーマット,Formatta memoria -_L_DELETE_ALL_DATA,This will delete all data. Confirm format?,将删除所有数据。\n确认格式化?,將刪除所有資料。\n確認格式化?,Se borrará todos los\ndatos.,Minden adatot töröl. Formázás megerősítése?,Alle Daten löschen?,Cette opération efface toutes les données. Confirmer le formatage?,Hierdoor worden alle gegevens gewist. Formatteren bevestigen?,Isso excluirá todos os dados. Confirmar a formatação?,これですべてのデータが削除されます。よろしいですか?,Questo cancellerà tutti i dati.\nConferma la formattazione? -_L_DELETING_MESSAGE,Formatting ..,格式化中..,格式化中..,Formateando..,Formázás ..,Formatierung..,Formatage ..,Formatteren ..,Formatando ..,書式設定 ..,Formattazione in corso .. -_L_MESSAGE,Message,提示,提示,Inicializar,Üzenet,Nachricht,Message,Bericht,Mensagem,メッセージ,Messaggio -_L_CONFIRM,Confirm,确定,確定,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認,Conferma -_L_CANCEL,Cancel,取消,取消,Cancelar,Megszüntet,Abbrechen,Annuler,Annuleren,Cancelar,キャンセル,Annulla -_L_BACK_TO_LIST,Back List,返回列表,返回清單,[Voler a lista],Vissza a Listához,[Zurück zur Liste],Retour à La Liste,Terug naar Lijst,Voltar à Lista,バックリスト,[Torna alla lista] -_L_NOT_MOUNTED,Not Mounted,未挂载,未掛載,No montado,Nincs Felszerelve,Speicher nicht ausgerüstet,Stockage non Monté,Niet Gekoppeld,Não Montado,ストレージがマウントされていません,Non montato -_L_MOUNTED_LFS,===Mounted[LFS]===,===已挂载[LFS]===,===已掛載[LFS]===,===[LFS]Montado===,===Szerelt[LFS]===,===Speicher [LFS]===,===Monté[LFS]===,===Gekoppeld[LFS]===,===Montado[LFS]===,===ストレージマウント[LFS]===,===Montato[LFS]=== -_L_MOUNTED_FFS,===Mounted[FFS]===,===已挂载[FFS]===,===已掛載[FFS]===,===[FFS]Montado===,===Szerelt[FFS]===,===Speicher [FFS]===,===Monté[FFS]===,===Gekoppeld[FFS]===,===Montado[FFS]===,===ストレージマウント[FFS]===,===Montato[FFS]=== -_L_TOTAL_SPACE,Total,总空间,總空間,Capacidad,Össz.,Gesamt,Total,Totaal,Total,トータル容量,Totale -_L_AVAILABLE_SPACE,Free,可用空间,可用空間,Libre,Ingyenes,Frei,Libre,Vrij,Livre,空き容量,Libero -_L_NOT_AMIIBO_FILE,This is not Amiibo file,这不是Amiibo文件,這不是Amiibo檔案,Este no es un archivo\namiibo válido,Ez nem Amiibo Fájl,Dies ist keine Amiibo-Datei,Ce n'est pas un fichier Amiibo,Dit is geen Amiibo-bestand,Este Não é um Arquivo Amiibo,これはAmiiboファイルではありません,Questo non è un file\nAmiibo valido -_L_READ_FILE_FAILED,Failed read the file,读取文件失败,讀取檔案失敗,Error al leer archivo,Fájl beolvasása sikerten,Lesen fehlgeschlagen,Échec de la lecture du fichier,Lezen van het bestand is mislukt,Falha na Leitura do Arquivo,ファイルの読み込みに失敗しました,Errore nella lettura del file -_L_INPUT_FOLDER_NAME,Input Folder Name:,输入文件夹名:,輸入資料夾名稱:,Nombre carpeta:,Bemeneti Mappa Neve:,Ordnername eingeben:,Nom du Dossier D'entrée:,Naam Invoermap:,Nome da Pasta de Entrada:,入力フォルダ名:,Nome cartella: -_L_INPUT_AMIIBO_NAME,Input Amiibo Name:,输入amiibo名:,輸入amiibo名稱:,Nombre amiibo:,Amiibo Neve:,Amiibo-Name eingeben:,Nom de l'Amiibo D'entrée:,Naam Amiibo Invoeren:,Nome do Amiibo de Entrada:,入力Amiibo名:,Nome Amiibo: -_L_DELETE,Delete,删除,刪除,Borrar,Töröl,Löschen,Supprimer,Verwijder,Excluir,削除,Elimina -_L_INPUT_NEW_NAME,Input New Name:,输入新名:,輸入新名稱:,Nuevo nombre:,Új Név Bevitele:,Neuen Namen eingeben:,Nouveau nom D'entrée:,Nieuwe Naam Invoeren:,Novo Nome de Entrada:,新しい名前を入力してください:,Nuovo nome: -_L_INVALID_INPUT,Invalid Input,无效的输入,無效的輸入,Entrada inválida,Érvénytelen Bemenet,Ungültige Eingabe,Entrée Invalide,Ongeldige Invoer,Entrada Inválida,無効な入力,Input non valido -_L_CREATE_NEW_FOLDER,Create New Folder..,新建文件夹..,新建資料夾..,Crear carpeta..,Új Mappa Létrehozása..,Neuer Ordner..,Créer un Nouveau Dossier..,Nieuwe Map Maken..,Criar Nova Pasta..,新しいフォルダを作成..,Crea cartella.. -_L_CREATE_NEW_TAG,Create New Tag..,新建标签..,新建標籤..,Crear amiibo..,Új Címke Létrehozása..,Neuer Tag..,Créer une Nouvelle Étiquette..,Nieuwe Tag Aanmaken..,Criar Nova Tag..,新規タグ作成..,Crea Amiibo.. -_L_CREATE_NEW_TAG_BATCH,Batch Create New Tag..,批量创建标签..,批量創建標簽..,Crear amiibo en lote..,Kötegelt Új Címke Létrehozása..,Mehrere Tags..,Créer de Nouvelles Étiquettes Par Lot..,Nieuwe Tags in een Batch Aanmaken..,Criar Novas Tags em Lote..,新規タグの一括作成..,Crea Amiibo in serie.. -_L_INPUT_TAG_NUM,Input Tag Number:,输入标签数量:,輸入標簽數量:,¿Cuántos?,Beviteli Címke Száma:,Tag-Anzahl eingeben:,Saisir le Numéro de l'Étiquette:,Labelnummer Invoeren:,Número da Tag de Entrada:,タグ番号を入力:,Numero di tag: -_L_CREATE_TOO_MANY_NUM,Only max %d tags created in a batch.,一次最多只能创建%d个标签,一次最多只能創建%d個標簽,Sólo se puede crear %d en lote,Max. létrehozható címke egy kötegben %d,Nur maximal %d Tags in einem Stapel erstellt.,Seulement %d balises maximum créées dans un lot.,Maximum %d tags aangemaakt in een batch.,Somente no máximo %d tags criadas em um lote.,1つのバッチで作成されるタグの数はは最大 %d までです。,Numero max di %d tag in serie. -_L_CREATING_TAG_BATCH,Creating tag,创建标签,創建標簽,Creando,Címke létrehozása,Tag erstellen,Création d'une balise,Tag aanmaken,Criando tag,タグの作成,Creazione tag -_L_CREATING_TAG_FAILED,Create tag %s failed!,写入 %s 标签失败,寫入 %s 標簽失敗,¡Error al crear %s!,Címke létrehozása %s sikertelen!,Erstellen von Tag %s fehlgeschlagen!,La création de la balise %s a échoué!,Aanmaken tag %s mislukt!,Falha ao criar a tag %s!,タグ %s の作成に失敗しました!,Creazione tag %s fallita! -_L_RENAME,Rename,重命名,重新命名,Renombrar,Átnevezés,Umbenennen,Renommer,Hernoem,Renomear,名前の変更,Rinomina -_L_OPEN_FOLDER_FAILED,Failed to open folder,打开文件夹失败,開啟資料夾失敗,Fallo al abrir carpeta,"Mappa megnyitása sikertelen ",Ordner konnte nicht geöffnet werden,Échec de l'ouverture du dossier,Kan map niet openen,Falha ao abrir a pasta,フォルダを開けませんでした,Errore nell'apertura della cartella -_L_RENAME_FAILED,Failed to rename\nError code,重命名失败,重新命名失敗,Fallo al renombrar\nCódigo de error,Átnevezés Sikertelen\nHibakód,Umbenennen fehlgeschlagen\nFehlercode,Échec du renommage.\nCode d'Erreur,Hernoemen mislukt.\nFoutcode,Falha ao renomear\nCódigo de erro,名前の変更に失敗しました。\nエラーコード,Errore nella rinomina\nCodice errore -_L_MAIN_RETURN,[RETURN],[返回],[返回],[Volver],[VISSZA],[Zurück],[RETOUR],[TERUG],[RETORNO],[リターン],[Torna indietro] -_L_RANDOM_MODE_MANUAL,Randomize (Manual),随机模式(手动),隨機模式(手動),Aleatorio (Manual),Randomizálás (Kézi),Zufällig (Manuell),Randomiser (Manuel),Willekeurig (Handmatig),Randomizar (Manual),ランダム化 (手動),Casuale (Manuale) -_L_RANDOM_MODE_AUTO,Randomize (Auto),随机模式(自动),隨機模式(自動),Aleatorio (Auto.),Randomizálás (Automat.),Zufällig (Automatisch),Randomiser (Automatique),Willekeurig (Automatisch),Randomizar (Automático),ランダム化(自動),Casuale (Automatico) -_L_SEQUENCE_MODE,Sequential mode,按序模式,按序模式,Modo Secuencial,Szekvenciális Mód,Sequentieller Modus,Mode Séquentiel,Sequentiële Modus,Modo Sequencial,シーケンシャルモード,Modo sequenziale -_L_READ_WRITE_MODE,Read-write mode,读写模式,讀寫模式,Modo Lectura/Escrit.,Olvasás-írás Mód,Lese-Schreib-Modus,Mode Lecture-Écriture,Lees-Schrijfmodus,Modo de Leitura e Gravação,読み書きモード,Modo lettura/scrittura -_L_AMIIBOLINK_V1,V1,V1(历史版本),V1(歷史版本),V1,V1,V1,V1,V1,V1,V1,V1 -_L_AMIIBOLINK_V2,V2,V2(最新版本),V2(最新版本),V2,V2,V2,V2,V2,V2,V2,V2 -_L_AMILOOP,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop -_L_MODE,Mode,模式,模式,Modo,Mód,Modus,Mode,Modus,Modo,モード,Modalità -_L_AUTO_RANDOM,Auto Random.,自动随机,自動隨機,Aleat. autom.,Automat. Randomizálás,Autom. randomisieren,Randomisation Automatique,Automatische Randomisatie,Randomização Automática,自動ランダム化,Auto. casuale -_L_COMPATIBLE_MODE,Compati. Mode,兼容模式,相容模式,Compatibil.,Kompatibilis Mód,Kompat. Modus,Mode Compatible,Compatibiliteitsmodus,Modo Compatível,互換モード,Mod. Compatibilità -_L_TAG_DETAILS,[Tag Details],[标签详情],[標籤詳情],[Volver a Detalles],[Tag Részletek],[Zurück zu Details],[Détails de l'Étiquette],[Tag Details],[Detalhes da Tag],[タグ詳細],[Torna ai dettagli] -_L_MAIN_MENU,[Main Menu],[主菜单],[主選單],[Menú Principal],[Főmenü],[Hauptmenü],[Menu Principal],[Hoofdmenu],[Menu Principal],[メインメニュー],[Menu principale] -_L_MODE_RANDOM,Rand. (Manual),随机(手动),隨機(手動),Aleat. man.,Random (Kézi),Manuell,Aléatoire (Manuel),Willekeurig (Handmatig),Randomização (Manual),ランダム化(手動),Casuale man. -_L_MODE_CYCLE,Sequential,按序,按序,Secuencial,Szekvenciális,Sequentiell,Séquentiel,Sequentieel,Sequencial,シーケンシャル,Sequenziale -_L_MODE_NTAG,Read/Write,读写,讀寫,Lect./Escr.,Olvasás/Írás,Lese/Schreib,Lecture/Écriture,Lezen/Schrijven,Leitura/gravação,リード/ライト,Lett./Scritt. -_L_MODE_RANDOM_AUTO_GEN,Rand. (Auto),随机(自动),隨機(自動),Aleat. auto.,Random (Automat.),Automatisch,Aléatoire (Automatique),Willekeurig (Automatisch),Randomização (Automática),ランダム化(自動),Auto. casuale -_L_BLANK_TAG,Blank NFC tag,空标签,空標籤,Amiibo no asignado,Üres NFC Címke,Leerer NFC-Tag,Étiquette NFC vierge,Lege NFC-tag,Tag NFC em Branco,ブランクNFCタグ,Amiibo non assegnato -_L_APP_AMIIDB,Amiibo Database,Amiibo数据库,Amiibo數據庫,Base datos amiibo,Amiibo Adatbázis,Amiibo-Datenbank,Base de Données Amiibo,Amiibo-Database,Banco de Dados Amiibo,Amiiboデータベース,Database Amiibo -_L_APP_AMMIDB_BROWSER,Browser..,查看..,查看..,Explorar..,Böngésző..,Browser..,Naviguer..,Browser..,Navegador..,ブラウザ..,Esplora.. -_L_APP_AMIIDB_SEARCH,Search..,搜索..,搜索..,Buscar..,Keresés..,Suche..,Recherche..,Zoeken..,Pesquisar..,検索..,Cerca.. -_L_APP_AMIIDB_MY_FAVORITES,My Favorites..,我的收藏..,我的收藏..,Mis Favoritos..,Kedvencek..,Meine Favoriten..,Mes Favoris..,Mijn Favorieten..,Meus Favoritos..,お気に入り..,I miei preferiti.. -_L_APP_AMIIDB_MY_TAGS,My Amiibo..,我的数据..,我的數據..,Mis amiibo..,Amiiboim..,Meine Amiibo..,Mes Amiibo..,Mijn Amiibo..,Meu Amiibo..,マイAmiibo..,I miei Amiibo.. -_L_APP_AMIIDB_SETTINGS,Settings..,设置..,設置..,Configuraciones..,Beállítások..,Einstellungen..,Paramètres..,Instellingen..,Configurações..,設定..,Impostazioni.. -_L_APP_AMIIDB_EXIT,[Exit],[退出],[退出],[Menú Principal],[Kilépés],[Beenden],[Quitter],[Afsluiten],[Sair],[終了],[Menu principale] -_L_APP_AMIIDB_BACK,[Back],[返回],[返回],[Volver],[Vissza],[Zurück],[Retour],[Terug],[Retornar],[戻る],[Torna indietro] -_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY,Keys,密钥文件,密鑰文件,Llaves,Kulcsok,Schlüssel,Touches,Toetsen,Teclas,キー,Chiavi -_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED,Loaded,已加载,已加載,Cargadas,Betöltve,geladen,Chargée,Geladen,Carregado,ロードされました,Caricate -_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED,NOT Loaded,未加载,未加載,NO cargadas,NINCS betöltve,fehlend,NON Chargée,NIET Geladen,NÃO Carregadas,ロードされていません,NON caricate -_L_APP_AMIIDB_SETTINGS_SLOT_NUM,Slot Num.,数据槽位,數據槽位,Cant. ranuras,Slot Száma,Steckplatznummer,Numéro d'Emplacement,Slotnummer,Número do Slot,スロット番号,Num. slot -_L_APP_AMIIDB_DETAIL_FAVORITE,Favorite..,收藏..,收藏..,Favorito..,Kedvenc..,Favorit..,Favorite..,Favoriet..,Favorito..,お気に入り..,Preferito.. -_L_APP_AMIIDB_DETAIL_SAVE_AS,Save As..,保存为..,保存爲..,Asignar en..,Mentés Másként..,Speichern unter..,Enregistrer Sous..,Opslaan Als..,Salvar como..,名前を付けて保存..,Assegna a.. -_L_APP_AMIIDB_DETAIL_BACK_DETAIL,[Back to Detail],[返回详情],[返回詳情],[Volver a Detalles],[Vissza a Részletekhez],[Zurück zu Details],[Retour au Détail],[Terug naar Detail],[Voltar Para Detalhes],[詳細に戻る],[Torna ai dettagli] -_L_APP_AMIIDB_DETAIL_BACK_LIST,[Back to List],[返回列表],[返回列表],[Volver a Lista],[Vissza a Listához],[Zurück zur Liste],[Retour à la Liste],[Terug naar Lijst].,[Voltar Para a Lista],[リストに戻る],[Torna alla lista] -_L_APP_AMIIDB_SEARCH_HEAD,Search:,搜索:,搜索:,Buscar:,Keresés:,Suche:,Recherche:,Zoeken:,Pesquisar:,検索する:,Cerca: -_L_APP_AMIIDB_MORE,[More..],[更多],[更多],[Más..],[Bővebben..],[Mehr..],[Plus..],[Meer..],[Mais..],[もっと見る..],[Più..] -_L_APP_AMIIDB_EMPTY_TAG,,<空标签>,<空標簽>,,<Üres Amiibo>,,,,,, -_L_APP_AMIIDB_SLOT_DELETE,Reset..,重置..,重置..,Borrar..,Újraindítás..,Zurücksetzen..,Réinitialiser..,Reset..,Reiniciar..,リセット..,Elimina.. -_L_APP_AMIIDB_CONFIRM,Confirm,确认,確認,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認する,Conferma -_L_APP_AMIIDB_CANCEL,Cancel,取消,取消,Cancelar,Törlés,Abbrechen,Annuler,Annuleren,Cancelar,キャンセルする,Annulla -_L_APP_AMIIDB_TIPS,Confirm,提示,提示,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認する,Conferma -_L_APP_AMIIDB_NEW,New..,新建..,新建..,Nueva..,Új..,Neu..,Nouveau..,Nieuw..,Novo..,新規..,Nuovo.. -_L_APP_AMIIDB_EMPTY,Empty..,清空..,清空..,Vaciar..,Üres..,Leeren..,Vider..,Leeg..,Vazio..,空..,Svuota.. -_L_APP_AMIIDB_DELETE,Delete..,删除..,删除..,Borrar..,Törlés..,Löschen..,Supprimer..,Verwijderen..,Excluir..,削除..,Cancella.. -_L_APP_AMIIDB_FAV_NEW_HEAD,New Fav. Folder:,新建收藏夹:,新建收藏夾:,Nueva Carp. Favoritos:,Új Kedvenc Mappa:,Neuer Favoriten-Ordner:,Nouveau Dossier Favori:,Nieuwe Favoriete Map:,Nova Pasta de Favoritos:,新しいお気に入りフォルダ:,Nuova cart. preferiti: -_L_APP_AMIIDB_FAV_EMPTY_MSG,Empty Fav. Folder?,确认清空收藏夹?,確認清空收藏夾?,¿Vaciar Carp. Favoritos?,Üres Kedvenc Mappa?,Favoritenordner leeren?,Vider le Dossier Favori?,Favoriete Map Leegmaken?,Esvaziar Pasta de Favoritos?,お気に入りフォルダを空にしますか?,Svuotare cart. preferiti? -_L_APP_AMIIDB_FAV_DELETE_MSG,Confirm Delete?,确认删除?,確認刪除?,¿Confirma borrado?,Törlés Megerősítése?,Favoritenordner löschen?,Confirmer la Suppression?,Verwijderen Bevestigen?,Confirmar Exclusão?,削除してよろしいですか?,Conferma cancellazione? -_L_APP_AMIIDB_FAV_SELECT_FOLDER,Select Fav. Folder..,选择收藏夹..,選擇收藏夾..,Selec. carp. favoritos..,Kedvenc Mappa Kiválasztása..,Fav.-Ordner auswählen..,Sélectionner le Dossier Favori..,Selecteer Favoriete Map..,Selecionar Pasta Favorita..,お気に入りフォルダを選択..,Selez. cart. preferiti.. -_L_APP_AMIIDB_FAV_SUCCESS,Favorite Success,收藏成功,收藏成功,¡Favorito correcto!,Kedvenc Sikeres,"Favorit erstellt ",Succès du Favori,Favoriet Geslaagd,Favorito Bem-Sucedido,お気に入りに追加されました,Preferito aggiunto! -_L_APP_AMIIDB_FAV_FAILED,Favorite Failed!,收藏失败,收藏失敗,¡Favorito fallido!,Kedvenc Sikertelen!,Favorit fehlgeschlagen!,Échec du Favori!,Favoriet Mislukt!,Favorito Falhou!,お気に入りに追加できませんでした!,Preferito non aggiunto! -_L_APP_AMIIDB_SLOT_SAVE_SUCCESS,Save Success,保存成功,保存成功,Asignación correcta,Sikeresen Mentve,Speichern erfolgreich,Sauvegarder Succès,Opslaan Succes,Salvar Com Êxito,保存されました,Assegnazione corretta -_L_APP_AMIIDB_SLOT_SAVE_FAILED,Save Failed!,保存失败,保存失敗,¡Asignación fallida!,Mentés Sikertelen!,Speichern fehlgeschlagen!,Sauvegarde Échouée!,Opslaan Mislukt!,Falha ao Salvar!,保存に失敗しました!,Assegnazione fallita! -_L_APP_CHAMELEON,Card Emulator,卡模拟器,卡模擬器,Emular Etiqueta RFID,Kártya Emulátor,Karten-Emulator,Emulateur de Carte,Kaart Emulator,Emulador de Cartão,カードエミュレータ,Emula tag RFID -_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL,Normal,正常,正常,Normal,Normál,Normal,Normal,Normaal,Normal,通常,Normale -_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED,Deny,拒绝,拒絕,Negar,Tagadni,Verweigern,Refuser,Weigeren,Negar,拒否,Nega -_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE,Ignore,忽略,忽略,Ignorar,Figyelmen Kívül Hagyni,Ignorieren,Ignorer,Negeren,Ignorar,無視,Ignora -_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW,Cache,缓存,緩存,Caché,Elrejt,Cache,Zwischenspeicher,Cache,Cache,キャッシュ,Cache -_L_APP_CHAMELEON_INITIALIZING,Initializing data ..,"初始化, 请稍后..","初始化, 請稍後..",Inicializando ambiente.\nPor favor espere..,Az adatok inicializálása ..,Daten initialisieren..,Initialisation des données ..,Gegevens Initialiseren ..,Inicialização de Dados ..,データの初期化 ..,Inizializzazione ambiente.\nPer favore attendi.. -_L_APP_CHAMELEON_CARD_SLOT,Slot,卡槽,卡槽,Ranura,Cella,Steckplatz,Fente,Slot,Slot,スロット,Slot -_L_APP_CHAMELEON_CARD_NICK,Nick,卡名,卡名,Apodo,Becenév,Spitzname,Pseudo,Bijnaam,Apelido,ニックネーム,Nickname -_L_APP_CHAMELEON_CARD_ID,ID,ID,ID,ID,ID,ID,ID,ID,ID,ID,ID -_L_APP_CHAMELEON_CARD_TYPE,Type,卡类型,卡類型,Tipo,Típus,Typ,Type de Données,Type,Tipo de Dados,タイプ,Tipo -_L_APP_CHAMELEON_CARD_DATA,Data..,卡数据..,卡數據..,Datos..,Adatok..,Daten..,Données..,Gegevens..,Dados..,データ..,Dati.. -_L_APP_CHAMELEON_CARD_ADVANCED,Advanced..,卡高级设置..,卡高級設置..,Avanzado..,Fejlett..,Erweitert..,Avancé..,Geavanceerd..,Avançado..,詳細設定..,Avanzato.. -_L_APP_CHAMELEON_CARD_SLOT_SETTINGS,Slots Settings..,卡槽管理..,卡槽管理..,Configuración..,Cella Beállításai..,Steckplätze..,Paramètres des Emplacements..,Slot Instellingen..,Configurações de Slots..,スロット設定..,Impostazioni.. -_L_APP_CHAMELEON_CARD_SLOT_NUM,Slot Num..,卡槽数量..,卡槽數量..,Cant. ranuras..,Cella Száma..,Steckplätze,Numéro d'Emplacement..,Slotnummer..,Número do Slot..,スロット番号..,Num. slot.. -_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS,Set Nick Success,设置卡名成功,設置卡名成功,Apodo cambiado.,Becenév Beállítása Sikeres,Spitzname erfolgreich,Définir le Pseudo Succès,Bijnaam Instellen Succes,Apelido Definido com Sucesso,ニックネームが設定されました,Cambio nickname riuscito. -_L_APP_CHAMELEON_CARD_SET_NICK_FAILED,Set Nick Failed!,设置卡名失败,設置卡名失敗,¡Falló cambio apodo!,Becenév Beállítása Sikertelen!,Spitzname fehlgeschlagen!,Définir le Pseudo a Échoué!,Bijnaam Instellen Mislukt!,Falha ao Definir Apelido!,ニックネームが設定できませんでした!,Cambio nickname fallito! -_L_APP_CHAMELEON_CARD_INPUT_NICK,Input Nick:,输入卡名:,輸入卡名:,Apodo:,Becenév Bevitele:,Spitzname eingeben:,Entrer le Pseudo:,Voer Bijnaam In:,Insira o Apelido:,ニックネームを入力してください:,Nickname: -_L_APP_CHAMELEON_CARD_DATA_LOAD,Load..,加载..,加載..,Cargar..,Betöltés..,Laden..,Charger..,Laden..,Carregar..,ロード..,Carica.. -_L_APP_CHAMELEON_CARD_DATA_SAVE,Save..,导出..,導出..,Guardar..,Mentés..,Speichern..,Sauvegarder..,Opslaan..,Salvar..,保存..,Salva.. -_L_APP_CHAMELEON_CARD_DATA_FACTORY,Factory..,重置..,重置..,Inicializar..,Visszaállítás..,Zurücksetzen..,Rétablir Les Valeurs Par Défaut..,Terugzetten Naar Standaard..,Restaurar Padrões..,初期化..,Inizializza.. -_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS,Data Factory Success,卡片初始化成功,卡片初始化成功,¡Datos inicializados!,Adatok Visszaállítása Sikeres,Daten zurückgesetzt,Réinitialisation des Données Succès,Fabriekgegeven terugzetten Succesvol,Restauração de Dados Bem-Sucedida,初期化成功,Dati inizializzati! -_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND,File Not Found,文件不存在,文件不存在,Archivo no encontrado,Fájl Nem Található,Datei nicht gefunden,Fichier Non Trouvé,Bestand Niet Gevonden,Arquivo Não Encontrado,ファイルが見つかりません,File non trovato -_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH,File Size Not Match,文件大小不匹配,文件大小不匹配,Tamaño archivo incorrecto,Fájl Mérete Nem Egyezik,Dateigröße inkorrekt,La Taille du Fichier ne Correspond Pas,Bestandsgrootte Komt Niet Overeen,Tamanho do Arquivo Não Corresponde,ファイルサイズが一致しません,Dimensione file non corretta -_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED,Load File Failed,读取文件失败,讀取文件失敗,Falla carga archivo,Fájl betöltése Sikertelen,Laden fehlgeschlagen,Échec du Chargement du Fichier,Bestand Laden Mislukt,Falha no Carregamento do Arquivo,ファイルの読み込み失敗,Caricamento file fallito -_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS,Load File Success,加载卡片数据成功,加載卡片數據成功,Carga archivo correcta,Fájl Betöltése Sikeres,Laden erfolgreich,Chargement du Fichier Réussi,Laad Bestand Succesvol,Sucesso no Carregamento do Arquivo,ファイルの読み込みに成功,Caricamento file riuscito -_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME,Input File Name:,输入文件名,輸入文件名,Nombre archivo:,Bemeneti Fájl Neve:,Dateinamen eingeben:,Saisir le Nom du Fichier:,Bestandsnaam Invoeren:,Nome do Arquivo de Entrada:,入力ファイル名:,Nome file: -_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED,Save File Failed!,写入文件失败,寫入文件失敗,¡Error al guardar!,Fájl Mentése Sikertelen!,Speichern fehlgeschlagen!,Échec de l'Enregistrement du Fichier!,Bestand Opslaan Mislukt!,Falha ao Salvar o Arquivo!,ファイルの保存に失敗しました!,Errore nel salvataggio! -_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS,Save File Success,导出卡片数据成功,導出卡片數據成功,Guardado correcto,Fájl Mentése Sikeres,Speichern erfolgreich,Sauvegarde du Fichier Réussie,Bestand Opslaan Gelukt,Arquivo Salvo com êxito,ファイルが保存されました,Salvataggio riuscito -_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE,Custom Mode,自定义模式,自定義模式,Modo personali.,Egyéni Mód,Benutzermodus,Mode Personnalisé,Aangepaste Modus,Modo Personalizado,カスタムモード,Modalità personalizzata -_L_APP_CHAMELEON_CARD_GEN1A_MODE,Gen1A Enabled,Gen1A模式,Gen1A模式,Gen1A habilitada,Gen1A Engedélyezve,Gen1A aktiv,Gen1A Activé,Gen1A Ingeschakeld,Gen1A Ativada,Gen1A 有効,Gen1A abilitata -_L_APP_CHAMELEON_CARD_GENERATE_UID,Rand. UID,生成UID,生成UID,Generar nuevo UID,Véletlen UID,Randomisierte UID,Randomiser l'UID,Willekeurige UID,UID Aleatório,UIDのランダム化,Genera nuovo UID -_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS,UID Generated,UID已生成,UID已生成,UID generado,Generált UID,UID generiert,UID Généré,UID Gegenereerd,UID Gerado,UID 生成,UID generato -_L_APP_CHAMELEON_CARD_GEN2_MODE,Gen2 Enabled,Gen2模式,Gen2模式,Gen2 habilitada,Gen2 Engedélyezve,Gen2 aktiv,Gen2 Activé,Gen2 Ingeschakeld,Gen2 Ativado,Gen2 有効,Gen2 abilitata -_L_APP_CHAMELEON_CARD_WRITE_MODE,Write Mode,写入模式,寫入模式,Modo escrit.,Írási Mód,Schreibmodus,Mode d'Écriture,Schrijfmodus,Modo de Gravação,書き込みモード,Modalità scrittura -_L_APP_CHAMELEON_CARD_ADV_ID_EDIT_INVALID_INPUT,Invalid Input!,无效的输入!,無效的輸入!,¡Entrada inválida!,Érvénytelen bemenet!,Ungültige Eingabe!,Entrée Invalide!,Ongeldige Invoer!,Entrada Inválida!,無効な入力,Input non valido! -_L_APP_CHAMELEON_CARD_TYPE_FACTORY_DATA_CONFRIM,Card type changed. \nFactory card data?,卡类型已修改\n重置卡数据?,卡類型已修改\n重置卡數據?,Tipo tarjeta modificado\n¿Inicializar tarjeta?,A kártya típusa megváltozott.\nGyári kártyaadatok?,Kartentyp geändert. \nKartendaten zurücksetzen?,Le Type de Carte a Été Modifié. \nRéinitialiser les Données de la Carte?,Kaarttype gewijzigd. \nGegevens terugzetten naar standaard?,O tipo de cartão foi alterado. \nRedefinir dados do cartão?,カードの種類が変更されました。\nカードデータを初期化しますか?,Tipo di carta modificato\nInizializzare carta? +CODE,en_US,zh_Hans,zh_TW,es_ES,hu_HU,de_DE,fr_FR,nl_NL,pt_BR,ja_JP,it_IT,ru_RU +_L_ON,ON,开,開,SI,BE,AN,ACTIVÉ,AAN,LIGADO,オン,SI,Включено +_L_OFF,OFF,关,關,NO,KI,AUS,DÉSACTIVÉ,UIT,DESLIGADO,オフ,NO,Выключено +_L_ON_F,[ON],[开],[開],[SI],[BE],[AN],[ACTIVÉ],[AAN],[LIGADO],[オン],[SI],[Вкл] +_L_OFF_F,[OFF],[关],[關],[NO],[KI],[AUS],[DÉSACTIVÉ],[UIT],[DESLIGADO],[オフ],[NO],[Выкл] +_L_BACK,Back,返回,返回,[Atrás],Vissza,Zurück,Retour,Terug,Voltar,戻る,Indietro,[Назад] +_L_ERR,Error,错误,錯誤,Error,Hiba,Fehler,Erreur,Fout,Erro,エラー,Errore,Ошибка +_L_ERR_CODE,Error Code,错误码,錯誤碼,Código error,Hibakód,Fehlercode,Code d'Erreur,Foutcode,Código de Erro,エラーコード,Codice errore,Код ошибки +_L_APP_AMIIBO,Amiibo Emulator,Amiibo模拟器,Amiibo模擬器,Emulador de amiibo,Amiibo Emulátor,Amiibo Emulator,Emulateur Amiibo,Amiibo-Emulator,Emulador de Amiibo,Amiiboエミュレータ,Emulatore Amiibo,Эмулятор Amiibo +_L_APP_AMIIBOLINK,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink,AmiiboLink +_L_APP_BLE,BLE File Transfer,蓝牙传输,藍牙傳送,Transferencia BLE,BLE Fájltovábbítás,BLE Dateitransfer,Transfert de Fichiers BLE,BLE Bestandsoverdracht,Transferência de Arquivos BLE,BLEファイル転送,Trasferimento file BLE,Передача файлов +_L_APP_BLE_TITLE,BLE File Transfer,蓝牙传输,藍牙傳送,Transferencia BLE,BLE Fájltovábbítás,BLE Dateitransfer,Transfert de Fichiers BLE,BLE Bestandsoverdracht,Transferência de Arquivos BLE,BLEファイル転送,Trasferimento file BLE,по Bluetooth +_L_APP_PLAYER,Video Player,动画播放器,動畫播放器,Reproductor vídeo,Video Lejátszó,Videoplayer,Lecteur Vidéo,Videospeler,Reprodutor de Vídeo,ビデオプレーヤー,Lettore video,Видеоплеер +_L_APP_SET,Settings,系统设置,系統設定,Configuraciones,Beállítások,Einstellungen,Paramètres,Instellingen,Configurações,設定,Impostazioni,Настройки +_L_APP_SET_VERSION,Version,版本,版本,Versión,Verzió,Version,Version,Versie,Versão,バージョン,Versione,Версия +_L_APP_SET_STORAGE_USED,Used,已用,已用,Usado,Használt,Belegt,Utilisé,Gebruikt,Usado,使用ストレージ,Usato,Занято +_L_APP_SET_STORAGE,External Storage,外置存储,外置存儲,M. Flash,Külső Tároló,Externer Speicher,Stockage Externe,Externe Opslag,Armazenamento Externo,外部ストレージ,Memoria esterna,Накопитель +_L_APP_SET_OLED_CONTRAST,OLED Contrast,OLED对比度,OLED對比度,Contraste OLED,OLED Kontraszt,OLED Kontrast,Contraste OLED,OLED-Contrast,Contraste do OLED,OLEDコントラスト,Contrasto OLED,Контрастность +_L_APP_SET_OLED_CONTRAST_TITLE,OLED Contrast,OLED对比度,OLED對比度,Contraste OLED,OLED Kontraszt,OLED Kontrast,Contraste OLED,OLED-Contrast,Contraste do OLED,OLEDコントラスト,Contrasto OLED,Контраст OLED +_L_APP_SET_LCD_BACKLIGHT,Backlight,背光亮度,背光亮度,Brillo,Háttérvilágítás,Beleuchtung,Rétroéclairage,Achtergrondverlichting,Luz de Fundo,バックライト,Luminosità,Подсветка +_L_APP_SET_LCD_BACKLIGHT_TITLE,Backlight Brightness,背光亮度,背光亮度,Brillo de fondo,Háttérvilágítás Fényerő,Helligkeit,Luminosité du Rétroéclairage,Helderheid Achtergrondverlichting,Brilho da Luz de Fundo,バックライトの明るさ,Luminosità schermo,Яркость подсветки +_L_APP_SET_ANIM,Menu Animation,动画效果,動畫效果,Animar menú,Menü Animáció,Menü Animation,Animation du Menu,Menu-Animatie,Animação do Menu,メニュー アニメーション,Animazione menu,Анимация меню +_L_APP_SET_LIPO_BAT,LiPO Battery,LiPO电池,LiPO電池,Batería LiPO,LiPO Akkumulátor,LiPO Batterie,Batterie LiPO,LiPO-Batterij,Bateria LiPO,LiPOバッテリー,Batteria LiPO,Батарея LiPO +_L_APP_SET_SHOW_MEM_USAGE,Memory Used,内存使用率,記憶體使用率,Mem. usada,Használt Memória,Speicheranzeige,Mémoire Utilisée,Gebruikt Geheugen,Memória Usada,使用メモリ,Memoria usata,Статус памяти +_L_APP_SET_HIBERNATE,Fast Wakeup,快速唤醒,快速喚醒,Hibernar,Gyors Ébresztés,Schnelles Aufwachen,Réveil Rapide,Snel Ontwaken,Despertar Rápido,高速起動,Risveglio rapido,Гибернация +_L_APP_SET_SLEEP_TIMEOUT,Sleep Timeout,休眠时间,休眠時間,Dormir en:,Alvási Időkorlát,Standby nach,Délai de mise en veille,Time-out Slaapstand,Tempo Limite de Suspensão,スリープタイムアウト,Timeout di sospensione,Таймаут сна +_L_APP_SET_LANGUAGE,Language,系统语言,系統語言,Idioma,Nyelv,Sprache,Langue,Taal,Idioma,言語,Lingua,Язык +_L_APP_SET_DFU,Firmware Update,固件更新,軟體升級,Actualizar firmware,Firmware Frissítés,Firmw. Aktualisierung,Mise à Jour du Micrologiciel,Firmware Bijwerken,Atualização de Firmware,ファームウェア更新,Aggiornamento firmware,Обновление ПО +_L_APP_SET_REBOOT,System Reboot,重启设备,重啟設備,Reiniciar,Rendszer Újraindítása,System Neustart,Redémarrage du Système,Systeem Herstarten,Reinicialização do Sistema,システム再起動,Riavvio del sistema,Перезагрузка +_L_APP_SET_RESET_DEFAULT,Reset Default Setting,重置默认配置,重置默認配置,Restablecer config.,Alapért. Beállítás Visszaállítása,Standardeinstellungen,Rétablir les Paramètres par Défaut,Terugzetten Naar Standaardwaarden,Restaurar Configurações Padrão,デフォルト設定に戻す,Ripristina impostazioni predefinite,Сброс настроек +_L_APP_SET_RESET_DEFAULT_SUCCESS,Reset Success!,重置成功,重置成功,¡Configuración Restablecida!,Alapért. Beállítások Visszaállítása,Einstellungen zurückgesetzt!,Réinitialiser les Paramètres Par Défaut,Standaardinstellingen Herstellen,Redefinir a Configuração Padrão,設定を初期化,Ripristino riuscito!,Сброс выполнен +_L_APP_SET_RESET_DEFAULT_CONFIRM,Confirm Reset Settings?,确认重置默认设置?,确认重置默认设置?,,,Auf Standardeinstellungen zurücksetzen?,,,,,Conferma il ripristino delle impostazioni?,Выполнить? +_L_15S,15 Seconds,15秒,15秒,15 segundos,15 sec.,15 Sekunden,15 sec.,15 sec.,15 seg.,15秒,15 secondi,15 секунд +_L_30S,30 Seconds,30秒,30秒,30 segundos,30 sec.,30 Sekunden,30 sec.,30 sec.,30 seg.,30秒,30 secondi,30 секунд +_L_45S,45 Seconds,45秒,45秒,45 segundos,45 sec.,45 Sekunden,45 sec.,45 sec.,45 seg.,45秒,45 secondi,45 секунд +_L_1MIN,1 Minute,1分钟,1分鐘,1 minuto,1 min.,1 Minute,1 min.,1 min.,1 min.,1分,1 minuto,1 минута +_L_2MIN,2 Minutes,2分钟,2分鐘,2 minutos,2 min.,2 Minuten,2 min.,2 min.,2 min.,2分,2 minuti,2 минуты +_L_3MIN,3 Minutes,3分钟,3分鐘,3 minutos,3 min.,3 Minuten,3 min.,3 min.,3 min.,3分,3 minuti,3 минуты +_L_AMIIBO_KEY_UNLOADED,Amiibo Key not loaded,Amiibo Key未加载,Amiibo Key未載入,Sin llave amiibo,Amiibo kulcs nincs betöltve,Amiibo Schlüssel fehlt,Clé Amiibo Non Chargée,Amiibo-Sleutel Niet Geladen,A chave Amiibo não foi carregada,Amiiboキーが読み込まれない,Chiave Amiibo non caricata,Отсутствует файл ключа +_L_UPLOAD_KEY_RETAIL_BIN,Upload the file key_retail.bin to the root directory of the storage.,上传文件 key_retail.bin\n到存储根目录下。,上傳檔案 key_retail.bin\n到儲存根目錄下。,Suba el archivo\nkey_retail.bin\nal directorio raíz.,Töltse fel a key_retail.bin fájlt a gyökérkönyvtárába.,Platzieren Sie die Datei key_retail.bin im Hauptverzeichnis des Speichers.,Téléchargez le fichier key_retail.bin dans le répertoire racine du stockage.,Upload het bestand key_retail.bin naar de hoofdmap van de opslag.,Carregue o arquivo key_retail.bin no diretório raiz do armazenamento.,key_retail.binファイルをストレージのルートディレクトリにアップロードする。,Carica il file key_retail.bin nella directory root della memoria.,Поместите key_retail.bin\n в корень накопителя +_L_KNOW,Got it,知道了,知道了,Entendido,Megvan,Verstanden,Compris,Begrepen,Entendi,了解,Ho Capito,[Понятно] +_L_RANDOM_GENERATION,Rand. Tag,随机生成,隨機產生,Nuevo serial aleat.,Véletlengenerátor,Zufällige UUID,Randomiser la Balise,Willekeurige Tag,Randomizar Etiqueta,タグのランダム化,Tag casuale,Сгенерировать UUID +_L_AUTO_RANDOM_GENERATION,Auto Rand.,自动随机生成,自動隨機產生,Serial alea. aut,Automat. Véletlengenerátor,Zufällige UUID (Automatisch),Randomisation Automatique,Automatische Randomisatie,Randomização Automática,自動ランダム化,Casuale automatico,Автогенерация +_L_SHOW_QRCODE,Display QR Code,显示二维码,顯示二維碼,Mostrar QR,QR-kód Megjelenítése,QR Code,Afficher le Code QR,QR-Code Weergeven,Exibir QR Code,QRコード表示,Mostra codice QR,QR-код +_L_DELETE_TAG,Delete Tag,删除标签,刪除標籤,Borrar amiibo...,Címke Törlése,Tag löschen,Supprimer la Balise,Tag Verwijderen,Excluir Etiqueta,タグの削除,Elimina tag,Удалить тег +_L_DELETE_TAG_CONFIRM,Confirm Delete %s ?,确认删除 %s ?,確認刪除 %s ?,¿\nBorrar %s\n?,Törlés Megerősítése?,Löschen von %s bestätigen?,Confirmer la Suppression de %s ?,Bevestig Verwijderen %s ?,Confirmar Exclusão de %s ?,%s を削除しますか?,Conferma eliminazione %s\n?,Удалить %s? +_L_BACK_TO_DETAILS,Back to Tag Details,返回详情,返回詳情,[Detalles amiibo],Vissza a Címke Részletkhez,Zurück zu Tag Details,Retour Aux Détails de L'étiquette,Terug naar Tag Details,Voltar Aos Detalhes da Tag,タグの詳細に戻る,[Torna ai dettagli del tag],[Назад к деталям] +_L_BACK_TO_FILE_LIST,Back to File List,返回文件列表,返回檔案清單,[Lista Archivos],Vissza a Fájl Listához,Zurück zur Liste,Retour à La Liste Des Fichiers,Terug naar Bestandslijst,Voltar Para a Lista de Arquivos,ファイル一覧に戻る,[Torna alla lista dei file],[Назад к списку] +_L_BACK_TO_MAIN_MENU,Back to Main Menu,返回主菜单,返回主選單,[Menú Principal],Vissza a Főmenübe,Hauptmenü,Retour au Menu Principal,Terug naar Hoofdmenu,Voltar ao Menu Principal,メインメニューに戻る,[Torna al menu principale],[В главное меню] +_L_FORMAT,Format,格式化,格式化,Formatear...,Formátum ,Formatieren,Format,Formatteren,Formatar,フォーマット,Formatta...,Отформатировать +_L_FORMAT_STORAGE,Format Storage,格式化存储,格式化儲存,Formatear mem. Flash,Formátum Tárolás,Speicher formatieren,Format de Stockage,Opslag Formatteren,Formatar Armazenamento,保存領域フォーマット,Formatta memoria,Форматирование +_L_DELETE_ALL_DATA,This will delete all data. Confirm format?,将删除所有数据。\n确认格式化?,將刪除所有資料。\n確認格式化?,Se borrará todos los\ndatos.,Minden adatot töröl. Formázás megerősítése?,Alle Daten löschen?,Cette opération efface toutes les données. Confirmer le formatage?,Hierdoor worden alle gegevens gewist. Formatteren bevestigen?,Isso excluirá todos os dados. Confirmar a formatação?,これですべてのデータが削除されます。よろしいですか?,Questo cancellerà tutti i dati.\nConferma la formattazione?,Это удалит все данные.\nВыполнить? +_L_DELETING_MESSAGE,Formatting ...,格式化中...,格式化中...,Formateando...,Formázás ...,Formatiere...,Formatage ...,Formatteren ...,Formatando ...,書式設定 ...,Formattazione in corso ...,Форматирование... +_L_MESSAGE,Message,提示,提示,Inicializar,Üzenet,Meldung,Message,Bericht,Mensagem,メッセージ,Messaggio,Сообщение +_L_CONFIRM,Confirm,确定,確定,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認,Conferma,Да +_L_CANCEL,Cancel,取消,取消,Cancelar,Megszüntet,Abbrechen,Annuler,Annuleren,Cancelar,キャンセル,Annulla,Отмена +_L_BACK_TO_LIST,Back List,返回列表,返回清單,[Voler a lista],Vissza a Listához,Zurück zur Liste,Retour à La Liste,Terug naar Lijst,Voltar à Lista,バックリスト,[Torna alla lista],[Назад к списку] +_L_NOT_MOUNTED,Not Mounted,未挂载,未掛載,No montado,Nincs Felszerelve,Speicher nicht eingebunden,Stockage non Monté,Niet Gekoppeld,Não Montado,ストレージがマウントされていません,Non montato,==[Не подключён]== +_L_MOUNTED_LFS,===Mounted[LFS]===,===已挂载[LFS]===,===已掛載[LFS]===,===[LFS]Montado===,===Szerelt[LFS]===,===Speicher [LFS]===,===Monté[LFS]===,===Gekoppeld[LFS]===,===Montado[LFS]===,===ストレージマウント[LFS]===,===Montato[LFS]===,==Подключён[LFS]== +_L_MOUNTED_FFS,===Mounted[FFS]===,===已挂载[FFS]===,===已掛載[FFS]===,===[FFS]Montado===,===Szerelt[FFS]===,===Speicher [FFS]===,===Monté[FFS]===,===Gekoppeld[FFS]===,===Montado[FFS]===,===ストレージマウント[FFS]===,===Montato[FFS]===,==Подключён[FFS]== +_L_TOTAL_SPACE,Total,总空间,總空間,Capacidad,Össz.,Gesamt,Total,Totaal,Total,トータル容量,Totale,Ёмкость +_L_AVAILABLE_SPACE,Free,可用空间,可用空間,Libre,Ingyenes,Frei,Libre,Vrij,Livre,空き容量,Libero,Свободно +_L_NOT_AMIIBO_FILE,This is not Amiibo file,这不是Amiibo文件,這不是Amiibo檔案,Este no es un archivo\namiibo válido,Ez nem Amiibo Fájl,Keine Amiibo Datei,Ce n'est pas un fichier Amiibo,Dit is geen Amiibo-bestand,Este Não é um Arquivo Amiibo,これはAmiiboファイルではありません,Questo non è un file\nAmiibo valido,Этот файл не Amiibo +_L_READ_FILE_FAILED,Failed read the file,读取文件失败,讀取檔案失敗,Error al leer archivo,Fájl beolvasása sikerten,Lesen fehlgeschlagen,Échec de la lecture du fichier,Lezen van het bestand is mislukt,Falha na Leitura do Arquivo,ファイルの読み込みに失敗しました,Errore nella lettura del file,Ошибка чтения файла +_L_INPUT_FOLDER_NAME,Input Folder Name:,输入文件夹名:,輸入資料夾名稱:,Nombre carpeta:,Bemeneti Mappa Neve:,Ordnername eingeben:,Nom du Dossier D'entrée:,Naam Invoermap:,Nome da Pasta de Entrada:,入力フォルダ名:,Nome cartella:,Задайте имя папки: +_L_INPUT_AMIIBO_NAME,Input Amiibo Name:,输入amiibo名:,輸入amiibo名稱:,Nombre amiibo:,Amiibo Neve:,Amiibo Namen eingeben:,Nom de l'Amiibo D'entrée:,Naam Amiibo Invoeren:,Nome do Amiibo de Entrada:,入力Amiibo名:,Nome Amiibo:,Задайте имя Amiibo: +_L_DELETE_FILE,Delete %s ?,删除 %s ?,刪除 %s ?,¿Borrar el %s ?,Törli a %s fájlt?,%s löschen ?,Supprimer le %s ?,%s verwijderen ?,Excluir %s ?,%s を削除しますか ?,Eliminare %s ?,Удалить %s? +_L_DELETE,Delete...,删除...,刪除...,Borrar...,Töröl...,Löschen...,Supprimer...,Verwijder...,Excluir...,削除...,Elimina...,Удалить... +_L_TIPS,Confirm,提示,提示,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認する,Conferma,Внимание +_L_INPUT_NEW_NAME,Input New Name:,输入新名:,輸入新名稱:,Nuevo nombre:,Új Név Bevitele:,Neuen Namen eingeben:,Nouveau nom D'entrée:,Nieuwe Naam Invoeren:,Novo Nome de Entrada:,新しい名前を入力してください:,Nuovo nome:,Задайте новое имя: +_L_INVALID_INPUT,Invalid Input,无效的输入,無效的輸入,Entrada inválida,Érvénytelen Bemenet,Ungültige Eingabe,Entrée Invalide,Ongeldige Invoer,Entrada Inválida,無効な入力,Input non valido,Недопустимый ввод +_L_CREATE_NEW_FOLDER,Create New Folder...,新建文件夹...,新建資料夾...,Crear carpeta...,Új Mappa Létrehozása...,Neuer Ordner...,Créer un Nouveau Dossier...,Nieuwe Map Maken...,Criar Nova Pasta...,新しいフォルダを作成...,Crea cartella...,Создать новую папку... +_L_CREATE_NEW_TAG,Create New Tag...,新建标签...,新建標籤...,Crear amiibo...,Új Címke Létrehozása...,Neuer Tag...,Créer une Nouvelle Étiquette...,Nieuwe Tag Aanmaken...,Criar Nova Tag...,新規タグ作成...,Crea Amiibo...,Создать новый тег... +_L_CREATE_NEW_TAG_BATCH,Batch Create New Tag...,批量创建标签...,批量創建標簽...,Crear amiibo en lote...,Kötegelt Új Címke Létrehozása...,Mehrere Tags erstellen...,Créer de Nouvelles Étiquettes Par Lot...,Nieuwe Tags in een Batch Aanmaken...,Criar Novas Tags em Lote...,新規タグの一括作成...,Crea Amiibo in serie...,Создать группу тегов... +_L_INPUT_TAG_NUM,Input Tag Number:,输入标签数量:,輸入標簽數量:,¿Cuántos?,Beviteli Címke Száma:,Tag Anzahl eingeben:,Saisir le Numéro de l'Étiquette:,Labelnummer Invoeren:,Número da Tag de Entrada:,タグ番号を入力:,Numero di tag:,Задайте число тегов: +_L_CREATE_TOO_MANY_NUM,Only max %d tags created in a batch.,一次最多只能创建%d个标签,一次最多只能創建%d個標簽,Sólo se puede crear %d en lote,Max. létrehozható címke egy kötegben %d,Sie können nur maximal %d Tags auf einmal erstellen.,Seulement %d balises maximum créées dans un lot.,Maximum %d tags aangemaakt in een batch.,Somente no máximo %d tags criadas em um lote.,1つのバッチで作成されるタグの数はは最大 %d までです。,Numero max di %d tag in serie.,За раз можно создать\n не более %d тегов +_L_CREATING_TAG_BATCH,Creating tag,创建标签,創建標簽,Creando,Címke létrehozása,Tag erstellen,Création d'une balise,Tag aanmaken,Criando tag,タグの作成,Creazione tag,Создание тега +_L_CREATING_TAG_FAILED,Create tag %s failed!,写入 %s 标签失败,寫入 %s 標簽失敗,¡Error al crear %s!,Címke létrehozása %s sikertelen!,Erstellen von Tag %s fehlgeschlagen!,La création de la balise %s a échoué!,Aanmaken tag %s mislukt!,Falha ao criar a tag %s!,タグ %s の作成に失敗しました!,Creazione tag %s fallita!,Ошибка создания тега %s +_L_RENAME,Rename...,重命名...,重新命名...,Renombrar...,Átnevezés...,Umbenennen...,Renommer...,Hernoem...,Renomear...,名前の変更...,Rinomina...,Переименовать... +_L_OPEN_FOLDER_FAILED,Failed to open folder,打开文件夹失败,開啟資料夾失敗,Fallo al abrir carpeta,Mappa megnyitása sikertelen ,Ordner konnte nicht geöffnet werden,Échec de l'ouverture du dossier,Kan map niet openen,Falha ao abrir a pasta,フォルダを開けませんでした,Errore nell'apertura della cartella,Ошибка открытия папки +_L_RENAME_FAILED,Failed to rename\nError code,重命名失败,重新命名失敗,Fallo al renombrar\nCódigo de error,Átnevezés Sikertelen\nHibakód,Umbenennen fehlgeschlagen\nFehlercode,Échec du renommage.\nCode d'Erreur,Hernoemen mislukt.\nFoutcode,Falha ao renomear\nCódigo de erro,名前の変更に失敗しました。\nエラーコード,Errore nella rinomina\nCodice errore,Ошибка переименования +_L_MAIN_RETURN,[RETURN],[返回],[返回],[Volver],[VISSZA],[Zurück],[RETOUR],[TERUG],[RETORNO],[リターン],[Torna indietro],[Назад] +_L_RANDOM_MODE_MANUAL,Randomize (Manual),随机模式(手动),隨機模式(手動),Aleatorio (Manual),Randomizálás (Kézi),Zufällige UUID (Manuell),Randomiser (Manuel),Willekeurig (Handmatig),Randomizar (Manual),ランダム化 (手動),Casuale (Manuale),Ручная генерация UUID +_L_RANDOM_MODE_AUTO,Randomize (Auto),随机模式(自动),隨機模式(自動),Aleatorio (Auto.),Randomizálás (Automat.),Zufällige UUID (Automatisch),Randomiser (Automatique),Willekeurig (Automatisch),Randomizar (Automático),ランダム化(自動),Casuale (Automatico),Автогенерация UUID +_L_SEQUENCE_MODE,Sequential mode,按序模式,按序模式,Modo Secuencial,Szekvenciális Mód,Sequentieller Modus,Mode Séquentiel,Sequentiële Modus,Modo Sequencial,シーケンシャルモード,Modo sequenziale,Последовательный +_L_READ_WRITE_MODE,Read-write mode,读写模式,讀寫模式,Modo Lectura/Escrit.,Olvasás-írás Mód,Lese-Schreibmodus,Mode Lecture-Écriture,Lees-Schrijfmodus,Modo de Leitura e Gravação,読み書きモード,Modo lettura/scrittura,Чтение-запись +_L_AMIIBOLINK_V1,V1,V1(历史版本),V1(歷史版本),V1,V1,V1,V1,V1,V1,V1,V1,V1 +_L_AMIIBOLINK_V2,V2,V2(最新版本),V2(最新版本),V2,V2,V2,V2,V2,V2,V2,V2,V2 +_L_AMILOOP,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop,AmiLoop +_L_MODE,Mode,模式,模式,Modo,Mód,Modus,Mode,Modus,Modo,モード,Modalità,Режим +_L_AUTO_RANDOM,Auto Random.,自动随机,自動隨機,Aleat. autom.,Automat. Randomizálás,Zufällige UUID (Automatisch),Randomisation Automatique,Automatische Randomisatie,Randomização Automática,自動ランダム化,Auto. casuale,Автогенерация +_L_COMPATIBLE_MODE,Compati. Mode,兼容模式,相容模式,Compatibil.,Kompatibilis Mód,Kompabilitäts Modus,Mode Compatible,Compatibiliteitsmodus,Modo Compatível,互換モード,Mod. Compatibilità,Совместимость +_L_TAG_DETAILS,[Tag Details],[标签详情],[標籤詳情],[Volver a Detalles],[Tag Részletek],[Zurück zu Details],[Détails de l'Étiquette],[Tag Details],[Detalhes da Tag],[タグ詳細],[Torna ai dettagli],[Назад к деталям] +_L_MAIN_MENU,[Main Menu],[主菜单],[主選單],[Menú Principal],[Főmenü],[Hauptmenü],[Menu Principal],[Hoofdmenu],[Menu Principal],[メインメニュー],[Menu principale],[В главное меню] +_L_MODE_RANDOM,Rand. (Manual),随机(手动),隨機(手動),Aleat. man.,Random (Kézi),Zufällige UUID (Manuell),Aléatoire (Manuel),Willekeurig (Handmatig),Randomização (Manual),ランダム化(手動),Casuale man.,Ручная генерация +_L_MODE_CYCLE,Sequential,按序,按序,Secuencial,Szekvenciális,Sequentiell,Séquentiel,Sequentieel,Sequencial,シーケンシャル,Sequenziale,Последовательный +_L_MODE_NTAG,Read/Write,读写,讀寫,Lect./Escr.,Olvasás/Írás,Lesen/Schreiben,Lecture/Écriture,Lezen/Schrijven,Leitura/gravação,リード/ライト,Lett./Scritt.,Чтение-запись +_L_MODE_RANDOM_AUTO_GEN,Rand. (Auto),随机(自动),隨機(自動),Aleat. auto.,Random (Automat.),Zufällig (Auto.),Aléatoire (Automatique),Willekeurig (Automatisch),Randomização (Automática),ランダム化(自動),Auto. casuale,Автогенерация +_L_BLANK_TAG,Blank NFC tag,空标签,空標籤,Amiibo no asignado,Üres NFC Címke,Leerer NFC Tag,Étiquette NFC vierge,Lege NFC-tag,Tag NFC em Branco,ブランクNFCタグ,Amiibo non assegnato,Пустой тег +_L_APP_AMIIDB,Amiibo Database,Amiibo数据库,Amiibo數據庫,Base datos amiibo,Amiibo Adatbázis,Amiibo Datenbank,Base de Données Amiibo,Amiibo-Database,Banco de Dados Amiibo,Amiiboデータベース,Database Amiibo,База данных Amiibo +_L_APP_AMMIDB_BROWSER,Browser...,查看...,查看...,Explorar...,Böngésző...,Navigieren...,Naviguer...,Browser...,Navegador...,ブラウザ...,Esplora...,Обозреватель... +_L_APP_AMIIDB_SEARCH,Search...,搜索...,搜索...,Buscar...,Keresés...,Suche...,Recherche...,Zoeken...,Pesquisar...,検索...,Cerca...,Поиск... +_L_APP_AMIIDB_MY_FAVORITES,My Favorites...,我的收藏...,我的收藏...,Mis Favoritos...,Kedvencek...,Meine Favoriten...,Mes Favoris...,Mijn Favorieten...,Meus Favoritos...,お気に入り...,I miei preferiti...,Моё избранное... +_L_APP_AMIIDB_MY_TAGS,My Amiibo...,我的数据...,我的數據...,Mis amiibo...,Amiiboim...,Meine Amiibo...,Mes Amiibo...,Mijn Amiibo...,Meu Amiibo...,マイAmiibo...,I miei Amiibo...,Мои Amiibo... +_L_APP_AMIIDB_SETTINGS,Settings...,设置...,設置...,Configuraciones...,Beállítások...,Einstellungen...,Paramètres...,Instellingen...,Configurações...,設定...,Impostazioni...,Настройки... +_L_APP_AMIIDB_EXIT,[Exit],[退出],[退出],[Menú Principal],[Kilépés],[Beenden],[Quitter],[Afsluiten],[Sair],[終了],[Menu principale],[Выход] +_L_APP_AMIIDB_BACK,[Back],[返回],[返回],[Volver],[Vissza],[Zurück],[Retour],[Terug],[Retornar],[戻る],[Torna indietro],[Назад] +_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY,Keys,密钥文件,密鑰文件,Llaves,Kulcsok,Schlüssel,Touches,Toetsen,Teclas,キー,Chiavi,Ключ +_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED,Loaded,已加载,已加載,Cargadas,Betöltve,geladen,Chargée,Geladen,Carregado,ロードされました,Caricate,Загружен +_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED,NOT Loaded,未加载,未加載,NO cargadas,NINCS betöltve,NICHT geladen,NON Chargée,NIET Geladen,NÃO Carregadas,ロードされていません,NON caricate,Отсутствует +_L_APP_AMIIDB_SETTINGS_SLOT_NUM,Slot Num.,数据槽位,數據槽位,Cant. ranuras,Slot Száma,Steckplatzanzahl,Numéro d'Emplacement,Slotnummer,Número do Slot,スロット番号,Num. slot,Число ячеек +_L_APP_AMIIDB_DETAIL_FAVORITE,Favorite...,收藏...,收藏...,Favorito...,Kedvenc...,Favorit...,Favorite...,Favoriet...,Favorito...,お気に入り...,Preferito...,В избранное... +_L_APP_AMIIDB_DETAIL_SAVE_AS,Save As...,保存为...,保存爲...,Asignar en...,Mentés Másként...,Speichern unter...,Enregistrer Sous...,Opslaan Als...,Salvar como...,名前を付けて保存...,Assegna a...,Сохранить как... +_L_APP_AMIIDB_DETAIL_BACK_DETAIL,[Back to Detail],[返回详情],[返回詳情],[Volver a Detalles],[Vissza a Részletekhez],[Zurück zu Details],[Retour au Détail],[Terug naar Detail],[Voltar Para Detalhes],[詳細に戻る],[Torna ai dettagli],[Назад к деталям] +_L_APP_AMIIDB_DETAIL_BACK_LIST,[Back to List],[返回列表],[返回列表],[Volver a Lista],[Vissza a Listához],[Zurück zur Liste],[Retour à la Liste],[Terug naar Lijst].,[Voltar Para a Lista],[リストに戻る],[Torna alla lista],[Назад к списку] +_L_APP_AMIIDB_SEARCH_HEAD,Search:,搜索:,搜索:,Buscar:,Keresés:,Suche:,Recherche:,Zoeken:,Pesquisar:,検索する:,Cerca:,Поиск: +_L_APP_AMIIDB_MORE,[More...],[更多],[更多],[Más...],[Bővebben...],[Mehr...],[Plus...],[Meer...],[Mais...],[もっと見る...],[Più...],[Дальше...] +_L_APP_AMIIDB_MORE_MESSAGE,Too many results. Try a more specific search.,搜索结果过多,尝试增加搜索词。,搜索結果過多,嘗試增加搜索詞。,,,Zu viele Ergebnisse. Bitte Suche eingrenzen.,,,,,,Очень много совпадений.\nУточните запрос. +_L_APP_AMIIDB_EMPTY_TAG,,<空标签>,<空標簽>,,<Üres Amiibo>,,,,,,,<пустой тег> +_L_APP_AMIIDB_SLOT_DELETE,Reset...,重置...,重置...,Borrar...,Újraindítás...,Zurücksetzen...,Réinitialiser...,Reset...,Reiniciar...,リセット...,Elimina...,Сброс... +_L_APP_AMIIDB_CONFIRM,Confirm,确认,確認,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認する,Conferma,Да +_L_APP_AMIIDB_CANCEL,Cancel,取消,取消,Cancelar,Törlés,Abbrechen,Annuler,Annuleren,Cancelar,キャンセルする,Annulla,Отмена +_L_APP_AMIIDB_TIPS,Confirm,提示,提示,Confirmar,Megerősítés,Bestätigen,Confirmer,Bevestigen,Confirmar,確認する,Conferma,Внимание +_L_APP_AMIIDB_NEW,New...,新建...,新建...,Nueva...,Új...,Neu...,Nouveau...,Nieuw...,Novo...,新規...,Nuovo...,Новая папка... +_L_APP_AMIIDB_EMPTY,Empty...,清空...,清空...,Vaciar...,Üres...,Leeren...,Vider...,Leeg...,Vazio...,空...,Svuota...,Очистить... +_L_APP_AMIIDB_DELETE,Delete...,删除...,删除...,Borrar...,Törlés...,Löschen...,Supprimer...,Verwijderen...,Excluir...,削除...,Cancella...,Удалить... +_L_APP_AMIIDB_FAV_NEW_HEAD,New Fav. Folder:,新建收藏夹:,新建收藏夾:,Nueva Carp. Favoritos:,Új Kedvenc Mappa:,Neuer Fav.-Ordner:,Nouveau Dossier Favori:,Nieuwe Favoriete Map:,Nova Pasta de Favoritos:,新しいお気に入りフォルダ:,Nuova cart. preferiti:,Новая папка избранного: +_L_APP_AMIIDB_FAV_EMPTY_MSG,Empty Fav. Folder?,确认清空收藏夹?,確認清空收藏夾?,¿Vaciar Carp. Favoritos?,Üres Kedvenc Mappa?,Fav.-Ordner leeren?,Vider le Dossier Favori?,Favoriete Map Leegmaken?,Esvaziar Pasta de Favoritos?,お気に入りフォルダを空にしますか?,Svuotare cart. preferiti?,Выполнить удаление\n избранного? +_L_APP_AMIIDB_FAV_DELETE_MSG,Confirm Delete?,确认删除?,確認刪除?,¿Confirma borrado?,Törlés Megerősítése?,Löschen Bestätigen?,Confirmer la Suppression?,Verwijderen Bevestigen?,Confirmar Exclusão?,削除してよろしいですか?,Conferma cancellazione?,Выполнить удаление? +_L_APP_AMIIDB_FAV_SELECT_FOLDER,Select Fav. Folder...,选择收藏夹...,選擇收藏夾...,Selec. carp. favoritos...,Kedvenc Mappa Kiválasztása...,Fav.-Ordner auswählen...,Sélectionner le Dossier Favori...,Selecteer Favoriete Map...,Selecionar Pasta Favorita...,お気に入りフォルダを選択...,Selez. cart. preferiti...,Выбрать папку избранного... +_L_APP_AMIIDB_FAV_SUCCESS,Favorite Success,收藏成功,收藏成功,¡Favorito correcto!,Kedvenc Sikeres,Favorit erstellt ,Succès du Favori,Favoriet Geslaagd,Favorito Bem-Sucedido,お気に入りに追加されました,Preferito aggiunto!,Добавлено +_L_APP_AMIIDB_FAV_FAILED,Favorite Failed!,收藏失败,收藏失敗,¡Favorito fallido!,Kedvenc Sikertelen!,Favorisieren fehlgeschlagen!,Échec du Favori!,Favoriet Mislukt!,Favorito Falhou!,お気に入りに追加できませんでした!,Preferito non aggiunto!,Ошибка добавления +_L_APP_AMIIDB_SLOT_SAVE_SUCCESS,Save Success,保存成功,保存成功,Asignación correcta,Sikeresen Mentve,Speichern erfolgreich,Sauvegarder Succès,Opslaan Succes,Salvar Com Êxito,保存されました,Assegnazione corretta,Сохранено +_L_APP_AMIIDB_SLOT_SAVE_FAILED,Save Failed!,保存失败,保存失敗,¡Asignación fallida!,Mentés Sikertelen!,Speichern fehlgeschlagen!,Sauvegarde Échouée!,Opslaan Mislukt!,Falha ao Salvar!,保存に失敗しました!,Assegnazione fallita!,Ошибка сохранения +_L_APP_CHAMELEON,Card Emulator,卡模拟器,卡模擬器,Emular Etiqueta RFID,Kártya Emulátor,Karten Emulator,Emulateur de Carte,Kaart Emulator,Emulador de Cartão,カードエミュレータ,Emula tag RFID,Эмулятор карт +_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL,Normal,正常,正常,Normal,Normál,Normal,Normal,Normaal,Normal,通常,Normale,Разрешена +_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED,Deny,拒绝,拒絕,Negar,Tagadni,Verweigern,Refuser,Weigeren,Negar,拒否,Nega,Запрещена +_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE,Ignore,忽略,忽略,Ignorar,Figyelmen Kívül Hagyni,Ignorieren,Ignorer,Negeren,Ignorar,無視,Ignora,Игнорируется +_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW,Cache,缓存,緩存,Caché,Elrejt,Cache,Cache,Cache,Cache,キャッシュ,Cache,В кэш +_L_APP_CHAMELEON_INITIALIZING,Initializing data ...,"初始化, 请稍后...","初始化, 請稍後...",Inicializando ambiente.\nPor favor espere...,Az adatok inicializálása ...,Daten initialisieren...,Initialisation des données ...,Gegevens Initialiseren ...,Inicialização de Dados ...,データの初期化 ...,Inizializzazione ambiente.\nPer favore attendi...,Инициализация... +_L_APP_CHAMELEON_CARD_SLOT,Slot,卡槽,卡槽,Ranura,Cella,Steckplatz,Fente,Slot,Slot,スロット,Slot,Ячейка +_L_APP_CHAMELEON_CARD_NICK,Nick,卡名,卡名,Apodo,Becenév,Spitzname,Pseudo,Bijnaam,Apelido,ニックネーム,Nickname,Название +_L_APP_CHAMELEON_CARD_ID,ID,ID,ID,ID,ID,ID,ID,ID,ID,ID,ID,ID +_L_APP_CHAMELEON_CARD_TYPE,Type,卡类型,卡類型,Tipo,Típus,Typ,Type de Données,Type,Tipo de Dados,タイプ,Tipo,Тип +_L_APP_CHAMELEON_CARD_DATA,Data...,卡数据...,卡數據...,Datos...,Adatok...,Daten...,Données...,Gegevens...,Dados...,データ...,Dati...,Данные... +_L_APP_CHAMELEON_CARD_ADVANCED,Advanced...,卡高级设置...,卡高級設置...,Avanzado...,Fejlett...,Erweitert...,Avancé...,Geavanceerd...,Avançado...,詳細設定...,Avanzato...,Дополнительно... +_L_APP_CHAMELEON_CARD_SLOT_SETTINGS,Slots Settings...,卡槽管理...,卡槽管理...,Configuración...,Cella Beállításai...,Steckplatz Einstellungen...,Paramètres des Emplacements...,Slot Instellingen...,Configurações de Slots...,スロット設定...,Impostazioni...,Управление ячейками... +_L_APP_CHAMELEON_CARD_SLOT_NUM,Slot Num...,卡槽数量...,卡槽數量...,Cant. ranuras...,Cella Száma...,Steckplatz Nummer,Numéro d'Emplacement...,Slotnummer...,Número do Slot...,スロット番号...,Num. slot...,Число ячеек... +_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS,Set Nick Success,设置卡名成功,設置卡名成功,Apodo cambiado.,Becenév Beállítása Sikeres,Spitzname erfolgreich gesetzt,Définir le Pseudo Succès,Bijnaam Instellen Succes,Apelido Definido com Sucesso,ニックネームが設定されました,Cambio nickname riuscito.,Название задано +_L_APP_CHAMELEON_CARD_SET_NICK_FAILED,Set Nick Failed!,设置卡名失败,設置卡名失敗,¡Falló cambio apodo!,Becenév Beállítása Sikertelen!,Spitzname setzen fehlgeschlagen!,Définir le Pseudo a Échoué!,Bijnaam Instellen Mislukt!,Falha ao Definir Apelido!,ニックネームが設定できませんでした!,Cambio nickname fallito!,Недопустимое название +_L_APP_CHAMELEON_CARD_INPUT_NICK,Input Nick:,输入卡名:,輸入卡名:,Apodo:,Becenév Bevitele:,Spitznamen eingeben:,Entrer le Pseudo:,Voer Bijnaam In:,Insira o Apelido:,ニックネームを入力してください:,Nickname:,Задайте название карты: +_L_APP_CHAMELEON_CARD_DATA_LOAD,Load...,加载...,加載...,Cargar...,Betöltés...,Laden...,Charger...,Laden...,Carregar...,ロード...,Carica...,Загрузка... +_L_APP_CHAMELEON_CARD_DATA_SAVE,Save...,导出...,導出...,Guardar...,Mentés...,Speichern...,Sauvegarder...,Opslaan...,Salvar...,保存...,Salva...,Сохранение... +_L_APP_CHAMELEON_CARD_DATA_FACTORY,Factory...,重置...,重置...,Inicializar...,Visszaállítás...,Zurücksetzen...,Rétablir Les Valeurs Par Défaut...,Terugzetten Naar Standaard...,Restaurar Padrões...,初期化...,Inizializza...,Сброс... +_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS,Data Factory Success,卡片初始化成功,卡片初始化成功,¡Datos inicializados!,Adatok Visszaállítása Sikeres,Daten zurückgesetzt,Réinitialisation des Données Succès,Fabriekgegeven terugzetten Succesvol,Restauração de Dados Bem-Sucedida,初期化成功,Dati inizializzati!,Данные сброшены +_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND,File Not Found,文件不存在,文件不存在,Archivo no encontrado,Fájl Nem Található,Datei nicht gefunden,Fichier Non Trouvé,Bestand Niet Gevonden,Arquivo Não Encontrado,ファイルが見つかりません,File non trovato,Файл не обнаружен +_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH,File Size Not Match,文件大小不匹配,文件大小不匹配,Tamaño archivo incorrecto,Fájl Mérete Nem Egyezik,Dateigröße stimmt nicht überein,La Taille du Fichier ne Correspond Pas,Bestandsgrootte Komt Niet Overeen,Tamanho do Arquivo Não Corresponde,ファイルサイズが一致しません,Dimensione file non corretta,Файл несоразмерен +_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED,Load File Failed,读取文件失败,讀取文件失敗,Falla carga archivo,Fájl betöltése Sikertelen,Laden der Datei fehlgeschlagen,Échec du Chargement du Fichier,Bestand Laden Mislukt,Falha no Carregamento do Arquivo,ファイルの読み込み失敗,Caricamento file fallito,Ошибка загрузки файла +_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS,Load File Success,加载卡片数据成功,加載卡片數據成功,Carga archivo correcta,Fájl Betöltése Sikeres,Datei erfolgreich geladen,Chargement du Fichier Réussi,Laad Bestand Succesvol,Sucesso no Carregamento do Arquivo,ファイルの読み込みに成功,Caricamento file riuscito,Данные загружены +_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME,Input File Name:,输入文件名,輸入文件名,Nombre archivo:,Bemeneti Fájl Neve:,Datei Namen eingeben:,Saisir le Nom du Fichier:,Bestandsnaam Invoeren:,Nome do Arquivo de Entrada:,入力ファイル名:,Nome file:,Задайте имя файла: +_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED,Save File Failed!,写入文件失败,寫入文件失敗,¡Error al guardar!,Fájl Mentése Sikertelen!,Datei speichern fehlgeschlagen!,Échec de l'Enregistrement du Fichier!,Bestand Opslaan Mislukt!,Falha ao Salvar o Arquivo!,ファイルの保存に失敗しました!,Errore nel salvataggio!,Ошибка сохранения файла +_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS,Save File Success,导出卡片数据成功,導出卡片數據成功,Guardado correcto,Fájl Mentése Sikeres,Datei erfolgreich gespeichert,Sauvegarde du Fichier Réussie,Bestand Opslaan Gelukt,Arquivo Salvo com êxito,ファイルが保存されました,Salvataggio riuscito,Данные сохранены +_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE,Custom Mode,自定义模式,自定義模式,Modo personali.,Egyéni Mód,Benutzerdefinierter Modus,Mode Personnalisé,Aangepaste Modus,Modo Personalizado,カスタムモード,Modalità personalizzata,Заказной режим +_L_APP_CHAMELEON_CARD_GEN1A_MODE,Gen1A Enabled,Gen1A模式,Gen1A模式,Gen1A habilitada,Gen1A Engedélyezve,Gen1A aktiv,Gen1A Activé,Gen1A Ingeschakeld,Gen1A Ativada,Gen1A 有効,Gen1A abilitata,Gen1A +_L_APP_CHAMELEON_CARD_GENERATE_UID,Rand. UID,生成UID,生成UID,Generar nuevo UID,Véletlen UID,Zufällige UID,Randomiser l'UID,Willekeurige UID,UID Aleatório,UIDのランダム化,Genera nuovo UID,Сгенерировать UID +_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS,UID Generated,UID已生成,UID已生成,UID generado,Generált UID,UID generiert,UID Généré,UID Gegenereerd,UID Gerado,UID 生成,UID generato,UID сгенерирован +_L_APP_CHAMELEON_CARD_GEN2_MODE,Gen2 Enabled,Gen2模式,Gen2模式,Gen2 habilitada,Gen2 Engedélyezve,Gen2 aktiv,Gen2 Activé,Gen2 Ingeschakeld,Gen2 Ativado,Gen2 有効,Gen2 abilitata,Gen2 +_L_APP_CHAMELEON_CARD_WRITE_MODE,Write Mode,写入模式,寫入模式,Modo escrit.,Írási Mód,Schreibmodus,Mode d'Écriture,Schrijfmodus,Modo de Gravação,書き込みモード,Modalità scrittura,Запись +_L_APP_CHAMELEON_CARD_ADV_ID_EDIT_INVALID_INPUT,Invalid Input!,无效的输入!,無效的輸入!,¡Entrada inválida!,Érvénytelen bemenet!,Ungültige Eingabe!,Entrée Invalide!,Ongeldige Invoer!,Entrada Inválida!,無効な入力,Input non valido!,Недопустимый ввод +_L_APP_CHAMELEON_CARD_TYPE_FACTORY_DATA_CONFRIM,Card type changed. \nFactory card data?,卡类型已修改\n重置卡数据?,卡類型已修改\n重置卡數據?,Tipo tarjeta modificado\n¿Inicializar tarjeta?,A kártya típusa megváltozott.\nGyári kártyaadatok?,Kartentyp geändert. \nKartendaten zurücksetzen?,Le Type de Carte a Été Modifié. \nRéinitialiser les Données de la Carte?,Kaarttype gewijzigd. \nGegevens terugzetten naar standaard?,O tipo de cartão foi alterado. \nRedefinir dados do cartão?,カードの種類が変更されました。\nカードデータを初期化しますか?,Tipo di carta modificato\nInizializzare carta?,Тип карты изменен.\nСбросить данные карты? _L_APP_READER,NFC Reader,读卡器,读卡器,,,,,,,, _L_APP_READER_SCANNING,Dicovering Tag...,请靠近卡片...,,,,,,,,, \ No newline at end of file diff --git a/fw/data/wenquanyi_9pt_u8g2.bdf b/fw/data/wenquanyi_9pt_u8g2.bdf index dcf50da0..5dac36f4 100644 --- a/fw/data/wenquanyi_9pt_u8g2.bdf +++ b/fw/data/wenquanyi_9pt_u8g2.bdf @@ -11418,1045 +11418,954 @@ BITMAP ENDCHAR STARTCHAR afii10023 ENCODING 1025 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 11 2 -1 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 10 0 0 BITMAP -44 +50 00 -FE -42 -40 -48 -78 -48 -40 -42 -FE +F8 +80 +80 +F8 +80 +80 +80 +F8 ENDCHAR STARTCHAR afii10017 ENCODING 1040 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -0800 -0800 -1400 -1400 -2200 -2200 -3E00 -4100 -4100 -E380 +38 +48 +48 +88 +88 +F8 +88 +88 ENDCHAR STARTCHAR afii10018 ENCODING 1041 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -FE -42 -40 -40 -78 -44 -42 -42 -44 F8 +80 +80 +F0 +88 +88 +88 +F0 ENDCHAR STARTCHAR afii10019 ENCODING 1042 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -F8 -44 -42 -44 -78 -44 -42 -42 -44 -F8 +F0 +88 +88 +F0 +88 +88 +88 +F0 ENDCHAR STARTCHAR afii10020 ENCODING 1043 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -FC -44 -42 -40 -40 -40 -40 -40 -40 -E0 +F8 +80 +80 +80 +80 +80 +80 +80 ENDCHAR STARTCHAR afii10021 ENCODING 1044 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 9 0 -1 BITMAP -3F80 -1200 -1200 -1200 -1200 -1200 -2200 -4200 -FF80 -8080 +3C +24 +24 +24 +24 +44 +44 +FE +82 ENDCHAR STARTCHAR afii10022 ENCODING 1045 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -FE -41 -40 -44 -7C -44 -40 -41 -41 -FE +F8 +80 +80 +F8 +80 +80 +80 +F8 ENDCHAR STARTCHAR afii10024 ENCODING 1046 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -9C80 -4900 -4900 -2A00 -1C00 -2A00 -4A00 -4900 -4900 -DD80 +92 +92 +54 +38 +54 +54 +92 +92 ENDCHAR STARTCHAR afii10025 ENCODING 1047 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -58 -64 -44 -04 -18 -04 -02 -82 -C4 -B8 +70 +88 +08 +30 +08 +08 +88 +70 ENDCHAR STARTCHAR afii10026 ENCODING 1048 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E3 -46 -4A -4A -52 -52 -62 -62 -42 -E7 +88 +88 +88 +98 +A8 +A8 +C8 +88 ENDCHAR STARTCHAR afii10027 ENCODING 1049 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 11 0 0 BITMAP -24 -18 -E7 -4A -4A -52 -62 -62 -42 -E7 +50 +20 +00 +88 +88 +88 +98 +A8 +A8 +C8 +88 ENDCHAR STARTCHAR afii10028 ENCODING 1050 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E2 -45 -48 -50 -60 -50 -48 -44 -45 -E2 +88 +90 +A0 +E0 +90 +90 +88 +88 ENDCHAR STARTCHAR afii10029 ENCODING 1051 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -3F80 -0900 -0900 -0900 -0900 -0900 -1100 -1100 -A100 -4380 +38 +48 +48 +48 +48 +48 +48 +88 ENDCHAR STARTCHAR afii10030 ENCODING 1052 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 11 10 0 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -C060 -60C0 -60C0 -5140 -5140 -4A40 -4A40 -4440 -4440 -E0E0 +82 +C6 +C6 +AA +AA +92 +92 +82 ENDCHAR STARTCHAR afii10031 ENCODING 1053 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E380 -4100 -4100 -4100 -7F00 -4100 -4100 -4100 -4100 -E380 +88 +88 +88 +F8 +88 +88 +88 +88 ENDCHAR STARTCHAR afii10032 ENCODING 1054 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -1C00 -2200 -4100 -8080 -8080 -8080 -8080 -4100 -2200 -1C00 +70 +88 +88 +88 +88 +88 +88 +70 ENDCHAR STARTCHAR afii10033 ENCODING 1055 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -FF -42 -42 -42 -42 -42 -42 -42 -42 -E7 +F8 +88 +88 +88 +88 +88 +88 +88 ENDCHAR STARTCHAR afii10034 ENCODING 1056 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -F8 -44 -42 -42 -44 -78 -40 -40 -40 -E0 +F0 +88 +88 +F0 +80 +80 +80 +80 ENDCHAR STARTCHAR afii10035 ENCODING 1057 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -1D -23 -41 +70 +88 80 80 80 80 -41 -22 -1C +88 +70 ENDCHAR STARTCHAR afii10036 ENCODING 1058 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -FF80 -8880 -8880 -0800 -0800 -0800 -0800 -0800 -0800 -1C00 +F8 +20 +20 +20 +20 +20 +20 +20 ENDCHAR STARTCHAR afii10037 ENCODING 1059 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E380 -4100 -2200 -2200 -1400 -1400 -0800 -0800 -4800 -3000 +88 +88 +88 +88 +88 +78 +08 +F0 ENDCHAR STARTCHAR afii10038 ENCODING 1060 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -1C00 -0800 -3E00 -4900 -8880 -8880 -4900 -3E00 -0800 -1C00 +10 +7C +92 +92 +92 +92 +7C +10 ENDCHAR STARTCHAR afii10039 ENCODING 1061 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E380 -4100 -2200 -1400 -0800 -0800 -1400 -2200 -4100 -E380 +88 +88 +50 +20 +50 +50 +88 +88 ENDCHAR STARTCHAR afii10040 ENCODING 1062 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 583 0 +DWIDTH 7 0 +BBX 6 9 0 -1 BITMAP -E700 -4200 -4200 -4200 -4200 -4200 -4200 -4200 -FF80 -0080 +88 +88 +88 +88 +88 +88 +88 +FC +04 ENDCHAR STARTCHAR afii10041 ENCODING 1063 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 1 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E7 -42 -42 -42 -42 -26 -1A -02 -02 -07 +88 +88 +88 +88 +78 +08 +08 +08 ENDCHAR STARTCHAR afii10042 ENCODING 1064 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 11 10 0 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -EEE0 -4440 -4440 -4440 -4440 -4440 -4440 -4440 -4440 -FFE0 +92 +92 +92 +92 +92 +92 +92 +FE ENDCHAR STARTCHAR afii10043 ENCODING 1065 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 11 10 0 0 +SWIDTH 750 0 +DWIDTH 9 0 +BBX 8 9 0 -1 BITMAP -EEE0 -4440 -4440 -4440 -4440 -4440 -4440 -4440 -FFE0 -0020 +92 +92 +92 +92 +92 +92 +92 +FF +01 ENDCHAR STARTCHAR afii10044 ENCODING 1066 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -7000 -9000 -1000 -1000 -1E00 -1100 -1080 -1080 -1100 -3E00 +E0 +20 +20 +3C +22 +22 +22 +3C ENDCHAR STARTCHAR afii10045 ENCODING 1067 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 10 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 8 0 0 BITMAP -C380 -4100 -4100 -4100 -7100 -4900 -4500 -4500 -4900 -F380 +82 +82 +82 +F2 +8A +8A +8A +F2 ENDCHAR STARTCHAR afii10046 ENCODING 1068 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -E0 -40 -40 -78 -44 -42 -42 -42 -44 -F8 +80 +80 +80 +F0 +88 +88 +88 +F0 ENDCHAR STARTCHAR afii10047 ENCODING 1069 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -B8 -C4 -82 -02 -02 -1E -02 -82 -44 -38 +70 +88 +08 +78 +08 +08 +88 +70 ENDCHAR STARTCHAR afii10048 ENCODING 1070 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 10 10 1 0 +SWIDTH 583 0 +DWIDTH 7 0 +BBX 6 8 0 0 BITMAP -E300 -4480 -4840 -4840 -7840 -4840 -4840 -4840 -4480 -E300 +98 +A4 +A4 +E4 +A4 +A4 +A4 +98 ENDCHAR STARTCHAR afii10049 ENCODING 1071 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 0 BITMAP -3F -42 -42 -42 -3E -12 -22 -22 -A2 -47 +78 +88 +88 +78 +48 +48 +88 +88 ENDCHAR STARTCHAR afii10065 ENCODING 1072 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -30 -48 -38 -48 -88 +60 +10 +70 +90 90 -6C +70 ENDCHAR STARTCHAR afii10066 ENCODING 1073 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 10 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 9 0 0 BITMAP -0C -30 -40 +10 +60 80 -B0 -C8 -84 -84 -48 -30 +E0 +90 +90 +90 +90 +60 ENDCHAR STARTCHAR afii10067 ENCODING 1074 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -F8 -44 -44 -78 -44 -44 -F8 +E0 +90 +E0 +90 +90 +E0 ENDCHAR STARTCHAR afii10068 ENCODING 1075 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -F8 -44 -40 -40 -40 -40 -E0 +F0 +80 +80 +80 +80 +80 ENDCHAR STARTCHAR afii10069 ENCODING 1076 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 8 1 0 +SWIDTH 583 0 +DWIDTH 7 0 +BBX 6 7 0 -1 BITMAP -3F -12 -12 -12 -22 -22 -FF -81 +38 +28 +28 +28 +48 +FC +84 ENDCHAR STARTCHAR afii10070 ENCODING 1077 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -30 -48 -84 -FC +60 +90 +F0 80 -44 -38 +90 +60 ENDCHAR STARTCHAR afii10072 ENCODING 1078 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 7 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 6 0 0 BITMAP -DD80 -2A00 -2A00 -1C00 -2A00 -4900 -DD80 +92 +54 +38 +54 +92 +92 ENDCHAR STARTCHAR afii10073 ENCODING 1079 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -38 -C4 -04 -38 -84 -84 -78 +60 +90 +20 +10 +90 +60 ENDCHAR STARTCHAR afii10074 ENCODING 1080 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 7 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 0 0 BITMAP -E7 -46 -4A -52 -62 -42 -E7 +88 +98 +A8 +A8 +C8 +88 ENDCHAR STARTCHAR afii10075 ENCODING 1081 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 10 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 9 0 0 BITMAP -24 -18 +50 +20 00 -E7 -46 -4A -52 -62 -42 -E7 +88 +98 +A8 +A8 +C8 +88 ENDCHAR STARTCHAR afii10076 ENCODING 1082 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -E4 -4A -50 -60 -50 -4A -E4 +90 +A0 +C0 +A0 +90 +90 ENDCHAR STARTCHAR afii10077 ENCODING 1083 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -3E -14 -14 -14 -24 -A4 -4E +70 +50 +50 +50 +50 +90 ENDCHAR STARTCHAR afii10078 ENCODING 1084 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 7 1 0 +SWIDTH 583 0 +DWIDTH 7 0 +BBX 6 6 0 0 BITMAP -C180 -6300 -6300 -5500 -5500 -4900 -EB80 +84 +CC +CC +B4 +B4 +84 ENDCHAR STARTCHAR afii10079 ENCODING 1085 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -E7 -42 -42 -7E -42 -42 -E7 +90 +90 +F0 +90 +90 +90 ENDCHAR STARTCHAR afii10080 ENCODING 1086 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -38 -44 -82 -82 -82 -44 -38 +60 +90 +90 +90 +90 +60 ENDCHAR STARTCHAR afii10081 ENCODING 1087 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -FE -44 -44 -44 -44 -44 -EE +F0 +90 +90 +90 +90 +90 ENDCHAR STARTCHAR afii10082 ENCODING 1088 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 8 2 -1 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 8 0 -2 BITMAP -D8 -64 -42 -42 -64 -58 -40 -E0 +B0 +C8 +88 +88 +C8 +B0 +80 +80 ENDCHAR STARTCHAR afii10083 ENCODING 1089 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -38 -44 -80 +60 +90 80 80 -44 -38 +90 +60 ENDCHAR STARTCHAR afii10084 ENCODING 1090 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 0 0 BITMAP -FE -92 -10 -10 -10 -10 -38 +F8 +20 +20 +20 +20 +20 ENDCHAR STARTCHAR afii10085 ENCODING 1091 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 9 2 -1 -BITMAP -E7 -42 -22 -14 -08 -08 -10 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 8 0 -2 +BITMAP +90 90 +A0 +A0 60 +40 +40 +80 ENDCHAR STARTCHAR afii10086 ENCODING 1092 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 11 1 -1 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 10 0 -2 BITMAP -1C00 -0800 -2A00 -5D00 -8880 -8880 -8880 -5D00 -2A00 -0800 -1C00 +10 +10 +7C +92 +92 +92 +92 +7C +10 +10 ENDCHAR STARTCHAR afii10087 ENCODING 1093 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 0 0 BITMAP -EE -44 -28 -10 -28 -44 -EE +88 +50 +20 +50 +88 +88 ENDCHAR STARTCHAR afii10088 ENCODING 1094 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 8 2 -1 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 7 0 -1 BITMAP -EE -44 -44 -44 -44 -44 -FE -02 +90 +90 +90 +90 +90 +F8 +08 ENDCHAR STARTCHAR afii10089 ENCODING 1095 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -EE -44 -44 -3C -04 -04 -0E +90 +90 +90 +70 +10 +10 ENDCHAR STARTCHAR afii10090 ENCODING 1096 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 7 1 0 +SWIDTH 666 0 +DWIDTH 8 0 +BBX 7 6 0 0 BITMAP -DD80 -4900 -4900 -4900 -4900 -4900 -FF80 +92 +92 +92 +92 +92 +FE ENDCHAR STARTCHAR afii10091 ENCODING 1097 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 10 8 0 -1 +SWIDTH 750 0 +DWIDTH 9 0 +BBX 8 7 0 -1 BITMAP -DD80 -4900 -4900 -4900 -4900 -4900 -7FC0 -0040 +92 +92 +92 +92 +92 +FF +01 ENDCHAR STARTCHAR afii10092 ENCODING 1098 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 500 0 +DWIDTH 6 0 +BBX 5 6 0 0 BITMAP -60 -A0 -3C -22 -22 -22 -7C +C0 +40 +70 +48 +48 +70 ENDCHAR STARTCHAR afii10093 ENCODING 1099 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 8 7 2 0 +SWIDTH 583 0 +DWIDTH 7 0 +BBX 6 6 0 0 BITMAP -E7 -42 -42 -72 -4A -4A -F7 +84 +84 +E4 +94 +94 +E4 ENDCHAR STARTCHAR afii10094 ENCODING 1100 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP +80 +80 +E0 +90 +90 E0 -40 -78 -44 -44 -44 -F8 ENDCHAR STARTCHAR afii10095 ENCODING 1101 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 7 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -78 -84 -04 -7C -04 -84 -78 +60 +90 +30 +10 +90 +60 ENDCHAR STARTCHAR afii10096 ENCODING 1102 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 9 7 1 0 +SWIDTH 666 0 +DWIDTH 7 0 +BBX 6 6 0 0 BITMAP -E600 -4900 -5080 -7080 -5080 -4900 -E600 +98 +A4 +E4 +A4 +A4 +98 ENDCHAR STARTCHAR afii10097 ENCODING 1103 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 7 7 2 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 6 0 0 BITMAP -3E -44 -44 -3C -24 -44 -EE +70 +90 +90 +70 +50 +90 ENDCHAR STARTCHAR afii10071 ENCODING 1105 -SWIDTH 1000 0 -DWIDTH 12 0 -BBX 6 9 3 0 +SWIDTH 416 0 +DWIDTH 5 0 +BBX 4 8 0 0 BITMAP -48 +90 00 -30 -48 -84 -FC +60 +90 +F0 80 -44 -38 +90 +60 ENDCHAR STARTCHAR U_1100 ENCODING 4352 diff --git a/fw/resources/bmp/app_amiibo_database_32x32.bmp b/fw/resources/bmp/app_amiibo_database_32x32.bmp index b97dd973..a4fa55c9 100644 Binary files a/fw/resources/bmp/app_amiibo_database_32x32.bmp and b/fw/resources/bmp/app_amiibo_database_32x32.bmp differ diff --git a/fw/scripts/LICENSE b/fw/scripts/LICENSE new file mode 100644 index 00000000..367643b3 --- /dev/null +++ b/fw/scripts/LICENSE @@ -0,0 +1,35 @@ +============ BSD License for U8g2lib Code ============ +This license applies to the following files: + +- bdfconv_linux +- bdfconv_macos_universal +- bdfconv.exe + +Universal 8bit Graphics Library (https://github.com/olikraus/u8g2) + +Copyright (c) 2016, olikraus@gmail.com +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/fw/scripts/bdfconv_linux b/fw/scripts/bdfconv_linux new file mode 100755 index 00000000..363326d1 Binary files /dev/null and b/fw/scripts/bdfconv_linux differ diff --git a/fw/scripts/bdfconv_macos_universal b/fw/scripts/bdfconv_macos_universal new file mode 100755 index 00000000..47cb5d62 Binary files /dev/null and b/fw/scripts/bdfconv_macos_universal differ diff --git a/fw/scripts/font_data_gen.py b/fw/scripts/font_data_gen.py new file mode 100755 index 00000000..a98a0693 --- /dev/null +++ b/fw/scripts/font_data_gen.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 + +import os +import re +import subprocess +import platform + + +# Absolute path to the directories containing the .c files +current_dir = os.path.dirname(os.path.abspath(__file__)) +source_dirs = [ + os.path.join(current_dir, "../application/src/i18n"), + os.path.join(current_dir, "../application/src/amiidb"), +] + +# Absolute path to the directory where the output file will be saved +data_dir = os.path.join(current_dir, "../data") +mui_dir = os.path.join(data_dir, "../application/src/mui") + +# Name of the output file +output_file = "pixjs.txt" + + +def write_to_file(file_path, content): + with open(file_path, "w", encoding="utf-8") as f: + f.write(content) + + +def extract_non_printable_chars(): + non_printable_chars = set() + for source_dir in source_dirs: + for root, _, files in os.walk(source_dir): + for file in files: + if file.endswith(".c"): + with open(os.path.join(root, file), "r", encoding="utf-8") as f: + content = f.read() + non_printable_chars.update(re.findall(r"[^\x20-\x7E]", content)) + + write_to_file( + os.path.join(data_dir, output_file), "\n".join(sorted(non_printable_chars)) + ) + + +def convert_and_sort(unicode_strings): + return sorted( + set(f"${ord(char):04X}," for string in unicode_strings for char in string) + ) + + +def run_bdfconv(map_path, output_path, bdf_path): + # Construct the path to the bdfconv executable relative to the script directory + system = platform.system() + if system == "Windows": + bdfconv_path = os.path.join(current_dir, "bdfconv.exe") + elif system == "Darwin": + bdfconv_path = os.path.join(current_dir, "bdfconv_macos_universal") + elif system == "Linux": + bdfconv_path = os.path.join(current_dir, "bdfconv_linux") + else: + raise OSError("Unsupported operating system") + + # Convert paths to absolute paths + abs_map_path = os.path.abspath(map_path) + abs_output_path = os.path.abspath(output_path) + abs_bdf_path = os.path.abspath(bdf_path) + + cmd = [ + bdfconv_path, + "-b", + "0", + "-f", + "1", + "-M", + abs_map_path, + "-n", + "u8g2_font_wqy12_t_gb2312a", + "-o", + abs_output_path, + abs_bdf_path, + ] + subprocess.run(cmd, check=True) + + +def main(): + extract_non_printable_chars() + + combined_content = "" + for file_name in ["chinese3.txt", "pixjs.txt"]: + with open(os.path.join(data_dir, file_name), "r", encoding="utf-8") as file: + combined_content += file.read() + + sorted_converted = convert_and_sort(combined_content.splitlines()) + write_to_file( + os.path.join(data_dir, "gb2312a.map"), "32-128,\n" + "\n".join(sorted_converted) + ) + + run_bdfconv( + map_path=os.path.join(data_dir, "gb2312a.map"), + output_path=os.path.join(mui_dir, "u8g2_font_wqy12_t_gb2312a_t.c"), + bdf_path=os.path.join(data_dir, "wenquanyi_9pt_u8g2.bdf"), + ) + + # Write to u8g2_font_wqy12_t_gb2312a.c + with open( + os.path.join(mui_dir, "u8g2_font_wqy12_t_gb2312a.c"), "w+", encoding="utf-8" + ) as final_file: + final_file.write( + """ +#include "mui_u8g2.h" + +#include "u8x8.h" + +""" + ) + + # Read the content of the temporary file and append it to the final file + temp_file_path = os.path.join(mui_dir, "u8g2_font_wqy12_t_gb2312a_t.c") + with open(temp_file_path, "r", encoding="utf-8") as temp_file: + final_file.write(temp_file.read()) + + # Remove the temporary files + os.remove(temp_file_path) + os.remove(os.path.join(data_dir, output_file)) + os.remove(os.path.join(data_dir, "gb2312a.map")) + + +if __name__ == "__main__": + main() diff --git a/fw/scripts/font_data_gen.sh b/fw/scripts/font_data_gen.sh index 09f764f1..b90954d8 100644 --- a/fw/scripts/font_data_gen.sh +++ b/fw/scripts/font_data_gen.sh @@ -1,6 +1,7 @@ #!/bin/bash cd $(dirname "$0") && cd .. +echo "Current dir: $(pwd)" cat application/src/i18n/*.c application/src/amiidb/*.c |grep -Po '".*?"' | tr -d '[:print:]' |sort|uniq > data/pixjs.txt echo '32-128,' > data/gb2312a.map cat data/chinese3.txt data/pixjs.txt | iconv -f utf-8 -t c99 | sed 's/\\u\([0-9a-f]\{4\}\)/\$\1,\n/g' | sort | uniq | sed '/^$/d' | tr '/a-f/' '/A-F/' >> data/gb2312a.map diff --git a/fw/scripts/resource_gen.py b/fw/scripts/resource_gen.py index 99534cca..dcc85074 100644 --- a/fw/scripts/resource_gen.py +++ b/fw/scripts/resource_gen.py @@ -69,7 +69,7 @@ def gen_bmp(): files.sort() for file in files: - + print("process %s .." % file) file_name_abs = project_dir + "/resources/bmp/" + file if os.path.isdir(file_name_abs): continue @@ -101,4 +101,4 @@ def main(): gen_bmp() ###### -main() \ No newline at end of file +main() diff --git a/gh-pages/index.html b/gh-pages/index.html index e95058ee..1796976c 100644 --- a/gh-pages/index.html +++ b/gh-pages/index.html @@ -11,6 +11,6 @@ - + \ No newline at end of file diff --git a/gh-pages/index.js b/gh-pages/index.js index 2d74c6db..eb43fed8 100644 --- a/gh-pages/index.js +++ b/gh-pages/index.js @@ -1,30 +1,30 @@ -webpackJsonp([1],Array(37).concat([function(e,t,o){"use strict";function i(){return n}t.a=i;var r=o(206),n=(o.n(r),new r.EventEmitter)},,,,,function(e,t,o){"use strict";function i(e){var t,o;this.promise=new e(function(e,i){if(void 0!==t||void 0!==o)throw TypeError("Bad Promise constructor");t=e,o=i}),this.resolve=r(t),this.reject=r(o)}var r=o(27);e.exports.f=function(e){return new i(e)}},,,,,,,,,function(e,t,o){var i=o(69),r=o(5)("iterator"),n=o(21);e.exports=o(3).getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||n[i(e)]}},,,,,,,,,,,,function(e,t,o){"use strict";var i=o(133),r=o.n(i),n=o(135),l=o.n(n),a=o(38),s=o.n(a),c=o(1),f=o(224),p=o(191),d=o.n(p),u=o(88),h=o.n(u),b=o(192),g=o.n(b),m=o(193),_=o.n(m),x=o(124),v=o(127),w=o(126),y=o(125);c.default.use(f.a);var k={en:s()({},x.a,d.a),zh_TW:s()({},v.a,_.a),es:s()({},y.a,g.a),zh_CN:s()({},w.a,h.a)},E=new f.a({locale:function(){var e=(navigator.language||navigator.browserLanguage).toLowerCase(),t=l()(k),o=!0,i=!1,n=void 0;try{for(var a,s=r()(t);!(o=(a=s.next()).done);o=!0){var c=a.value;if(e.indexOf(c)>-1)return c}}catch(e){i=!0,n=e}finally{try{!o&&s.return&&s.return()}finally{if(i)throw n}}return"zh_TW"}(),messages:k});t.a=E},,,function(e,t,o){"use strict";var i=o(67),r=o(37),n=o(128);t.a={data:function(){return{tableData:[],connBtnType:"",connBtnText:""+this.$t("conn.connect"),version:"",connected:!1,table_loading:!1,current_dir:"",upload_diag_visible:!1,table_selection:[],language:"zh_CN",meta_diag_visible:!1,meta_form:{notes:"",flags:{hide:!1},amiibo:{head:0,tail:0},name:"",row:null}}},methods:{on_btn_ble_connect:function(){this.connected?(i.a(),this.connBtnText=""+this.$t("conn.connect")):(this.connBtnText=""+this.$t("conn.connecting"),i.b())},on_ble_connected:function(){var e=this;this.connBtnText=""+this.$t("conn.disconnect"),this.connBtnType="success",this.connected=!0,this.$notify({title:"Pixl.js",type:"success",message:""+this.$t("conn.consuccess"),duration:5e3}),n.a().then(function(t){console.log("get version result",t),e.version=""+e.$t("status.connected")+t.data.ver,t.data.ver.startsWith("2.0.0")&&e.$alert(""+e.$t("oldfirm.message"),""+e.$t("oldfirm.title"),{confirmButtonText:""+e.$t("btn.ok"),callback:function(e){}});var o=t.data;LA.track("pixl_device_connect",{version:o.ver,mac:o.ble_addr}),e.reload_drive()})},on_ble_disconnected:function(){this.connBtnType="",this.connected=!1,this.connBtnText=""+this.$t("conn.connect"),this.version="",this.table_loading=!1,this.tableData=[],this.current_dir="",this.$notify({title:"Pixl.js",type:"error",message:""+this.$t("conn.disconnected"),duration:5e3})},on_ble_connect_error:function(){this.connBtnType="",this.connBtnText=""+this.$t("conn.connect"),this.version="",this.table_loading=!1,this.tableData=[],this.current_dir="",this.$notify({title:"Pixl.js",type:"error",message:""+this.$t("conn.connfailed"),duration:5e3})},on_btn_enter_dfu:function(){var e=this;this.$confirm(""+this.$t("dfumode.startconfirm"),""+this.$t("dfumode.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){n.b().then(function(t){e.$confirm(""+e.$t("dfumode.updateconfirm"),""+e.$t("dfumode.updatetitle"),{confirmButtonText:""+e.$t("btn.ok"),cancelButtonText:""+e.$t("btn.cancel"),type:"success"}).then(function(e){document.location.href="https://thegecko.github.io/web-bluetooth-dfu/examples/web.html"})})})},on_btn_up:function(){var e=this.current_dir.substring(0,2),t=this.current_dir.substring(2);if("/"==t)this.current_dir="",this.reload_drive();else{var o=t.lastIndexOf("/");this.current_dir=0==o?e+"/":e+t.substring(0,o),this.reload_folder()}},on_btn_refresh:function(){""==this.current_dir?this.reload_drive():this.reload_folder()},on_btn_new_folder:function(){var e=this,t=this;this.$prompt(""+this.$t("newfolder.message"),""+this.$t("newfolder.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:""}).then(function(o){var i=o.value;if(""!=i){t.table_loading=!0;var r=e.append_segment(e.current_dir,i);n.c(r).then(function(o){t.table_loading=!1,0==o.status?e.reload_folder():e.$message({type:"error",message:e.$t("newfolder.newfoldererr")+" ["+o.status+"]"})}).catch(function(o){t.table_loading=!1,e.$message({type:"error",message:e.$t("newfolder.newfoldererr")+" ["+o.message+"]"})})}}).catch(function(){})},on_btn_upload:function(){this.upload_diag_visible=!0},on_btn_remove:function(){var e=this;if(0!=this.table_selection.length){var t=this,o=this.current_dir,i=0,r=this.table_selection.length;t.table_loading=!0,this.table_selection.forEach(function(l){n.d(e.append_segment(o,l.name)).then(function(o){e.delete_table_row_by_name(l.name),++i==r&&(t.table_loading=!1)}).catch(function(o){e.$message({type:"error",message:l.name+""+e.$t("del.error")+o}),++i==r&&(t.table_loading=!1)})},this)}},on_upload_diag_close:function(e){var t=this;this.$confirm(""+this.$t("upload.closemessage"),""+this.$t("upload.closetitle"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel")}).then(function(o){t.$refs.upload.clearFiles(),t.reload_folder(),e()}).catch(function(e){})},on_upload_request:function(e){console.log(e),n.e(this.append_segment(this.current_dir,e.file.name),e.file,function(t){e.onProgress({percent:t.written_bytes/t.total_bytes*100})},function(t){e.onSuccess()},function(t){e.onError(t)})},on_upload_error:function(e,t,o){this.$message({type:"error",message:t.name+""+this.$t("upload.errupload")+e})},on_row_btn_format:function(e,t){var o=this,i=this;this.$confirm(""+this.$t("format.messrow1a")+t.name+this.$t("format.messrow1b")+"\n"+this.$t("format.messrow2")+"\n"+this.$t("format.messrow3"),""+this.$t("format.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){i.table_loading=!0;var e=t.name.substr(0,1);n.f(e).then(function(e){o.$message({type:"success",message:t.name+""+o.$t("format.formatok")}),i.table_loading=!1,o.reload_drive()}).catch(function(e){o.$message({type:"error",message:t.name+""+o.$t("format.formaterr")+err}),i.table_loading=!1})})},on_row_btn_remove:function(e,t){var o=this,i=this;this.$confirm(""+this.$t("del.message")+t.name+this.$t("del.messageend"),""+this.$t("del.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){i.table_loading=!0;var e=o.append_segment(o.current_dir,t.name);n.d(e).then(function(e){i.table_loading=!1,0==e.status?(o.$message({type:"success",message:""+o.$t("del.deleteok")}),o.reload_folder()):o.$message({type:"error",message:t.name+""+o.$t("del.error")+"["+e.status+"]"})}).catch(function(e){o.$message({type:"error",message:t.name+""+o.$t("del.error")+"["+err+"]"}),i.table_loading=!1})})},on_row_btn_notes:function(e,t){var o=this;this.$prompt(""+this.$t("properties.entermsg"),""+this.$t("properties.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:t.notes}).then(function(e){var i=e.value,r={notes:i},l=o.append_segment(o.current_dir,t.name);n.g(l,r).then(function(e){0==e.status?t.notes=i:o.$message({type:"error",message:""+o.$t("properties.errupdate")})}).catch(function(e){o.$message({type:"error",message:e.message})})}).catch(function(){})},on_row_btn_rename:function(e,t){var o=this,i=this;this.$prompt(""+this.$t("rename.message"),""+this.$t("rename.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:t.name}).then(function(e){var r=e.value;if(r!=t.name){i.table_loading=!0;var l=o.append_segment(o.current_dir,t.name),a=o.append_segment(o.current_dir,r);n.h(l,a).then(function(e){i.table_loading=!1,0==e.status?t.name=r:o.$message({type:"error",message:o.$t("rename.errrename")+" ["+e.status+"]"})}).catch(function(e){i.table_loading=!1,o.$message({type:"error",message:o.$t("rename.errrename")+" ["+e.message+"]"})})}}).catch(function(){})},on_row_btn_meta:function(e,t){this.meta_form.name=t.name,this.meta_form.notes=t.notes,this.meta_form.flags=t.flags,this.meta_form.amiibo=t.amiibo,this.meta_form.row=t,this.meta_diag_visible=!0},on_diag_meta_close:function(){var e=this,t={notes:this.meta_form.notes,flags:this.meta_form.flags,amiibo:this.meta_form.amiibo};this.meta_diag_visible=!1;var o=this.append_segment(this.current_dir,this.meta_form.name),i=this.meta_form;n.g(o,t).then(function(t){0==t.status?(i.row.notes=i.notes,i.row.flags=i.flags,i.row.amiibo=i.amiibo):e.$message({type:"error",message:""+e.$t("properties.errupdate")})}).catch(function(t){e.$message({type:"error",message:t.message})})},on_table_selection_change:function(e){this.table_selection=e},on_table_sort_change:function(e,t,o){console.log("sort change: ",e,t,o)},sort_table_row_name:function(e,t){return console.log(e,t),e found nus Service: "+e.uuid))}),c.getCharacteristics()}).then(function(e){e.forEach(function(e){console.log(">> Characteristic: "+e.uuid+" "+s(e)),e.uuid==g?p=e:e.uuid==m&&(f=e,e.addEventListener("characteristicvaluechanged",l),e.startNotifications())}),console.log("connected!"),o.i(u.a)().emit("ble_connected")}).catch(function(e){o.i(u.a)().emit("ble_connect_error")})}function r(){d&&d.gatt.connected&&(d.gatt.disconnect(),d=null)}function n(e){return console.log("tx data:",h.wrap(e).toDebug()),p.writeValue(e)}function l(e){console.log("rx data:",h.wrap(e.target.value.buffer).toDebug()),o.i(u.a)().emit("ble_rx_data",e.target.value.buffer)}function a(e){o.i(u.a)().emit("ble_disconnected")}function s(e){var t=[];for(var o in e.properties)!0===e.properties[o]&&t.push(o.toUpperCase());return"["+t.join(", ")+"]"}t.b=i,t.a=r,t.c=n;var c,f,p,d,u=o(37),h=o(68),b=(o.n(h),"6e400001-b5a3-f393-e0a9-e50e24dcca9e"),g="6e400002-b5a3-f393-e0a9-e50e24dcca9e",m="6e400003-b5a3-f393-e0a9-e50e24dcca9e"},function(e,t,o){var i,r,n;/** +webpackJsonp([1],Array(37).concat([function(e,t,o){"use strict";function i(){return n}t.a=i;var r=o(210),n=(o.n(r),new r.EventEmitter)},,,,,function(e,t,o){"use strict";function i(e){var t,o;this.promise=new e(function(e,i){if(void 0!==t||void 0!==o)throw TypeError("Bad Promise constructor");t=e,o=i}),this.resolve=r(t),this.reject=r(o)}var r=o(27);e.exports.f=function(e){return new i(e)}},,,,,,,,,function(e,t,o){var i=o(69),r=o(5)("iterator"),n=o(21);e.exports=o(3).getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||n[i(e)]}},,,,,,,,,,,,function(e,t,o){"use strict";var i=o(135),r=o.n(i),n=o(137),l=o.n(n),a=o(38),s=o.n(a),c=o(1),f=o(228),p=o(194),d=o.n(p),u=o(88),h=o.n(u),g=o(195),b=o.n(g),m=o(197),_=o.n(m),x=o(196),v=o.n(x),w=o(193),y=o.n(w),k=o(125),E=o(129),z=o(128),A=o(126),T=o(127),L=o(124);c.default.use(f.a);var I={en:s()({},k.a,d.a),zh_TW:s()({},E.a,_.a),es:s()({},A.a,b.a),zh_CN:s()({},z.a,h.a),ru_RU:s()({},T.a,v.a),de_DE:s()({},L.a,y.a)},C=new f.a({locale:function(){var e=(navigator.language||navigator.browserLanguage).toLowerCase(),t=l()(I),o=!0,i=!1,n=void 0;try{for(var a,s=r()(t);!(o=(a=s.next()).done);o=!0){var c=a.value;if(e.indexOf(c)>-1)return c}}catch(e){i=!0,n=e}finally{try{!o&&s.return&&s.return()}finally{if(i)throw n}}return"zh_TW"}(),messages:I});t.a=C},,,function(e,t,o){"use strict";var i=o(67),r=o(37),n=o(130);t.a={data:function(){return{tableData:[],connBtnType:"",connBtnText:""+this.$t("conn.connect"),version:"",connected:!1,table_loading:!1,current_dir:"",upload_diag_visible:!1,table_selection:[],language:"zh_CN",meta_diag_visible:!1,meta_form:{notes:"",flags:{hide:!1},amiibo:{head:0,tail:0},name:"",row:null}}},methods:{on_btn_ble_connect:function(){this.connected?(i.a(),this.connBtnText=""+this.$t("conn.connect")):(this.connBtnText=""+this.$t("conn.connecting"),i.b())},on_ble_connected:function(){var e=this;this.connBtnText=""+this.$t("conn.disconnect"),this.connBtnType="success",this.connected=!0,this.$notify({title:"Pixl.js",type:"success",message:""+this.$t("conn.consuccess"),duration:5e3}),n.a().then(function(t){console.log("get version result",t),e.version=""+e.$t("status.connected")+t.data.ver,t.data.ver.startsWith("2.0.0")&&e.$alert(""+e.$t("oldfirm.message"),""+e.$t("oldfirm.title"),{confirmButtonText:""+e.$t("btn.ok"),callback:function(e){}});var o=t.data;LA.track("pixl_device_connect",{version:o.ver,mac:o.ble_addr}),e.reload_drive()})},on_ble_disconnected:function(){this.connBtnType="",this.connected=!1,this.connBtnText=""+this.$t("conn.connect"),this.version="",this.table_loading=!1,this.tableData=[],this.current_dir="",this.$notify({title:"Pixl.js",type:"error",message:""+this.$t("conn.disconnected"),duration:5e3})},on_ble_connect_error:function(){this.connBtnType="",this.connBtnText=""+this.$t("conn.connect"),this.version="",this.table_loading=!1,this.tableData=[],this.current_dir="",this.$notify({title:"Pixl.js",type:"error",message:""+this.$t("conn.connfailed"),duration:5e3})},on_btn_enter_dfu:function(){var e=this;this.$confirm(""+this.$t("dfumode.startconfirm"),""+this.$t("dfumode.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){n.b().then(function(t){e.$confirm(""+e.$t("dfumode.updateconfirm"),""+e.$t("dfumode.updatetitle"),{confirmButtonText:""+e.$t("btn.ok"),cancelButtonText:""+e.$t("btn.cancel"),type:"success"}).then(function(e){document.location.href="https://thegecko.github.io/web-bluetooth-dfu/examples/web.html"})})})},on_btn_up:function(){var e=this.current_dir.substring(0,2),t=this.current_dir.substring(2);if("/"==t)this.current_dir="",this.reload_drive();else{var o=t.lastIndexOf("/");this.current_dir=0==o?e+"/":e+t.substring(0,o),this.reload_folder()}},on_btn_refresh:function(){""==this.current_dir?this.reload_drive():this.reload_folder()},on_btn_new_folder:function(){var e=this,t=this;this.$prompt(""+this.$t("newfolder.message"),""+this.$t("newfolder.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:""}).then(function(o){var i=o.value;if(""!=i){t.table_loading=!0;var r=e.append_segment(e.current_dir,i);n.c(r).then(function(o){t.table_loading=!1,0==o.status?e.reload_folder():e.$message({type:"error",message:e.$t("newfolder.newfoldererr")+" ["+o.status+"]"})}).catch(function(o){t.table_loading=!1,e.$message({type:"error",message:e.$t("newfolder.newfoldererr")+" ["+o.message+"]"})})}}).catch(function(){})},on_btn_upload:function(){this.upload_diag_visible=!0},on_btn_remove:function(){var e=this;if(0!=this.table_selection.length){var t=this,o=this.current_dir,i=0,r=this.table_selection.length;t.table_loading=!0,this.table_selection.forEach(function(l){n.d(e.append_segment(o,l.name)).then(function(o){e.delete_table_row_by_name(l.name),++i==r&&(t.table_loading=!1)}).catch(function(o){e.$message({type:"error",message:l.name+""+e.$t("del.error")+o}),++i==r&&(t.table_loading=!1)})},this)}},on_upload_diag_close:function(e){var t=this;this.$confirm(""+this.$t("upload.closemessage"),""+this.$t("upload.closetitle"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel")}).then(function(o){t.$refs.upload.clearFiles(),t.reload_folder(),e()}).catch(function(e){})},on_upload_request:function(e){console.log(e),n.e(this.append_segment(this.current_dir,e.file.name),e.file,function(t){e.onProgress({percent:t.written_bytes/t.total_bytes*100})},function(t){e.onSuccess()},function(t){e.onError(t)})},on_upload_error:function(e,t,o){this.$message({type:"error",message:t.name+""+this.$t("upload.errupload")+e})},on_row_btn_format:function(e,t){var o=this,i=this;this.$confirm(""+this.$t("format.messrow1a")+t.name+this.$t("format.messrow1b")+"\n"+this.$t("format.messrow2")+"\n"+this.$t("format.messrow3"),""+this.$t("format.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){i.table_loading=!0;var e=t.name.substr(0,1);n.f(e).then(function(e){o.$message({type:"success",message:t.name+""+o.$t("format.formatok")}),i.table_loading=!1,o.reload_drive()}).catch(function(e){o.$message({type:"error",message:t.name+""+o.$t("format.formaterr")+err}),i.table_loading=!1})})},on_row_btn_remove:function(e,t){var o=this,i=this;this.$confirm(""+this.$t("del.message")+t.name+this.$t("del.messageend"),""+this.$t("del.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),type:"warning"}).then(function(){i.table_loading=!0;var e=o.append_segment(o.current_dir,t.name);n.d(e).then(function(e){i.table_loading=!1,0==e.status?(o.$message({type:"success",message:""+o.$t("del.deleteok")}),o.reload_folder()):o.$message({type:"error",message:t.name+""+o.$t("del.error")+"["+e.status+"]"})}).catch(function(e){o.$message({type:"error",message:t.name+""+o.$t("del.error")+"["+err+"]"}),i.table_loading=!1})})},on_row_btn_notes:function(e,t){var o=this;this.$prompt(""+this.$t("properties.entermsg"),""+this.$t("properties.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:t.notes}).then(function(e){var i=e.value,r={notes:i},l=o.append_segment(o.current_dir,t.name);n.g(l,r).then(function(e){0==e.status?t.notes=i:o.$message({type:"error",message:""+o.$t("properties.errupdate")})}).catch(function(e){o.$message({type:"error",message:e.message})})}).catch(function(){})},on_row_btn_rename:function(e,t){var o=this,i=this;this.$prompt(""+this.$t("rename.message"),""+this.$t("rename.title"),{confirmButtonText:""+this.$t("btn.ok"),cancelButtonText:""+this.$t("btn.cancel"),inputValue:t.name}).then(function(e){var r=e.value;if(r!=t.name){i.table_loading=!0;var l=o.append_segment(o.current_dir,t.name),a=o.append_segment(o.current_dir,r);n.h(l,a).then(function(e){i.table_loading=!1,0==e.status?t.name=r:o.$message({type:"error",message:o.$t("rename.errrename")+" ["+e.status+"]"})}).catch(function(e){i.table_loading=!1,o.$message({type:"error",message:o.$t("rename.errrename")+" ["+e.message+"]"})})}}).catch(function(){})},on_row_btn_meta:function(e,t){this.meta_form.name=t.name,this.meta_form.notes=t.notes,this.meta_form.flags=t.flags,this.meta_form.amiibo=t.amiibo,this.meta_form.row=t,this.meta_diag_visible=!0},on_diag_meta_close:function(){var e=this,t={notes:this.meta_form.notes,flags:this.meta_form.flags,amiibo:this.meta_form.amiibo};this.meta_diag_visible=!1;var o=this.append_segment(this.current_dir,this.meta_form.name),i=this.meta_form;n.g(o,t).then(function(t){0==t.status?(i.row.notes=i.notes,i.row.flags=i.flags,i.row.amiibo=i.amiibo):e.$message({type:"error",message:""+e.$t("properties.errupdate")})}).catch(function(t){e.$message({type:"error",message:t.message})})},on_table_selection_change:function(e){this.table_selection=e},on_table_sort_change:function(e,t,o){console.log("sort change: ",e,t,o)},sort_table_row_name:function(e,t){return console.log(e,t),e found nus Service: "+e.uuid))}),c.getCharacteristics()}).then(function(e){e.forEach(function(e){console.log(">> Characteristic: "+e.uuid+" "+s(e)),e.uuid==b?p=e:e.uuid==m&&(f=e,e.addEventListener("characteristicvaluechanged",l),e.startNotifications())}),console.log("connected!"),o.i(u.a)().emit("ble_connected")}).catch(function(e){o.i(u.a)().emit("ble_connect_error")})}function r(){d&&d.gatt.connected&&(d.gatt.disconnect(),d=null)}function n(e){return console.log("tx data:",h.wrap(e).toDebug()),p.writeValue(e)}function l(e){console.log("rx data:",h.wrap(e.target.value.buffer).toDebug()),o.i(u.a)().emit("ble_rx_data",e.target.value.buffer)}function a(e){o.i(u.a)().emit("ble_disconnected")}function s(e){var t=[];for(var o in e.properties)!0===e.properties[o]&&t.push(o.toUpperCase());return"["+t.join(", ")+"]"}t.b=i,t.a=r,t.c=n;var c,f,p,d,u=o(37),h=o(68),g=(o.n(h),"6e400001-b5a3-f393-e0a9-e50e24dcca9e"),b="6e400002-b5a3-f393-e0a9-e50e24dcca9e",m="6e400003-b5a3-f393-e0a9-e50e24dcca9e"},function(e,t,o){var i,r,n;/** * @license bytebuffer.js (c) 2015 Daniel Wirtz * Backing buffer: ArrayBuffer, Accessor: Uint8Array * Released under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/bytebuffer.js for details */ -!function(l,a){r=[o(210)],i=a,void 0!==(n="function"==typeof i?i.apply(t,r):i)&&(e.exports=n)}(0,function(e){"use strict";function t(e){var t=0;return function(){return t1024&&(t.push(s.apply(String,e)),e.length=0),Array.prototype.push.apply(e,arguments)}}function i(e,t,o,i,r){var n,l,a=8*r-i-1,s=(1<>1,f=-7,p=o?r-1:0,d=o?-1:1,u=e[t+p];for(p+=d,n=u&(1<<-f)-1,u>>=-f,f+=a;f>0;n=256*n+e[t+p],p+=d,f-=8);for(l=n&(1<<-f)-1,n>>=-f,f+=i;f>0;l=256*l+e[t+p],p+=d,f-=8);if(0===n)n=1-c;else{if(n===s)return l?NaN:1/0*(u?-1:1);l+=Math.pow(2,i),n-=c}return(u?-1:1)*l*Math.pow(2,n-i)}function r(e,t,o,i,r,n){var l,a,s,c=8*n-r-1,f=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:n-1,h=i?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,l=f):(l=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-l))<1&&(l--,s*=2),t+=l+p>=1?d/s:d*Math.pow(2,1-p),t*s>=2&&(l++,s/=2),l+p>=f?(a=0,l=f):l+p>=1?(a=(t*s-1)*Math.pow(2,r),l+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,r),l=0));r>=8;e[o+u]=255&a,u+=h,a/=256,r-=8);for(l=l<0;e[o+u]=255&l,u+=h,l/=256,c-=8);e[o+u-h]|=128*b}var n=function(e,t,o){if(void 0===e&&(e=n.DEFAULT_CAPACITY),void 0===t&&(t=n.DEFAULT_ENDIAN),void 0===o&&(o=n.DEFAULT_NOASSERT),!o){if((e|=0)<0)throw RangeError("Illegal capacity");t=!!t,o=!!o}this.buffer=0===e?a:new ArrayBuffer(e),this.view=0===e?null:new Uint8Array(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t,this.noAssert=o};n.VERSION="5.0.1",n.LITTLE_ENDIAN=!0,n.BIG_ENDIAN=!1,n.DEFAULT_CAPACITY=16,n.DEFAULT_ENDIAN=n.BIG_ENDIAN,n.DEFAULT_NOASSERT=!1,n.Long=e||null;var l=n.prototype;l.__isByteBuffer__,Object.defineProperty(l,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var a=new ArrayBuffer(0),s=String.fromCharCode;n.accessor=function(){return Uint8Array},n.allocate=function(e,t,o){return new n(e,t,o)},n.concat=function(e,t,o,i){"boolean"!=typeof t&&"string"==typeof t||(i=o,o=t,t=void 0);for(var r,l=0,a=0,s=e.length;a0&&(l+=r);if(0===l)return new n(0,o,i);var c,f=new n(l,o,i);for(a=0;a0&&(r.buffer=e.buffer,r.offset=e.byteOffset,r.limit=e.byteOffset+e.byteLength,r.view=new Uint8Array(e.buffer));else if(e instanceof ArrayBuffer)r=new n(0,o,i),e.byteLength>0&&(r.buffer=e,r.offset=0,r.limit=e.byteLength,r.view=e.byteLength>0?new Uint8Array(e):null);else{if("[object Array]"!==Object.prototype.toString.call(e))throw TypeError("Illegal buffer");r=new n(e.length,o,i),r.limit=e.length;for(var a=0;a>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var i,r=t,n=e.length,l=n>>3,a=0;for(t+=this.writeVarint32(n,t);l--;)i=1&!!e[a++]|(1&!!e[a++])<<1|(1&!!e[a++])<<2|(1&!!e[a++])<<3|(1&!!e[a++])<<4|(1&!!e[a++])<<5|(1&!!e[a++])<<6|(1&!!e[a++])<<7,this.writeByte(i,t++);if(a>3,l=0,a=[];for(e+=i.length;n--;)o=this.readByte(e++),a[l++]=!!(1&o),a[l++]=!!(2&o),a[l++]=!!(4&o),a[l++]=!!(8&o),a[l++]=!!(16&o),a[l++]=!!(32&o),a[l++]=!!(64&o),a[l++]=!!(128&o);if(l>s++&1)}return t&&(this.offset=e),a},l.readBytes=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+"+e+") <= "+this.buffer.byteLength)}var i=this.slice(t,t+e);return o&&(this.offset+=e),i},l.writeBytes=l.append,l.writeInt8=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=1,this.view[t]=e,o&&(this.offset+=1),this},l.writeByte=l.writeInt8,l.readInt8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=this.view[e];return 128==(128&o)&&(o=-(255-o+1)),t&&(this.offset+=1),o},l.readByte=l.readInt8,l.writeUint8=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=1,this.view[t]=e,o&&(this.offset+=1),this},l.writeUInt8=l.writeUint8,l.readUint8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=this.view[e];return t&&(this.offset+=1),o},l.readUInt8=l.readUint8,l.writeInt16=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),o&&(this.offset+=2),this},l.writeShort=l.writeInt16,l.readInt16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e],o|=this.view[e+1]<<8):(o=this.view[e]<<8,o|=this.view[e+1]),32768==(32768&o)&&(o=-(65535-o+1)),t&&(this.offset+=2),o},l.readShort=l.readInt16,l.writeUint16=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),o&&(this.offset+=2),this},l.writeUInt16=l.writeUint16,l.readUint16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e],o|=this.view[e+1]<<8):(o=this.view[e]<<8,o|=this.view[e+1]),t&&(this.offset+=2),o},l.readUInt16=l.readUint16,l.writeInt32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),o&&(this.offset+=4),this},l.writeInt=l.writeInt32,l.readInt32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e+2]<<16,o|=this.view[e+1]<<8,o|=this.view[e],o+=this.view[e+3]<<24>>>0):(o=this.view[e+1]<<16,o|=this.view[e+2]<<8,o|=this.view[e+3],o+=this.view[e]<<24>>>0),o|=0,t&&(this.offset+=4),o},l.readInt=l.readInt32,l.writeUint32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),o&&(this.offset+=4),this},l.writeUInt32=l.writeUint32,l.readUint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e+2]<<16,o|=this.view[e+1]<<8,o|=this.view[e],o+=this.view[e+3]<<24>>>0):(o=this.view[e+1]<<16,o|=this.view[e+2]<<8,o|=this.view[e+3],o+=this.view[e]<<24>>>0),t&&(this.offset+=4),o},l.readUInt32=l.readUint32,e&&(l.writeInt64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t)),o+=8;var r=this.buffer.byteLength;o>r&&this.resize((r*=2)>o?r:o),o-=8;var n=t.low,l=t.high;return this.littleEndian?(this.view[o+3]=n>>>24&255,this.view[o+2]=n>>>16&255,this.view[o+1]=n>>>8&255,this.view[o]=255&n,o+=4,this.view[o+3]=l>>>24&255,this.view[o+2]=l>>>16&255,this.view[o+1]=l>>>8&255,this.view[o]=255&l):(this.view[o]=l>>>24&255,this.view[o+1]=l>>>16&255,this.view[o+2]=l>>>8&255,this.view[o+3]=255&l,o+=4,this.view[o]=n>>>24&255,this.view[o+1]=n>>>16&255,this.view[o+2]=n>>>8&255,this.view[o+3]=255&n),i&&(this.offset+=8),this},l.writeLong=l.writeInt64,l.readInt64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+8) <= "+this.buffer.byteLength)}var i=0,r=0;this.littleEndian?(i=this.view[t+2]<<16,i|=this.view[t+1]<<8,i|=this.view[t],i+=this.view[t+3]<<24>>>0,t+=4,r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0,t+=4,i=this.view[t+1]<<16,i|=this.view[t+2]<<8,i|=this.view[t+3],i+=this.view[t]<<24>>>0);var n=new e(i,r,!1);return o&&(this.offset+=8),n},l.readLong=l.readInt64,l.writeUint64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t)),o+=8;var r=this.buffer.byteLength;o>r&&this.resize((r*=2)>o?r:o),o-=8;var n=t.low,l=t.high;return this.littleEndian?(this.view[o+3]=n>>>24&255,this.view[o+2]=n>>>16&255,this.view[o+1]=n>>>8&255,this.view[o]=255&n,o+=4,this.view[o+3]=l>>>24&255,this.view[o+2]=l>>>16&255,this.view[o+1]=l>>>8&255,this.view[o]=255&l):(this.view[o]=l>>>24&255,this.view[o+1]=l>>>16&255,this.view[o+2]=l>>>8&255,this.view[o+3]=255&l,o+=4,this.view[o]=n>>>24&255,this.view[o+1]=n>>>16&255,this.view[o+2]=n>>>8&255,this.view[o+3]=255&n),i&&(this.offset+=8),this},l.writeUInt64=l.writeUint64,l.readUint64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+8) <= "+this.buffer.byteLength)}var i=0,r=0;this.littleEndian?(i=this.view[t+2]<<16,i|=this.view[t+1]<<8,i|=this.view[t],i+=this.view[t+3]<<24>>>0,t+=4,r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0,t+=4,i=this.view[t+1]<<16,i|=this.view[t+2]<<8,i|=this.view[t+3],i+=this.view[t]<<24>>>0);var n=new e(i,r,!0);return o&&(this.offset+=8),n},l.readUInt64=l.readUint64),l.writeFloat32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,r(this.view,e,t,this.littleEndian,23,4),o&&(this.offset+=4),this},l.writeFloat=l.writeFloat32,l.readFloat32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=i(this.view,e,this.littleEndian,23,4);return t&&(this.offset+=4),o},l.readFloat=l.readFloat32,l.writeFloat64=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=8;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=8,r(this.view,e,t,this.littleEndian,52,8),o&&(this.offset+=8),this},l.writeDouble=l.writeFloat64,l.readFloat64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var o=i(this.view,e,this.littleEndian,52,8);return t&&(this.offset+=8),o},l.readDouble=l.readFloat64,n.MAX_VARINT32_BYTES=5,n.calculateVarint32=function(e){return e>>>=0,e<128?1:e<16384?2:e<1<<21?3:e<1<<28?4:5},n.zigZagEncode32=function(e){return((e|=0)<<1^e>>31)>>>0},n.zigZagDecode32=function(e){return e>>>1^-(1&e)|0},l.writeVarint32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var i,r=n.calculateVarint32(e);t+=r;var l=this.buffer.byteLength;for(t>l&&this.resize((l*=2)>t?l:t),t-=r,e>>>=0;e>=128;)i=127&e|128,this.view[t++]=i,e>>>=7;return this.view[t++]=e,o?(this.offset=t,this):r},l.writeVarint32ZigZag=function(e,t){return this.writeVarint32(n.zigZagEncode32(e),t)},l.readVarint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o,i=0,r=0;do{if(!this.noAssert&&e>this.limit){var n=Error("Truncated");throw n.truncated=!0,n}o=this.view[e++],i<5&&(r|=(127&o)<<7*i),++i}while(0!=(128&o));return r|=0,t?(this.offset=e,r):{value:r,length:i}},l.readVarint32ZigZag=function(e){var t=this.readVarint32(e);return"object"==typeof t?t.value=n.zigZagDecode32(t.value):t=n.zigZagDecode32(t),t},e&&(n.MAX_VARINT64_BYTES=10,n.calculateVarint64=function(t){"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t));var o=t.toInt()>>>0,i=t.shiftRightUnsigned(28).toInt()>>>0,r=t.shiftRightUnsigned(56).toInt()>>>0;return 0==r?0==i?o<16384?o<128?1:2:o<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:r<128?9:10},n.zigZagEncode64=function(t){return"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned()),t.shiftLeft(1).xor(t.shiftRight(63)).toUnsigned()},n.zigZagDecode64=function(t){return"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned()),t.shiftRightUnsigned(1).xor(t.and(e.ONE).toSigned().negate()).toSigned()},l.writeVarint64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned());var r=n.calculateVarint64(t),l=t.toInt()>>>0,a=t.shiftRightUnsigned(28).toInt()>>>0,s=t.shiftRightUnsigned(56).toInt()>>>0;o+=r;var c=this.buffer.byteLength;switch(o>c&&this.resize((c*=2)>o?c:o),o-=r,r){case 10:this.view[o+9]=s>>>7&1;case 9:this.view[o+8]=9!==r?128|s:127&s;case 8:this.view[o+7]=8!==r?a>>>21|128:a>>>21&127;case 7:this.view[o+6]=7!==r?a>>>14|128:a>>>14&127;case 6:this.view[o+5]=6!==r?a>>>7|128:a>>>7&127;case 5:this.view[o+4]=5!==r?128|a:127&a;case 4:this.view[o+3]=4!==r?l>>>21|128:l>>>21&127;case 3:this.view[o+2]=3!==r?l>>>14|128:l>>>14&127;case 2:this.view[o+1]=2!==r?l>>>7|128:l>>>7&127;case 1:this.view[o]=1!==r?128|l:127&l}return i?(this.offset+=r,this):r},l.writeVarint64ZigZag=function(e,t){return this.writeVarint64(n.zigZagEncode64(e),t)},l.readVarint64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var i=t,r=0,n=0,l=0,a=0;if(a=this.view[t++],r=127&a,128&a&&(a=this.view[t++],r|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],r|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],r|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],l=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],l|=(127&a)<<7,128&a||this.noAssert&&void 0===a))))))))))throw Error("Buffer overrun");var s=e.fromBits(r|n<<28,n>>>4|l<<24,!1);return o?(this.offset=t,s):{value:s,length:t-i}},l.readVarint64ZigZag=function(t){var o=this.readVarint64(t);return o&&o.value instanceof e?o.value=n.zigZagDecode64(o.value):o=n.zigZagDecode64(o),o}),l.writeCString=function(e,o){var i=void 0===o;i&&(o=this.offset);var r,n=e.length;if(!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");for(r=0;r>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}n=f.calculateUTF16asUTF8(t(e))[1],o+=n+1;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=n+1,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),this.view[o++]=0,i?(this.offset=o,this):n},l.readCString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i,r=e,n=-1;return f.decodeUTF8toUTF16(function(){if(0===n)return null;if(e>=this.limit)throw RangeError("Illegal range: Truncated data, "+e+" < "+this.limit);return n=this.view[e++],0===n?null:n}.bind(this),i=o(),!0),t?(this.offset=e,i()):{string:i(),length:e-r}},l.writeIString=function(e,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,n=o;r=f.calculateUTF16asUTF8(t(e),this.noAssert)[1],o+=4+r;var l=this.buffer.byteLength;if(o>l&&this.resize((l*=2)>o?l:o),o-=4+r,this.littleEndian?(this.view[o+3]=r>>>24&255,this.view[o+2]=r>>>16&255,this.view[o+1]=r>>>8&255,this.view[o]=255&r):(this.view[o]=r>>>24&255,this.view[o+1]=r>>>16&255,this.view[o+2]=r>>>8&255,this.view[o+3]=255&r),o+=4,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),o!==n+4+r)throw RangeError("Illegal range: Truncated data, "+o+" == "+(o+4+r));return i?(this.offset=o,this):o-n},l.readIString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=e,i=this.readUint32(e),r=this.readUTF8String(i,n.METRICS_BYTES,e+=4);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-o}},n.METRICS_CHARS="c",n.METRICS_BYTES="b",l.writeUTF8String=function(e,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,n=o;r=f.calculateUTF16asUTF8(t(e))[1],o+=r;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=r,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),i?(this.offset=o,this):o-n},l.writeString=l.writeUTF8String,n.calculateUTF8Chars=function(e){return f.calculateUTF16asUTF8(t(e))[0]},n.calculateUTF8Bytes=function(e){return f.calculateUTF16asUTF8(t(e))[1]},n.calculateString=n.calculateUTF8Bytes,l.readUTF8String=function(e,t,i){"number"==typeof t&&(i=t,t=void 0);var r=void 0===i;if(r&&(i=this.offset),void 0===t&&(t=n.METRICS_CHARS),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");if(e|=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}var l,a=0,s=i;if(t===n.METRICS_CHARS){if(l=o(),f.decodeUTF8(function(){return a>>=0)<0||i+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+"+e+") <= "+this.buffer.byteLength)}var c=i+e;if(f.decodeUTF8toUTF16(function(){return i>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,l,a=o;r=f.calculateUTF16asUTF8(t(e),this.noAssert)[1],l=n.calculateVarint32(r),o+=l+r;var s=this.buffer.byteLength;if(o>s&&this.resize((s*=2)>o?s:o),o-=l+r,o+=this.writeVarint32(r,o),f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),o!==a+r+l)throw RangeError("Illegal range: Truncated data, "+o+" == "+(o+r+l));return i?(this.offset=o,this):o-a},l.readVString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=e,i=this.readVarint32(e),r=this.readUTF8String(i.value,n.METRICS_BYTES,e+=i.length);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-o}},l.append=function(e,t,o){"number"!=typeof t&&"string"==typeof t||(o=t,t=void 0);var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}e instanceof n||(e=n.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;o+=r;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=r,this.view.set(e.view.subarray(e.offset,e.limit),o),e.offset+=r,i&&(this.offset+=r),this},l.appendTo=function(e,t){return e.append(this,t),this},l.assert=function(e){return this.noAssert=!e,this},l.capacity=function(){return this.buffer.byteLength},l.clear=function(){return this.offset=0,this.limit=this.buffer.byteLength,this.markedOffset=-1,this},l.clone=function(e){var t=new n(0,this.littleEndian,this.noAssert);return e?(t.buffer=new ArrayBuffer(this.buffer.byteLength),t.view=new Uint8Array(t.buffer)):(t.buffer=this.buffer,t.view=this.view),t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t},l.compact=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(0===e&&t===this.buffer.byteLength)return this;var o=t-e;if(0===o)return this.buffer=a,this.view=null,this.markedOffset>=0&&(this.markedOffset-=e),this.offset=0,this.limit=0,this;var i=new ArrayBuffer(o),r=new Uint8Array(i);return r.set(this.view.subarray(e,t)),this.buffer=i,this.view=r,this.markedOffset>=0&&(this.markedOffset-=e),this.offset=0,this.limit=o,this},l.copy=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(e===t)return new n(0,this.littleEndian,this.noAssert);var o=t-e,i=new n(o,this.littleEndian,this.noAssert);return i.offset=0,i.limit=o,i.markedOffset>=0&&(i.markedOffset-=e),this.copyTo(i,0,e,t),i},l.copyTo=function(e,t,o,i){var r,l;if(!this.noAssert&&!n.isByteBuffer(e))throw TypeError("Illegal target: Not a ByteBuffer");if(t=(l=void 0===t)?e.offset:0|t,o=(r=void 0===o)?this.offset:0|o,i=void 0===i?this.limit:0|i,t<0||t>e.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+t+" <= "+e.buffer.byteLength);if(o<0||i>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+o+" <= "+this.buffer.byteLength);var a=i-o;return 0===a?e:(e.ensureCapacity(t+a),e.view.set(this.view.subarray(o,i),t),r&&(this.offset+=a),l&&(e.offset+=a),this)},l.ensureCapacity=function(e){var t=this.buffer.byteLength;return te?t:e):this},l.fill=function(e,t,o){var i=void 0===t;if(i&&(t=this.offset),"string"==typeof e&&e.length>0&&(e=e.charCodeAt(0)),void 0===t&&(t=this.offset),void 0===o&&(o=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof o||o%1!=0)throw TypeError("Illegal end: Not an integer");if(o>>>=0,t<0||t>o||o>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+o+" <= "+this.buffer.byteLength)}if(t>=o)return this;for(;t>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}return this.markedOffset=e,this},l.order=function(e){if(!this.noAssert&&"boolean"!=typeof e)throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!e,this},l.LE=function(e){return this.littleEndian=void 0===e||!!e,this},l.BE=function(e){return this.littleEndian=void 0!==e&&!e,this},l.prepend=function(e,t,o){"number"!=typeof t&&"string"==typeof t||(o=t,t=void 0);var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}e instanceof n||(e=n.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;var l=r-o;if(l>0){var a=new ArrayBuffer(this.buffer.byteLength+l),s=new Uint8Array(a);s.set(this.view.subarray(o,this.buffer.byteLength),r),this.buffer=a,this.view=s,this.offset+=l,this.markedOffset>=0&&(this.markedOffset+=l),this.limit+=l,o+=l}else{new Uint8Array(this.buffer)}return this.view.set(e.view.subarray(e.offset,e.limit),o-r),e.offset=e.limit,i&&(this.offset-=r),this},l.prependTo=function(e,t){return e.prepend(this,t),this},l.printDebug=function(e){"function"!=typeof e&&(e=console.log.bind(console)),e(this.toString()+"\n-------------------------------------------------------------------\n"+this.toDebug(!0))},l.remaining=function(){return this.limit-this.offset},l.reset=function(){return this.markedOffset>=0?(this.offset=this.markedOffset,this.markedOffset=-1):this.offset=0,this},l.resize=function(e){if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal capacity: "+e+" (not an integer)");if((e|=0)<0)throw RangeError("Illegal capacity: 0 <= "+e)}if(this.buffer.byteLength>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}return e===t?this:(Array.prototype.reverse.call(this.view.subarray(e,t)),this)},l.skip=function(e){if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");e|=0}var t=this.offset+e;if(!this.noAssert&&(t<0||t>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+e+" <= "+this.buffer.byteLength);return this.offset=t,this},l.slice=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}var o=this.clone();return o.offset=e,o.limit=t,o},l.toBuffer=function(e){var t=this.offset,o=this.limit;if(!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: Not an integer");if(t>>>=0,"number"!=typeof o||o%1!=0)throw TypeError("Illegal limit: Not an integer");if(o>>>=0,t<0||t>o||o>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+o+" <= "+this.buffer.byteLength)}if(!e&&0===t&&o===this.buffer.byteLength)return this.buffer;if(t===o)return a;var i=new ArrayBuffer(o-t);return new Uint8Array(i).set(new Uint8Array(this.buffer).subarray(t,o),0),i},l.toArrayBuffer=l.toBuffer,l.toString=function(e,t,o){if(void 0===e)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch("number"==typeof e&&(e="utf8",t=e,o=t),e){case"utf8":return this.toUTF8(t,o);case"base64":return this.toBase64(t,o);case"hex":return this.toHex(t,o);case"binary":return this.toBinary(t,o);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+e)}};var c=function(){for(var e={},t=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,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,48,49,50,51,52,53,54,55,56,57,43,47],o=[],i=0,r=t.length;i>2&63]),r=(3&i)<<4,null!==(i=e())?(r|=i>>4&15,o(t[63&(r|i>>4&15)]),r=(15&i)<<2,null!==(i=e())?(o(t[63&(r|i>>6&3)]),o(t[63&i])):(o(t[63&r]),o(61))):(o(t[63&r]),o(61),o(61))},e.decode=function(e,t){function i(e){throw Error("Illegal character code: "+e)}for(var r,n,l;null!==(r=e());)if(n=o[r],void 0===n&&i(r),null!==(r=e())&&(l=o[r],void 0===l&&i(r),t(n<<2>>>0|(48&l)>>4),null!==(r=e()))){if(void 0===(n=o[r])){if(61===r)break;i(r)}if(t((15&l)<<4>>>0|(60&n)>>2),null!==(r=e())){if(void 0===(l=o[r])){if(61===r)break;i(r)}t((3&n)<<6>>>0|l)}}},e.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)},e}();l.toBase64=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),e|=0,t|=0,e<0||t>this.capacity||e>t)throw RangeError("begin, end");var i;return c.encode(function(){return ethis.capacity()||e>t)throw RangeError("begin, end");if(e===t)return"";for(var o=[],i=[];e=1024&&(i.push(String.fromCharCode.apply(String,o)),o=[]);return i.join("")+String.fromCharCode.apply(String,o)},n.fromBinary=function(e,t){if("string"!=typeof e)throw TypeError("str");for(var o,i=0,r=e.length,l=new n(r,t);i255)throw RangeError("illegal char code: "+o);l.view[i++]=o}return l.limit=r,l},l.toDebug=function(e){for(var t,o=-1,i=this.buffer.byteLength,r="",n="",l="";o32&&t<127?String.fromCharCode(t):".")),++o,e&&o>0&&o%16==0&&o!==i){for(;r.length<51;)r+=" ";l+=r+n+"\n",r=n=""}o===this.offset&&o===this.limit?r+=o===this.markedOffset?"!":"|":o===this.offset?r+=o===this.markedOffset?"[":"<":o===this.limit?r+=o===this.markedOffset?"]":">":r+=o===this.markedOffset?"'":e||0!==o&&o!==i?" ":""}if(e&&" "!==r){for(;r.length<51;)r+=" ";l+=r+n+"\n"}return e?l:r},n.fromDebug=function(e,t,o){for(var i,r,l=e.length,a=new n((l+1)/3|0,t,o),s=0,c=0,f=!1,p=!1,d=!1,u=!1,h=!1;s":if(!o){if(u){h=!0;break}u=!0}a.limit=c,f=!1;break;case"'":if(!o){if(d){h=!0;break}d=!0}a.markedOffset=c,f=!1;break;case" ":f=!1;break;default:if(!o&&f){h=!0;break}if(r=parseInt(i+e.charAt(s++),16),!o&&(isNaN(r)||r<0||r>255))throw TypeError("Illegal str: Not a debug encoded string");a.view[c++]=r,f=!0}if(h)throw TypeError("Illegal str: Invalid symbol at "+s)}if(!o){if(!p||!u)throw TypeError("Illegal str: Missing offset or limit");if(c>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}for(var o,i=new Array(t-e);e255))throw TypeError("Illegal str: Contains non-hex characters");l.view[s++]=i}return l.limit=s,l};var f=function(){var e={};return e.MAX_CODEPOINT=1114111,e.encodeUTF8=function(e,t){var o=null;for("number"==typeof e&&(o=e,e=function(){return null});null!==o||null!==(o=e());)o<128?t(127&o):o<2048?(t(o>>6&31|192),t(63&o|128)):o<65536?(t(o>>12&15|224),t(o>>6&63|128),t(63&o|128)):(t(o>>18&7|240),t(o>>12&63|128),t(o>>6&63|128),t(63&o|128)),o=null},e.decodeUTF8=function(e,t){for(var o,i,r,n,l=function(e){e=e.slice(0,e.indexOf(null));var t=Error(e.toString());throw t.name="TruncatedError",t.bytes=e,t};null!==(o=e());)if(0==(128&o))t(o);else if(192==(224&o))null===(i=e())&&l([o,i]),t((31&o)<<6|63&i);else if(224==(240&o))(null===(i=e())||null===(r=e()))&&l([o,i,r]),t((15&o)<<12|(63&i)<<6|63&r);else{if(240!=(248&o))throw RangeError("Illegal starting byte: "+o);(null===(i=e())||null===(r=e())||null===(n=e()))&&l([o,i,r,n]),t((7&o)<<18|(63&i)<<12|(63&r)<<6|63&n)}},e.UTF16toUTF8=function(e,t){for(var o,i=null;;){if(null===(o=null!==i?i:e()))break;o>=55296&&o<=57343&&null!==(i=e())&&i>=56320&&i<=57343?(t(1024*(o-55296)+i-56320+65536),i=null):t(o)}null!==i&&t(i)},e.UTF8toUTF16=function(e,t){var o=null;for("number"==typeof e&&(o=e,e=function(){return null});null!==o||null!==(o=e());)o<=65535?t(o):(o-=65536,t(55296+(o>>10)),t(o%1024+56320)),o=null},e.encodeUTF16toUTF8=function(t,o){e.UTF16toUTF8(t,function(t){e.encodeUTF8(t,o)})},e.decodeUTF8toUTF16=function(t,o){e.decodeUTF8(t,function(t){e.UTF8toUTF16(t,o)})},e.calculateCodePoint=function(e){return e<128?1:e<2048?2:e<65536?3:4},e.calculateUTF8=function(e){for(var t,o=0;null!==(t=e());)o+=t<128?1:t<2048?2:t<65536?3:4;return o},e.calculateUTF16asUTF8=function(t){var o=0,i=0;return e.UTF16toUTF8(t,function(e){++o,i+=e<128?1:e<2048?2:e<65536?3:4}),[o,i]},e}();return l.toUTF8=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}var i;try{f.decodeUTF8toUTF16(function(){return eo;)t.push(arguments[o++]);return m[++g]=function(){a("function"==typeof e?e:Function(e),t)},i(g),g},u=function(e){delete m[e]},"process"==o(19)(p)?i=function(e){p.nextTick(l(_,e,1))}:b&&b.now?i=function(e){b.now(l(_,e,1))}:h?(r=new h,n=r.port2,r.port1.onmessage=x,i=l(n.postMessage,n,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(i=function(e){f.postMessage(e+"","*")},f.addEventListener("message",x,!1)):i="onreadystatechange"in c("script")?function(e){s.appendChild(c("script")).onreadystatechange=function(){s.removeChild(this),_.call(e)}}:function(e){setTimeout(l(_,e,1),0)}),e.exports={set:d,clear:u}},,function(e,t,o){(function(t){function o(e,t){var o=e[1]||"",r=e[3];if(!r)return o;if(t){var n=i(r);return[o].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([n]).join("\n")}return[o].join("\n")}function i(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+new t(JSON.stringify(e)).toString("base64")+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=o(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r0){n(J.shift())}}function n(e){D().then(function(t){try{var o=Z.wrap(t),i=T(o);return i.data=e.rx_data_cb(o),K=!1,e.p_resolve(i),r(),i}catch(t){e.p_reject(t)}}).catch(function(t){K=!1,e.p_reject(t),r()});var t=new Z;e.tx_data_cb(t),K=!0,$(e.cmd,0,0,t).catch(function(t){e.p_reject(t)})}function l(){o.i(H.a)().addListener("ble_rx_data",O),o.i(H.a)().addListener("ble_disconnected",N),Z.DEFAULT_ENDIAN=Z.LITTLE_ENDIAN}function a(){return console.log("get_version"),i(1,function(e){},function(e){var t=U(e),o="";return e.remaining()&&(o=U(e)),{ver:t,ble_addr:o}})}function s(){return console.log("enter_dfu"),i(2,function(e){},function(e){})}function c(){return console.log("vfs_get_drive_list"),i(16,function(e){},function(e){var t=[];if(e.readUint8()>0){var o={};o.status=e.readUint8(),o.label=String.fromCharCode(e.readByte()),o.name=U(e),o.total_size=e.readUint32(),o.used_size=e.readUint32(),t.push(o)}return t})}function f(e){return console.log("vfs_drive_format",e),i(17,function(t){t.writeByte(e.charCodeAt(0))},function(e){})}function p(e){return console.log("vfs_read_dir",e),i(22,function(t){F(t,e)},function(e){for(var t=[];e.remaining()>0;){var o={};o.name=U(e),o.size=e.readUint32(),o.type=e.readUint8(),o.meta=I(e),t.push(o)}return t})}function d(e){return console.log("vfs_create_folder",e),i(23,function(t){z(e),F(t,e)},function(e){})}function u(e){return console.log("vfs_remove",e),i(24,function(t){F(t,e)},function(e){})}function h(e,t){return console.log("vfs_open_file",e,t),i(18,function(o){z(e),F(o,e),"r"==t?o.writeUint8(8):"w"==t&&o.writeUint8(22)},function(e){return{file_id:e.readUint8()}})}function b(e){return console.log("vfs_close_file",e),i(19,function(t){t.writeUint8(e)},function(e){})}function g(e){return console.log("vfs_read_file",e),i(20,function(t){t.writeUint8(e)},function(e){return e.readBytes(e.remaining()).toArrayBuffer()})}function m(e,t){return console.log("vfs_write_file",e),i(21,function(o){o.writeUint8(e),B(o,t)},function(e){})}function _(e,t){return console.log("vfs_update_meta",e,t),i(26,function(o){F(o,e),L(o,t)},function(e){})}function x(e,t){return console.log("vfs_rename",e,t),i(25,function(o){z(e),z(t),F(o,e),F(o,t)},function(e){})}function v(e){return R(e).length}function w(e,t,o,i){h(e,"r").then(function(e){if(console.log(e),0!=e.status)return console.log("vfs_open_file error: status=",e.status),o(new Error("create file failed!")),void i();var r={file_id:e.data.file_id};g(r.file_id).then(function(e){console.log(e),console.log("vfs read end"),b(r.file_id).then(function(o){t(e.data),i()}).catch(function(e){o(e),i()})}).catch(function(e){console.log("vfs read error",e),b(r.file_id).then(function(t){o(e),i()}).catch(function(e){console.log("vfs close error",e),o(e),i()})})}).catch(function(e){console.log("vfs_open_file error",e),o(e),i()})}function y(e,t,o,i,r){Q.push({path:e,file:t,progress_cb:o,success_cb:i,error_cb:r}),k()}function k(){if(!ee&&Q.length>0){var e=Q.shift();ee=!0,E(e.path,e.file,e.progress_cb,e.success_cb,e.error_cb,function(t){ee=!1,console.log("vfs process file done",e.path),k()})}}function E(e,t,o,i,r,n){console.log("vfs_process_file_write",e),A(t).then(function(l){h(e,"w").then(function(e){function a(){if(s.write_offset63)throw new Error(X.a.t("rename.nametoolong"));if(e.length>3){var t=e.lastIndexOf("/");if(v(e.substring(t+1))>47)throw new Error(X.a.t("rename.pathtoolong"))}}function A(e){return new q.a(function(t,o){var i=new FileReader;i.onload=function(){t(Z.wrap(i.result))},i.onerror=function(){o(i.error)},i.readAsArrayBuffer(e)})}function T(e){return{cmd:e.readUint8(),status:e.readUint8(),chunk:e.readUint16()}}function I(e){var t=e.readUint8(),o={notes:"",flags:{hide:!1},amiibo:{head:0,tail:0}};if(0==t)return o;for(var i=Z.wrap(S(e,t));i.remaining()>0;){var r=i.readUint8();if(1==r){var n=i.readUint8();if(n>0){var l=S(i,n);l.length>0&&(o.notes=C(l))}}else if(2==r){var a=i.readUint8();1&a&&(o.flags.hide=!0)}else 3==r&&(o.amiibo.head=i.readUint32(),o.amiibo.tail=i.readUint32())}return o}function L(e,t){var o=t.notes,i=R(o);if(i.length>90)throw new Error(X.a.t("properties.remarktoolong")+i.length+X.a.t("properties.remarktoolongend"));var r=new Z;if(o.length>0){r.writeUint8(1),r.writeUint8(i.length);for(var n=0;n0||t.amiibo.tail>0)&&(r.writeUint8(3),r.writeUint32(t.amiibo.head),r.writeUint32(t.amiibo.tail)),r.flip(),e.writeUint8(r.remaining()),B(e,r)}function C(e){return(new TextDecoder).decode(new Uint8Array(e))}function R(e){return Y()((new TextEncoder).encode(e))}function U(e){for(var t=e.readUint16(),o=[],i=0;i0)throw new Error("Invalid string. Length must be a multiple of 4");var o=e.indexOf("=");return-1===o&&(o=t),[o,o===t?0:4-o%4]}function r(e){var t=i(e),o=t[0],r=t[1];return 3*(o+r)/4-r}function n(e,t,o){return 3*(t+o)/4-o}function l(e){var t,o,r=i(e),l=r[0],a=r[1],s=new d(n(e,l,a)),c=0,f=a>0?l-4:l;for(o=0;o>16&255,s[c++]=t>>8&255,s[c++]=255&t;return 2===a&&(t=p[e.charCodeAt(o)]<<2|p[e.charCodeAt(o+1)]>>4,s[c++]=255&t),1===a&&(t=p[e.charCodeAt(o)]<<10|p[e.charCodeAt(o+1)]<<4|p[e.charCodeAt(o+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t),s}function a(e){return f[e>>18&63]+f[e>>12&63]+f[e>>6&63]+f[63&e]}function s(e,t,o){for(var i,r=[],n=t;nl?l:n+16383));return 1===i?(t=e[o-1],r.push(f[t>>2]+f[t<<4&63]+"==")):2===i&&(t=(e[o-2]<<8)+e[o-1],r.push(f[t>>10]+f[t>>4&63]+f[t<<2&63]+"=")),r.join("")}t.byteLength=r,t.toByteArray=l,t.fromByteArray=c;for(var f=[],p=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,b=u.length;h=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),n.alloc(+e)}function g(e,t){if(n.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var o=e.length;if(0===o)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*o;case"hex":return o>>>1;case"base64":return W(e).length;default:if(i)return V(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,o){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===o||o>this.length)&&(o=this.length),o<=0)return"";if(o>>>=0,t>>>=0,o<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return U(this,t,o);case"utf8":case"utf-8":return I(this,t,o);case"ascii":return C(this,t,o);case"latin1":case"binary":return R(this,t,o);case"base64":return T(this,t,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,o);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function _(e,t,o){var i=e[t];e[t]=e[o],e[o]=i}function x(e,t,o,i,r){if(0===e.length)return-1;if("string"==typeof o?(i=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,isNaN(o)&&(o=r?0:e.length-1),o<0&&(o=e.length+o),o>=e.length){if(r)return-1;o=e.length-1}else if(o<0){if(!r)return-1;o=0}if("string"==typeof t&&(t=n.from(t,i)),n.isBuffer(t))return 0===t.length?-1:v(e,t,o,i,r);if("number"==typeof t)return t&=255,n.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,o):Uint8Array.prototype.lastIndexOf.call(e,t,o):v(e,[t],o,i,r);throw new TypeError("val must be string, number or Buffer")}function v(e,t,o,i,r){function n(e,t){return 1===l?e[t]:e.readUInt16BE(t*l)}var l=1,a=e.length,s=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;l=2,a/=2,s/=2,o/=2}var c;if(r){var f=-1;for(c=o;ca&&(o=a-s),c=o;c>=0;c--){for(var p=!0,d=0;dr&&(i=r):i=r;var n=t.length;if(n%2!=0)throw new TypeError("Invalid hex string");i>n/2&&(i=n/2);for(var l=0;l239?4:n>223?3:n>191?2:1;if(r+a<=o){var s,c,f,p;switch(a){case 1:n<128&&(l=n);break;case 2:s=e[r+1],128==(192&s)&&(p=(31&n)<<6|63&s)>127&&(l=p);break;case 3:s=e[r+1],c=e[r+2],128==(192&s)&&128==(192&c)&&(p=(15&n)<<12|(63&s)<<6|63&c)>2047&&(p<55296||p>57343)&&(l=p);break;case 4:s=e[r+1],c=e[r+2],f=e[r+3],128==(192&s)&&128==(192&c)&&128==(192&f)&&(p=(15&n)<<18|(63&s)<<12|(63&c)<<6|63&f)>65535&&p<1114112&&(l=p)}}null===l?(l=65533,a=1):l>65535&&(l-=65536,i.push(l>>>10&1023|55296),l=56320|1023&l),i.push(l),r+=a}return L(i)}function L(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var o="",i=0;ii)&&(o=i);for(var r="",n=t;no)throw new RangeError("Trying to access beyond buffer length")}function S(e,t,o,i,r,l){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function $(e,t,o,i){t<0&&(t=65535+t+1);for(var r=0,n=Math.min(e.length-o,2);r>>8*(i?r:1-r)}function D(e,t,o,i){t<0&&(t=4294967295+t+1);for(var r=0,n=Math.min(e.length-o,4);r>>8*(i?r:3-r)&255}function O(e,t,o,i,r,n){if(o+i>e.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function N(e,t,o,i,r){return r||O(e,t,o,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,o,i,23,4),o+4}function M(e,t,o,i,r){return r||O(e,t,o,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,o,i,52,8),o+8}function j(e){if(e=P(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function P(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var o,i=e.length,r=null,n=[],l=0;l55295&&o<57344){if(!r){if(o>56319){(t-=3)>-1&&n.push(239,191,189);continue}if(l+1===i){(t-=3)>-1&&n.push(239,191,189);continue}r=o;continue}if(o<56320){(t-=3)>-1&&n.push(239,191,189),r=o;continue}o=65536+(r-55296<<10|o-56320)}else r&&(t-=3)>-1&&n.push(239,191,189);if(r=null,o<128){if((t-=1)<0)break;n.push(o)}else if(o<2048){if((t-=2)<0)break;n.push(o>>6|192,63&o|128)}else if(o<65536){if((t-=3)<0)break;n.push(o>>12|224,o>>6&63|128,63&o|128)}else{if(!(o<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;n.push(o>>18|240,o>>12&63|128,o>>6&63|128,63&o|128)}}return n}function q(e){for(var t=[],o=0;o>8,r=o%256,n.push(r),n.push(i);return n}function W(e){return G.toByteArray(j(e))}function Z(e,t,o,i){for(var r=0;r=t.length||r>=e.length);++r)t[r+o]=e[r];return r}function X(e){return e!==e}/*! +!function(l,a){r=[o(214)],i=a,void 0!==(n="function"==typeof i?i.apply(t,r):i)&&(e.exports=n)}(0,function(e){"use strict";function t(e){var t=0;return function(){return t1024&&(t.push(s.apply(String,e)),e.length=0),Array.prototype.push.apply(e,arguments)}}function i(e,t,o,i,r){var n,l,a=8*r-i-1,s=(1<>1,f=-7,p=o?r-1:0,d=o?-1:1,u=e[t+p];for(p+=d,n=u&(1<<-f)-1,u>>=-f,f+=a;f>0;n=256*n+e[t+p],p+=d,f-=8);for(l=n&(1<<-f)-1,n>>=-f,f+=i;f>0;l=256*l+e[t+p],p+=d,f-=8);if(0===n)n=1-c;else{if(n===s)return l?NaN:1/0*(u?-1:1);l+=Math.pow(2,i),n-=c}return(u?-1:1)*l*Math.pow(2,n-i)}function r(e,t,o,i,r,n){var l,a,s,c=8*n-r-1,f=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:n-1,h=i?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,l=f):(l=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-l))<1&&(l--,s*=2),t+=l+p>=1?d/s:d*Math.pow(2,1-p),t*s>=2&&(l++,s/=2),l+p>=f?(a=0,l=f):l+p>=1?(a=(t*s-1)*Math.pow(2,r),l+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,r),l=0));r>=8;e[o+u]=255&a,u+=h,a/=256,r-=8);for(l=l<0;e[o+u]=255&l,u+=h,l/=256,c-=8);e[o+u-h]|=128*g}var n=function(e,t,o){if(void 0===e&&(e=n.DEFAULT_CAPACITY),void 0===t&&(t=n.DEFAULT_ENDIAN),void 0===o&&(o=n.DEFAULT_NOASSERT),!o){if((e|=0)<0)throw RangeError("Illegal capacity");t=!!t,o=!!o}this.buffer=0===e?a:new ArrayBuffer(e),this.view=0===e?null:new Uint8Array(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=e,this.littleEndian=t,this.noAssert=o};n.VERSION="5.0.1",n.LITTLE_ENDIAN=!0,n.BIG_ENDIAN=!1,n.DEFAULT_CAPACITY=16,n.DEFAULT_ENDIAN=n.BIG_ENDIAN,n.DEFAULT_NOASSERT=!1,n.Long=e||null;var l=n.prototype;l.__isByteBuffer__,Object.defineProperty(l,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var a=new ArrayBuffer(0),s=String.fromCharCode;n.accessor=function(){return Uint8Array},n.allocate=function(e,t,o){return new n(e,t,o)},n.concat=function(e,t,o,i){"boolean"!=typeof t&&"string"==typeof t||(i=o,o=t,t=void 0);for(var r,l=0,a=0,s=e.length;a0&&(l+=r);if(0===l)return new n(0,o,i);var c,f=new n(l,o,i);for(a=0;a0&&(r.buffer=e.buffer,r.offset=e.byteOffset,r.limit=e.byteOffset+e.byteLength,r.view=new Uint8Array(e.buffer));else if(e instanceof ArrayBuffer)r=new n(0,o,i),e.byteLength>0&&(r.buffer=e,r.offset=0,r.limit=e.byteLength,r.view=e.byteLength>0?new Uint8Array(e):null);else{if("[object Array]"!==Object.prototype.toString.call(e))throw TypeError("Illegal buffer");r=new n(e.length,o,i),r.limit=e.length;for(var a=0;a>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var i,r=t,n=e.length,l=n>>3,a=0;for(t+=this.writeVarint32(n,t);l--;)i=1&!!e[a++]|(1&!!e[a++])<<1|(1&!!e[a++])<<2|(1&!!e[a++])<<3|(1&!!e[a++])<<4|(1&!!e[a++])<<5|(1&!!e[a++])<<6|(1&!!e[a++])<<7,this.writeByte(i,t++);if(a>3,l=0,a=[];for(e+=i.length;n--;)o=this.readByte(e++),a[l++]=!!(1&o),a[l++]=!!(2&o),a[l++]=!!(4&o),a[l++]=!!(8&o),a[l++]=!!(16&o),a[l++]=!!(32&o),a[l++]=!!(64&o),a[l++]=!!(128&o);if(l>s++&1)}return t&&(this.offset=e),a},l.readBytes=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+"+e+") <= "+this.buffer.byteLength)}var i=this.slice(t,t+e);return o&&(this.offset+=e),i},l.writeBytes=l.append,l.writeInt8=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=1,this.view[t]=e,o&&(this.offset+=1),this},l.writeByte=l.writeInt8,l.readInt8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=this.view[e];return 128==(128&o)&&(o=-(255-o+1)),t&&(this.offset+=1),o},l.readByte=l.readInt8,l.writeUint8=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=1,this.view[t]=e,o&&(this.offset+=1),this},l.writeUInt8=l.writeUint8,l.readUint8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=this.view[e];return t&&(this.offset+=1),o},l.readUInt8=l.readUint8,l.writeInt16=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),o&&(this.offset+=2),this},l.writeShort=l.writeInt16,l.readInt16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e],o|=this.view[e+1]<<8):(o=this.view[e]<<8,o|=this.view[e+1]),32768==(32768&o)&&(o=-(65535-o+1)),t&&(this.offset+=2),o},l.readShort=l.readInt16,l.writeUint16=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),o&&(this.offset+=2),this},l.writeUInt16=l.writeUint16,l.readUint16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e],o|=this.view[e+1]<<8):(o=this.view[e]<<8,o|=this.view[e+1]),t&&(this.offset+=2),o},l.readUInt16=l.readUint16,l.writeInt32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),o&&(this.offset+=4),this},l.writeInt=l.writeInt32,l.readInt32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e+2]<<16,o|=this.view[e+1]<<8,o|=this.view[e],o+=this.view[e+3]<<24>>>0):(o=this.view[e+1]<<16,o|=this.view[e+2]<<8,o|=this.view[e+3],o+=this.view[e]<<24>>>0),o|=0,t&&(this.offset+=4),o},l.readInt=l.readInt32,l.writeUint32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),o&&(this.offset+=4),this},l.writeUInt32=l.writeUint32,l.readUint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[e+2]<<16,o|=this.view[e+1]<<8,o|=this.view[e],o+=this.view[e+3]<<24>>>0):(o=this.view[e+1]<<16,o|=this.view[e+2]<<8,o|=this.view[e+3],o+=this.view[e]<<24>>>0),t&&(this.offset+=4),o},l.readUInt32=l.readUint32,e&&(l.writeInt64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t)),o+=8;var r=this.buffer.byteLength;o>r&&this.resize((r*=2)>o?r:o),o-=8;var n=t.low,l=t.high;return this.littleEndian?(this.view[o+3]=n>>>24&255,this.view[o+2]=n>>>16&255,this.view[o+1]=n>>>8&255,this.view[o]=255&n,o+=4,this.view[o+3]=l>>>24&255,this.view[o+2]=l>>>16&255,this.view[o+1]=l>>>8&255,this.view[o]=255&l):(this.view[o]=l>>>24&255,this.view[o+1]=l>>>16&255,this.view[o+2]=l>>>8&255,this.view[o+3]=255&l,o+=4,this.view[o]=n>>>24&255,this.view[o+1]=n>>>16&255,this.view[o+2]=n>>>8&255,this.view[o+3]=255&n),i&&(this.offset+=8),this},l.writeLong=l.writeInt64,l.readInt64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+8) <= "+this.buffer.byteLength)}var i=0,r=0;this.littleEndian?(i=this.view[t+2]<<16,i|=this.view[t+1]<<8,i|=this.view[t],i+=this.view[t+3]<<24>>>0,t+=4,r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0,t+=4,i=this.view[t+1]<<16,i|=this.view[t+2]<<8,i|=this.view[t+3],i+=this.view[t]<<24>>>0);var n=new e(i,r,!1);return o&&(this.offset+=8),n},l.readLong=l.readInt64,l.writeUint64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t)),o+=8;var r=this.buffer.byteLength;o>r&&this.resize((r*=2)>o?r:o),o-=8;var n=t.low,l=t.high;return this.littleEndian?(this.view[o+3]=n>>>24&255,this.view[o+2]=n>>>16&255,this.view[o+1]=n>>>8&255,this.view[o]=255&n,o+=4,this.view[o+3]=l>>>24&255,this.view[o+2]=l>>>16&255,this.view[o+1]=l>>>8&255,this.view[o]=255&l):(this.view[o]=l>>>24&255,this.view[o+1]=l>>>16&255,this.view[o+2]=l>>>8&255,this.view[o+3]=255&l,o+=4,this.view[o]=n>>>24&255,this.view[o+1]=n>>>16&255,this.view[o+2]=n>>>8&255,this.view[o+3]=255&n),i&&(this.offset+=8),this},l.writeUInt64=l.writeUint64,l.readUint64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+8) <= "+this.buffer.byteLength)}var i=0,r=0;this.littleEndian?(i=this.view[t+2]<<16,i|=this.view[t+1]<<8,i|=this.view[t],i+=this.view[t+3]<<24>>>0,t+=4,r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0,t+=4,i=this.view[t+1]<<16,i|=this.view[t+2]<<8,i|=this.view[t+3],i+=this.view[t]<<24>>>0);var n=new e(i,r,!0);return o&&(this.offset+=8),n},l.readUInt64=l.readUint64),l.writeFloat32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=4,r(this.view,e,t,this.littleEndian,23,4),o&&(this.offset+=4),this},l.writeFloat=l.writeFloat32,l.readFloat32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=i(this.view,e,this.littleEndian,23,4);return t&&(this.offset+=4),o},l.readFloat=l.readFloat32,l.writeFloat64=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=8;var i=this.buffer.byteLength;return t>i&&this.resize((i*=2)>t?i:t),t-=8,r(this.view,e,t,this.littleEndian,52,8),o&&(this.offset+=8),this},l.writeDouble=l.writeFloat64,l.readFloat64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var o=i(this.view,e,this.littleEndian,52,8);return t&&(this.offset+=8),o},l.readDouble=l.readFloat64,n.MAX_VARINT32_BYTES=5,n.calculateVarint32=function(e){return e>>>=0,e<128?1:e<16384?2:e<1<<21?3:e<1<<28?4:5},n.zigZagEncode32=function(e){return((e|=0)<<1^e>>31)>>>0},n.zigZagDecode32=function(e){return e>>>1^-(1&e)|0},l.writeVarint32=function(e,t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var i,r=n.calculateVarint32(e);t+=r;var l=this.buffer.byteLength;for(t>l&&this.resize((l*=2)>t?l:t),t-=r,e>>>=0;e>=128;)i=127&e|128,this.view[t++]=i,e>>>=7;return this.view[t++]=e,o?(this.offset=t,this):r},l.writeVarint32ZigZag=function(e,t){return this.writeVarint32(n.zigZagEncode32(e),t)},l.readVarint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o,i=0,r=0;do{if(!this.noAssert&&e>this.limit){var n=Error("Truncated");throw n.truncated=!0,n}o=this.view[e++],i<5&&(r|=(127&o)<<7*i),++i}while(0!=(128&o));return r|=0,t?(this.offset=e,r):{value:r,length:i}},l.readVarint32ZigZag=function(e){var t=this.readVarint32(e);return"object"==typeof t?t.value=n.zigZagDecode32(t.value):t=n.zigZagDecode32(t),t},e&&(n.MAX_VARINT64_BYTES=10,n.calculateVarint64=function(t){"number"==typeof t?t=e.fromNumber(t):"string"==typeof t&&(t=e.fromString(t));var o=t.toInt()>>>0,i=t.shiftRightUnsigned(28).toInt()>>>0,r=t.shiftRightUnsigned(56).toInt()>>>0;return 0==r?0==i?o<16384?o<128?1:2:o<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:r<128?9:10},n.zigZagEncode64=function(t){return"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned()),t.shiftLeft(1).xor(t.shiftRight(63)).toUnsigned()},n.zigZagDecode64=function(t){return"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned()),t.shiftRightUnsigned(1).xor(t.and(e.ONE).toSigned().negate()).toSigned()},l.writeVarint64=function(t,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"==typeof t)t=e.fromNumber(t);else if("string"==typeof t)t=e.fromString(t);else if(!(t&&t instanceof e))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=e.fromNumber(t,!1):"string"==typeof t?t=e.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned());var r=n.calculateVarint64(t),l=t.toInt()>>>0,a=t.shiftRightUnsigned(28).toInt()>>>0,s=t.shiftRightUnsigned(56).toInt()>>>0;o+=r;var c=this.buffer.byteLength;switch(o>c&&this.resize((c*=2)>o?c:o),o-=r,r){case 10:this.view[o+9]=s>>>7&1;case 9:this.view[o+8]=9!==r?128|s:127&s;case 8:this.view[o+7]=8!==r?a>>>21|128:a>>>21&127;case 7:this.view[o+6]=7!==r?a>>>14|128:a>>>14&127;case 6:this.view[o+5]=6!==r?a>>>7|128:a>>>7&127;case 5:this.view[o+4]=5!==r?128|a:127&a;case 4:this.view[o+3]=4!==r?l>>>21|128:l>>>21&127;case 3:this.view[o+2]=3!==r?l>>>14|128:l>>>14&127;case 2:this.view[o+1]=2!==r?l>>>7|128:l>>>7&127;case 1:this.view[o]=1!==r?128|l:127&l}return i?(this.offset+=r,this):r},l.writeVarint64ZigZag=function(e,t){return this.writeVarint64(n.zigZagEncode64(e),t)},l.readVarint64=function(t){var o=void 0===t;if(o&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var i=t,r=0,n=0,l=0,a=0;if(a=this.view[t++],r=127&a,128&a&&(a=this.view[t++],r|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],r|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],r|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],n|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],l=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[t++],l|=(127&a)<<7,128&a||this.noAssert&&void 0===a))))))))))throw Error("Buffer overrun");var s=e.fromBits(r|n<<28,n>>>4|l<<24,!1);return o?(this.offset=t,s):{value:s,length:t-i}},l.readVarint64ZigZag=function(t){var o=this.readVarint64(t);return o&&o.value instanceof e?o.value=n.zigZagDecode64(o.value):o=n.zigZagDecode64(o),o}),l.writeCString=function(e,o){var i=void 0===o;i&&(o=this.offset);var r,n=e.length;if(!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");for(r=0;r>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}n=f.calculateUTF16asUTF8(t(e))[1],o+=n+1;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=n+1,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),this.view[o++]=0,i?(this.offset=o,this):n},l.readCString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i,r=e,n=-1;return f.decodeUTF8toUTF16(function(){if(0===n)return null;if(e>=this.limit)throw RangeError("Illegal range: Truncated data, "+e+" < "+this.limit);return n=this.view[e++],0===n?null:n}.bind(this),i=o(),!0),t?(this.offset=e,i()):{string:i(),length:e-r}},l.writeIString=function(e,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,n=o;r=f.calculateUTF16asUTF8(t(e),this.noAssert)[1],o+=4+r;var l=this.buffer.byteLength;if(o>l&&this.resize((l*=2)>o?l:o),o-=4+r,this.littleEndian?(this.view[o+3]=r>>>24&255,this.view[o+2]=r>>>16&255,this.view[o+1]=r>>>8&255,this.view[o]=255&r):(this.view[o]=r>>>24&255,this.view[o+1]=r>>>16&255,this.view[o+2]=r>>>8&255,this.view[o+3]=255&r),o+=4,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),o!==n+4+r)throw RangeError("Illegal range: Truncated data, "+o+" == "+(o+4+r));return i?(this.offset=o,this):o-n},l.readIString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var o=e,i=this.readUint32(e),r=this.readUTF8String(i,n.METRICS_BYTES,e+=4);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-o}},n.METRICS_CHARS="c",n.METRICS_BYTES="b",l.writeUTF8String=function(e,o){var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,n=o;r=f.calculateUTF16asUTF8(t(e))[1],o+=r;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=r,f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),i?(this.offset=o,this):o-n},l.writeString=l.writeUTF8String,n.calculateUTF8Chars=function(e){return f.calculateUTF16asUTF8(t(e))[0]},n.calculateUTF8Bytes=function(e){return f.calculateUTF16asUTF8(t(e))[1]},n.calculateString=n.calculateUTF8Bytes,l.readUTF8String=function(e,t,i){"number"==typeof t&&(i=t,t=void 0);var r=void 0===i;if(r&&(i=this.offset),void 0===t&&(t=n.METRICS_CHARS),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");if(e|=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}var l,a=0,s=i;if(t===n.METRICS_CHARS){if(l=o(),f.decodeUTF8(function(){return a>>=0)<0||i+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+"+e+") <= "+this.buffer.byteLength)}var c=i+e;if(f.decodeUTF8toUTF16(function(){return i>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}var r,l,a=o;r=f.calculateUTF16asUTF8(t(e),this.noAssert)[1],l=n.calculateVarint32(r),o+=l+r;var s=this.buffer.byteLength;if(o>s&&this.resize((s*=2)>o?s:o),o-=l+r,o+=this.writeVarint32(r,o),f.encodeUTF16toUTF8(t(e),function(e){this.view[o++]=e}.bind(this)),o!==a+r+l)throw RangeError("Illegal range: Truncated data, "+o+" == "+(o+r+l));return i?(this.offset=o,this):o-a},l.readVString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var o=e,i=this.readVarint32(e),r=this.readUTF8String(i.value,n.METRICS_BYTES,e+=i.length);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-o}},l.append=function(e,t,o){"number"!=typeof t&&"string"==typeof t||(o=t,t=void 0);var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}e instanceof n||(e=n.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;o+=r;var l=this.buffer.byteLength;return o>l&&this.resize((l*=2)>o?l:o),o-=r,this.view.set(e.view.subarray(e.offset,e.limit),o),e.offset+=r,i&&(this.offset+=r),this},l.appendTo=function(e,t){return e.append(this,t),this},l.assert=function(e){return this.noAssert=!e,this},l.capacity=function(){return this.buffer.byteLength},l.clear=function(){return this.offset=0,this.limit=this.buffer.byteLength,this.markedOffset=-1,this},l.clone=function(e){var t=new n(0,this.littleEndian,this.noAssert);return e?(t.buffer=new ArrayBuffer(this.buffer.byteLength),t.view=new Uint8Array(t.buffer)):(t.buffer=this.buffer,t.view=this.view),t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t},l.compact=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(0===e&&t===this.buffer.byteLength)return this;var o=t-e;if(0===o)return this.buffer=a,this.view=null,this.markedOffset>=0&&(this.markedOffset-=e),this.offset=0,this.limit=0,this;var i=new ArrayBuffer(o),r=new Uint8Array(i);return r.set(this.view.subarray(e,t)),this.buffer=i,this.view=r,this.markedOffset>=0&&(this.markedOffset-=e),this.offset=0,this.limit=o,this},l.copy=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(e===t)return new n(0,this.littleEndian,this.noAssert);var o=t-e,i=new n(o,this.littleEndian,this.noAssert);return i.offset=0,i.limit=o,i.markedOffset>=0&&(i.markedOffset-=e),this.copyTo(i,0,e,t),i},l.copyTo=function(e,t,o,i){var r,l;if(!this.noAssert&&!n.isByteBuffer(e))throw TypeError("Illegal target: Not a ByteBuffer");if(t=(l=void 0===t)?e.offset:0|t,o=(r=void 0===o)?this.offset:0|o,i=void 0===i?this.limit:0|i,t<0||t>e.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+t+" <= "+e.buffer.byteLength);if(o<0||i>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+o+" <= "+this.buffer.byteLength);var a=i-o;return 0===a?e:(e.ensureCapacity(t+a),e.view.set(this.view.subarray(o,i),t),r&&(this.offset+=a),l&&(e.offset+=a),this)},l.ensureCapacity=function(e){var t=this.buffer.byteLength;return te?t:e):this},l.fill=function(e,t,o){var i=void 0===t;if(i&&(t=this.offset),"string"==typeof e&&e.length>0&&(e=e.charCodeAt(0)),void 0===t&&(t=this.offset),void 0===o&&(o=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof o||o%1!=0)throw TypeError("Illegal end: Not an integer");if(o>>>=0,t<0||t>o||o>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+o+" <= "+this.buffer.byteLength)}if(t>=o)return this;for(;t>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}return this.markedOffset=e,this},l.order=function(e){if(!this.noAssert&&"boolean"!=typeof e)throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!e,this},l.LE=function(e){return this.littleEndian=void 0===e||!!e,this},l.BE=function(e){return this.littleEndian=void 0!==e&&!e,this},l.prepend=function(e,t,o){"number"!=typeof t&&"string"==typeof t||(o=t,t=void 0);var i=void 0===o;if(i&&(o=this.offset),!this.noAssert){if("number"!=typeof o||o%1!=0)throw TypeError("Illegal offset: "+o+" (not an integer)");if((o>>>=0)<0||o+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+o+" (+0) <= "+this.buffer.byteLength)}e instanceof n||(e=n.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;var l=r-o;if(l>0){var a=new ArrayBuffer(this.buffer.byteLength+l),s=new Uint8Array(a);s.set(this.view.subarray(o,this.buffer.byteLength),r),this.buffer=a,this.view=s,this.offset+=l,this.markedOffset>=0&&(this.markedOffset+=l),this.limit+=l,o+=l}else{new Uint8Array(this.buffer)}return this.view.set(e.view.subarray(e.offset,e.limit),o-r),e.offset=e.limit,i&&(this.offset-=r),this},l.prependTo=function(e,t){return e.prepend(this,t),this},l.printDebug=function(e){"function"!=typeof e&&(e=console.log.bind(console)),e(this.toString()+"\n-------------------------------------------------------------------\n"+this.toDebug(!0))},l.remaining=function(){return this.limit-this.offset},l.reset=function(){return this.markedOffset>=0?(this.offset=this.markedOffset,this.markedOffset=-1):this.offset=0,this},l.resize=function(e){if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal capacity: "+e+" (not an integer)");if((e|=0)<0)throw RangeError("Illegal capacity: 0 <= "+e)}if(this.buffer.byteLength>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}return e===t?this:(Array.prototype.reverse.call(this.view.subarray(e,t)),this)},l.skip=function(e){if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");e|=0}var t=this.offset+e;if(!this.noAssert&&(t<0||t>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+e+" <= "+this.buffer.byteLength);return this.offset=t,this},l.slice=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}var o=this.clone();return o.offset=e,o.limit=t,o},l.toBuffer=function(e){var t=this.offset,o=this.limit;if(!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: Not an integer");if(t>>>=0,"number"!=typeof o||o%1!=0)throw TypeError("Illegal limit: Not an integer");if(o>>>=0,t<0||t>o||o>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+o+" <= "+this.buffer.byteLength)}if(!e&&0===t&&o===this.buffer.byteLength)return this.buffer;if(t===o)return a;var i=new ArrayBuffer(o-t);return new Uint8Array(i).set(new Uint8Array(this.buffer).subarray(t,o),0),i},l.toArrayBuffer=l.toBuffer,l.toString=function(e,t,o){if(void 0===e)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch("number"==typeof e&&(e="utf8",t=e,o=t),e){case"utf8":return this.toUTF8(t,o);case"base64":return this.toBase64(t,o);case"hex":return this.toHex(t,o);case"binary":return this.toBinary(t,o);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+e)}};var c=function(){for(var e={},t=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,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,48,49,50,51,52,53,54,55,56,57,43,47],o=[],i=0,r=t.length;i>2&63]),r=(3&i)<<4,null!==(i=e())?(r|=i>>4&15,o(t[63&(r|i>>4&15)]),r=(15&i)<<2,null!==(i=e())?(o(t[63&(r|i>>6&3)]),o(t[63&i])):(o(t[63&r]),o(61))):(o(t[63&r]),o(61),o(61))},e.decode=function(e,t){function i(e){throw Error("Illegal character code: "+e)}for(var r,n,l;null!==(r=e());)if(n=o[r],void 0===n&&i(r),null!==(r=e())&&(l=o[r],void 0===l&&i(r),t(n<<2>>>0|(48&l)>>4),null!==(r=e()))){if(void 0===(n=o[r])){if(61===r)break;i(r)}if(t((15&l)<<4>>>0|(60&n)>>2),null!==(r=e())){if(void 0===(l=o[r])){if(61===r)break;i(r)}t((3&n)<<6>>>0|l)}}},e.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)},e}();l.toBase64=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),e|=0,t|=0,e<0||t>this.capacity||e>t)throw RangeError("begin, end");var i;return c.encode(function(){return ethis.capacity()||e>t)throw RangeError("begin, end");if(e===t)return"";for(var o=[],i=[];e=1024&&(i.push(String.fromCharCode.apply(String,o)),o=[]);return i.join("")+String.fromCharCode.apply(String,o)},n.fromBinary=function(e,t){if("string"!=typeof e)throw TypeError("str");for(var o,i=0,r=e.length,l=new n(r,t);i255)throw RangeError("illegal char code: "+o);l.view[i++]=o}return l.limit=r,l},l.toDebug=function(e){for(var t,o=-1,i=this.buffer.byteLength,r="",n="",l="";o32&&t<127?String.fromCharCode(t):".")),++o,e&&o>0&&o%16==0&&o!==i){for(;r.length<51;)r+=" ";l+=r+n+"\n",r=n=""}o===this.offset&&o===this.limit?r+=o===this.markedOffset?"!":"|":o===this.offset?r+=o===this.markedOffset?"[":"<":o===this.limit?r+=o===this.markedOffset?"]":">":r+=o===this.markedOffset?"'":e||0!==o&&o!==i?" ":""}if(e&&" "!==r){for(;r.length<51;)r+=" ";l+=r+n+"\n"}return e?l:r},n.fromDebug=function(e,t,o){for(var i,r,l=e.length,a=new n((l+1)/3|0,t,o),s=0,c=0,f=!1,p=!1,d=!1,u=!1,h=!1;s":if(!o){if(u){h=!0;break}u=!0}a.limit=c,f=!1;break;case"'":if(!o){if(d){h=!0;break}d=!0}a.markedOffset=c,f=!1;break;case" ":f=!1;break;default:if(!o&&f){h=!0;break}if(r=parseInt(i+e.charAt(s++),16),!o&&(isNaN(r)||r<0||r>255))throw TypeError("Illegal str: Not a debug encoded string");a.view[c++]=r,f=!0}if(h)throw TypeError("Illegal str: Invalid symbol at "+s)}if(!o){if(!p||!u)throw TypeError("Illegal str: Missing offset or limit");if(c>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}for(var o,i=new Array(t-e);e255))throw TypeError("Illegal str: Contains non-hex characters");l.view[s++]=i}return l.limit=s,l};var f=function(){var e={};return e.MAX_CODEPOINT=1114111,e.encodeUTF8=function(e,t){var o=null;for("number"==typeof e&&(o=e,e=function(){return null});null!==o||null!==(o=e());)o<128?t(127&o):o<2048?(t(o>>6&31|192),t(63&o|128)):o<65536?(t(o>>12&15|224),t(o>>6&63|128),t(63&o|128)):(t(o>>18&7|240),t(o>>12&63|128),t(o>>6&63|128),t(63&o|128)),o=null},e.decodeUTF8=function(e,t){for(var o,i,r,n,l=function(e){e=e.slice(0,e.indexOf(null));var t=Error(e.toString());throw t.name="TruncatedError",t.bytes=e,t};null!==(o=e());)if(0==(128&o))t(o);else if(192==(224&o))null===(i=e())&&l([o,i]),t((31&o)<<6|63&i);else if(224==(240&o))(null===(i=e())||null===(r=e()))&&l([o,i,r]),t((15&o)<<12|(63&i)<<6|63&r);else{if(240!=(248&o))throw RangeError("Illegal starting byte: "+o);(null===(i=e())||null===(r=e())||null===(n=e()))&&l([o,i,r,n]),t((7&o)<<18|(63&i)<<12|(63&r)<<6|63&n)}},e.UTF16toUTF8=function(e,t){for(var o,i=null;;){if(null===(o=null!==i?i:e()))break;o>=55296&&o<=57343&&null!==(i=e())&&i>=56320&&i<=57343?(t(1024*(o-55296)+i-56320+65536),i=null):t(o)}null!==i&&t(i)},e.UTF8toUTF16=function(e,t){var o=null;for("number"==typeof e&&(o=e,e=function(){return null});null!==o||null!==(o=e());)o<=65535?t(o):(o-=65536,t(55296+(o>>10)),t(o%1024+56320)),o=null},e.encodeUTF16toUTF8=function(t,o){e.UTF16toUTF8(t,function(t){e.encodeUTF8(t,o)})},e.decodeUTF8toUTF16=function(t,o){e.decodeUTF8(t,function(t){e.UTF8toUTF16(t,o)})},e.calculateCodePoint=function(e){return e<128?1:e<2048?2:e<65536?3:4},e.calculateUTF8=function(e){for(var t,o=0;null!==(t=e());)o+=t<128?1:t<2048?2:t<65536?3:4;return o},e.calculateUTF16asUTF8=function(t){var o=0,i=0;return e.UTF16toUTF8(t,function(e){++o,i+=e<128?1:e<2048?2:e<65536?3:4}),[o,i]},e}();return l.toUTF8=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}var i;try{f.decodeUTF8toUTF16(function(){return eo;)t.push(arguments[o++]);return m[++b]=function(){a("function"==typeof e?e:Function(e),t)},i(b),b},u=function(e){delete m[e]},"process"==o(19)(p)?i=function(e){p.nextTick(l(_,e,1))}:g&&g.now?i=function(e){g.now(l(_,e,1))}:h?(r=new h,n=r.port2,r.port1.onmessage=x,i=l(n.postMessage,n,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(i=function(e){f.postMessage(e+"","*")},f.addEventListener("message",x,!1)):i="onreadystatechange"in c("script")?function(e){s.appendChild(c("script")).onreadystatechange=function(){s.removeChild(this),_.call(e)}}:function(e){setTimeout(l(_,e,1),0)}),e.exports={set:d,clear:u}},,function(e,t,o){(function(t){function o(e,t){var o=e[1]||"",r=e[3];if(!r)return o;if(t){var n=i(r);return[o].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([n]).join("\n")}return[o].join("\n")}function i(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+new t(JSON.stringify(e)).toString("base64")+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=o(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r0){n(J.shift())}}function n(e){$().then(function(t){try{var o=Z.wrap(t),i=T(o);return i.data=e.rx_data_cb(o),K=!1,e.p_resolve(i),r(),i}catch(t){e.p_reject(t)}}).catch(function(t){K=!1,e.p_reject(t),r()});var t=new Z;e.tx_data_cb(t),K=!0,S(e.cmd,0,0,t).catch(function(t){e.p_reject(t)})}function l(){o.i(H.a)().addListener("ble_rx_data",O),o.i(H.a)().addListener("ble_disconnected",M),Z.DEFAULT_ENDIAN=Z.LITTLE_ENDIAN}function a(){return console.log("get_version"),i(1,function(e){},function(e){var t=U(e),o="";return e.remaining()&&(o=U(e)),{ver:t,ble_addr:o}})}function s(){return console.log("enter_dfu"),i(2,function(e){},function(e){})}function c(){return console.log("vfs_get_drive_list"),i(16,function(e){},function(e){var t=[];if(e.readUint8()>0){var o={};o.status=e.readUint8(),o.label=String.fromCharCode(e.readByte()),o.name=U(e),o.total_size=e.readUint32(),o.used_size=e.readUint32(),t.push(o)}return t})}function f(e){return console.log("vfs_drive_format",e),i(17,function(t){t.writeByte(e.charCodeAt(0))},function(e){})}function p(e){return console.log("vfs_read_dir",e),i(22,function(t){R(t,e)},function(e){for(var t=[];e.remaining()>0;){var o={};o.name=U(e),o.size=e.readUint32(),o.type=e.readUint8(),o.meta=L(e),t.push(o)}return t})}function d(e){return console.log("vfs_create_folder",e),i(23,function(t){z(e),R(t,e)},function(e){})}function u(e){return console.log("vfs_remove",e),i(24,function(t){R(t,e)},function(e){})}function h(e,t){return console.log("vfs_open_file",e,t),i(18,function(o){z(e),R(o,e),"r"==t?o.writeUint8(8):"w"==t&&o.writeUint8(22)},function(e){return{file_id:e.readUint8()}})}function g(e){return console.log("vfs_close_file",e),i(19,function(t){t.writeUint8(e)},function(e){})}function b(e){return console.log("vfs_read_file",e),i(20,function(t){t.writeUint8(e)},function(e){return e.readBytes(e.remaining()).toArrayBuffer()})}function m(e,t){return console.log("vfs_write_file",e),i(21,function(o){o.writeUint8(e),B(o,t)},function(e){})}function _(e,t){return console.log("vfs_update_meta",e,t),i(26,function(o){R(o,e),I(o,t)},function(e){})}function x(e,t){return console.log("vfs_rename",e,t),i(25,function(o){z(e),z(t),R(o,e),R(o,t)},function(e){})}function v(e){return F(e).length}function w(e,t,o,i){h(e,"r").then(function(e){if(console.log(e),0!=e.status)return console.log("vfs_open_file error: status=",e.status),o(new Error("create file failed!")),void i();var r={file_id:e.data.file_id};b(r.file_id).then(function(e){console.log(e),console.log("vfs read end"),g(r.file_id).then(function(o){t(e.data),i()}).catch(function(e){o(e),i()})}).catch(function(e){console.log("vfs read error",e),g(r.file_id).then(function(t){o(e),i()}).catch(function(e){console.log("vfs close error",e),o(e),i()})})}).catch(function(e){console.log("vfs_open_file error",e),o(e),i()})}function y(e,t,o,i,r){Q.push({path:e,file:t,progress_cb:o,success_cb:i,error_cb:r}),k()}function k(){if(!ee&&Q.length>0){var e=Q.shift();ee=!0,E(e.path,e.file,e.progress_cb,e.success_cb,e.error_cb,function(t){ee=!1,console.log("vfs process file done",e.path),k()})}}function E(e,t,o,i,r,n){console.log("vfs_process_file_write",e),A(t).then(function(l){h(e,"w").then(function(e){function a(){if(s.write_offset63)throw new Error(X.a.t("rename.nametoolong"));if(e.length>3){var t=e.lastIndexOf("/");if(v(e.substring(t+1))>47)throw new Error(X.a.t("rename.pathtoolong"))}}function A(e){return new q.a(function(t,o){var i=new FileReader;i.onload=function(){t(Z.wrap(i.result))},i.onerror=function(){o(i.error)},i.readAsArrayBuffer(e)})}function T(e){return{cmd:e.readUint8(),status:e.readUint8(),chunk:e.readUint16()}}function L(e){var t=e.readUint8(),o={notes:"",flags:{hide:!1},amiibo:{head:0,tail:0}};if(0==t)return o;for(var i=Z.wrap(D(e,t));i.remaining()>0;){var r=i.readUint8();if(1==r){var n=i.readUint8();if(n>0){var l=D(i,n);l.length>0&&(o.notes=C(l))}}else if(2==r){var a=i.readUint8();1&a&&(o.flags.hide=!0)}else 3==r&&(o.amiibo.head=i.readUint32(),o.amiibo.tail=i.readUint32())}return o}function I(e,t){var o=t.notes,i=F(o);if(i.length>90)throw new Error(X.a.t("properties.remarktoolong")+i.length+X.a.t("properties.remarktoolongend"));var r=new Z;if(o.length>0){r.writeUint8(1),r.writeUint8(i.length);for(var n=0;n0||t.amiibo.tail>0)&&(r.writeUint8(3),r.writeUint32(t.amiibo.head),r.writeUint32(t.amiibo.tail)),r.flip(),e.writeUint8(r.remaining()),B(e,r)}function C(e){return(new TextDecoder).decode(new Uint8Array(e))}function F(e){return Y()((new TextEncoder).encode(e))}function U(e){for(var t=e.readUint16(),o=[],i=0;i0)throw new Error("Invalid string. Length must be a multiple of 4");var o=e.indexOf("=");return-1===o&&(o=t),[o,o===t?0:4-o%4]}function r(e){var t=i(e),o=t[0],r=t[1];return 3*(o+r)/4-r}function n(e,t,o){return 3*(t+o)/4-o}function l(e){var t,o,r=i(e),l=r[0],a=r[1],s=new d(n(e,l,a)),c=0,f=a>0?l-4:l;for(o=0;o>16&255,s[c++]=t>>8&255,s[c++]=255&t;return 2===a&&(t=p[e.charCodeAt(o)]<<2|p[e.charCodeAt(o+1)]>>4,s[c++]=255&t),1===a&&(t=p[e.charCodeAt(o)]<<10|p[e.charCodeAt(o+1)]<<4|p[e.charCodeAt(o+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t),s}function a(e){return f[e>>18&63]+f[e>>12&63]+f[e>>6&63]+f[63&e]}function s(e,t,o){for(var i,r=[],n=t;nl?l:n+16383));return 1===i?(t=e[o-1],r.push(f[t>>2]+f[t<<4&63]+"==")):2===i&&(t=(e[o-2]<<8)+e[o-1],r.push(f[t>>10]+f[t>>4&63]+f[t<<2&63]+"=")),r.join("")}t.byteLength=r,t.toByteArray=l,t.fromByteArray=c;for(var f=[],p=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,g=u.length;h=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),n.alloc(+e)}function b(e,t){if(n.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var o=e.length;if(0===o)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*o;case"hex":return o>>>1;case"base64":return W(e).length;default:if(i)return V(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,o){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===o||o>this.length)&&(o=this.length),o<=0)return"";if(o>>>=0,t>>>=0,o<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return U(this,t,o);case"utf8":case"utf-8":return L(this,t,o);case"ascii":return C(this,t,o);case"latin1":case"binary":return F(this,t,o);case"base64":return T(this,t,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,o);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function _(e,t,o){var i=e[t];e[t]=e[o],e[o]=i}function x(e,t,o,i,r){if(0===e.length)return-1;if("string"==typeof o?(i=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,isNaN(o)&&(o=r?0:e.length-1),o<0&&(o=e.length+o),o>=e.length){if(r)return-1;o=e.length-1}else if(o<0){if(!r)return-1;o=0}if("string"==typeof t&&(t=n.from(t,i)),n.isBuffer(t))return 0===t.length?-1:v(e,t,o,i,r);if("number"==typeof t)return t&=255,n.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,o):Uint8Array.prototype.lastIndexOf.call(e,t,o):v(e,[t],o,i,r);throw new TypeError("val must be string, number or Buffer")}function v(e,t,o,i,r){function n(e,t){return 1===l?e[t]:e.readUInt16BE(t*l)}var l=1,a=e.length,s=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;l=2,a/=2,s/=2,o/=2}var c;if(r){var f=-1;for(c=o;ca&&(o=a-s),c=o;c>=0;c--){for(var p=!0,d=0;dr&&(i=r):i=r;var n=t.length;if(n%2!=0)throw new TypeError("Invalid hex string");i>n/2&&(i=n/2);for(var l=0;l239?4:n>223?3:n>191?2:1;if(r+a<=o){var s,c,f,p;switch(a){case 1:n<128&&(l=n);break;case 2:s=e[r+1],128==(192&s)&&(p=(31&n)<<6|63&s)>127&&(l=p);break;case 3:s=e[r+1],c=e[r+2],128==(192&s)&&128==(192&c)&&(p=(15&n)<<12|(63&s)<<6|63&c)>2047&&(p<55296||p>57343)&&(l=p);break;case 4:s=e[r+1],c=e[r+2],f=e[r+3],128==(192&s)&&128==(192&c)&&128==(192&f)&&(p=(15&n)<<18|(63&s)<<12|(63&c)<<6|63&f)>65535&&p<1114112&&(l=p)}}null===l?(l=65533,a=1):l>65535&&(l-=65536,i.push(l>>>10&1023|55296),l=56320|1023&l),i.push(l),r+=a}return I(i)}function I(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var o="",i=0;ii)&&(o=i);for(var r="",n=t;no)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,o,i,r,l){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function S(e,t,o,i){t<0&&(t=65535+t+1);for(var r=0,n=Math.min(e.length-o,2);r>>8*(i?r:1-r)}function $(e,t,o,i){t<0&&(t=4294967295+t+1);for(var r=0,n=Math.min(e.length-o,4);r>>8*(i?r:3-r)&255}function O(e,t,o,i,r,n){if(o+i>e.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function M(e,t,o,i,r){return r||O(e,t,o,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,o,i,23,4),o+4}function N(e,t,o,i,r){return r||O(e,t,o,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,o,i,52,8),o+8}function j(e){if(e=P(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function P(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var o,i=e.length,r=null,n=[],l=0;l55295&&o<57344){if(!r){if(o>56319){(t-=3)>-1&&n.push(239,191,189);continue}if(l+1===i){(t-=3)>-1&&n.push(239,191,189);continue}r=o;continue}if(o<56320){(t-=3)>-1&&n.push(239,191,189),r=o;continue}o=65536+(r-55296<<10|o-56320)}else r&&(t-=3)>-1&&n.push(239,191,189);if(r=null,o<128){if((t-=1)<0)break;n.push(o)}else if(o<2048){if((t-=2)<0)break;n.push(o>>6|192,63&o|128)}else if(o<65536){if((t-=3)<0)break;n.push(o>>12|224,o>>6&63|128,63&o|128)}else{if(!(o<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;n.push(o>>18|240,o>>12&63|128,o>>6&63|128,63&o|128)}}return n}function q(e){for(var t=[],o=0;o>8,r=o%256,n.push(r),n.push(i);return n}function W(e){return G.toByteArray(j(e))}function Z(e,t,o,i){for(var r=0;r=t.length||r>=e.length);++r)t[r+o]=e[r];return r}function X(e){return e!==e}/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var G=o(139),J=o(207),K=o(208);t.Buffer=n,t.SlowBuffer=b,t.INSPECT_MAX_BYTES=50,n.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=i(),n.poolSize=8192,n._augment=function(e){return e.__proto__=n.prototype,e},n.from=function(e,t,o){return l(null,e,t,o)},n.TYPED_ARRAY_SUPPORT&&(n.prototype.__proto__=Uint8Array.prototype,n.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&n[Symbol.species]===n&&Object.defineProperty(n,Symbol.species,{value:null,configurable:!0})),n.alloc=function(e,t,o){return s(null,e,t,o)},n.allocUnsafe=function(e){return c(null,e)},n.allocUnsafeSlow=function(e){return c(null,e)},n.isBuffer=function(e){return!(null==e||!e._isBuffer)},n.compare=function(e,t){if(!n.isBuffer(e)||!n.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var o=e.length,i=t.length,r=0,l=Math.min(o,i);r0&&(e=this.toString("hex",0,o).match(/.{2}/g).join(" "),this.length>o&&(e+=" ... ")),""},n.prototype.compare=function(e,t,o,i,r){if(!n.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===o&&(o=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||o>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=o)return 0;if(i>=r)return-1;if(t>=o)return 1;if(t>>>=0,o>>>=0,i>>>=0,r>>>=0,this===e)return 0;for(var l=r-i,a=o-t,s=Math.min(l,a),c=this.slice(i,r),f=e.slice(t,o),p=0;pr)&&(o=r),e.length>0&&(o<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var n=!1;;)switch(i){case"hex":return w(this,e,t,o);case"utf8":case"utf-8":return y(this,e,t,o);case"ascii":return k(this,e,t,o);case"latin1":case"binary":return E(this,e,t,o);case"base64":return z(this,e,t,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,o);default:if(n)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),n=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;n.prototype.slice=function(e,t){var o=this.length;e=~~e,t=void 0===t?o:~~t,e<0?(e+=o)<0&&(e=0):e>o&&(e=o),t<0?(t+=o)<0&&(t=0):t>o&&(t=o),t0&&(r*=256);)i+=this[e+--t]*r;return i},n.prototype.readUInt8=function(e,t){return t||B(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return t||B(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return t||B(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return t||B(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return t||B(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,o){e|=0,t|=0,o||B(e,t,this.length);for(var i=this[e],r=1,n=0;++n=r&&(i-=Math.pow(2,8*t)),i},n.prototype.readIntBE=function(e,t,o){e|=0,t|=0,o||B(e,t,this.length);for(var i=t,r=1,n=this[e+--i];i>0&&(r*=256);)n+=this[e+--i]*r;return r*=128,n>=r&&(n-=Math.pow(2,8*t)),n},n.prototype.readInt8=function(e,t){return t||B(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){t||B(e,2,this.length);var o=this[e]|this[e+1]<<8;return 32768&o?4294901760|o:o},n.prototype.readInt16BE=function(e,t){t||B(e,2,this.length);var o=this[e+1]|this[e]<<8;return 32768&o?4294901760|o:o},n.prototype.readInt32LE=function(e,t){return t||B(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return t||B(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return t||B(e,4,this.length),J.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return t||B(e,4,this.length),J.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return t||B(e,8,this.length),J.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return t||B(e,8,this.length),J.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,o,i){if(e=+e,t|=0,o|=0,!i){S(this,e,t,o,Math.pow(2,8*o)-1,0)}var r=1,n=0;for(this[t]=255&e;++n=0&&(n*=256);)this[t+r]=e/n&255;return t+o},n.prototype.writeUInt8=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):$(this,e,t,!0),t+2},n.prototype.writeUInt16BE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):$(this,e,t,!1),t+2},n.prototype.writeUInt32LE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},n.prototype.writeUInt32BE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeIntLE=function(e,t,o,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*o-1);S(this,e,t,o,r-1,-r)}var n=0,l=1,a=0;for(this[t]=255&e;++n>0)-a&255;return t+o},n.prototype.writeIntBE=function(e,t,o,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*o-1);S(this,e,t,o,r-1,-r)}var n=o-1,l=1,a=0;for(this[t+n]=255&e;--n>=0&&(l*=256);)e<0&&0===a&&0!==this[t+n+1]&&(a=1),this[t+n]=(e/l>>0)-a&255;return t+o},n.prototype.writeInt8=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):$(this,e,t,!0),t+2},n.prototype.writeInt16BE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):$(this,e,t,!1),t+2},n.prototype.writeInt32LE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},n.prototype.writeInt32BE=function(e,t,o){return e=+e,t|=0,o||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeFloatLE=function(e,t,o){return N(this,e,t,!0,o)},n.prototype.writeFloatBE=function(e,t,o){return N(this,e,t,!1,o)},n.prototype.writeDoubleLE=function(e,t,o){return M(this,e,t,!0,o)},n.prototype.writeDoubleBE=function(e,t,o){return M(this,e,t,!1,o)},n.prototype.copy=function(e,t,o,i){if(o||(o=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--r)e[r+t]=this[r+o];else if(l<1e3||!n.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,o=void 0===o?this.length:o>>>0,e||(e=0);var l;if("number"==typeof e)for(l=t;lx;x++)if((g=t?_(l(h=e[x])[0],h[1]):_(e[x]))===c||g===f)return g}else for(b=m.call(e);!(h=b.next()).done;)if((g=r(b,_,h.value,t))===c||g===f)return g};t.BREAK=c,t.RETURN=f},function(e,t){e.exports=function(e,t,o){var i=void 0===o;switch(t.length){case 0:return i?e():e.call(o);case 1:return i?e(t[0]):e.call(o,t[0]);case 2:return i?e(t[0],t[1]):e.call(o,t[0],t[1]);case 3:return i?e(t[0],t[1],t[2]):e.call(o,t[0],t[1],t[2]);case 4:return i?e(t[0],t[1],t[2],t[3]):e.call(o,t[0],t[1],t[2],t[3])}return e.apply(o,t)}},,,,,function(e,t,o){var i=o(4),r=o(84).set,n=i.MutationObserver||i.WebKitMutationObserver,l=i.process,a=i.Promise,s="process"==o(19)(l);e.exports=function(){var e,t,o,c=function(){var i,r;for(s&&(i=l.domain)&&i.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?o():t=void 0,i}}t=void 0,i&&i.enter()};if(s)o=function(){l.nextTick(c)};else if(!n||i.navigator&&i.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);o=function(){f.then(c)}}else o=function(){r.call(i,c)};else{var p=!0,d=document.createTextNode("");new n(c).observe(d,{characterData:!0}),o=function(){d.data=p=!p}}return function(i){var r={fn:i,next:void 0};t&&(t.next=r),e||(e=r,o()),t=r}}},,,,,,function(e,t,o){var i=o(10),r=o(3),n=o(16);e.exports=function(e,t){var o=(r.Object||{})[e]||Object[e],l={};l[e]=t(o),i(i.S+i.F*n(function(){o(1)}),"Object",l)}},function(e,t,o){var i=o(13);e.exports=function(e,t,o){for(var r in t)o&&e[r]?e[r]=t[r]:i(e,r,t[r]);return e}},function(e,t,o){"use strict";var i=o(4),r=o(3),n=o(11),l=o(9),a=o(5)("species");e.exports=function(e){var t="function"==typeof r[e]?r[e]:i[e];l&&t&&!t[a]&&n.f(t,a,{configurable:!0,get:function(){return this}})}},,,function(e,t,o){var i=o(4),r=i.navigator;e.exports=r&&r.userAgent||""},function(e,t,o){var i=o(7),r=o(51);e.exports=o(3).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,o){"use strict";var i=o(20),r=o(10),n=o(25),l=o(74),a=o(73),s=o(47),c=o(151),f=o(51);r(r.S+r.F*!o(76)(function(e){Array.from(e)}),"Array",{from:function(e){var t,o,r,p,d=n(e),u="function"==typeof this?this:Array,h=arguments.length,b=h>1?arguments[1]:void 0,g=void 0!==b,m=0,_=f(d);if(g&&(b=i(b,h>2?arguments[2]:void 0,2)),void 0==_||u==Array&&a(_))for(t=s(d.length),o=new u(t);t>m;m++)c(o,m,g?b(d[m],m):d[m]);else for(p=_.call(d),o=new u;!(r=p.next()).done;m++)c(o,m,g?l(p,b,[r.value,m],!0):r.value);return o.length=m,o}})},,,function(e,t,o){var i=o(25),r=o(23);o(165)("keys",function(){return function(e){return r(i(e))}})},function(e,t,o){"use strict";var i,r,n,l,a=o(22),s=o(4),c=o(20),f=o(69),p=o(10),d=o(14),u=o(27),h=o(149),b=o(153),g=o(83),m=o(84).set,_=o(159)(),x=o(42),v=o(80),w=o(170),y=o(81),k=s.TypeError,E=s.process,z=E&&E.versions,A=z&&z.v8||"",T=s.Promise,I="process"==f(E),L=function(){},C=r=x.f,R=!!function(){try{var e=T.resolve(1),t=(e.constructor={})[o(5)("species")]=function(e){e(L,L)};return(I||"function"==typeof PromiseRejectionEvent)&&e.then(L)instanceof t&&0!==A.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(e){}}(),U=function(e){var t;return!(!d(e)||"function"!=typeof(t=e.then))&&t},F=function(e,t){if(!e._n){e._n=!0;var o=e._c;_(function(){for(var i=e._v,r=1==e._s,n=0;o.length>n;)!function(t){var o,n,l,a=r?t.ok:t.fail,s=t.resolve,c=t.reject,f=t.domain;try{a?(r||(2==e._h&&$(e),e._h=1),!0===a?o=i:(f&&f.enter(),o=a(i),f&&(f.exit(),l=!0)),o===t.promise?c(k("Promise-chain cycle")):(n=U(o))?n.call(o,s,c):s(o)):c(i)}catch(e){f&&!l&&f.exit(),c(e)}}(o[n++]);e._c=[],e._n=!1,t&&!e._h&&B(e)})}},B=function(e){m.call(s,function(){var t,o,i,r=e._v,n=S(e);if(n&&(t=v(function(){I?E.emit("unhandledRejection",r,e):(o=s.onunhandledrejection)?o({promise:e,reason:r}):(i=s.console)&&i.error&&i.error("Unhandled promise rejection",r)}),e._h=I||S(e)?2:1),e._a=void 0,n&&t.e)throw t.v})},S=function(e){return 1!==e._h&&0===(e._a||e._c).length},$=function(e){m.call(s,function(){var t;I?E.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},D=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),F(t,!0))},O=function(e){var t,o=this;if(!o._d){o._d=!0,o=o._w||o;try{if(o===e)throw k("Promise can't be resolved itself");(t=U(e))?_(function(){var i={_w:o,_d:!1};try{t.call(e,c(O,i,1),c(D,i,1))}catch(e){D.call(i,e)}}):(o._v=e,o._s=1,F(o,!1))}catch(e){D.call({_w:o,_d:!1},e)}}};R||(T=function(e){h(this,T,"Promise","_h"),u(e),i.call(this);try{e(c(O,this,1),c(D,this,1))}catch(e){D.call(this,e)}},i=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},i.prototype=o(166)(T.prototype,{then:function(e,t){var o=C(g(this,T));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=I?E.domain:void 0,this._c.push(o),this._a&&this._a.push(o),this._s&&F(this,!1),o.promise},catch:function(e){return this.then(void 0,e)}}),n=function(){var e=new i;this.promise=e,this.resolve=c(O,e,1),this.reject=c(D,e,1)},x.f=C=function(e){return e===T||e===l?new n(e):r(e)}),p(p.G+p.W+p.F*!R,{Promise:T}),o(29)(T,"Promise"),o(167)("Promise"),l=o(3).Promise,p(p.S+p.F*!R,"Promise",{reject:function(e){var t=C(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(a||!R),"Promise",{resolve:function(e){return y(a&&this===l?T:this,e)}}),p(p.S+p.F*!(R&&o(76)(function(e){T.all(e).catch(L)})),"Promise",{all:function(e){var t=this,o=C(t),i=o.resolve,r=o.reject,n=v(function(){var o=[],n=0,l=1;b(e,!1,function(e){var a=n++,s=!1;o.push(void 0),l++,t.resolve(e).then(function(e){s||(s=!0,o[a]=e,--l||i(o))},r)}),--l||i(o)});return n.e&&r(n.v),o.promise},race:function(e){var t=this,o=C(t),i=o.reject,r=v(function(){b(e,!1,function(e){t.resolve(e).then(o.resolve,i)})});return r.e&&i(r.v),o.promise}})},,function(e,t,o){"use strict";var i=o(10),r=o(3),n=o(4),l=o(83),a=o(81);i(i.P+i.R,"Promise",{finally:function(e){var t=l(this,r.Promise||n.Promise),o="function"==typeof e;return this.then(o?function(o){return a(t,e()).then(function(){return o})}:e,o?function(o){return a(t,e()).then(function(){throw o})}:e)}})},function(e,t,o){"use strict";var i=o(10),r=o(42),n=o(80);i(i.S,"Promise",{try:function(e){var t=r.f(this),o=n(e);return(o.e?t.reject:t.resolve)(o.v),t.promise}})},,,function(e,t,o){t=e.exports=o(86)(void 0),t.push([e.i,"@font-face{font-family:element-icons;src:url("+o(223)+') format("woff"),url('+o(222)+') format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\\E6A0"}.el-icon-ice-cream-square:before{content:"\\E6A3"}.el-icon-lollipop:before{content:"\\E6A4"}.el-icon-potato-strips:before{content:"\\E6A5"}.el-icon-milk-tea:before{content:"\\E6A6"}.el-icon-ice-drink:before{content:"\\E6A7"}.el-icon-ice-tea:before{content:"\\E6A9"}.el-icon-coffee:before{content:"\\E6AA"}.el-icon-orange:before{content:"\\E6AB"}.el-icon-pear:before{content:"\\E6AC"}.el-icon-apple:before{content:"\\E6AD"}.el-icon-cherry:before{content:"\\E6AE"}.el-icon-watermelon:before{content:"\\E6AF"}.el-icon-grape:before{content:"\\E6B0"}.el-icon-refrigerator:before{content:"\\E6B1"}.el-icon-goblet-square-full:before{content:"\\E6B2"}.el-icon-goblet-square:before{content:"\\E6B3"}.el-icon-goblet-full:before{content:"\\E6B4"}.el-icon-goblet:before{content:"\\E6B5"}.el-icon-cold-drink:before{content:"\\E6B6"}.el-icon-coffee-cup:before{content:"\\E6B8"}.el-icon-water-cup:before{content:"\\E6B9"}.el-icon-hot-water:before{content:"\\E6BA"}.el-icon-ice-cream:before{content:"\\E6BB"}.el-icon-dessert:before{content:"\\E6BC"}.el-icon-sugar:before{content:"\\E6BD"}.el-icon-tableware:before{content:"\\E6BE"}.el-icon-burger:before{content:"\\E6BF"}.el-icon-knife-fork:before{content:"\\E6C1"}.el-icon-fork-spoon:before{content:"\\E6C2"}.el-icon-chicken:before{content:"\\E6C3"}.el-icon-food:before{content:"\\E6C4"}.el-icon-dish-1:before{content:"\\E6C5"}.el-icon-dish:before{content:"\\E6C6"}.el-icon-moon-night:before{content:"\\E6EE"}.el-icon-moon:before{content:"\\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\\E6F1"}.el-icon-partly-cloudy:before{content:"\\E6F2"}.el-icon-cloudy:before{content:"\\E6F3"}.el-icon-sunny:before{content:"\\E6F6"}.el-icon-sunset:before{content:"\\E6F7"}.el-icon-sunrise-1:before{content:"\\E6F8"}.el-icon-sunrise:before{content:"\\E6F9"}.el-icon-heavy-rain:before{content:"\\E6FA"}.el-icon-lightning:before{content:"\\E6FB"}.el-icon-light-rain:before{content:"\\E6FC"}.el-icon-wind-power:before{content:"\\E6FD"}.el-icon-baseball:before{content:"\\E712"}.el-icon-soccer:before{content:"\\E713"}.el-icon-football:before{content:"\\E715"}.el-icon-basketball:before{content:"\\E716"}.el-icon-ship:before{content:"\\E73F"}.el-icon-truck:before{content:"\\E740"}.el-icon-bicycle:before{content:"\\E741"}.el-icon-mobile-phone:before{content:"\\E6D3"}.el-icon-service:before{content:"\\E6D4"}.el-icon-key:before{content:"\\E6E2"}.el-icon-unlock:before{content:"\\E6E4"}.el-icon-lock:before{content:"\\E6E5"}.el-icon-watch:before{content:"\\E6FE"}.el-icon-watch-1:before{content:"\\E6FF"}.el-icon-timer:before{content:"\\E702"}.el-icon-alarm-clock:before{content:"\\E703"}.el-icon-map-location:before{content:"\\E704"}.el-icon-delete-location:before{content:"\\E705"}.el-icon-add-location:before{content:"\\E706"}.el-icon-location-information:before{content:"\\E707"}.el-icon-location-outline:before{content:"\\E708"}.el-icon-location:before{content:"\\E79E"}.el-icon-place:before{content:"\\E709"}.el-icon-discover:before{content:"\\E70A"}.el-icon-first-aid-kit:before{content:"\\E70B"}.el-icon-trophy-1:before{content:"\\E70C"}.el-icon-trophy:before{content:"\\E70D"}.el-icon-medal:before{content:"\\E70E"}.el-icon-medal-1:before{content:"\\E70F"}.el-icon-stopwatch:before{content:"\\E710"}.el-icon-mic:before{content:"\\E711"}.el-icon-copy-document:before{content:"\\E718"}.el-icon-full-screen:before{content:"\\E719"}.el-icon-switch-button:before{content:"\\E71B"}.el-icon-aim:before{content:"\\E71C"}.el-icon-crop:before{content:"\\E71D"}.el-icon-odometer:before{content:"\\E71E"}.el-icon-time:before{content:"\\E71F"}.el-icon-bangzhu:before{content:"\\E724"}.el-icon-close-notification:before{content:"\\E726"}.el-icon-microphone:before{content:"\\E727"}.el-icon-turn-off-microphone:before{content:"\\E728"}.el-icon-position:before{content:"\\E729"}.el-icon-postcard:before{content:"\\E72A"}.el-icon-message:before{content:"\\E72B"}.el-icon-chat-line-square:before{content:"\\E72D"}.el-icon-chat-dot-square:before{content:"\\E72E"}.el-icon-chat-dot-round:before{content:"\\E72F"}.el-icon-chat-square:before{content:"\\E730"}.el-icon-chat-line-round:before{content:"\\E731"}.el-icon-chat-round:before{content:"\\E732"}.el-icon-set-up:before{content:"\\E733"}.el-icon-turn-off:before{content:"\\E734"}.el-icon-open:before{content:"\\E735"}.el-icon-connection:before{content:"\\E736"}.el-icon-link:before{content:"\\E737"}.el-icon-cpu:before{content:"\\E738"}.el-icon-thumb:before{content:"\\E739"}.el-icon-female:before{content:"\\E73A"}.el-icon-male:before{content:"\\E73B"}.el-icon-guide:before{content:"\\E73C"}.el-icon-news:before{content:"\\E73E"}.el-icon-price-tag:before{content:"\\E744"}.el-icon-discount:before{content:"\\E745"}.el-icon-wallet:before{content:"\\E747"}.el-icon-coin:before{content:"\\E748"}.el-icon-money:before{content:"\\E749"}.el-icon-bank-card:before{content:"\\E74A"}.el-icon-box:before{content:"\\E74B"}.el-icon-present:before{content:"\\E74C"}.el-icon-sell:before{content:"\\E6D5"}.el-icon-sold-out:before{content:"\\E6D6"}.el-icon-shopping-bag-2:before{content:"\\E74D"}.el-icon-shopping-bag-1:before{content:"\\E74E"}.el-icon-shopping-cart-2:before{content:"\\E74F"}.el-icon-shopping-cart-1:before{content:"\\E750"}.el-icon-shopping-cart-full:before{content:"\\E751"}.el-icon-smoking:before{content:"\\E752"}.el-icon-no-smoking:before{content:"\\E753"}.el-icon-house:before{content:"\\E754"}.el-icon-table-lamp:before{content:"\\E755"}.el-icon-school:before{content:"\\E756"}.el-icon-office-building:before{content:"\\E757"}.el-icon-toilet-paper:before{content:"\\E758"}.el-icon-notebook-2:before{content:"\\E759"}.el-icon-notebook-1:before{content:"\\E75A"}.el-icon-files:before{content:"\\E75B"}.el-icon-collection:before{content:"\\E75C"}.el-icon-receiving:before{content:"\\E75D"}.el-icon-suitcase-1:before{content:"\\E760"}.el-icon-suitcase:before{content:"\\E761"}.el-icon-film:before{content:"\\E763"}.el-icon-collection-tag:before{content:"\\E765"}.el-icon-data-analysis:before{content:"\\E766"}.el-icon-pie-chart:before{content:"\\E767"}.el-icon-data-board:before{content:"\\E768"}.el-icon-data-line:before{content:"\\E76D"}.el-icon-reading:before{content:"\\E769"}.el-icon-magic-stick:before{content:"\\E76A"}.el-icon-coordinate:before{content:"\\E76B"}.el-icon-mouse:before{content:"\\E76C"}.el-icon-brush:before{content:"\\E76E"}.el-icon-headset:before{content:"\\E76F"}.el-icon-umbrella:before{content:"\\E770"}.el-icon-scissors:before{content:"\\E771"}.el-icon-mobile:before{content:"\\E773"}.el-icon-attract:before{content:"\\E774"}.el-icon-monitor:before{content:"\\E775"}.el-icon-search:before{content:"\\E778"}.el-icon-takeaway-box:before{content:"\\E77A"}.el-icon-paperclip:before{content:"\\E77D"}.el-icon-printer:before{content:"\\E77E"}.el-icon-document-add:before{content:"\\E782"}.el-icon-document:before{content:"\\E785"}.el-icon-document-checked:before{content:"\\E786"}.el-icon-document-copy:before{content:"\\E787"}.el-icon-document-delete:before{content:"\\E788"}.el-icon-document-remove:before{content:"\\E789"}.el-icon-tickets:before{content:"\\E78B"}.el-icon-folder-checked:before{content:"\\E77F"}.el-icon-folder-delete:before{content:"\\E780"}.el-icon-folder-remove:before{content:"\\E781"}.el-icon-folder-add:before{content:"\\E783"}.el-icon-folder-opened:before{content:"\\E784"}.el-icon-folder:before{content:"\\E78A"}.el-icon-edit-outline:before{content:"\\E764"}.el-icon-edit:before{content:"\\E78C"}.el-icon-date:before{content:"\\E78E"}.el-icon-c-scale-to-original:before{content:"\\E7C6"}.el-icon-view:before{content:"\\E6CE"}.el-icon-loading:before{content:"\\E6CF"}.el-icon-rank:before{content:"\\E6D1"}.el-icon-sort-down:before{content:"\\E7C4"}.el-icon-sort-up:before{content:"\\E7C5"}.el-icon-sort:before{content:"\\E6D2"}.el-icon-finished:before{content:"\\E6CD"}.el-icon-refresh-left:before{content:"\\E6C7"}.el-icon-refresh-right:before{content:"\\E6C8"}.el-icon-refresh:before{content:"\\E6D0"}.el-icon-video-play:before{content:"\\E7C0"}.el-icon-video-pause:before{content:"\\E7C1"}.el-icon-d-arrow-right:before{content:"\\E6DC"}.el-icon-d-arrow-left:before{content:"\\E6DD"}.el-icon-arrow-up:before{content:"\\E6E1"}.el-icon-arrow-down:before{content:"\\E6DF"}.el-icon-arrow-right:before{content:"\\E6E0"}.el-icon-arrow-left:before{content:"\\E6DE"}.el-icon-top-right:before{content:"\\E6E7"}.el-icon-top-left:before{content:"\\E6E8"}.el-icon-top:before{content:"\\E6E6"}.el-icon-bottom:before{content:"\\E6EB"}.el-icon-right:before{content:"\\E6E9"}.el-icon-back:before{content:"\\E6EA"}.el-icon-bottom-right:before{content:"\\E6EC"}.el-icon-bottom-left:before{content:"\\E6ED"}.el-icon-caret-top:before{content:"\\E78F"}.el-icon-caret-bottom:before{content:"\\E790"}.el-icon-caret-right:before{content:"\\E791"}.el-icon-caret-left:before{content:"\\E792"}.el-icon-d-caret:before{content:"\\E79A"}.el-icon-share:before{content:"\\E793"}.el-icon-menu:before{content:"\\E798"}.el-icon-s-grid:before{content:"\\E7A6"}.el-icon-s-check:before{content:"\\E7A7"}.el-icon-s-data:before{content:"\\E7A8"}.el-icon-s-opportunity:before{content:"\\E7AA"}.el-icon-s-custom:before{content:"\\E7AB"}.el-icon-s-claim:before{content:"\\E7AD"}.el-icon-s-finance:before{content:"\\E7AE"}.el-icon-s-comment:before{content:"\\E7AF"}.el-icon-s-flag:before{content:"\\E7B0"}.el-icon-s-marketing:before{content:"\\E7B1"}.el-icon-s-shop:before{content:"\\E7B4"}.el-icon-s-open:before{content:"\\E7B5"}.el-icon-s-management:before{content:"\\E7B6"}.el-icon-s-ticket:before{content:"\\E7B7"}.el-icon-s-release:before{content:"\\E7B8"}.el-icon-s-home:before{content:"\\E7B9"}.el-icon-s-promotion:before{content:"\\E7BA"}.el-icon-s-operation:before{content:"\\E7BB"}.el-icon-s-unfold:before{content:"\\E7BC"}.el-icon-s-fold:before{content:"\\E7A9"}.el-icon-s-platform:before{content:"\\E7BD"}.el-icon-s-order:before{content:"\\E7BE"}.el-icon-s-cooperation:before{content:"\\E7BF"}.el-icon-bell:before{content:"\\E725"}.el-icon-message-solid:before{content:"\\E799"}.el-icon-video-camera:before{content:"\\E772"}.el-icon-video-camera-solid:before{content:"\\E796"}.el-icon-camera:before{content:"\\E779"}.el-icon-camera-solid:before{content:"\\E79B"}.el-icon-download:before{content:"\\E77C"}.el-icon-upload2:before{content:"\\E77B"}.el-icon-upload:before{content:"\\E7C3"}.el-icon-picture-outline-round:before{content:"\\E75F"}.el-icon-picture-outline:before{content:"\\E75E"}.el-icon-picture:before{content:"\\E79F"}.el-icon-close:before{content:"\\E6DB"}.el-icon-check:before{content:"\\E6DA"}.el-icon-plus:before{content:"\\E6D9"}.el-icon-minus:before{content:"\\E6D8"}.el-icon-help:before{content:"\\E73D"}.el-icon-s-help:before{content:"\\E7B3"}.el-icon-circle-close:before{content:"\\E78D"}.el-icon-circle-check:before{content:"\\E720"}.el-icon-circle-plus-outline:before{content:"\\E723"}.el-icon-remove-outline:before{content:"\\E722"}.el-icon-zoom-out:before{content:"\\E776"}.el-icon-zoom-in:before{content:"\\E777"}.el-icon-error:before{content:"\\E79D"}.el-icon-success:before{content:"\\E79C"}.el-icon-circle-plus:before{content:"\\E7A0"}.el-icon-remove:before{content:"\\E7A2"}.el-icon-info:before{content:"\\E7A1"}.el-icon-question:before{content:"\\E7A4"}.el-icon-warning-outline:before{content:"\\E6C9"}.el-icon-warning:before{content:"\\E7A3"}.el-icon-goods:before{content:"\\E7C2"}.el-icon-s-goods:before{content:"\\E7B2"}.el-icon-star-off:before{content:"\\E717"}.el-icon-star-on:before{content:"\\E797"}.el-icon-more-outline:before{content:"\\E6CC"}.el-icon-more:before{content:"\\E794"}.el-icon-phone-outline:before{content:"\\E6CB"}.el-icon-phone:before{content:"\\E795"}.el-icon-user:before{content:"\\E6E3"}.el-icon-user-solid:before{content:"\\E7A5"}.el-icon-setting:before{content:"\\E6CA"}.el-icon-s-tools:before{content:"\\E7AC"}.el-icon-delete:before{content:"\\E6D7"}.el-icon-delete-solid:before{content:"\\E7C9"}.el-icon-eleme:before{content:"\\E7C7"}.el-icon-platform-eleme:before{content:"\\E7CA"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-dialog,.el-pager li{-webkit-box-sizing:border-box}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item,.el-menu-item{font-size:14px;padding:0 20px;cursor:pointer}.el-dropdown-menu__item{list-style:none;line-height:36px;margin:0;color:#606266;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-breadcrumb__item:last-child .el-breadcrumb__separator,.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--collapse .el-submenu,.el-menu-item{position:relative}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{color:#303133;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-radio-button__inner,.el-submenu__title{-webkit-box-sizing:border-box;position:relative;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409eff}.el-picker-panel,.el-popover,.el-select-dropdown,.el-table-filter,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-switch{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;box-sizing:border-box;background:#dcdfe6;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-input__prefix,.el-input__suffix{-webkit-transition:all .3s;color:#c0c4cc}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-range-editor.is-active,.el-range-editor.is-active:hover,.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:-ms-flexbox;display:flex;max-width:100%;-ms-flex-align:center;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;top:0;color:#fff;-ms-flex-negative:0;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th.el-table__cell>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#409eff}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-date-table td,.el-table-filter,.el-table .cell{-webkit-box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th.el-table__cell,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder,.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder,.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover,.el-cascader__dropdown,.el-color-picker__panel,.el-message-box,.el-notification{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__active-bar,.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-col-offset-0,.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-cascader-menu:last-child .el-cascader-node,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-button-group>.el-button:not(:last-child),.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content:hover,.el-upload-list__item:hover{background-color:#f5f7fa}.el-tree-node__content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active,.el-upload iframe{opacity:0}.el-carousel__arrow--right,.el-notification.right{right:16px}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-button-group:after,.el-button-group:before,.el-color-dropdown__main-wrapper:after,.el-link.is-underline:hover:after,.el-page-header__left:after,.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-transfer-panel .el-transfer-panel__footer:after,.el-upload-cover:after,.el-upload-list--picture-card .el-upload-list__item-actions:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal}.el-image-viewer__btn,.el-slider__button,.el-slider__button-wrapper,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-12,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row,.el-upload-dragger,.el-upload-list__item{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-top{-ms-flex-align:start;align-items:flex-start}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-col-0{width:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-badge__content,.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;box-sizing:border-box}.el-card__header,.el-message,.el-step__icon{-webkit-box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border:1px solid #ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message.is-center{-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body,.el-main{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step.is-horizontal,.el-step__icon-inner{display:inline-block}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;position:absolute;top:0;left:0}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-cascader__search-input,.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-cascader,.el-tag{display:inline-block}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder,.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__icon,.el-input,.el-textarea{display:inline-block;width:100%}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{color:#fff;text-align:center}.el-input__prefix,.el-input__suffix{position:absolute;top:0;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-input__inner,.el-textarea__inner,.el-transfer-panel{-webkit-box-sizing:border-box}.el-textarea{position:relative;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder,.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder,.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input,.el-input__inner{font-size:inherit}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder,.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{height:100%;right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{height:100%;left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder,.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-image-viewer__btn,.el-image__preview,.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-button-group>.el-button+.el-button,.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-divider__text,.el-image__error,.el-link,.el-timeline,.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-container,.el-header{-webkit-box-sizing:border-box}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto}.el-footer,.el-main{box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0;font-weight:500}.el-link.is-underline:hover:after{position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;color:#c0c4cc;vertical-align:middle}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;box-sizing:border-box;user-select:none}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-image-viewer__btn,.el-radio{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff;top:50%}.el-image-viewer__prev{transform:translateY(-50%);left:40px}.el-image-viewer__next{transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button,.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini{font-size:12px;border-radius:3px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group .el-button--danger:last-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:last-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:last-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:last-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:last-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child),.el-button-group>.el-dropdown>.el-button{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:first-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:first-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:first-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:first-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5)}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0}.el-calendar{background-color:#fff}.el-calendar__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-backtop,.el-page-header{display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-avatar,.el-cascader-panel,.el-radio,.el-radio--medium.is-bordered .el-radio__label,.el-radio__label{font-size:14px}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-cascader-menu,.el-cascader-menu__list,.el-radio__inner{-webkit-box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409eff}.el-radio__label{padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:hsla(220,4%,58%,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-ms-flexbox;display:flex;border-radius:4px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px}.el-drawer,.el-drawer__body>*{-webkit-box-sizing:border-box}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden;outline:0}.el-drawer.rtl{animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-ms-flex-align:center;align-items:center;color:#72767b;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-ms-flex:1;flex:1}.el-drawer__title{margin:0;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-ms-flex:1;flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{width:100%;left:0;right:0}.el-drawer__container{position:relative;top:0;bottom:0;height:100%}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{width:100%;box-sizing:border-box;margin:0;padding:0;color:#000;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";text-align:center}.el-statistic .head{margin-bottom:4px;color:#00073;font-size:14px}.el-statistic .con{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;margin:0;line-height:100%}.el-popconfirm__main,.el-skeleton__image{display:-ms-flexbox;-webkit-box-align:center;display:-webkit-box}.el-popconfirm__main{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;object-fit:contain}.el-empty__image svg{fill:#dcdde0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-descriptions{box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:-ms-flexbox;display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline}.el-descriptions-item__container .el-descriptions-item__content{-ms-flex:1;flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{word-break:break-word;overflow-wrap:break-word}.el-result{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67c23a}.el-result .icon-error{fill:#f56c6c}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#e6a23c}',""])},function(e,t,o){t=e.exports=o(86)(void 0),t.push([e.i,"#app{font-family:Helvetica,sans-serif;width:960px;margin:0 auto}.action-left{float:left}.action-right{float:right}.folder-path{margin:20px auto}.folder-action{float:right}.file-cell{padding:4px 0!important}.header{text-align:center;margin:100px auto}",""])},,,,,,,,function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"OK",clear:"Clear"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:""},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},empty:{description:"No Data"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"Confirmar",clear:"Despejar"},datepicker:{now:"Ahora",today:"Hoy",cancel:"Cancelar",clear:"Limpiar",confirm:"Confirmar",selectDate:"Seleccionar fecha",selectTime:"Seleccionar hora",startDate:"Fecha Incial",startTime:"Hora Inicial",endDate:"Fecha Final",endTime:"Hora Final",prevYear:"Año Anterior",nextYear:"Próximo Año",prevMonth:"Mes Anterior",nextMonth:"Próximo Mes",year:"",month1:"enero",month2:"febrero",month3:"marzo",month4:"abril",month5:"mayo",month6:"junio",month7:"julio",month8:"agosto",month9:"septiembre",month10:"octubre",month11:"noviembre",month12:"diciembre",weeks:{sun:"dom",mon:"lun",tue:"mar",wed:"mié",thu:"jue",fri:"vie",sat:"sáb"},months:{jan:"ene",feb:"feb",mar:"mar",apr:"abr",may:"may",jun:"jun",jul:"jul",aug:"ago",sep:"sep",oct:"oct",nov:"nov",dec:"dic"}},select:{loading:"Cargando",noMatch:"No hay datos que coincidan",noData:"Sin datos",placeholder:"Seleccionar"},cascader:{noMatch:"No hay datos que coincidan",loading:"Cargando",placeholder:"Seleccionar",noData:"Sin datos"},pagination:{goto:"Ir a",pagesize:"/página",total:"Total {total}",pageClassifier:""},messagebox:{confirm:"Aceptar",cancel:"Cancelar",error:"Entrada inválida"},upload:{deleteTip:"Pulse Eliminar para retirar",delete:"Eliminar",preview:"Vista Previa",continue:"Continuar"},table:{emptyText:"Sin Datos",confirmFilter:"Confirmar",resetFilter:"Reiniciar",clearFilter:"Limpiar",sumText:"Suma"},tree:{emptyText:"Sin Datos"},transfer:{noMatch:"No hay datos que coincidan",noData:"Sin datos",titles:["Lista 1","Lista 2"],filterPlaceholder:"Ingresar palabra clave",noCheckedFormat:"{total} artículos",hasCheckedFormat:"{checked}/{total} revisados"},image:{error:"HA FALLADO"},pageHeader:{title:"Volver"},popconfirm:{confirmButtonText:"Si",cancelButtonText:"No"},empty:{description:"Sin Datos"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"確認",clear:"清空"},datepicker:{now:"現在",today:"今天",cancel:"取消",clear:"清空",confirm:"確認",selectDate:"選擇日期",selectTime:"選擇時間",startDate:"開始日期",startTime:"開始時間",endDate:"結束日期",endTime:"結束時間",prevYear:"前一年",nextYear:"後一年",prevMonth:"上個月",nextMonth:"下個月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加載中",noMatch:"無匹配資料",noData:"無資料",placeholder:"請選擇"},cascader:{noMatch:"無匹配資料",loading:"加載中",placeholder:"請選擇",noData:"無資料"},pagination:{goto:"前往",pagesize:"項/頁",total:"共 {total} 項",pageClassifier:"頁"},messagebox:{title:"提示",confirm:"確定",cancel:"取消",error:"輸入的資料不符規定!"},upload:{deleteTip:"按 delete 鍵可刪除",delete:"刪除",preview:"查看圖片",continue:"繼續上傳"},table:{emptyText:"暫無資料",confirmFilter:"篩選",resetFilter:"重置",clearFilter:"全部",sumText:"Sum"},tree:{emptyText:"暫無資料"},transfer:{noMatch:"無匹配資料",noData:"無資料",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"加載失敗"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},empty:{description:"暫無資料"}}}},,,,,,,,,,,,,function(e,t,o){"use strict";function i(e){console&&console.warn&&console.warn(e)}function r(){r.init.call(this)}function n(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function a(e,t,o,r){var a,s,c;if(n(o),s=e._events,void 0===s?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,o.listener?o.listener:o),s=e._events),c=s[t]),void 0===c)c=s[t]=o,++e._eventsCount;else if("function"==typeof c?c=s[t]=r?[o,c]:[c,o]:r?c.unshift(o):c.push(o),(a=l(e))>0&&c.length>a&&!c.warned){c.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=c.length,i(f)}return e}function s(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(e,t,o){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:o},r=s.bind(i);return r.listener=o,i.wrapFn=r,r}function f(e,t,o){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?o?[r.listener||r]:[r]:o?h(r):d(r,r.length)}function p(e){var t=this._events;if(void 0!==t){var o=t[e];if("function"==typeof o)return 1;if(void 0!==o)return o.length}return 0}function d(e,t){for(var o=new Array(t),i=0;i0&&(n=t[0]),n instanceof Error)throw n;var l=new Error("Unhandled error."+(n?" ("+n.message+")":""));throw l.context=n,l}var a=r[e];if(void 0===a)return!1;if("function"==typeof a)v(a,this,t);else for(var s=a.length,c=d(a,s),o=0;o=0;l--)if(o[l]===t||o[l].listener===t){a=o[l].listener,r=l;break}if(r<0)return this;0===r?o.shift():u(o,r),1===o.length&&(i[e]=o[0]),void 0!==i.removeListener&&this.emit("removeListener",e,a||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,o,i;if(void 0===(o=this._events))return this;if(void 0===o.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==o[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete o[e]),this;if(0===arguments.length){var r,n=Object.keys(o);for(i=0;i=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return f(this,e,!0)},r.prototype.rawListeners=function(e){return f(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},r.prototype.listenerCount=p,r.prototype.eventNames=function(){return this._eventsCount>0?_(this._events):[]}},function(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -t.read=function(e,t,o,i,r){var n,l,a=8*r-i-1,s=(1<>1,f=-7,p=o?r-1:0,d=o?-1:1,u=e[t+p];for(p+=d,n=u&(1<<-f)-1,u>>=-f,f+=a;f>0;n=256*n+e[t+p],p+=d,f-=8);for(l=n&(1<<-f)-1,n>>=-f,f+=i;f>0;l=256*l+e[t+p],p+=d,f-=8);if(0===n)n=1-c;else{if(n===s)return l?NaN:1/0*(u?-1:1);l+=Math.pow(2,i),n-=c}return(u?-1:1)*l*Math.pow(2,n-i)},t.write=function(e,t,o,i,r,n){var l,a,s,c=8*n-r-1,f=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:n-1,h=i?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,l=f):(l=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-l))<1&&(l--,s*=2),t+=l+p>=1?d/s:d*Math.pow(2,1-p),t*s>=2&&(l++,s/=2),l+p>=f?(a=0,l=f):l+p>=1?(a=(t*s-1)*Math.pow(2,r),l+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,r),l=0));r>=8;e[o+u]=255&a,u+=h,a/=256,r-=8);for(l=l<0;e[o+u]=255&l,u+=h,l/=256,c-=8);e[o+u-h]|=128*b}},function(e,t){var o={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==o.call(e)}},,function(e,t,o){var i,r,n;/** +var G=o(141),J=o(211),K=o(212);t.Buffer=n,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,n.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=i(),n.poolSize=8192,n._augment=function(e){return e.__proto__=n.prototype,e},n.from=function(e,t,o){return l(null,e,t,o)},n.TYPED_ARRAY_SUPPORT&&(n.prototype.__proto__=Uint8Array.prototype,n.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&n[Symbol.species]===n&&Object.defineProperty(n,Symbol.species,{value:null,configurable:!0})),n.alloc=function(e,t,o){return s(null,e,t,o)},n.allocUnsafe=function(e){return c(null,e)},n.allocUnsafeSlow=function(e){return c(null,e)},n.isBuffer=function(e){return!(null==e||!e._isBuffer)},n.compare=function(e,t){if(!n.isBuffer(e)||!n.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var o=e.length,i=t.length,r=0,l=Math.min(o,i);r0&&(e=this.toString("hex",0,o).match(/.{2}/g).join(" "),this.length>o&&(e+=" ... ")),""},n.prototype.compare=function(e,t,o,i,r){if(!n.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===o&&(o=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||o>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=o)return 0;if(i>=r)return-1;if(t>=o)return 1;if(t>>>=0,o>>>=0,i>>>=0,r>>>=0,this===e)return 0;for(var l=r-i,a=o-t,s=Math.min(l,a),c=this.slice(i,r),f=e.slice(t,o),p=0;pr)&&(o=r),e.length>0&&(o<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var n=!1;;)switch(i){case"hex":return w(this,e,t,o);case"utf8":case"utf-8":return y(this,e,t,o);case"ascii":return k(this,e,t,o);case"latin1":case"binary":return E(this,e,t,o);case"base64":return z(this,e,t,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,o);default:if(n)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),n=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;n.prototype.slice=function(e,t){var o=this.length;e=~~e,t=void 0===t?o:~~t,e<0?(e+=o)<0&&(e=0):e>o&&(e=o),t<0?(t+=o)<0&&(t=0):t>o&&(t=o),t0&&(r*=256);)i+=this[e+--t]*r;return i},n.prototype.readUInt8=function(e,t){return t||B(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return t||B(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return t||B(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return t||B(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return t||B(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,o){e|=0,t|=0,o||B(e,t,this.length);for(var i=this[e],r=1,n=0;++n=r&&(i-=Math.pow(2,8*t)),i},n.prototype.readIntBE=function(e,t,o){e|=0,t|=0,o||B(e,t,this.length);for(var i=t,r=1,n=this[e+--i];i>0&&(r*=256);)n+=this[e+--i]*r;return r*=128,n>=r&&(n-=Math.pow(2,8*t)),n},n.prototype.readInt8=function(e,t){return t||B(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){t||B(e,2,this.length);var o=this[e]|this[e+1]<<8;return 32768&o?4294901760|o:o},n.prototype.readInt16BE=function(e,t){t||B(e,2,this.length);var o=this[e+1]|this[e]<<8;return 32768&o?4294901760|o:o},n.prototype.readInt32LE=function(e,t){return t||B(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return t||B(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return t||B(e,4,this.length),J.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return t||B(e,4,this.length),J.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return t||B(e,8,this.length),J.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return t||B(e,8,this.length),J.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,o,i){if(e=+e,t|=0,o|=0,!i){D(this,e,t,o,Math.pow(2,8*o)-1,0)}var r=1,n=0;for(this[t]=255&e;++n=0&&(n*=256);)this[t+r]=e/n&255;return t+o},n.prototype.writeUInt8=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):S(this,e,t,!0),t+2},n.prototype.writeUInt16BE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):S(this,e,t,!1),t+2},n.prototype.writeUInt32LE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):$(this,e,t,!0),t+4},n.prototype.writeUInt32BE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$(this,e,t,!1),t+4},n.prototype.writeIntLE=function(e,t,o,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*o-1);D(this,e,t,o,r-1,-r)}var n=0,l=1,a=0;for(this[t]=255&e;++n>0)-a&255;return t+o},n.prototype.writeIntBE=function(e,t,o,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*o-1);D(this,e,t,o,r-1,-r)}var n=o-1,l=1,a=0;for(this[t+n]=255&e;--n>=0&&(l*=256);)e<0&&0===a&&0!==this[t+n+1]&&(a=1),this[t+n]=(e/l>>0)-a&255;return t+o},n.prototype.writeInt8=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):S(this,e,t,!0),t+2},n.prototype.writeInt16BE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):S(this,e,t,!1),t+2},n.prototype.writeInt32LE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):$(this,e,t,!0),t+4},n.prototype.writeInt32BE=function(e,t,o){return e=+e,t|=0,o||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$(this,e,t,!1),t+4},n.prototype.writeFloatLE=function(e,t,o){return M(this,e,t,!0,o)},n.prototype.writeFloatBE=function(e,t,o){return M(this,e,t,!1,o)},n.prototype.writeDoubleLE=function(e,t,o){return N(this,e,t,!0,o)},n.prototype.writeDoubleBE=function(e,t,o){return N(this,e,t,!1,o)},n.prototype.copy=function(e,t,o,i){if(o||(o=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--r)e[r+t]=this[r+o];else if(l<1e3||!n.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,o=void 0===o?this.length:o>>>0,e||(e=0);var l;if("number"==typeof e)for(l=t;lx;x++)if((b=t?_(l(h=e[x])[0],h[1]):_(e[x]))===c||b===f)return b}else for(g=m.call(e);!(h=g.next()).done;)if((b=r(g,_,h.value,t))===c||b===f)return b};t.BREAK=c,t.RETURN=f},function(e,t){e.exports=function(e,t,o){var i=void 0===o;switch(t.length){case 0:return i?e():e.call(o);case 1:return i?e(t[0]):e.call(o,t[0]);case 2:return i?e(t[0],t[1]):e.call(o,t[0],t[1]);case 3:return i?e(t[0],t[1],t[2]):e.call(o,t[0],t[1],t[2]);case 4:return i?e(t[0],t[1],t[2],t[3]):e.call(o,t[0],t[1],t[2],t[3])}return e.apply(o,t)}},,,,,function(e,t,o){var i=o(4),r=o(84).set,n=i.MutationObserver||i.WebKitMutationObserver,l=i.process,a=i.Promise,s="process"==o(19)(l);e.exports=function(){var e,t,o,c=function(){var i,r;for(s&&(i=l.domain)&&i.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?o():t=void 0,i}}t=void 0,i&&i.enter()};if(s)o=function(){l.nextTick(c)};else if(!n||i.navigator&&i.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);o=function(){f.then(c)}}else o=function(){r.call(i,c)};else{var p=!0,d=document.createTextNode("");new n(c).observe(d,{characterData:!0}),o=function(){d.data=p=!p}}return function(i){var r={fn:i,next:void 0};t&&(t.next=r),e||(e=r,o()),t=r}}},,,,,,function(e,t,o){var i=o(10),r=o(3),n=o(16);e.exports=function(e,t){var o=(r.Object||{})[e]||Object[e],l={};l[e]=t(o),i(i.S+i.F*n(function(){o(1)}),"Object",l)}},function(e,t,o){var i=o(13);e.exports=function(e,t,o){for(var r in t)o&&e[r]?e[r]=t[r]:i(e,r,t[r]);return e}},function(e,t,o){"use strict";var i=o(4),r=o(3),n=o(11),l=o(9),a=o(5)("species");e.exports=function(e){var t="function"==typeof r[e]?r[e]:i[e];l&&t&&!t[a]&&n.f(t,a,{configurable:!0,get:function(){return this}})}},,,function(e,t,o){var i=o(4),r=i.navigator;e.exports=r&&r.userAgent||""},function(e,t,o){var i=o(7),r=o(51);e.exports=o(3).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,o){"use strict";var i=o(20),r=o(10),n=o(25),l=o(74),a=o(73),s=o(47),c=o(153),f=o(51);r(r.S+r.F*!o(76)(function(e){Array.from(e)}),"Array",{from:function(e){var t,o,r,p,d=n(e),u="function"==typeof this?this:Array,h=arguments.length,g=h>1?arguments[1]:void 0,b=void 0!==g,m=0,_=f(d);if(b&&(g=i(g,h>2?arguments[2]:void 0,2)),void 0==_||u==Array&&a(_))for(t=s(d.length),o=new u(t);t>m;m++)c(o,m,b?g(d[m],m):d[m]);else for(p=_.call(d),o=new u;!(r=p.next()).done;m++)c(o,m,b?l(p,g,[r.value,m],!0):r.value);return o.length=m,o}})},,,function(e,t,o){var i=o(25),r=o(23);o(167)("keys",function(){return function(e){return r(i(e))}})},function(e,t,o){"use strict";var i,r,n,l,a=o(22),s=o(4),c=o(20),f=o(69),p=o(10),d=o(14),u=o(27),h=o(151),g=o(155),b=o(83),m=o(84).set,_=o(161)(),x=o(42),v=o(80),w=o(172),y=o(81),k=s.TypeError,E=s.process,z=E&&E.versions,A=z&&z.v8||"",T=s.Promise,L="process"==f(E),I=function(){},C=r=x.f,F=!!function(){try{var e=T.resolve(1),t=(e.constructor={})[o(5)("species")]=function(e){e(I,I)};return(L||"function"==typeof PromiseRejectionEvent)&&e.then(I)instanceof t&&0!==A.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(e){}}(),U=function(e){var t;return!(!d(e)||"function"!=typeof(t=e.then))&&t},R=function(e,t){if(!e._n){e._n=!0;var o=e._c;_(function(){for(var i=e._v,r=1==e._s,n=0;o.length>n;)!function(t){var o,n,l,a=r?t.ok:t.fail,s=t.resolve,c=t.reject,f=t.domain;try{a?(r||(2==e._h&&S(e),e._h=1),!0===a?o=i:(f&&f.enter(),o=a(i),f&&(f.exit(),l=!0)),o===t.promise?c(k("Promise-chain cycle")):(n=U(o))?n.call(o,s,c):s(o)):c(i)}catch(e){f&&!l&&f.exit(),c(e)}}(o[n++]);e._c=[],e._n=!1,t&&!e._h&&B(e)})}},B=function(e){m.call(s,function(){var t,o,i,r=e._v,n=D(e);if(n&&(t=v(function(){L?E.emit("unhandledRejection",r,e):(o=s.onunhandledrejection)?o({promise:e,reason:r}):(i=s.console)&&i.error&&i.error("Unhandled promise rejection",r)}),e._h=L||D(e)?2:1),e._a=void 0,n&&t.e)throw t.v})},D=function(e){return 1!==e._h&&0===(e._a||e._c).length},S=function(e){m.call(s,function(){var t;L?E.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},$=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),R(t,!0))},O=function(e){var t,o=this;if(!o._d){o._d=!0,o=o._w||o;try{if(o===e)throw k("Promise can't be resolved itself");(t=U(e))?_(function(){var i={_w:o,_d:!1};try{t.call(e,c(O,i,1),c($,i,1))}catch(e){$.call(i,e)}}):(o._v=e,o._s=1,R(o,!1))}catch(e){$.call({_w:o,_d:!1},e)}}};F||(T=function(e){h(this,T,"Promise","_h"),u(e),i.call(this);try{e(c(O,this,1),c($,this,1))}catch(e){$.call(this,e)}},i=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},i.prototype=o(168)(T.prototype,{then:function(e,t){var o=C(b(this,T));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=L?E.domain:void 0,this._c.push(o),this._a&&this._a.push(o),this._s&&R(this,!1),o.promise},catch:function(e){return this.then(void 0,e)}}),n=function(){var e=new i;this.promise=e,this.resolve=c(O,e,1),this.reject=c($,e,1)},x.f=C=function(e){return e===T||e===l?new n(e):r(e)}),p(p.G+p.W+p.F*!F,{Promise:T}),o(29)(T,"Promise"),o(169)("Promise"),l=o(3).Promise,p(p.S+p.F*!F,"Promise",{reject:function(e){var t=C(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(a||!F),"Promise",{resolve:function(e){return y(a&&this===l?T:this,e)}}),p(p.S+p.F*!(F&&o(76)(function(e){T.all(e).catch(I)})),"Promise",{all:function(e){var t=this,o=C(t),i=o.resolve,r=o.reject,n=v(function(){var o=[],n=0,l=1;g(e,!1,function(e){var a=n++,s=!1;o.push(void 0),l++,t.resolve(e).then(function(e){s||(s=!0,o[a]=e,--l||i(o))},r)}),--l||i(o)});return n.e&&r(n.v),o.promise},race:function(e){var t=this,o=C(t),i=o.reject,r=v(function(){g(e,!1,function(e){t.resolve(e).then(o.resolve,i)})});return r.e&&i(r.v),o.promise}})},,function(e,t,o){"use strict";var i=o(10),r=o(3),n=o(4),l=o(83),a=o(81);i(i.P+i.R,"Promise",{finally:function(e){var t=l(this,r.Promise||n.Promise),o="function"==typeof e;return this.then(o?function(o){return a(t,e()).then(function(){return o})}:e,o?function(o){return a(t,e()).then(function(){throw o})}:e)}})},function(e,t,o){"use strict";var i=o(10),r=o(42),n=o(80);i(i.S,"Promise",{try:function(e){var t=r.f(this),o=n(e);return(o.e?t.reject:t.resolve)(o.v),t.promise}})},,,function(e,t,o){t=e.exports=o(86)(void 0),t.push([e.i,"@font-face{font-family:element-icons;src:url("+o(227)+') format("woff"),url('+o(226)+') format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\\E6A0"}.el-icon-ice-cream-square:before{content:"\\E6A3"}.el-icon-lollipop:before{content:"\\E6A4"}.el-icon-potato-strips:before{content:"\\E6A5"}.el-icon-milk-tea:before{content:"\\E6A6"}.el-icon-ice-drink:before{content:"\\E6A7"}.el-icon-ice-tea:before{content:"\\E6A9"}.el-icon-coffee:before{content:"\\E6AA"}.el-icon-orange:before{content:"\\E6AB"}.el-icon-pear:before{content:"\\E6AC"}.el-icon-apple:before{content:"\\E6AD"}.el-icon-cherry:before{content:"\\E6AE"}.el-icon-watermelon:before{content:"\\E6AF"}.el-icon-grape:before{content:"\\E6B0"}.el-icon-refrigerator:before{content:"\\E6B1"}.el-icon-goblet-square-full:before{content:"\\E6B2"}.el-icon-goblet-square:before{content:"\\E6B3"}.el-icon-goblet-full:before{content:"\\E6B4"}.el-icon-goblet:before{content:"\\E6B5"}.el-icon-cold-drink:before{content:"\\E6B6"}.el-icon-coffee-cup:before{content:"\\E6B8"}.el-icon-water-cup:before{content:"\\E6B9"}.el-icon-hot-water:before{content:"\\E6BA"}.el-icon-ice-cream:before{content:"\\E6BB"}.el-icon-dessert:before{content:"\\E6BC"}.el-icon-sugar:before{content:"\\E6BD"}.el-icon-tableware:before{content:"\\E6BE"}.el-icon-burger:before{content:"\\E6BF"}.el-icon-knife-fork:before{content:"\\E6C1"}.el-icon-fork-spoon:before{content:"\\E6C2"}.el-icon-chicken:before{content:"\\E6C3"}.el-icon-food:before{content:"\\E6C4"}.el-icon-dish-1:before{content:"\\E6C5"}.el-icon-dish:before{content:"\\E6C6"}.el-icon-moon-night:before{content:"\\E6EE"}.el-icon-moon:before{content:"\\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\\E6F1"}.el-icon-partly-cloudy:before{content:"\\E6F2"}.el-icon-cloudy:before{content:"\\E6F3"}.el-icon-sunny:before{content:"\\E6F6"}.el-icon-sunset:before{content:"\\E6F7"}.el-icon-sunrise-1:before{content:"\\E6F8"}.el-icon-sunrise:before{content:"\\E6F9"}.el-icon-heavy-rain:before{content:"\\E6FA"}.el-icon-lightning:before{content:"\\E6FB"}.el-icon-light-rain:before{content:"\\E6FC"}.el-icon-wind-power:before{content:"\\E6FD"}.el-icon-baseball:before{content:"\\E712"}.el-icon-soccer:before{content:"\\E713"}.el-icon-football:before{content:"\\E715"}.el-icon-basketball:before{content:"\\E716"}.el-icon-ship:before{content:"\\E73F"}.el-icon-truck:before{content:"\\E740"}.el-icon-bicycle:before{content:"\\E741"}.el-icon-mobile-phone:before{content:"\\E6D3"}.el-icon-service:before{content:"\\E6D4"}.el-icon-key:before{content:"\\E6E2"}.el-icon-unlock:before{content:"\\E6E4"}.el-icon-lock:before{content:"\\E6E5"}.el-icon-watch:before{content:"\\E6FE"}.el-icon-watch-1:before{content:"\\E6FF"}.el-icon-timer:before{content:"\\E702"}.el-icon-alarm-clock:before{content:"\\E703"}.el-icon-map-location:before{content:"\\E704"}.el-icon-delete-location:before{content:"\\E705"}.el-icon-add-location:before{content:"\\E706"}.el-icon-location-information:before{content:"\\E707"}.el-icon-location-outline:before{content:"\\E708"}.el-icon-location:before{content:"\\E79E"}.el-icon-place:before{content:"\\E709"}.el-icon-discover:before{content:"\\E70A"}.el-icon-first-aid-kit:before{content:"\\E70B"}.el-icon-trophy-1:before{content:"\\E70C"}.el-icon-trophy:before{content:"\\E70D"}.el-icon-medal:before{content:"\\E70E"}.el-icon-medal-1:before{content:"\\E70F"}.el-icon-stopwatch:before{content:"\\E710"}.el-icon-mic:before{content:"\\E711"}.el-icon-copy-document:before{content:"\\E718"}.el-icon-full-screen:before{content:"\\E719"}.el-icon-switch-button:before{content:"\\E71B"}.el-icon-aim:before{content:"\\E71C"}.el-icon-crop:before{content:"\\E71D"}.el-icon-odometer:before{content:"\\E71E"}.el-icon-time:before{content:"\\E71F"}.el-icon-bangzhu:before{content:"\\E724"}.el-icon-close-notification:before{content:"\\E726"}.el-icon-microphone:before{content:"\\E727"}.el-icon-turn-off-microphone:before{content:"\\E728"}.el-icon-position:before{content:"\\E729"}.el-icon-postcard:before{content:"\\E72A"}.el-icon-message:before{content:"\\E72B"}.el-icon-chat-line-square:before{content:"\\E72D"}.el-icon-chat-dot-square:before{content:"\\E72E"}.el-icon-chat-dot-round:before{content:"\\E72F"}.el-icon-chat-square:before{content:"\\E730"}.el-icon-chat-line-round:before{content:"\\E731"}.el-icon-chat-round:before{content:"\\E732"}.el-icon-set-up:before{content:"\\E733"}.el-icon-turn-off:before{content:"\\E734"}.el-icon-open:before{content:"\\E735"}.el-icon-connection:before{content:"\\E736"}.el-icon-link:before{content:"\\E737"}.el-icon-cpu:before{content:"\\E738"}.el-icon-thumb:before{content:"\\E739"}.el-icon-female:before{content:"\\E73A"}.el-icon-male:before{content:"\\E73B"}.el-icon-guide:before{content:"\\E73C"}.el-icon-news:before{content:"\\E73E"}.el-icon-price-tag:before{content:"\\E744"}.el-icon-discount:before{content:"\\E745"}.el-icon-wallet:before{content:"\\E747"}.el-icon-coin:before{content:"\\E748"}.el-icon-money:before{content:"\\E749"}.el-icon-bank-card:before{content:"\\E74A"}.el-icon-box:before{content:"\\E74B"}.el-icon-present:before{content:"\\E74C"}.el-icon-sell:before{content:"\\E6D5"}.el-icon-sold-out:before{content:"\\E6D6"}.el-icon-shopping-bag-2:before{content:"\\E74D"}.el-icon-shopping-bag-1:before{content:"\\E74E"}.el-icon-shopping-cart-2:before{content:"\\E74F"}.el-icon-shopping-cart-1:before{content:"\\E750"}.el-icon-shopping-cart-full:before{content:"\\E751"}.el-icon-smoking:before{content:"\\E752"}.el-icon-no-smoking:before{content:"\\E753"}.el-icon-house:before{content:"\\E754"}.el-icon-table-lamp:before{content:"\\E755"}.el-icon-school:before{content:"\\E756"}.el-icon-office-building:before{content:"\\E757"}.el-icon-toilet-paper:before{content:"\\E758"}.el-icon-notebook-2:before{content:"\\E759"}.el-icon-notebook-1:before{content:"\\E75A"}.el-icon-files:before{content:"\\E75B"}.el-icon-collection:before{content:"\\E75C"}.el-icon-receiving:before{content:"\\E75D"}.el-icon-suitcase-1:before{content:"\\E760"}.el-icon-suitcase:before{content:"\\E761"}.el-icon-film:before{content:"\\E763"}.el-icon-collection-tag:before{content:"\\E765"}.el-icon-data-analysis:before{content:"\\E766"}.el-icon-pie-chart:before{content:"\\E767"}.el-icon-data-board:before{content:"\\E768"}.el-icon-data-line:before{content:"\\E76D"}.el-icon-reading:before{content:"\\E769"}.el-icon-magic-stick:before{content:"\\E76A"}.el-icon-coordinate:before{content:"\\E76B"}.el-icon-mouse:before{content:"\\E76C"}.el-icon-brush:before{content:"\\E76E"}.el-icon-headset:before{content:"\\E76F"}.el-icon-umbrella:before{content:"\\E770"}.el-icon-scissors:before{content:"\\E771"}.el-icon-mobile:before{content:"\\E773"}.el-icon-attract:before{content:"\\E774"}.el-icon-monitor:before{content:"\\E775"}.el-icon-search:before{content:"\\E778"}.el-icon-takeaway-box:before{content:"\\E77A"}.el-icon-paperclip:before{content:"\\E77D"}.el-icon-printer:before{content:"\\E77E"}.el-icon-document-add:before{content:"\\E782"}.el-icon-document:before{content:"\\E785"}.el-icon-document-checked:before{content:"\\E786"}.el-icon-document-copy:before{content:"\\E787"}.el-icon-document-delete:before{content:"\\E788"}.el-icon-document-remove:before{content:"\\E789"}.el-icon-tickets:before{content:"\\E78B"}.el-icon-folder-checked:before{content:"\\E77F"}.el-icon-folder-delete:before{content:"\\E780"}.el-icon-folder-remove:before{content:"\\E781"}.el-icon-folder-add:before{content:"\\E783"}.el-icon-folder-opened:before{content:"\\E784"}.el-icon-folder:before{content:"\\E78A"}.el-icon-edit-outline:before{content:"\\E764"}.el-icon-edit:before{content:"\\E78C"}.el-icon-date:before{content:"\\E78E"}.el-icon-c-scale-to-original:before{content:"\\E7C6"}.el-icon-view:before{content:"\\E6CE"}.el-icon-loading:before{content:"\\E6CF"}.el-icon-rank:before{content:"\\E6D1"}.el-icon-sort-down:before{content:"\\E7C4"}.el-icon-sort-up:before{content:"\\E7C5"}.el-icon-sort:before{content:"\\E6D2"}.el-icon-finished:before{content:"\\E6CD"}.el-icon-refresh-left:before{content:"\\E6C7"}.el-icon-refresh-right:before{content:"\\E6C8"}.el-icon-refresh:before{content:"\\E6D0"}.el-icon-video-play:before{content:"\\E7C0"}.el-icon-video-pause:before{content:"\\E7C1"}.el-icon-d-arrow-right:before{content:"\\E6DC"}.el-icon-d-arrow-left:before{content:"\\E6DD"}.el-icon-arrow-up:before{content:"\\E6E1"}.el-icon-arrow-down:before{content:"\\E6DF"}.el-icon-arrow-right:before{content:"\\E6E0"}.el-icon-arrow-left:before{content:"\\E6DE"}.el-icon-top-right:before{content:"\\E6E7"}.el-icon-top-left:before{content:"\\E6E8"}.el-icon-top:before{content:"\\E6E6"}.el-icon-bottom:before{content:"\\E6EB"}.el-icon-right:before{content:"\\E6E9"}.el-icon-back:before{content:"\\E6EA"}.el-icon-bottom-right:before{content:"\\E6EC"}.el-icon-bottom-left:before{content:"\\E6ED"}.el-icon-caret-top:before{content:"\\E78F"}.el-icon-caret-bottom:before{content:"\\E790"}.el-icon-caret-right:before{content:"\\E791"}.el-icon-caret-left:before{content:"\\E792"}.el-icon-d-caret:before{content:"\\E79A"}.el-icon-share:before{content:"\\E793"}.el-icon-menu:before{content:"\\E798"}.el-icon-s-grid:before{content:"\\E7A6"}.el-icon-s-check:before{content:"\\E7A7"}.el-icon-s-data:before{content:"\\E7A8"}.el-icon-s-opportunity:before{content:"\\E7AA"}.el-icon-s-custom:before{content:"\\E7AB"}.el-icon-s-claim:before{content:"\\E7AD"}.el-icon-s-finance:before{content:"\\E7AE"}.el-icon-s-comment:before{content:"\\E7AF"}.el-icon-s-flag:before{content:"\\E7B0"}.el-icon-s-marketing:before{content:"\\E7B1"}.el-icon-s-shop:before{content:"\\E7B4"}.el-icon-s-open:before{content:"\\E7B5"}.el-icon-s-management:before{content:"\\E7B6"}.el-icon-s-ticket:before{content:"\\E7B7"}.el-icon-s-release:before{content:"\\E7B8"}.el-icon-s-home:before{content:"\\E7B9"}.el-icon-s-promotion:before{content:"\\E7BA"}.el-icon-s-operation:before{content:"\\E7BB"}.el-icon-s-unfold:before{content:"\\E7BC"}.el-icon-s-fold:before{content:"\\E7A9"}.el-icon-s-platform:before{content:"\\E7BD"}.el-icon-s-order:before{content:"\\E7BE"}.el-icon-s-cooperation:before{content:"\\E7BF"}.el-icon-bell:before{content:"\\E725"}.el-icon-message-solid:before{content:"\\E799"}.el-icon-video-camera:before{content:"\\E772"}.el-icon-video-camera-solid:before{content:"\\E796"}.el-icon-camera:before{content:"\\E779"}.el-icon-camera-solid:before{content:"\\E79B"}.el-icon-download:before{content:"\\E77C"}.el-icon-upload2:before{content:"\\E77B"}.el-icon-upload:before{content:"\\E7C3"}.el-icon-picture-outline-round:before{content:"\\E75F"}.el-icon-picture-outline:before{content:"\\E75E"}.el-icon-picture:before{content:"\\E79F"}.el-icon-close:before{content:"\\E6DB"}.el-icon-check:before{content:"\\E6DA"}.el-icon-plus:before{content:"\\E6D9"}.el-icon-minus:before{content:"\\E6D8"}.el-icon-help:before{content:"\\E73D"}.el-icon-s-help:before{content:"\\E7B3"}.el-icon-circle-close:before{content:"\\E78D"}.el-icon-circle-check:before{content:"\\E720"}.el-icon-circle-plus-outline:before{content:"\\E723"}.el-icon-remove-outline:before{content:"\\E722"}.el-icon-zoom-out:before{content:"\\E776"}.el-icon-zoom-in:before{content:"\\E777"}.el-icon-error:before{content:"\\E79D"}.el-icon-success:before{content:"\\E79C"}.el-icon-circle-plus:before{content:"\\E7A0"}.el-icon-remove:before{content:"\\E7A2"}.el-icon-info:before{content:"\\E7A1"}.el-icon-question:before{content:"\\E7A4"}.el-icon-warning-outline:before{content:"\\E6C9"}.el-icon-warning:before{content:"\\E7A3"}.el-icon-goods:before{content:"\\E7C2"}.el-icon-s-goods:before{content:"\\E7B2"}.el-icon-star-off:before{content:"\\E717"}.el-icon-star-on:before{content:"\\E797"}.el-icon-more-outline:before{content:"\\E6CC"}.el-icon-more:before{content:"\\E794"}.el-icon-phone-outline:before{content:"\\E6CB"}.el-icon-phone:before{content:"\\E795"}.el-icon-user:before{content:"\\E6E3"}.el-icon-user-solid:before{content:"\\E7A5"}.el-icon-setting:before{content:"\\E6CA"}.el-icon-s-tools:before{content:"\\E7AC"}.el-icon-delete:before{content:"\\E6D7"}.el-icon-delete-solid:before{content:"\\E7C9"}.el-icon-eleme:before{content:"\\E7C7"}.el-icon-platform-eleme:before{content:"\\E7CA"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-dialog,.el-pager li{-webkit-box-sizing:border-box}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item,.el-menu-item{font-size:14px;padding:0 20px;cursor:pointer}.el-dropdown-menu__item{list-style:none;line-height:36px;margin:0;color:#606266;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-breadcrumb__item:last-child .el-breadcrumb__separator,.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--collapse .el-submenu,.el-menu-item{position:relative}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;list-style:none}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{color:#303133;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-radio-button__inner,.el-submenu__title{-webkit-box-sizing:border-box;position:relative;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409eff}.el-picker-panel,.el-popover,.el-select-dropdown,.el-table-filter,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-switch{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;box-sizing:border-box;background:#dcdfe6;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-input__prefix,.el-input__suffix{-webkit-transition:all .3s;color:#c0c4cc}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-range-editor.is-active,.el-range-editor.is-active:hover,.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:-ms-flexbox;display:flex;max-width:100%;-ms-flex-align:center;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;top:0;color:#fff;-ms-flex-negative:0;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th.el-table__cell>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#409eff}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-date-table td,.el-table-filter,.el-table .cell{-webkit-box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th.el-table__cell,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder,.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder,.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover,.el-cascader__dropdown,.el-color-picker__panel,.el-message-box,.el-notification{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__active-bar,.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-col-offset-0,.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-cascader-menu:last-child .el-cascader-node,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-button-group>.el-button:not(:last-child),.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content:hover,.el-upload-list__item:hover{background-color:#f5f7fa}.el-tree-node__content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active,.el-upload iframe{opacity:0}.el-carousel__arrow--right,.el-notification.right{right:16px}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-button-group:after,.el-button-group:before,.el-color-dropdown__main-wrapper:after,.el-link.is-underline:hover:after,.el-page-header__left:after,.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-transfer-panel .el-transfer-panel__footer:after,.el-upload-cover:after,.el-upload-list--picture-card .el-upload-list__item-actions:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal}.el-image-viewer__btn,.el-slider__button,.el-slider__button-wrapper,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-12,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row,.el-upload-dragger,.el-upload-list__item{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-top{-ms-flex-align:start;align-items:flex-start}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-col-0{width:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-badge__content,.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;box-sizing:border-box}.el-card__header,.el-message,.el-step__icon{-webkit-box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border:1px solid #ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message.is-center{-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body,.el-main{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step.is-horizontal,.el-step__icon-inner{display:inline-block}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;position:absolute;top:0;left:0}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-cascader__search-input,.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-cascader,.el-tag{display:inline-block}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#ecf5ff;border:1px solid #d9ecff;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder,.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__icon,.el-input,.el-textarea{display:inline-block;width:100%}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{color:#fff;text-align:center}.el-input__prefix,.el-input__suffix{position:absolute;top:0;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-input__inner,.el-textarea__inner,.el-transfer-panel{-webkit-box-sizing:border-box}.el-textarea{position:relative;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder,.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder,.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input,.el-input__inner{font-size:inherit}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder,.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{height:100%;right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{height:100%;left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder,.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-image-viewer__btn,.el-image__preview,.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--prepend .el-input__inner{border-top-left-radius:0;border-bottom-left-radius:0}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-button-group>.el-button+.el-button,.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-divider__text,.el-image__error,.el-link,.el-timeline,.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-container,.el-header{-webkit-box-sizing:border-box}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto}.el-footer,.el-main{box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0;font-weight:500}.el-link.is-underline:hover:after{position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;color:#c0c4cc;vertical-align:middle}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;box-sizing:border-box;user-select:none}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-image-viewer__btn,.el-radio{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff;top:50%}.el-image-viewer__prev{transform:translateY(-50%);left:40px}.el-image-viewer__next{transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in .3s}.viewer-fade-leave-active{animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button,.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini{font-size:12px;border-radius:3px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group .el-button--danger:last-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:last-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:last-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:last-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:last-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child),.el-button-group>.el-dropdown>.el-button{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:first-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:first-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:first-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:first-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:hsla(0,0%,100%,.5)}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0}.el-calendar{background-color:#fff}.el-calendar__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-backtop,.el-page-header{display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-avatar,.el-cascader-panel,.el-radio,.el-radio--medium.is-bordered .el-radio__label,.el-radio__label{font-size:14px}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-cascader-menu,.el-cascader-menu__list,.el-radio__inner{-webkit-box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409eff}.el-radio__label{padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:hsla(220,4%,58%,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-ms-flexbox;display:flex;border-radius:4px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px}.el-drawer,.el-drawer__body>*{-webkit-box-sizing:border-box}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden;outline:0}.el-drawer.rtl{animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-ms-flex-align:center;align-items:center;color:#72767b;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-ms-flex:1;flex:1}.el-drawer__title{margin:0;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-ms-flex:1;flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{width:100%;left:0;right:0}.el-drawer__container{position:relative;top:0;bottom:0;height:100%}.el-drawer-fade-enter-active{animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-statistic{width:100%;box-sizing:border-box;margin:0;padding:0;color:#000;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";text-align:center}.el-statistic .head{margin-bottom:4px;color:#00073;font-size:14px}.el-statistic .con{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-statistic .con .number{font-size:20px;padding:0 4px}.el-statistic .con span{display:inline-block;margin:0;line-height:100%}.el-popconfirm__main,.el-skeleton__image{display:-ms-flexbox;-webkit-box-align:center;display:-webkit-box}.el-popconfirm__main{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;object-fit:contain}.el-empty__image svg{fill:#dcdde0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-descriptions{box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:-ms-flexbox;display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline}.el-descriptions-item__container .el-descriptions-item__content{-ms-flex:1;flex:1}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{word-break:break-word;overflow-wrap:break-word}.el-result{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67c23a}.el-result .icon-error{fill:#f56c6c}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#e6a23c}',""])},function(e,t,o){t=e.exports=o(86)(void 0),t.push([e.i,"#app{font-family:Helvetica,sans-serif;width:960px;margin:0 auto}.action-left{float:left}.action-right{float:right}.folder-path{margin:20px auto}.folder-action{float:right}.file-cell{padding:4px 0!important}.header{text-align:center;margin:100px auto}",""])},,,,,,,,function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"OK",clear:"Leeren"},datepicker:{now:"Jetzt",today:"Heute",cancel:"Abbrechen",clear:"Leeren",confirm:"OK",selectDate:"Datum wählen",selectTime:"Uhrzeit wählen",startDate:"Startdatum",startTime:"Startzeit",endDate:"Enddatum",endTime:"Endzeit",prevYear:"Letztes Jahr",nextYear:"Nächtes Jahr",prevMonth:"Letzter Monat",nextMonth:"Nächster Monat",day:"Tag",week:"Woche",month:"Monat",year:"",month1:"Januar",month2:"Februar",month3:"März",month4:"April",month5:"Mai",month6:"Juni",month7:"Juli",month8:"August",month9:"September",month10:"Oktober",month11:"November",month12:"Dezember",weeks:{sun:"So",mon:"Mo",tue:"Di",wed:"Mi",thu:"Do",fri:"Fr",sat:"Sa"},months:{jan:"Jan",feb:"Feb",mar:"Mär",apr:"Apr",may:"Mai",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Okt",nov:"Nov",dec:"Dez"}},select:{loading:"Lädt.",noMatch:"Nichts gefunden.",noData:"Keine Daten",placeholder:"Daten wählen"},cascader:{noMatch:"Nichts gefunden.",loading:"Lädt.",placeholder:"Daten wählen",noData:"Keine Daten"},pagination:{goto:"Gehe zu",pagesize:" pro Seite",total:"Gesamt {total}",pageClassifier:""},messagebox:{confirm:"OK",cancel:"Abbrechen",error:"Fehler"},upload:{deleteTip:"Klicke löschen zum entfernen",delete:"Löschen",preview:"Vorschau",continue:"Fortsetzen"},table:{emptyText:"Keine Daten",confirmFilter:"Anwenden",resetFilter:"Zurücksetzen",clearFilter:"Alles ",sumText:"Summe"},tree:{emptyText:"Keine Einträge"},transfer:{noMatch:"Nichts gefunden.",noData:"Keine Einträge",titles:["Liste 1","Liste 2"],filterPlaceholder:"Einträge filtern",noCheckedFormat:"{total} Einträge",hasCheckedFormat:"{checked}/{total} ausgewählt"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},empty:{description:"Keine Daten"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"OK",clear:"Clear"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:""},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},empty:{description:"No Data"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"Confirmar",clear:"Despejar"},datepicker:{now:"Ahora",today:"Hoy",cancel:"Cancelar",clear:"Limpiar",confirm:"Confirmar",selectDate:"Seleccionar fecha",selectTime:"Seleccionar hora",startDate:"Fecha Incial",startTime:"Hora Inicial",endDate:"Fecha Final",endTime:"Hora Final",prevYear:"Año Anterior",nextYear:"Próximo Año",prevMonth:"Mes Anterior",nextMonth:"Próximo Mes",year:"",month1:"enero",month2:"febrero",month3:"marzo",month4:"abril",month5:"mayo",month6:"junio",month7:"julio",month8:"agosto",month9:"septiembre",month10:"octubre",month11:"noviembre",month12:"diciembre",weeks:{sun:"dom",mon:"lun",tue:"mar",wed:"mié",thu:"jue",fri:"vie",sat:"sáb"},months:{jan:"ene",feb:"feb",mar:"mar",apr:"abr",may:"may",jun:"jun",jul:"jul",aug:"ago",sep:"sep",oct:"oct",nov:"nov",dec:"dic"}},select:{loading:"Cargando",noMatch:"No hay datos que coincidan",noData:"Sin datos",placeholder:"Seleccionar"},cascader:{noMatch:"No hay datos que coincidan",loading:"Cargando",placeholder:"Seleccionar",noData:"Sin datos"},pagination:{goto:"Ir a",pagesize:"/página",total:"Total {total}",pageClassifier:""},messagebox:{confirm:"Aceptar",cancel:"Cancelar",error:"Entrada inválida"},upload:{deleteTip:"Pulse Eliminar para retirar",delete:"Eliminar",preview:"Vista Previa",continue:"Continuar"},table:{emptyText:"Sin Datos",confirmFilter:"Confirmar",resetFilter:"Reiniciar",clearFilter:"Limpiar",sumText:"Suma"},tree:{emptyText:"Sin Datos"},transfer:{noMatch:"No hay datos que coincidan",noData:"Sin datos",titles:["Lista 1","Lista 2"],filterPlaceholder:"Ingresar palabra clave",noCheckedFormat:"{total} artículos",hasCheckedFormat:"{checked}/{total} revisados"},image:{error:"HA FALLADO"},pageHeader:{title:"Volver"},popconfirm:{confirmButtonText:"Si",cancelButtonText:"No"},empty:{description:"Sin Datos"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"OK",clear:"Очистить"},datepicker:{now:"Сейчас",today:"Сегодня",cancel:"Отмена",clear:"Очистить",confirm:"OK",selectDate:"Выбрать дату",selectTime:"Выбрать время",startDate:"Дата начала",startTime:"Время начала",endDate:"Дата окончания",endTime:"Время окончания",prevYear:"Предыдущий год",nextYear:"Следующий год",prevMonth:"Предыдущий месяц",nextMonth:"Следующий месяц",year:"",month1:"Январь",month2:"Февраль",month3:"Март",month4:"Апрель",month5:"Май",month6:"Июнь",month7:"Июль",month8:"Август",month9:"Сентябрь",month10:"Октябрь",month11:"Ноябрь",month12:"Декабрь",week:"неделя",weeks:{sun:"Вс",mon:"Пн",tue:"Вт",wed:"Ср",thu:"Чт",fri:"Пт",sat:"Сб"},months:{jan:"Янв",feb:"Фев",mar:"Мар",apr:"Апр",may:"Май",jun:"Июн",jul:"Июл",aug:"Авг",sep:"Сен",oct:"Окт",nov:"Ноя",dec:"Дек"}},select:{loading:"Загрузка",noMatch:"Совпадений не найдено",noData:"Нет данных",placeholder:"Выбрать"},cascader:{noMatch:"Совпадений не найдено",loading:"Загрузка",placeholder:"Выбрать",noData:"Нет данных"},pagination:{goto:"Перейти",pagesize:" на странице",total:"Всего {total}",pageClassifier:""},messagebox:{title:"Сообщение",confirm:"OK",cancel:"Отмена",error:"Недопустимый ввод данных"},upload:{deleteTip:"Нажмите [Удалить] для удаления",delete:"Удалить",preview:"Предпросмотр",continue:"Продолжить"},table:{emptyText:"Нет данных",confirmFilter:"Подтвердить",resetFilter:"Сбросить",clearFilter:"Все",sumText:"Сумма"},tree:{emptyText:"Нет данных"},transfer:{noMatch:"Совпадений не найдено",noData:"Нет данных",titles:["Список 1","Список 2"],filterPlaceholder:"Введите ключевое слово",noCheckedFormat:"{total} пунктов",hasCheckedFormat:"{checked}/{total} выбрано"},image:{error:"Произошла ошибка"},pageHeader:{title:"Назад"},popconfirm:{confirmButtonText:"OK",cancelButtonText:"Отмена"},empty:{description:"Нет данных"}}}},function(e,t,o){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"確認",clear:"清空"},datepicker:{now:"現在",today:"今天",cancel:"取消",clear:"清空",confirm:"確認",selectDate:"選擇日期",selectTime:"選擇時間",startDate:"開始日期",startTime:"開始時間",endDate:"結束日期",endTime:"結束時間",prevYear:"前一年",nextYear:"後一年",prevMonth:"上個月",nextMonth:"下個月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加載中",noMatch:"無匹配資料",noData:"無資料",placeholder:"請選擇"},cascader:{noMatch:"無匹配資料",loading:"加載中",placeholder:"請選擇",noData:"無資料"},pagination:{goto:"前往",pagesize:"項/頁",total:"共 {total} 項",pageClassifier:"頁"},messagebox:{title:"提示",confirm:"確定",cancel:"取消",error:"輸入的資料不符規定!"},upload:{deleteTip:"按 delete 鍵可刪除",delete:"刪除",preview:"查看圖片",continue:"繼續上傳"},table:{emptyText:"暫無資料",confirmFilter:"篩選",resetFilter:"重置",clearFilter:"全部",sumText:"Sum"},tree:{emptyText:"暫無資料"},transfer:{noMatch:"無匹配資料",noData:"無資料",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"加載失敗"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},empty:{description:"暫無資料"}}}},,,,,,,,,,,,,function(e,t,o){"use strict";function i(e){console&&console.warn&&console.warn(e)}function r(){r.init.call(this)}function n(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function a(e,t,o,r){var a,s,c;if(n(o),s=e._events,void 0===s?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,o.listener?o.listener:o),s=e._events),c=s[t]),void 0===c)c=s[t]=o,++e._eventsCount;else if("function"==typeof c?c=s[t]=r?[o,c]:[c,o]:r?c.unshift(o):c.push(o),(a=l(e))>0&&c.length>a&&!c.warned){c.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=c.length,i(f)}return e}function s(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(e,t,o){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:o},r=s.bind(i);return r.listener=o,i.wrapFn=r,r}function f(e,t,o){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?o?[r.listener||r]:[r]:o?h(r):d(r,r.length)}function p(e){var t=this._events;if(void 0!==t){var o=t[e];if("function"==typeof o)return 1;if(void 0!==o)return o.length}return 0}function d(e,t){for(var o=new Array(t),i=0;i0&&(n=t[0]),n instanceof Error)throw n;var l=new Error("Unhandled error."+(n?" ("+n.message+")":""));throw l.context=n,l}var a=r[e];if(void 0===a)return!1;if("function"==typeof a)v(a,this,t);else for(var s=a.length,c=d(a,s),o=0;o=0;l--)if(o[l]===t||o[l].listener===t){a=o[l].listener,r=l;break}if(r<0)return this;0===r?o.shift():u(o,r),1===o.length&&(i[e]=o[0]),void 0!==i.removeListener&&this.emit("removeListener",e,a||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,o,i;if(void 0===(o=this._events))return this;if(void 0===o.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==o[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete o[e]),this;if(0===arguments.length){var r,n=Object.keys(o);for(i=0;i=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return f(this,e,!0)},r.prototype.rawListeners=function(e){return f(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},r.prototype.listenerCount=p,r.prototype.eventNames=function(){return this._eventsCount>0?_(this._events):[]}},function(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +t.read=function(e,t,o,i,r){var n,l,a=8*r-i-1,s=(1<>1,f=-7,p=o?r-1:0,d=o?-1:1,u=e[t+p];for(p+=d,n=u&(1<<-f)-1,u>>=-f,f+=a;f>0;n=256*n+e[t+p],p+=d,f-=8);for(l=n&(1<<-f)-1,n>>=-f,f+=i;f>0;l=256*l+e[t+p],p+=d,f-=8);if(0===n)n=1-c;else{if(n===s)return l?NaN:1/0*(u?-1:1);l+=Math.pow(2,i),n-=c}return(u?-1:1)*l*Math.pow(2,n-i)},t.write=function(e,t,o,i,r,n){var l,a,s,c=8*n-r-1,f=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:n-1,h=i?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,l=f):(l=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-l))<1&&(l--,s*=2),t+=l+p>=1?d/s:d*Math.pow(2,1-p),t*s>=2&&(l++,s/=2),l+p>=f?(a=0,l=f):l+p>=1?(a=(t*s-1)*Math.pow(2,r),l+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,r),l=0));r>=8;e[o+u]=255&a,u+=h,a/=256,r-=8);for(l=l<0;e[o+u]=255&l,u+=h,l/=256,c-=8);e[o+u-h]|=128*g}},function(e,t){var o={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==o.call(e)}},,function(e,t,o){var i,r,n;/** * @license long.js (c) 2013 Daniel Wirtz * Released under the Apache License, Version 2.0 * see: https://github.com/dcodeIO/long.js for details */ -!function(o,l){r=[],i=l,void 0!==(n="function"==typeof i?i.apply(t,r):i)&&(e.exports=n)}(0,function(){"use strict";function e(e,t,o){this.low=0|e,this.high=0|t,this.unsigned=!!o}function t(e){return!0===(e&&e.__isLong__)}function o(e,t){var o,i,n;return t?(e>>>=0,(n=0<=e&&e<256)&&(i=s[e])?i:(o=r(e,(0|e)<0?-1:0,!0),n&&(s[e]=o),o)):(e|=0,(n=-128<=e&&e<128)&&(i=a[e])?i:(o=r(e,e<0?-1:0,!1),n&&(a[e]=o),o))}function i(e,t){if(isNaN(e)||!isFinite(e))return t?b:h;if(t){if(e<0)return b;if(e>=p)return v}else{if(e<=-d)return w;if(e+1>=d)return x}return e<0?i(-e,t).neg():r(e%f|0,e/f|0,t)}function r(t,o,i){return new e(t,o,i)}function n(e,t,o){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return h;if("number"==typeof t?(o=t,t=!1):t=!!t,(o=o||10)<2||360)throw Error("interior hyphen");if(0===r)return n(e.substring(1),t,o).neg();for(var l=i(c(o,8)),a=h,s=0;s>>0:this.low},y.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},y.toString=function(e){if((e=e||10)<2||36>>0,p=f.toString(e);if(l=s,l.isZero())return p+a;for(;p.length<6;)p="0"+p;a=""+p+a}},y.getHighBits=function(){return this.high},y.getHighBitsUnsigned=function(){return this.high>>>0},y.getLowBits=function(){return this.low},y.getLowBitsUnsigned=function(){return this.low>>>0},y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(w)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},y.isOdd=function(){return 1==(1&this.low)},y.isEven=function(){return 0==(1&this.low)},y.equals=function(e){return t(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},y.eq=y.equals,y.notEquals=function(e){return!this.eq(e)},y.neq=y.notEquals,y.lessThan=function(e){return this.comp(e)<0},y.lt=y.lessThan,y.lessThanOrEqual=function(e){return this.comp(e)<=0},y.lte=y.lessThanOrEqual,y.greaterThan=function(e){return this.comp(e)>0},y.gt=y.greaterThan,y.greaterThanOrEqual=function(e){return this.comp(e)>=0},y.gte=y.greaterThanOrEqual,y.compare=function(e){if(t(e)||(e=l(e)),this.eq(e))return 0;var o=this.isNegative(),i=e.isNegative();return o&&!i?-1:!o&&i?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},y.comp=y.compare,y.negate=function(){return!this.unsigned&&this.eq(w)?w:this.not().add(g)},y.neg=y.negate,y.add=function(e){t(e)||(e=l(e));var o=this.high>>>16,i=65535&this.high,n=this.low>>>16,a=65535&this.low,s=e.high>>>16,c=65535&e.high,f=e.low>>>16,p=65535&e.low,d=0,u=0,h=0,b=0;return b+=a+p,h+=b>>>16,b&=65535,h+=n+f,u+=h>>>16,h&=65535,u+=i+c,d+=u>>>16,u&=65535,d+=o+s,d&=65535,r(h<<16|b,d<<16|u,this.unsigned)},y.subtract=function(e){return t(e)||(e=l(e)),this.add(e.neg())},y.sub=y.subtract,y.multiply=function(e){if(this.isZero())return h;if(t(e)||(e=l(e)),e.isZero())return h;if(this.eq(w))return e.isOdd()?w:h;if(e.eq(w))return this.isOdd()?w:h;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(u)&&e.lt(u))return i(this.toNumber()*e.toNumber(),this.unsigned);var o=this.high>>>16,n=65535&this.high,a=this.low>>>16,s=65535&this.low,c=e.high>>>16,f=65535&e.high,p=e.low>>>16,d=65535&e.low,b=0,g=0,m=0,_=0;return _+=s*d,m+=_>>>16,_&=65535,m+=a*d,g+=m>>>16,m&=65535,m+=s*p,g+=m>>>16,m&=65535,g+=n*d,b+=g>>>16,g&=65535,g+=a*p,b+=g>>>16,g&=65535,g+=s*f,b+=g>>>16,g&=65535,b+=o*d+n*p+a*f+s*c,b&=65535,r(m<<16|_,b<<16|g,this.unsigned)},y.mul=y.multiply,y.divide=function(e){if(t(e)||(e=l(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?b:h;var o,r,n;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return b;if(e.gt(this.shru(1)))return m;n=b}else{if(this.eq(w)){if(e.eq(g)||e.eq(_))return w;if(e.eq(w))return g;return o=this.shr(1).div(e).shl(1),o.eq(h)?e.isNegative()?g:_:(r=this.sub(e.mul(o)),n=o.add(r.div(e)))}if(e.eq(w))return this.unsigned?b:h;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=h}for(r=this;r.gte(e);){o=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(o)/Math.LN2),s=a<=48?1:c(2,a-48),f=i(o),p=f.mul(e);p.isNegative()||p.gt(r);)o-=s,f=i(o,this.unsigned),p=f.mul(e);f.isZero()&&(f=g),n=n.add(f),r=r.sub(p)}return n},y.div=y.divide,y.modulo=function(e){return t(e)||(e=l(e)),this.sub(this.div(e).mul(e))},y.mod=y.modulo,y.not=function(){return r(~this.low,~this.high,this.unsigned)},y.and=function(e){return t(e)||(e=l(e)),r(this.low&e.low,this.high&e.high,this.unsigned)},y.or=function(e){return t(e)||(e=l(e)),r(this.low|e.low,this.high|e.high,this.unsigned)},y.xor=function(e){return t(e)||(e=l(e)),r(this.low^e.low,this.high^e.high,this.unsigned)},y.shiftLeft=function(e){return t(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?r(this.low<>>32-e,this.unsigned):r(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):r(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},y.shr=y.shiftRight,y.shiftRightUnsigned=function(e){if(t(e)&&(e=e.toInt()),0===(e&=63))return this;var o=this.high;if(e<32){return r(this.low>>>e|o<<32-e,o>>>e,this.unsigned)}return 32===e?r(o,0,this.unsigned):r(o>>>e-32,0,this.unsigned)},y.shru=y.shiftRightUnsigned,y.toSigned=function(){return this.unsigned?r(this.low,this.high,!1):this},y.toUnsigned=function(){return this.unsigned?this:r(this.low,this.high,!0)},y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},y.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},y.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t]},e})},,,,,,,,,function(e,t){function o(e,t){for(var o=0;o=0&&_.splice(t,1)}function l(e){var t=document.createElement("style");return t.type="text/css",r(e,t),t}function a(e){var t=document.createElement("link");return t.rel="stylesheet",r(e,t),t}function s(e,t){var o,i,r;if(t.singleton){var s=m++;o=g||(g=l(t)),i=c.bind(null,o,s,!1),r=c.bind(null,o,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=a(t),i=p.bind(null,o),r=function(){n(o),o.href&&URL.revokeObjectURL(o.href)}):(o=l(t),i=f.bind(null,o),r=function(){n(o)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}function c(e,t,o,i){var r=o?"":i.css;if(e.styleSheet)e.styleSheet.cssText=x(t,r);else{var n=document.createTextNode(r),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(n,l[t]):e.appendChild(n)}}function f(e,t){var o=t.css,i=t.media;if(i&&e.setAttribute("media",i),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}function p(e,t){var o=t.css,i=t.sourceMap;i&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var r=new Blob([o],{type:"text/css"}),n=e.href;e.href=URL.createObjectURL(r),n&&URL.revokeObjectURL(n)}var d={},u=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}},h=u(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),b=u(function(){return document.head||document.getElementsByTagName("head")[0]}),g=null,m=0,_=[];e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},void 0===t.singleton&&(t.singleton=h()),void 0===t.insertAt&&(t.insertAt="bottom");var r=i(e);return o(r,t),function(e){for(var n=[],l=0;l>>=0,(n=0<=e&&e<256)&&(i=s[e])?i:(o=r(e,(0|e)<0?-1:0,!0),n&&(s[e]=o),o)):(e|=0,(n=-128<=e&&e<128)&&(i=a[e])?i:(o=r(e,e<0?-1:0,!1),n&&(a[e]=o),o))}function i(e,t){if(isNaN(e)||!isFinite(e))return t?g:h;if(t){if(e<0)return g;if(e>=p)return v}else{if(e<=-d)return w;if(e+1>=d)return x}return e<0?i(-e,t).neg():r(e%f|0,e/f|0,t)}function r(t,o,i){return new e(t,o,i)}function n(e,t,o){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return h;if("number"==typeof t?(o=t,t=!1):t=!!t,(o=o||10)<2||360)throw Error("interior hyphen");if(0===r)return n(e.substring(1),t,o).neg();for(var l=i(c(o,8)),a=h,s=0;s>>0:this.low},y.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},y.toString=function(e){if((e=e||10)<2||36>>0,p=f.toString(e);if(l=s,l.isZero())return p+a;for(;p.length<6;)p="0"+p;a=""+p+a}},y.getHighBits=function(){return this.high},y.getHighBitsUnsigned=function(){return this.high>>>0},y.getLowBits=function(){return this.low},y.getLowBitsUnsigned=function(){return this.low>>>0},y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(w)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},y.isOdd=function(){return 1==(1&this.low)},y.isEven=function(){return 0==(1&this.low)},y.equals=function(e){return t(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},y.eq=y.equals,y.notEquals=function(e){return!this.eq(e)},y.neq=y.notEquals,y.lessThan=function(e){return this.comp(e)<0},y.lt=y.lessThan,y.lessThanOrEqual=function(e){return this.comp(e)<=0},y.lte=y.lessThanOrEqual,y.greaterThan=function(e){return this.comp(e)>0},y.gt=y.greaterThan,y.greaterThanOrEqual=function(e){return this.comp(e)>=0},y.gte=y.greaterThanOrEqual,y.compare=function(e){if(t(e)||(e=l(e)),this.eq(e))return 0;var o=this.isNegative(),i=e.isNegative();return o&&!i?-1:!o&&i?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},y.comp=y.compare,y.negate=function(){return!this.unsigned&&this.eq(w)?w:this.not().add(b)},y.neg=y.negate,y.add=function(e){t(e)||(e=l(e));var o=this.high>>>16,i=65535&this.high,n=this.low>>>16,a=65535&this.low,s=e.high>>>16,c=65535&e.high,f=e.low>>>16,p=65535&e.low,d=0,u=0,h=0,g=0;return g+=a+p,h+=g>>>16,g&=65535,h+=n+f,u+=h>>>16,h&=65535,u+=i+c,d+=u>>>16,u&=65535,d+=o+s,d&=65535,r(h<<16|g,d<<16|u,this.unsigned)},y.subtract=function(e){return t(e)||(e=l(e)),this.add(e.neg())},y.sub=y.subtract,y.multiply=function(e){if(this.isZero())return h;if(t(e)||(e=l(e)),e.isZero())return h;if(this.eq(w))return e.isOdd()?w:h;if(e.eq(w))return this.isOdd()?w:h;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(u)&&e.lt(u))return i(this.toNumber()*e.toNumber(),this.unsigned);var o=this.high>>>16,n=65535&this.high,a=this.low>>>16,s=65535&this.low,c=e.high>>>16,f=65535&e.high,p=e.low>>>16,d=65535&e.low,g=0,b=0,m=0,_=0;return _+=s*d,m+=_>>>16,_&=65535,m+=a*d,b+=m>>>16,m&=65535,m+=s*p,b+=m>>>16,m&=65535,b+=n*d,g+=b>>>16,b&=65535,b+=a*p,g+=b>>>16,b&=65535,b+=s*f,g+=b>>>16,b&=65535,g+=o*d+n*p+a*f+s*c,g&=65535,r(m<<16|_,g<<16|b,this.unsigned)},y.mul=y.multiply,y.divide=function(e){if(t(e)||(e=l(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?g:h;var o,r,n;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return g;if(e.gt(this.shru(1)))return m;n=g}else{if(this.eq(w)){if(e.eq(b)||e.eq(_))return w;if(e.eq(w))return b;return o=this.shr(1).div(e).shl(1),o.eq(h)?e.isNegative()?b:_:(r=this.sub(e.mul(o)),n=o.add(r.div(e)))}if(e.eq(w))return this.unsigned?g:h;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=h}for(r=this;r.gte(e);){o=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(o)/Math.LN2),s=a<=48?1:c(2,a-48),f=i(o),p=f.mul(e);p.isNegative()||p.gt(r);)o-=s,f=i(o,this.unsigned),p=f.mul(e);f.isZero()&&(f=b),n=n.add(f),r=r.sub(p)}return n},y.div=y.divide,y.modulo=function(e){return t(e)||(e=l(e)),this.sub(this.div(e).mul(e))},y.mod=y.modulo,y.not=function(){return r(~this.low,~this.high,this.unsigned)},y.and=function(e){return t(e)||(e=l(e)),r(this.low&e.low,this.high&e.high,this.unsigned)},y.or=function(e){return t(e)||(e=l(e)),r(this.low|e.low,this.high|e.high,this.unsigned)},y.xor=function(e){return t(e)||(e=l(e)),r(this.low^e.low,this.high^e.high,this.unsigned)},y.shiftLeft=function(e){return t(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?r(this.low<>>32-e,this.unsigned):r(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):r(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},y.shr=y.shiftRight,y.shiftRightUnsigned=function(e){if(t(e)&&(e=e.toInt()),0===(e&=63))return this;var o=this.high;if(e<32){return r(this.low>>>e|o<<32-e,o>>>e,this.unsigned)}return 32===e?r(o,0,this.unsigned):r(o>>>e-32,0,this.unsigned)},y.shru=y.shiftRightUnsigned,y.toSigned=function(){return this.unsigned?r(this.low,this.high,!1):this},y.toUnsigned=function(){return this.unsigned?this:r(this.low,this.high,!0)},y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},y.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},y.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t]},e})},,,,,,,,,function(e,t){function o(e,t){for(var o=0;o=0&&_.splice(t,1)}function l(e){var t=document.createElement("style");return t.type="text/css",r(e,t),t}function a(e){var t=document.createElement("link");return t.rel="stylesheet",r(e,t),t}function s(e,t){var o,i,r;if(t.singleton){var s=m++;o=b||(b=l(t)),i=c.bind(null,o,s,!1),r=c.bind(null,o,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=a(t),i=p.bind(null,o),r=function(){n(o),o.href&&URL.revokeObjectURL(o.href)}):(o=l(t),i=f.bind(null,o),r=function(){n(o)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}function c(e,t,o,i){var r=o?"":i.css;if(e.styleSheet)e.styleSheet.cssText=x(t,r);else{var n=document.createTextNode(r),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(n,l[t]):e.appendChild(n)}}function f(e,t){var o=t.css,i=t.media;if(i&&e.setAttribute("media",i),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}function p(e,t){var o=t.css,i=t.sourceMap;i&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var r=new Blob([o],{type:"text/css"}),n=e.href;e.href=URL.createObjectURL(r),n&&URL.revokeObjectURL(n)}var d={},u=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}},h=u(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),g=u(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,m=0,_=[];e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");t=t||{},void 0===t.singleton&&(t.singleton=h()),void 0===t.insertAt&&(t.insertAt="bottom");var r=i(e);return o(r,t),function(e){for(var n=[],l=0;l/g,">").replace(/"/g,""").replace(/'/g,"'")}function v(e){return null!=e&&Object.keys(e).forEach(function(t){"string"==typeof e[t]&&(e[t]=x(e[t]))}),e}function w(e){e.prototype.hasOwnProperty("$i18n")||Object.defineProperty(e.prototype,"$i18n",{get:function(){return this._i18n}}),e.prototype.$t=function(e){for(var t=[],o=arguments.length-1;o-- >0;)t[o]=arguments[o+1];var i=this.$i18n;return i._t.apply(i,[e,i.locale,i._getMessages(),this].concat(t))},e.prototype.$tc=function(e,t){for(var o=[],i=arguments.length-2;i-- >0;)o[i]=arguments[i+2];var r=this.$i18n;return r._tc.apply(r,[e,r.locale,r._getMessages(),this,t].concat(o))},e.prototype.$te=function(e,t){var o=this.$i18n;return o._te(e,o.locale,o._getMessages(),t)},e.prototype.$d=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this.$i18n).d.apply(t,[e].concat(o))},e.prototype.$n=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this.$i18n).n.apply(t,[e].concat(o))}}function y(e){function t(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return void 0===e&&(e=!1),e?{mounted:t}:{beforeCreate:function(){var e=this.$options;if(e.i18n=e.i18n||(e.__i18nBridge||e.__i18n?{}:null),e.i18n){if(e.i18n instanceof ye){if(e.__i18nBridge||e.__i18n)try{var t=e.i18n&&e.i18n.messages?e.i18n.messages:{},o=e.__i18nBridge||e.__i18n;o.forEach(function(e){t=m(t,JSON.parse(e))}),Object.keys(t).forEach(function(o){e.i18n.mergeLocaleMessage(o,t[o])})}catch(e){}this._i18n=e.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(s(e.i18n)){var i=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?this.$root.$i18n:null;if(i&&(e.i18n.root=this.$root,e.i18n.formatter=i.formatter,e.i18n.fallbackLocale=i.fallbackLocale,e.i18n.formatFallbackMessages=i.formatFallbackMessages,e.i18n.silentTranslationWarn=i.silentTranslationWarn,e.i18n.silentFallbackWarn=i.silentFallbackWarn,e.i18n.pluralizationRules=i.pluralizationRules,e.i18n.preserveDirectiveContent=i.preserveDirectiveContent),e.__i18nBridge||e.__i18n)try{var r=e.i18n&&e.i18n.messages?e.i18n.messages:{},n=e.__i18nBridge||e.__i18n;n.forEach(function(e){r=m(r,JSON.parse(e))}),e.i18n.messages=r}catch(e){}var l=e.i18n,a=l.sharedMessages;a&&s(a)&&(e.i18n.messages=m(e.i18n.messages,a)),this._i18n=new ye(e.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===e.i18n.sync||e.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),i&&i.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?this._i18n=this.$root.$i18n:e.parent&&e.parent.$i18n&&e.parent.$i18n instanceof ye&&(this._i18n=e.parent.$i18n)},beforeMount:function(){var e=this.$options;e.i18n=e.i18n||(e.__i18nBridge||e.__i18n?{}:null),e.i18n?e.i18n instanceof ye?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):s(e.i18n)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):e.parent&&e.parent.$i18n&&e.parent.$i18n instanceof ye&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:t,beforeDestroy:function(){if(this._i18n){var e=this;this.$nextTick(function(){e._subscribing&&(e._i18n.unsubscribeDataChanging(e),delete e._subscribing),e._i18nWatcher&&(e._i18nWatcher(),e._i18n.destroyVM(),delete e._i18nWatcher),e._localeWatcher&&(e._localeWatcher(),delete e._localeWatcher)})}}}}function k(e){var t;for(t in e)if("default"!==t)return!1;return Boolean(t)}function E(e,t){var o=t?z(t):{};if(!e)return o;e=e.filter(function(e){return e.tag||""!==e.text.trim()});var i=e.every(I);return e.reduce(i?A:T,o)}function z(e){return Array.isArray(e)?e.reduce(T,{}):Object.assign({},e)}function A(e,t){return t.data&&t.data.attrs&&t.data.attrs.place&&(e[t.data.attrs.place]=t),e}function T(e,t,o){return e[o]=t,e}function I(e){return Boolean(e.data&&e.data.attrs&&e.data.attrs.place)}function L(e,t,o){U(e,o)&&B(e,t,o)}function C(e,t,o,i){if(U(e,o)){var r=o.context.$i18n;F(e,o)&&_(t.value,t.oldValue)&&_(e._localeMessage,r.getLocaleMessage(r.locale))||B(e,t,o)}}function R(e,t,o,r){if(!o.context)return void i("Vue instance does not exists in VNode context");var n=o.context.$i18n||{};t.modifiers.preserve||n.preserveDirectiveContent||(e.textContent=""),e._vt=void 0,delete e._vt,e._locale=void 0,delete e._locale,e._localeMessage=void 0,delete e._localeMessage}function U(e,t){var o=t.context;return o?!!o.$i18n||(i("VueI18n instance does not exists in Vue instance"),!1):(i("Vue instance does not exists in VNode context"),!1)}function F(e,t){var o=t.context;return e._locale===o.$i18n.locale}function B(e,t,o){var r,n,l=t.value,a=S(l),s=a.path,c=a.locale,f=a.args,p=a.choice;if(!s&&!c&&!f)return void i("value type not supported");if(!s)return void i("`path` is required in v-t directive");var d=o.context;e._vt=e.textContent=null!=p?(r=d.$i18n).tc.apply(r,[s,p].concat($(c,f))):(n=d.$i18n).t.apply(n,[s].concat($(c,f))),e._locale=d.$i18n.locale,e._localeMessage=d.$i18n.getLocaleMessage(d.$i18n.locale)}function S(e){var t,o,i,r;return a(e)?t=e:s(e)&&(t=e.path,o=e.locale,i=e.args,r=e.choice),{path:t,locale:o,args:i,choice:r}}function $(e,t){var o=[];return e&&o.push(e),t&&(Array.isArray(t)||s(t))&&o.push(t),o}function D(e,t){void 0===t&&(t={bridge:!1}),D.installed=!0,q=e;q.version&&Number(q.version.split(".")[0]);w(q),q.mixin(y(t.bridge)),q.directive("t",{bind:L,update:C,unbind:R}),q.component(K.name,K),q.component(Q.name,Q),q.config.optionMergeStrategies.i18n=function(e,t){return void 0===t?e:t}}function O(e){for(var t=[],o=0,i="";o0)p--,f=se,d[ie]();else{if(p=0,void 0===o)return!1;if(!1===(o=Y(o)))return!1;d[re]()}};null!==f;)if(c++,"\\"!==(t=e[c])||!function(){var t=e[c+1];if(f===ce&&"'"===t||f===fe&&'"'===t)return c++,i="\\"+t,d[ie](),!0}()){if(r=P(t),a=ue[f],(n=a[r]||a.else||de)===de)return;if(f=n[0],(l=d[n[1]])&&(i=n[2],i=void 0===i?t:i,!1===l()))return;if(f===pe)return s}}/*! +!function(n,l){i=l,void 0!==(r="function"==typeof i?i.call(t,o,t,e):i)&&(e.exports=r)}(0,function(){"use strict";function e(t,o,i){if(void 0===o)return e.get(t);null===o?e.remove(t):e.set(t,o,i)}function t(e){return e.replace(/[.*+?^$|[\](){}\\-]/g,"\\$&")}function o(e){var t="";for(var o in e)if(e.hasOwnProperty(o)){if("expires"===o){var r=e[o];"object"!=typeof r&&(r+="number"==typeof r?"D":"",r=i(r)),e[o]=r.toUTCString()}if("secure"===o){e[o]&&(t+=";"+o);continue}t+=";"+o+"="+e[o]}return e.hasOwnProperty("path")||(t+=";path=/"),t}function i(e){var t=new Date,o=e.charAt(e.length-1),i=parseInt(e,10);switch(o){case"Y":t.setFullYear(t.getFullYear()+i);break;case"M":t.setMonth(t.getMonth()+i);break;case"D":t.setDate(t.getDate()+i);break;case"h":t.setHours(t.getHours()+i);break;case"m":t.setMinutes(t.getMinutes()+i);break;case"s":t.setSeconds(t.getSeconds()+i);break;default:t=new Date(e)}return t}return e.enabled=function(){var t,o="__test_key";return document.cookie=o+"=1",t=!!document.cookie,t&&e.remove(o),t},e.get=function(e,o){if("string"!=typeof e||!e)return null;e="(?:^|; )"+t(e)+"(?:=([^;]*?))?(?:;|$)";var i=new RegExp(e),r=i.exec(document.cookie);return null!==r?o?r[1]:decodeURIComponent(r[1]):null},e.getRaw=function(t){return e.get(t,!0)},e.set=function(e,t,i,r){!0!==i&&(r=i,i=!1),r=o(r?r:{});var n=e+"="+(i?t:encodeURIComponent(t))+r;document.cookie=n},e.setRaw=function(t,o,i){e.set(t,o,!0,i)},e.remove=function(t){e.set(t,"a",{expires:new Date})},e})},function(e,t,o){e.exports=o.p+"732389ded34cb9c52dd88271f1345af9.ttf"},function(e,t,o){e.exports=o.p+"535877f50039c0cb49a6196a5b7517cd.woff"},function(e,t,o){"use strict";function i(e,t){"undefined"!=typeof console&&(console.warn("[vue-i18n] "+e),t&&console.warn(t.stack))}function r(e,t){"undefined"!=typeof console&&(console.error("[vue-i18n] "+e),t&&console.error(t.stack))}function n(e){return null!==e&&"object"==typeof e}function l(e){return"boolean"==typeof e}function a(e){return"string"==typeof e}function s(e){return X.call(e)===G}function c(e){return null===e||void 0===e}function f(e){return"function"==typeof e}function p(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var o=null,i=null;return 1===e.length?n(e[0])||Z(e[0])?i=e[0]:"string"==typeof e[0]&&(o=e[0]):2===e.length&&("string"==typeof e[0]&&(o=e[0]),(n(e[1])||Z(e[1]))&&(i=e[1])),{locale:o,params:i}}function d(e){return JSON.parse(JSON.stringify(e))}function u(e,t){if(e.delete(t))return e}function h(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}function g(e,t){return!!~e.indexOf(t)}function b(e,t){return J.call(e,t)}function m(e){for(var t=arguments,o=Object(e),i=1;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function v(e){return null!=e&&Object.keys(e).forEach(function(t){"string"==typeof e[t]&&(e[t]=x(e[t]))}),e}function w(e){e.prototype.hasOwnProperty("$i18n")||Object.defineProperty(e.prototype,"$i18n",{get:function(){return this._i18n}}),e.prototype.$t=function(e){for(var t=[],o=arguments.length-1;o-- >0;)t[o]=arguments[o+1];var i=this.$i18n;return i._t.apply(i,[e,i.locale,i._getMessages(),this].concat(t))},e.prototype.$tc=function(e,t){for(var o=[],i=arguments.length-2;i-- >0;)o[i]=arguments[i+2];var r=this.$i18n;return r._tc.apply(r,[e,r.locale,r._getMessages(),this,t].concat(o))},e.prototype.$te=function(e,t){var o=this.$i18n;return o._te(e,o.locale,o._getMessages(),t)},e.prototype.$d=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this.$i18n).d.apply(t,[e].concat(o))},e.prototype.$n=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this.$i18n).n.apply(t,[e].concat(o))}}function y(e){function t(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return void 0===e&&(e=!1),e?{mounted:t}:{beforeCreate:function(){var e=this.$options;if(e.i18n=e.i18n||(e.__i18nBridge||e.__i18n?{}:null),e.i18n){if(e.i18n instanceof ye){if(e.__i18nBridge||e.__i18n)try{var t=e.i18n&&e.i18n.messages?e.i18n.messages:{},o=e.__i18nBridge||e.__i18n;o.forEach(function(e){t=m(t,JSON.parse(e))}),Object.keys(t).forEach(function(o){e.i18n.mergeLocaleMessage(o,t[o])})}catch(e){}this._i18n=e.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(s(e.i18n)){var i=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?this.$root.$i18n:null;if(i&&(e.i18n.root=this.$root,e.i18n.formatter=i.formatter,e.i18n.fallbackLocale=i.fallbackLocale,e.i18n.formatFallbackMessages=i.formatFallbackMessages,e.i18n.silentTranslationWarn=i.silentTranslationWarn,e.i18n.silentFallbackWarn=i.silentFallbackWarn,e.i18n.pluralizationRules=i.pluralizationRules,e.i18n.preserveDirectiveContent=i.preserveDirectiveContent),e.__i18nBridge||e.__i18n)try{var r=e.i18n&&e.i18n.messages?e.i18n.messages:{},n=e.__i18nBridge||e.__i18n;n.forEach(function(e){r=m(r,JSON.parse(e))}),e.i18n.messages=r}catch(e){}var l=e.i18n,a=l.sharedMessages;a&&s(a)&&(e.i18n.messages=m(e.i18n.messages,a)),this._i18n=new ye(e.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===e.i18n.sync||e.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),i&&i.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?this._i18n=this.$root.$i18n:e.parent&&e.parent.$i18n&&e.parent.$i18n instanceof ye&&(this._i18n=e.parent.$i18n)},beforeMount:function(){var e=this.$options;e.i18n=e.i18n||(e.__i18nBridge||e.__i18n?{}:null),e.i18n?e.i18n instanceof ye?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):s(e.i18n)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof ye?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):e.parent&&e.parent.$i18n&&e.parent.$i18n instanceof ye&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:t,beforeDestroy:function(){if(this._i18n){var e=this;this.$nextTick(function(){e._subscribing&&(e._i18n.unsubscribeDataChanging(e),delete e._subscribing),e._i18nWatcher&&(e._i18nWatcher(),e._i18n.destroyVM(),delete e._i18nWatcher),e._localeWatcher&&(e._localeWatcher(),delete e._localeWatcher)})}}}}function k(e){var t;for(t in e)if("default"!==t)return!1;return Boolean(t)}function E(e,t){var o=t?z(t):{};if(!e)return o;e=e.filter(function(e){return e.tag||""!==e.text.trim()});var i=e.every(L);return e.reduce(i?A:T,o)}function z(e){return Array.isArray(e)?e.reduce(T,{}):Object.assign({},e)}function A(e,t){return t.data&&t.data.attrs&&t.data.attrs.place&&(e[t.data.attrs.place]=t),e}function T(e,t,o){return e[o]=t,e}function L(e){return Boolean(e.data&&e.data.attrs&&e.data.attrs.place)}function I(e,t,o){U(e,o)&&B(e,t,o)}function C(e,t,o,i){if(U(e,o)){var r=o.context.$i18n;R(e,o)&&_(t.value,t.oldValue)&&_(e._localeMessage,r.getLocaleMessage(r.locale))||B(e,t,o)}}function F(e,t,o,r){if(!o.context)return void i("Vue instance does not exists in VNode context");var n=o.context.$i18n||{};t.modifiers.preserve||n.preserveDirectiveContent||(e.textContent=""),e._vt=void 0,delete e._vt,e._locale=void 0,delete e._locale,e._localeMessage=void 0,delete e._localeMessage}function U(e,t){var o=t.context;return o?!!o.$i18n||(i("VueI18n instance does not exists in Vue instance"),!1):(i("Vue instance does not exists in VNode context"),!1)}function R(e,t){var o=t.context;return e._locale===o.$i18n.locale}function B(e,t,o){var r,n,l=t.value,a=D(l),s=a.path,c=a.locale,f=a.args,p=a.choice;if(!s&&!c&&!f)return void i("value type not supported");if(!s)return void i("`path` is required in v-t directive");var d=o.context;e._vt=e.textContent=null!=p?(r=d.$i18n).tc.apply(r,[s,p].concat(S(c,f))):(n=d.$i18n).t.apply(n,[s].concat(S(c,f))),e._locale=d.$i18n.locale,e._localeMessage=d.$i18n.getLocaleMessage(d.$i18n.locale)}function D(e){var t,o,i,r;return a(e)?t=e:s(e)&&(t=e.path,o=e.locale,i=e.args,r=e.choice),{path:t,locale:o,args:i,choice:r}}function S(e,t){var o=[];return e&&o.push(e),t&&(Array.isArray(t)||s(t))&&o.push(t),o}function $(e,t){void 0===t&&(t={bridge:!1}),$.installed=!0,q=e;q.version&&Number(q.version.split(".")[0]);w(q),q.mixin(y(t.bridge)),q.directive("t",{bind:I,update:C,unbind:F}),q.component(K.name,K),q.component(Q.name,Q),q.config.optionMergeStrategies.i18n=function(e,t){return void 0===t?e:t}}function O(e){for(var t=[],o=0,i="";o0)p--,f=se,d[ie]();else{if(p=0,void 0===o)return!1;if(!1===(o=Y(o)))return!1;d[re]()}};null!==f;)if(c++,"\\"!==(t=e[c])||!function(){var t=e[c+1];if(f===ce&&"'"===t||f===fe&&'"'===t)return c++,i="\\"+t,d[ie](),!0}()){if(r=P(t),a=ue[f],(n=a[r]||a.else||de)===de)return;if(f=n[0],(l=d[n[1]])&&(i=n[2],i=void 0===i?t:i,!1===l()))return;if(f===pe)return s}}/*! * vue-i18n v8.28.2 * (c) 2022 kazuya kawaguchi * Released under the MIT License. */ -var q,H=["compactDisplay","currency","currencyDisplay","currencySign","localeMatcher","notation","numberingSystem","signDisplay","style","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"],W=["dateStyle","timeStyle","calendar","localeMatcher","hour12","hourCycle","timeZone","formatMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName"],Z=Array.isArray,X=Object.prototype.toString,G="[object Object]",J=Object.prototype.hasOwnProperty,K={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render:function(e,t){var o=t.data,i=t.parent,r=t.props,n=t.slots,l=i.$i18n;if(l){var a=r.path,s=r.locale,c=r.places,f=n(),p=l.i(a,s,k(f)||c?E(f.default,c):f),d=r.tag&&!0!==r.tag||!1===r.tag?r.tag:"span";return d?e(d,o,p):p}}},Q={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render:function(e,t){var o=t.props,i=t.parent,r=t.data,l=i.$i18n;if(!l)return null;var s=null,c=null;a(o.format)?s=o.format:n(o.format)&&(o.format.key&&(s=o.format.key),c=Object.keys(o.format).reduce(function(e,t){var i;return b(H,t)?Object.assign({},e,(i={},i[t]=o.format[t],i)):e},null));var f=o.locale||l.locale,p=l._ntp(o.value,f,s,c),d=p.map(function(e,t){var o,i=r.scopedSlots&&r.scopedSlots[e.type];return i?i((o={},o[e.type]=e.value,o.index=t,o.parts=p,o)):e.value}),u=o.tag&&!0!==o.tag||!1===o.tag?o.tag:"span";return u?e(u,{attrs:r.attrs,class:r.class,staticClass:r.staticClass},d):d}},ee=function(){this._caches=Object.create(null)};ee.prototype.interpolate=function(e,t){if(!t)return[e];var o=this._caches[e];return o||(o=O(e),this._caches[e]=o),N(o,t)};var te=/^(?:\d)+/,oe=/^(?:\w)+/,ie=0,re=1,ne=2,le=3,ae=0,se=4,ce=5,fe=6,pe=7,de=8,ue=[];ue[ae]={ws:[ae],ident:[3,ie],"[":[se],eof:[pe]},ue[1]={ws:[1],".":[2],"[":[se],eof:[pe]},ue[2]={ws:[2],ident:[3,ie],0:[3,ie],number:[3,ie]},ue[3]={ident:[3,ie],0:[3,ie],number:[3,ie],ws:[1,re],".":[2,re],"[":[se,re],eof:[pe,re]},ue[se]={"'":[ce,ie],'"':[fe,ie],"[":[se,ne],"]":[1,le],eof:de,else:[se,ie]},ue[ce]={"'":[se,ie],eof:de,else:[ce,ie]},ue[fe]={'"':[se,ie],eof:de,else:[fe,ie]};var he=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/,be=function(){this._cache=Object.create(null)};be.prototype.parsePath=function(e){var t=this._cache[e];return t||(t=V(e))&&(this._cache[e]=t),t||[]},be.prototype.getPathValue=function(e,t){if(!n(e))return null;var o=this.parsePath(t);if(0===o.length)return null;for(var i=o.length,r=e,l=0;l/,me=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,_e=/^@(?:\.([a-zA-Z]+))?:/,xe=/[()]/g,ve={upper:function(e){return e.toLocaleUpperCase()},lower:function(e){return e.toLocaleLowerCase()},capitalize:function(e){return""+e.charAt(0).toLocaleUpperCase()+e.substr(1)}},we=new ee,ye=function(e){var t=this;void 0===e&&(e={}),!q&&"undefined"!=typeof window&&window.Vue&&D(window.Vue);var o=e.locale||"en-US",i=!1!==e.fallbackLocale&&(e.fallbackLocale||"en-US"),r=e.messages||{},n=e.dateTimeFormats||e.datetimeFormats||{},l=e.numberFormats||{};this._vm=null,this._formatter=e.formatter||we,this._modifiers=e.modifiers||{},this._missing=e.missing||null,this._root=e.root||null,this._sync=void 0===e.sync||!!e.sync,this._fallbackRoot=void 0===e.fallbackRoot||!!e.fallbackRoot,this._fallbackRootWithEmptyString=void 0===e.fallbackRootWithEmptyString||!!e.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==e.formatFallbackMessages&&!!e.formatFallbackMessages,this._silentTranslationWarn=void 0!==e.silentTranslationWarn&&e.silentTranslationWarn,this._silentFallbackWarn=void 0!==e.silentFallbackWarn&&!!e.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new be,this._dataListeners=new Set,this._componentInstanceCreatedListener=e.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==e.preserveDirectiveContent&&!!e.preserveDirectiveContent,this.pluralizationRules=e.pluralizationRules||{},this._warnHtmlInMessage=e.warnHtmlInMessage||"off",this._postTranslation=e.postTranslation||null,this._escapeParameterHtml=e.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in e&&(this.__VUE_I18N_BRIDGE__=e.__VUE_I18N_BRIDGE__),this.getChoiceIndex=function(e,o){var i=Object.getPrototypeOf(t);if(i&&i.getChoiceIndex){return i.getChoiceIndex.call(t,e,o)}return t.locale in t.pluralizationRules?t.pluralizationRules[t.locale].apply(t,[e,o]):function(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}(e,o)},this._exist=function(e,o){return!(!e||!o)&&(!c(t._path.getPathValue(e,o))||!!e[o])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(r).forEach(function(e){t._checkLocaleMessage(e,t._warnHtmlInMessage,r[e])}),this._initVM({locale:o,fallbackLocale:i,messages:r,dateTimeFormats:n,numberFormats:l})},ke={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0},sync:{configurable:!0}};ye.prototype._checkLocaleMessage=function(e,t,o){var n=[],l=function(e,t,o,n){if(s(o))Object.keys(o).forEach(function(i){var r=o[i];s(r)?(n.push(i),n.push("."),l(e,t,r,n),n.pop(),n.pop()):(n.push(i),l(e,t,r,n),n.pop())});else if(Z(o))o.forEach(function(o,i){s(o)?(n.push("["+i+"]"),n.push("."),l(e,t,o,n),n.pop(),n.pop()):(n.push("["+i+"]"),l(e,t,o,n),n.pop())});else if(a(o)){var c=ge.test(o);if(c){var f="Detected HTML in message '"+o+"' of keypath '"+n.join("")+"' at '"+t+"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===e?i(f):"error"===e&&r(f)}}};l(t,e,o,n)},ye.prototype._initVM=function(e){var t=q.config.silent;q.config.silent=!0,this._vm=new q({data:e,__VUE18N__INSTANCE__:!0}),q.config.silent=t},ye.prototype.destroyVM=function(){this._vm.$destroy()},ye.prototype.subscribeDataChanging=function(e){this._dataListeners.add(e)},ye.prototype.unsubscribeDataChanging=function(e){u(this._dataListeners,e)},ye.prototype.watchI18nData=function(){var e=this;return this._vm.$watch("$data",function(){for(var t=h(e._dataListeners),o=t.length;o--;)q.nextTick(function(){t[o]&&t[o].$forceUpdate()})},{deep:!0})},ye.prototype.watchLocale=function(e){if(e){if(!this.__VUE_I18N_BRIDGE__)return null;var t=this,o=this._vm;return this.vm.$watch("locale",function(i){o.$set(o,"locale",i),t.__VUE_I18N_BRIDGE__&&e&&(e.locale.value=i),o.$forceUpdate()},{immediate:!0})}if(!this._sync||!this._root)return null;var i=this._vm;return this._root.$i18n.vm.$watch("locale",function(e){i.$set(i,"locale",e),i.$forceUpdate()},{immediate:!0})},ye.prototype.onComponentInstanceCreated=function(e){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(e,this)},ke.vm.get=function(){return this._vm},ke.messages.get=function(){return d(this._getMessages())},ke.dateTimeFormats.get=function(){return d(this._getDateTimeFormats())},ke.numberFormats.get=function(){return d(this._getNumberFormats())},ke.availableLocales.get=function(){return Object.keys(this.messages).sort()},ke.locale.get=function(){return this._vm.locale},ke.locale.set=function(e){this._vm.$set(this._vm,"locale",e)},ke.fallbackLocale.get=function(){return this._vm.fallbackLocale},ke.fallbackLocale.set=function(e){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",e)},ke.formatFallbackMessages.get=function(){return this._formatFallbackMessages},ke.formatFallbackMessages.set=function(e){this._formatFallbackMessages=e},ke.missing.get=function(){return this._missing},ke.missing.set=function(e){this._missing=e},ke.formatter.get=function(){return this._formatter},ke.formatter.set=function(e){this._formatter=e},ke.silentTranslationWarn.get=function(){return this._silentTranslationWarn},ke.silentTranslationWarn.set=function(e){this._silentTranslationWarn=e},ke.silentFallbackWarn.get=function(){return this._silentFallbackWarn},ke.silentFallbackWarn.set=function(e){this._silentFallbackWarn=e},ke.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},ke.preserveDirectiveContent.set=function(e){this._preserveDirectiveContent=e},ke.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},ke.warnHtmlInMessage.set=function(e){var t=this,o=this._warnHtmlInMessage;if(this._warnHtmlInMessage=e,o!==e&&("warn"===e||"error"===e)){var i=this._getMessages();Object.keys(i).forEach(function(e){t._checkLocaleMessage(e,t._warnHtmlInMessage,i[e])})}},ke.postTranslation.get=function(){return this._postTranslation},ke.postTranslation.set=function(e){this._postTranslation=e},ke.sync.get=function(){return this._sync},ke.sync.set=function(e){this._sync=e},ye.prototype._getMessages=function(){return this._vm.messages},ye.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},ye.prototype._getNumberFormats=function(){return this._vm.numberFormats},ye.prototype._warnDefault=function(e,t,o,i,r,n){if(!c(o))return o;if(this._missing){var l=this._missing.apply(null,[e,t,i,r]);if(a(l))return l}if(this._formatFallbackMessages){var s=p.apply(void 0,r);return this._render(t,n,s.params,t)}return t},ye.prototype._isFallbackRoot=function(e){return(this._fallbackRootWithEmptyString?!e:c(e))&&!c(this._root)&&this._fallbackRoot},ye.prototype._isSilentFallbackWarn=function(e){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(e):this._silentFallbackWarn},ye.prototype._isSilentFallback=function(e,t){return this._isSilentFallbackWarn(t)&&(this._isFallbackRoot()||e!==this.fallbackLocale)},ye.prototype._isSilentTranslationWarn=function(e){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(e):this._silentTranslationWarn},ye.prototype._interpolate=function(e,t,o,i,r,n,l){if(!t)return null;var p=this._path.getPathValue(t,o);if(Z(p)||s(p))return p;var d;if(c(p)){if(!s(t))return null;if(d=t[o],!a(d)&&!f(d))return null}else{if(!a(p)&&!f(p))return null;d=p}return a(d)&&(d.indexOf("@:")>=0||d.indexOf("@.")>=0)&&(d=this._link(e,t,d,i,"raw",n,l)),this._render(d,r,n,o)},ye.prototype._link=function(e,t,o,i,r,n,l){var a=o,s=a.match(me);for(var c in s)if(s.hasOwnProperty(c)){var f=s[c],p=f.match(_e),d=p[0],u=p[1],h=f.replace(d,"").replace(xe,"");if(b(l,h))return a;l.push(h);var g=this._interpolate(e,t,h,i,"raw"===r?"string":r,"raw"===r?void 0:n,l);if(this._isFallbackRoot(g)){if(!this._root)throw Error("unexpected error");var m=this._root.$i18n;g=m._translate(m._getMessages(),m.locale,m.fallbackLocale,h,i,r,n)}g=this._warnDefault(e,h,g,i,Z(n)?n:[n],r),this._modifiers.hasOwnProperty(u)?g=this._modifiers[u](g):ve.hasOwnProperty(u)&&(g=ve[u](g)),l.pop(),a=g?a.replace(f,g):a}return a},ye.prototype._createMessageContext=function(e,t,o,i){var r=this,l=Z(e)?e:[],a=n(e)?e:{},s=function(e){return l[e]},c=function(e){return a[e]},f=this._getMessages(),p=this.locale;return{list:s,named:c,values:e,formatter:t,path:o,messages:f,locale:p,linked:function(e){return r._interpolate(p,f[p]||{},e,null,i,void 0,[e])}}},ye.prototype._render=function(e,t,o,i){if(f(e))return e(this._createMessageContext(o,this._formatter||we,i,t));var r=this._formatter.interpolate(e,o,i);return r||(r=we.interpolate(e,o,i)),"string"!==t||a(r)?r:r.join("")},ye.prototype._appendItemToChain=function(e,t,o){var i=!1;return b(e,t)||(i=!0,t&&(i="!"!==t[t.length-1],t=t.replace(/!/g,""),e.push(t),o&&o[t]&&(i=o[t]))),i},ye.prototype._appendLocaleToChain=function(e,t,o){var i,r=t.split("-");do{var n=r.join("-");i=this._appendItemToChain(e,n,o),r.splice(-1,1)}while(r.length&&!0===i);return i},ye.prototype._appendBlockToChain=function(e,t,o){for(var i=!0,r=0;r0;)n[l]=arguments[l+4];if(!e)return"";var a=p.apply(void 0,n);this._escapeParameterHtml&&(a.params=v(a.params));var s=a.locale||t,c=this._translate(o,s,this.fallbackLocale,e,i,"string",a.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(r=this._root).$t.apply(r,[e].concat(n))}return c=this._warnDefault(s,e,c,i,n,"string"),this._postTranslation&&null!==c&&void 0!==c&&(c=this._postTranslation(c,e)),c},ye.prototype.t=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this)._t.apply(t,[e,this.locale,this._getMessages(),null].concat(o))},ye.prototype._i=function(e,t,o,i,r){var n=this._translate(o,t,this.fallbackLocale,e,i,"raw",r);if(this._isFallbackRoot(n)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(e,t,r)}return this._warnDefault(t,e,n,i,[r],"raw")},ye.prototype.i=function(e,t,o){return e?(a(t)||(t=this.locale),this._i(e,t,this._getMessages(),null,o)):""},ye.prototype._tc=function(e,t,o,i,r){for(var n,l=[],a=arguments.length-5;a-- >0;)l[a]=arguments[a+5];if(!e)return"";void 0===r&&(r=1);var s={count:r,n:r},c=p.apply(void 0,l);return c.params=Object.assign(s,c.params),l=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((n=this)._t.apply(n,[e,t,o,i].concat(l)),r)},ye.prototype.fetchChoice=function(e,t){if(!e||!a(e))return null;var o=e.split("|");return t=this.getChoiceIndex(t,o.length),o[t]?o[t].trim():e},ye.prototype.tc=function(e,t){for(var o,i=[],r=arguments.length-2;r-- >0;)i[r]=arguments[r+2];return(o=this)._tc.apply(o,[e,this.locale,this._getMessages(),null,t].concat(i))},ye.prototype._te=function(e,t,o){for(var i=[],r=arguments.length-3;r-- >0;)i[r]=arguments[r+3];var n=p.apply(void 0,i).locale||t;return this._exist(o[n],e)},ye.prototype.te=function(e,t){return this._te(e,this.locale,this._getMessages(),t)},ye.prototype.getLocaleMessage=function(e){return d(this._vm.messages[e]||{})},ye.prototype.setLocaleMessage=function(e,t){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(e,this._warnHtmlInMessage,t),this._vm.$set(this._vm.messages,e,t)},ye.prototype.mergeLocaleMessage=function(e,t){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(e,this._warnHtmlInMessage,t),this._vm.$set(this._vm.messages,e,m(void 0!==this._vm.messages[e]&&Object.keys(this._vm.messages[e]).length?Object.assign({},this._vm.messages[e]):{},t))},ye.prototype.getDateTimeFormat=function(e){return d(this._vm.dateTimeFormats[e]||{})},ye.prototype.setDateTimeFormat=function(e,t){this._vm.$set(this._vm.dateTimeFormats,e,t),this._clearDateTimeFormat(e,t)},ye.prototype.mergeDateTimeFormat=function(e,t){this._vm.$set(this._vm.dateTimeFormats,e,m(this._vm.dateTimeFormats[e]||{},t)),this._clearDateTimeFormat(e,t)},ye.prototype._clearDateTimeFormat=function(e,t){for(var o in t){var i=e+"__"+o;this._dateTimeFormatters.hasOwnProperty(i)&&delete this._dateTimeFormatters[i]}},ye.prototype._localizeDateTime=function(e,t,o,i,r,n){for(var l=t,a=i[l],s=this._getLocaleChain(t,o),f=0;f0;)t[o]=arguments[o+1];var i=this.locale,r=null,l=null;return 1===t.length?(a(t[0])?r=t[0]:n(t[0])&&(t[0].locale&&(i=t[0].locale),t[0].key&&(r=t[0].key)),l=Object.keys(t[0]).reduce(function(e,o){var i;return b(W,o)?Object.assign({},e,(i={},i[o]=t[0][o],i)):e},null)):2===t.length&&(a(t[0])&&(r=t[0]),a(t[1])&&(i=t[1])),this._d(e,i,r,l)},ye.prototype.getNumberFormat=function(e){return d(this._vm.numberFormats[e]||{})},ye.prototype.setNumberFormat=function(e,t){this._vm.$set(this._vm.numberFormats,e,t),this._clearNumberFormat(e,t)},ye.prototype.mergeNumberFormat=function(e,t){this._vm.$set(this._vm.numberFormats,e,m(this._vm.numberFormats[e]||{},t)),this._clearNumberFormat(e,t)},ye.prototype._clearNumberFormat=function(e,t){for(var o in t){var i=e+"__"+o;this._numberFormatters.hasOwnProperty(i)&&delete this._numberFormatters[i]}},ye.prototype._getNumberFormatter=function(e,t,o,i,r,n){for(var l=t,a=i[l],s=this._getLocaleChain(t,o),f=0;f0;)t[o]=arguments[o+1];var i=this.locale,r=null,l=null;return 1===t.length?a(t[0])?r=t[0]:n(t[0])&&(t[0].locale&&(i=t[0].locale),t[0].key&&(r=t[0].key),l=Object.keys(t[0]).reduce(function(e,o){var i;return b(H,o)?Object.assign({},e,(i={},i[o]=t[0][o],i)):e},null)):2===t.length&&(a(t[0])&&(r=t[0]),a(t[1])&&(i=t[1])),this._n(e,i,r,l)},ye.prototype._ntp=function(e,t,o,i){if(!ye.availabilities.numberFormat)return[];if(!o){return(i?new Intl.NumberFormat(t,i):new Intl.NumberFormat(t)).formatToParts(e)}var r=this._getNumberFormatter(e,t,this.fallbackLocale,this._getNumberFormats(),o,i),n=r&&r.formatToParts(e);if(this._isFallbackRoot(n)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(e,t,o,i)}return n||[]},Object.defineProperties(ye.prototype,ke);var Ee;Object.defineProperty(ye,"availabilities",{get:function(){if(!Ee){var e="undefined"!=typeof Intl;Ee={dateTimeFormat:e&&void 0!==Intl.DateTimeFormat,numberFormat:e&&void 0!==Intl.NumberFormat}}return Ee}}),ye.install=D,ye.version="8.28.2",t.a=ye},function(e,t,o){"use strict";function i(e){o(229)}var r=o(66),n=o(226),l=o(97),a=i,s=l(r.a,n.a,!1,a,null,null);t.a=s.exports},function(e,t,o){"use strict";var i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"app"}},[o("div",{staticClass:"action-right"},[o("el-dropdown",{staticClass:"international",attrs:{trigger:"click"},on:{command:e.handle_set_language}},[o("div",[o("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-setting"},on:{click:function(t){e.dialogVisible=!0}}},[e._v(e._s(e.$t("lang.choose")))])],1),e._v(" "),o("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[o("el-dropdown-item",{attrs:{Enabled:"language==='zh_CN'",command:"zh_CN",divided:""}},[e._v("\n "+e._s(e.$t("lang.zhcn"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='zh_TW'",command:"zh_TW",divided:""}},[e._v("\n "+e._s(e.$t("lang.zhtw"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='en'",command:"en",divided:""}},[e._v("\n "+e._s(e.$t("lang.en"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='es'",command:"es",divided:""}},[e._v("\n "+e._s(e.$t("lang.es"))+"\n ")])],1)],1)],1),e._v(" "),o("h1",{staticClass:"header"},[e._v("Pixl.js")]),e._v(" "),o("el-row",[o("el-col",{attrs:{span:14}},[o("div",{staticClass:"action-left"},[o("el-button-group",[o("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-upload",disabled:e.btn_disabled()},on:{click:e.on_btn_upload}},[e._v(e._s(e.$t("menu.upload")))])],1),e._v(" "),o("el-button-group",[o("el-button",{attrs:{size:"mini",icon:"el-icon-plus",disabled:e.btn_disabled()},on:{click:e.on_btn_new_folder}},[e._v(e._s(e.$t("menu.newfolder")))]),e._v(" "),o("el-button",{attrs:{size:"mini",type:"danger",icon:"el-icon-delete",disabled:e.btn_disabled()},on:{click:e.on_btn_remove}},[e._v(e._s(e.$t("menu.del")))])],1),e._v(" "),o("el-button-group",[o("el-button",{attrs:{size:"mini",icon:"el-icon-top",disabled:e.btn_disabled()},on:{click:e.on_btn_up}},[e._v(e._s(e.$t("menu.up")))]),e._v(" "),o("el-button",{attrs:{size:"mini",icon:"el-icon-refresh",disabled:!e.connected},on:{click:e.on_btn_refresh}},[e._v(e._s(e.$t("menu.refresh")))])],1)],1)]),e._v(" "),o("el-col",{attrs:{span:10}},[o("div",{staticClass:"action-right"},[e.version?o("el-button",{attrs:{type:"success",size:"mini",icon:"el-icon-warning"}},[e._v(e._s(e.version))]):e._e(),e._v(" "),o("el-button-group",[o("el-button",{attrs:{type:"info",size:"mini",icon:"el-icon-cpu",disabled:!e.connected},on:{click:e.on_btn_enter_dfu}},[e._v(e._s(e.$t("menu.dfu")))]),e._v(" "),o("el-button",{attrs:{type:e.connBtnType,size:"mini",icon:"el-icon-connection"},on:{click:e.on_btn_ble_connect}},[e._v(e._s(e.connBtnText))])],1)],1)])],1),e._v(" "),o("el-row",[o("el-col",{attrs:{span:24}},[o("div",{staticClass:"folder-path"},[o("el-breadcrumb",{attrs:{separator:"/"}},[o("el-breadcrumb-item",[e._v(e._s(e.current_dir))])],1)],1)])],1),e._v(" "),o("div",[o("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.table_loading,expression:"table_loading"}],ref:"multipleTable",staticStyle:{width:"100%"},attrs:{data:e.tableData,"tooltip-effect":"dark","element-loading-text":e.$t("status.loading"),"element-loading-spinner":"el-icon-loading","cell-class-name":"file-cell","default-sort":{prop:"name",order:"ascending"}},on:{"selection-change":e.on_table_selection_change,"sort-change":e.on_table_sort_change}},[o("el-table-column",{attrs:{type:"selection",width:"42"}}),e._v(" "),o("el-table-column",{attrs:{prop:"name",label:e.$t("labels.name"),sortable:"",width:"320"},on:{"sort-method":e.sort_table_row_name},scopedSlots:e._u([{key:"default",fn:function(t){return[o("i",{class:t.row.icon}),e._v(" "),o("el-link",{attrs:{underline:!1},on:{click:function(o){return e.handle_name_click(t.$index,t.row)}}},[e._v("\n "+e._s(t.row.name))])]}}])}),e._v(" "),o("el-table-column",{attrs:{prop:"size",label:e.$t("labels.size"),sortable:"",width:"150"}}),e._v(" "),o("el-table-column",{attrs:{prop:"type",label:e.$t("labels.type"),sortable:"",width:"80"}}),e._v(" "),o("el-table-column",{attrs:{prop:"notes",label:e.$t("labels.remark"),sortable:""}}),e._v(" "),o("el-table-column",{attrs:{label:"",fixed:"right",width:"40"},scopedSlots:e._u([{key:"default",fn:function(t){return[o("el-dropdown",[o("span",{staticClass:"el-dropdown-link"},[o("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),o("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},["DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_remove(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.del")))]):e._e(),e._v(" "),"DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_rename(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.rename")))]):e._e(),e._v(" "),"DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_meta(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.prop")))]):e._e(),e._v(" "),"DRIVE"==t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_format(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.format")))]):e._e()],1)],1)]}}])})],1)],1),e._v(" "),o("el-dialog",{attrs:{title:e.$t("properties.title"),visible:e.meta_diag_visible,width:"30%"},on:{"update:visible":function(t){e.meta_diag_visible=t}}},[o("el-form",{ref:"form",attrs:{model:e.meta_form,"label-width":"80px"}},[o("el-form-item",{attrs:{label:e.$t("properties.remark")}},[o("el-input",{model:{value:e.meta_form.notes,callback:function(t){e.$set(e.meta_form,"notes",t)},expression:"meta_form.notes"}})],1),e._v(" "),o("el-form-item",{attrs:{label:e.$t("properties.attrib")}},[o("el-checkbox",{attrs:{label:e.$t("properties.hide")},model:{value:e.meta_form.flags.hide,callback:function(t){e.$set(e.meta_form.flags,"hide",t)},expression:"meta_form.flags.hide"}})],1)],1),e._v(" "),o("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:function(t){e.meta_diag_visible=!1}}},[e._v(e._s(e.$t("btn.cancel")))]),e._v(" "),o("el-button",{attrs:{type:"primary"},on:{click:e.on_diag_meta_close}},[e._v(e._s(e.$t("btn.ok")))])],1)],1),e._v(" "),o("el-dialog",{attrs:{title:e.$t("upload.title"),visible:e.upload_diag_visible,width:"30%","before-close":e.on_upload_diag_close},on:{"update:visible":function(t){e.upload_diag_visible=t}}},[o("div",[o("el-upload",{ref:"upload",staticClass:"upload-demo",attrs:{drag:"",action:"https://jsonplaceholder.typicode.com/posts/",multiple:"","http-request":e.on_upload_request,"on-error":e.on_upload_error}},[o("i",{staticClass:"el-icon-upload"}),e._v(" "),o("div",{staticClass:"el-upload__text"},[e._v(e._s(e.$t("upload.drag"))+" "),o("em",[e._v(e._s(e.$t("upload.click")))])]),e._v(" "),o("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[o("ul",[o("li",[e._v(e._s(e.$t("upload.maxsize")))]),e._v(" "),o("li",[e._v(e._s(e.$t("upload.maxname")))])])])])],1),e._v(" "),o("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"})])],1)},r=[],n={render:i,staticRenderFns:r};t.a=n},function(e,t,o){"use strict";var i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"app"}},[o("router-view")],1)},r=[],n={render:i,staticRenderFns:r};t.a=n},function(e,t,o){"use strict";function i(e,t){for(var o in t)e[o]=t[o];return e}function r(e){try{return decodeURIComponent(e)}catch(e){}return e}function n(e,t,o){void 0===t&&(t={});var i,r=o||l;try{i=r(e||"")}catch(e){i={}}for(var n in t){var a=t[n];i[n]=Array.isArray(a)?a.map(He):He(a)}return i}function l(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var o=e.replace(/\+/g," ").split("="),i=r(o.shift()),n=o.length>0?r(o.join("=")):null;void 0===t[i]?t[i]=n:Array.isArray(t[i])?t[i].push(n):t[i]=[t[i],n]}),t):t}function a(e){var t=e?Object.keys(e).map(function(t){var o=e[t];if(void 0===o)return"";if(null===o)return qe(t);if(Array.isArray(o)){var i=[];return o.forEach(function(e){void 0!==e&&(null===e?i.push(qe(t)):i.push(qe(t)+"="+qe(e)))}),i.join("&")}return qe(t)+"="+qe(o)}).filter(function(e){return e.length>0}).join("&"):null;return t?"?"+t:""}function s(e,t,o,i){var r=i&&i.options.stringifyQuery,n=t.query||{};try{n=c(n)}catch(e){}var l={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:n,params:t.params||{},fullPath:p(t,r),matched:e?f(e):[]};return o&&(l.redirectedFrom=p(o,r)),Object.freeze(l)}function c(e){if(Array.isArray(e))return e.map(c);if(e&&"object"==typeof e){var t={};for(var o in e)t[o]=c(e[o]);return t}return e}function f(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function p(e,t){var o=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;void 0===r&&(r="");var n=t||a;return(o||"/")+n(i)+r}function d(e,t,o){return t===Ze?e===t:!!t&&(e.path&&t.path?e.path.replace(We,"")===t.path.replace(We,"")&&(o||e.hash===t.hash&&u(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(o||e.hash===t.hash&&u(e.query,t.query)&&u(e.params,t.params))))}function u(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var o=Object.keys(e).sort(),i=Object.keys(t).sort();return o.length===i.length&&o.every(function(o,r){var n=e[o];if(i[r]!==o)return!1;var l=t[o];return null==n||null==l?n===l:"object"==typeof n&&"object"==typeof l?u(n,l):String(n)===String(l)})}function h(e,t){return 0===e.path.replace(We,"/").indexOf(t.path.replace(We,"/"))&&(!t.hash||e.hash===t.hash)&&b(e.query,t.query)}function b(e,t){for(var o in t)if(!(o in e))return!1;return!0}function g(e){for(var t=0;t=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(o=e.slice(r+1),e=e.slice(0,r)),{path:e,query:o,hash:t}}function w(e){return e.replace(/\/(?:\s*\/)+/g,"/")}function y(e,t){for(var o,i=[],r=0,n=0,l="",a=t&&t.delimiter||"/";null!=(o=ot.exec(e));){var s=o[0],c=o[1],f=o.index;if(l+=e.slice(n,f),n=f+s.length,c)l+=c[1];else{var p=e[n],d=o[2],u=o[3],h=o[4],b=o[5],g=o[6],m=o[7];l&&(i.push(l),l="");var _=null!=d&&null!=p&&p!==d,x="+"===g||"*"===g,v="?"===g||"*"===g,w=o[2]||a,y=h||b;i.push({name:u||r++,prefix:d||"",delimiter:w,optional:v,repeat:x,partial:_,asterisk:!!m,pattern:y?I(y):m?".*":"[^"+T(w)+"]+?"})}}return n-1&&(r.params[s]=o.params[s]);return r.path=$(l.path,r.params,'named route "'+n+'"'),c(l,r,i)}if(r.path){r.params={};for(var f=0;f-1}function me(e,t){return ge(e)&&e._isRouter&&(null==t||e.type===t)}function _e(e,t,o){var i=function(r){r>=e.length?o():e[r]?t(e[r],function(){i(r+1)}):i(r+1)};i(0)}function xe(e){return function(t,o,i){var r=!1,n=0,l=null;ve(e,function(e,t,o,a){if("function"==typeof e&&void 0===e.cid){r=!0,n++;var s,c=ke(function(t){ye(t)&&(t=t.default),e.resolved="function"==typeof t?t:it.extend(t),o.components[a]=t,--n<=0&&i()}),f=ke(function(e){var t="Failed to resolve async component "+a+": "+e;l||(l=ge(e)?e:new Error(t),i(l))});try{s=e(c,f)}catch(e){f(e)}if(s)if("function"==typeof s.then)s.then(c,f);else{var p=s.component;p&&"function"==typeof p.then&&p.then(c,f)}}}),r||i()}}function ve(e,t){return we(e.map(function(e){return Object.keys(e.components).map(function(o){return t(e.components[o],e.instances[o],e,o)})}))}function we(e){return Array.prototype.concat.apply([],e)}function ye(e){return e.__esModule||mt&&"Module"===e[Symbol.toStringTag]}function ke(e){var t=!1;return function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];if(!t)return t=!0,e.apply(this,o)}}function Ee(e){if(!e)if(ct){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function ze(e,t){var o,i=Math.max(e.length,t.length);for(o=0;o=0?t.slice(0,o):t)+"#"+e}function Oe(e){ht?se(De(e)):window.location.hash=e}function Ne(e){ht?ce(De(e)):window.location.replace(De(e))}function Me(e,t){return e.push(t),function(){var o=e.indexOf(t);o>-1&&e.splice(o,1)}}function je(e,t,o){var i="hash"===o?"#"+t:t;return e?w(e+"/"+i):i}o.d(t,"a",function(){return Et});var Pe=/[!'()*]/g,Ye=function(e){return"%"+e.charCodeAt(0).toString(16)},Ve=/%2C/g,qe=function(e){return encodeURIComponent(e).replace(Pe,Ye).replace(Ve,",")},He=function(e){return null==e||"object"==typeof e?e:String(e)},We=/\/?$/,Ze=s(null,{path:"/"}),Xe={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,t){var o=t.props,r=t.children,n=t.parent,l=t.data;l.routerView=!0;for(var a=n.$createElement,s=o.name,c=n.$route,f=n._routerViewCache||(n._routerViewCache={}),p=0,d=!1;n&&n._routerRoot!==n;){var u=n.$vnode?n.$vnode.data:{};u.routerView&&p++,u.keepAlive&&n._directInactive&&n._inactive&&(d=!0),n=n.$parent}if(l.routerViewDepth=p,d){var h=f[s],b=h&&h.component;return b?(h.configProps&&m(b,l,h.route,h.configProps),a(b,l,r)):a()}var _=c.matched[p],x=_&&_.components[s];if(!_||!x)return f[s]=null,a();f[s]={component:x},l.registerRouteInstance=function(e,t){var o=_.instances[s];(t&&o!==e||!t&&o===e)&&(_.instances[s]=t)},(l.hook||(l.hook={})).prepatch=function(e,t){_.instances[s]=t.componentInstance},l.hook.init=function(e){e.data.keepAlive&&e.componentInstance&&e.componentInstance!==_.instances[s]&&(_.instances[s]=e.componentInstance),g(c)};var v=_.props&&_.props[s];return v&&(i(f[s],{route:c,configProps:v}),m(x,l,c,v)),a(x,l,r)}},Ge=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},Je=S,Ke=y,Qe=k,et=A,tt=B,ot=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");Je.parse=Ke,Je.compile=Qe,Je.tokensToFunction=et,Je.tokensToRegExp=tt;var it,rt=Object.create(null),nt=[String,Object],lt=[String,Array],at=function(){},st={name:"RouterLink",props:{to:{type:nt,required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:lt,default:"click"}},render:function(e){var t=this,o=this.$router,r=this.$route,n=o.resolve(this.to,r,this.append),l=n.location,a=n.route,c=n.href,f={},p=o.options.linkActiveClass,u=o.options.linkExactActiveClass,b=null==p?"router-link-active":p,g=null==u?"router-link-exact-active":u,m=null==this.activeClass?b:this.activeClass,_=null==this.exactActiveClass?g:this.exactActiveClass,x=a.redirectedFrom?s(null,D(a.redirectedFrom),null,o):a;f[_]=d(r,x,this.exactPath),f[m]=this.exact||this.exactPath?f[_]:h(r,x);var v=f[_]?this.ariaCurrentValue:null,w=function(e){O(e)&&(t.replace?o.replace(l,at):o.push(l,at))},y={click:O};Array.isArray(this.event)?this.event.forEach(function(e){y[e]=w}):y[this.event]=w;var k={class:f},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:c,route:a,navigate:w,isActive:f[m],isExactActive:f[_]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)k.on=y,k.attrs={href:c,"aria-current":v};else{var z=N(this.$slots.default);if(z){z.isStatic=!1;var A=z.data=i({},z.data);A.on=A.on||{};for(var T in A.on){var I=A.on[T];T in y&&(A.on[T]=Array.isArray(I)?I:[I])}for(var L in y)L in A.on?A.on[L].push(y[L]):A.on[L]=w;var C=z.data.attrs=i({},z.data.attrs);C.href=c,C["aria-current"]=v}else k.on=y}return e(this.tag,k,this.$slots.default)}},ct="undefined"!=typeof window,ft=ct&&window.performance&&window.performance.now?window.performance:Date,pt=Z(),dt=Object.create(null),ut=/^#\d/,ht=ct&&function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"function"==typeof window.history.pushState)}(),bt={redirected:2,aborted:4,cancelled:8,duplicated:16},gt=["params","query","hash"],mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,_t=function(e,t){this.router=e,this.base=Ee(t),this.current=Ze,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};_t.prototype.listen=function(e){this.cb=e},_t.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},_t.prototype.onError=function(e){this.errorCbs.push(e)},_t.prototype.transitionTo=function(e,t,o){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach(function(t){t(e)}),e}var n=this.current;this.confirmTransition(i,function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach(function(e){e&&e(i,n)}),r.ready||(r.ready=!0,r.readyCbs.forEach(function(e){e(i)}))},function(e){o&&o(e),e&&!r.ready&&(me(e,bt.redirected)&&n===Ze||(r.ready=!0,r.readyErrorCbs.forEach(function(t){t(e)})))})},_t.prototype.confirmTransition=function(e,t,o){var i=this,r=this.current;this.pending=e;var n=function(e){!me(e)&&ge(e)&&(i.errorCbs.length?i.errorCbs.forEach(function(t){t(e)}):console.error(e)),o&&o(e)},l=e.matched.length-1,a=r.matched.length-1;if(d(e,r)&&l===a&&e.matched[l]===r.matched[a])return this.ensureURL(),e.hash&&K(this.router,r,e,!1),n(pe(r,e));var s=ze(this.current.matched,e.matched),c=s.updated,f=s.deactivated,p=s.activated,u=[].concat(Ie(f),this.router.beforeHooks,Le(c),p.map(function(e){return e.beforeEnter}),xe(p)),h=function(t,o){if(i.pending!==e)return n(de(r,e));try{t(e,r,function(t){!1===t?(i.ensureURL(!0),n(ue(r,e))):ge(t)?(i.ensureURL(!0),n(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(n(fe(r,e)),"object"==typeof t&&t.replace?i.replace(t):i.push(t)):o(t)})}catch(e){n(e)}};_e(u,h,function(){_e(Re(p).concat(i.router.resolveHooks),h,function(){if(i.pending!==e)return n(de(r,e));i.pending=null,t(e),i.router.app&&i.router.app.$nextTick(function(){g(e)})})})},_t.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)},_t.prototype.setupListeners=function(){},_t.prototype.teardown=function(){this.listeners.forEach(function(e){e()}),this.listeners=[],this.current=Ze,this.pending=null};var xt=function(e){function t(t,o){e.call(this,t,o),this._startLocation=Fe(this.base)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,i=ht&&o;i&&this.listeners.push(J());var r=function(){var o=e.current,r=Fe(e.base);e.current===Ze&&r===e._startLocation||e.transitionTo(r,function(e){i&&K(t,e,o,!0)})};window.addEventListener("popstate",r),this.listeners.push(function(){window.removeEventListener("popstate",r)})}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){se(w(i.base+e.fullPath)),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){ce(w(i.base+e.fullPath)),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.ensureURL=function(e){if(Fe(this.base)!==this.current.fullPath){var t=w(this.base+this.current.fullPath);e?se(t):ce(t)}},t.prototype.getCurrentLocation=function(){return Fe(this.base)},t}(_t),vt=function(e){function t(t,o,i){e.call(this,t,o),i&&Be(this.base)||Se()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,i=ht&&o;i&&this.listeners.push(J());var r=function(){var t=e.current;Se()&&e.transitionTo($e(),function(o){i&&K(e.router,o,t,!0),ht||Ne(o.fullPath)})},n=ht?"popstate":"hashchange";window.addEventListener(n,r),this.listeners.push(function(){window.removeEventListener(n,r)})}},t.prototype.push=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){Oe(e.fullPath),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){Ne(e.fullPath),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;$e()!==t&&(e?Oe(t):Ne(t))},t.prototype.getCurrentLocation=function(){return $e()},t}(_t),wt=function(e){function t(t,o){e.call(this,t,o),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,o){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)},o)},t.prototype.go=function(e){var t=this,o=this.index+e;if(!(o<0||o>=this.stack.length)){var i=this.stack[o];this.confirmTransition(i,function(){var e=t.current;t.index=o,t.updateRoute(i),t.router.afterHooks.forEach(function(t){t&&t(i,e)})},function(e){me(e,bt.duplicated)&&(t.index=o)})}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(_t),yt=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=q(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ht&&!1!==e.fallback,this.fallback&&(t="hash"),ct||(t="abstract"),this.mode=t,t){case"history":this.history=new xt(this,e.base);break;case"hash":this.history=new vt(this,e.base,this.fallback);break;case"abstract":this.history=new wt(this,e.base)}},kt={currentRoute:{configurable:!0}};yt.prototype.match=function(e,t,o){return this.matcher.match(e,t,o)},kt.currentRoute.get=function(){return this.history&&this.history.current},yt.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",function(){var o=t.apps.indexOf(e);o>-1&&t.apps.splice(o,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()}),!this.app){this.app=e;var o=this.history;if(o instanceof xt||o instanceof vt){var i=function(e){var i=o.current,r=t.options.scrollBehavior;ht&&r&&"fullPath"in e&&K(t,e,i,!1)},r=function(e){o.setupListeners(),i(e)};o.transitionTo(o.getCurrentLocation(),r,r)}o.listen(function(e){t.apps.forEach(function(t){t._route=e})})}},yt.prototype.beforeEach=function(e){return Me(this.beforeHooks,e)},yt.prototype.beforeResolve=function(e){return Me(this.resolveHooks,e)},yt.prototype.afterEach=function(e){return Me(this.afterHooks,e)},yt.prototype.onReady=function(e,t){this.history.onReady(e,t)},yt.prototype.onError=function(e){this.history.onError(e)},yt.prototype.push=function(e,t,o){var i=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){i.history.push(e,t,o)});this.history.push(e,t,o)},yt.prototype.replace=function(e,t,o){var i=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){i.history.replace(e,t,o)});this.history.replace(e,t,o)},yt.prototype.go=function(e){this.history.go(e)},yt.prototype.back=function(){this.go(-1)},yt.prototype.forward=function(){this.go(1)},yt.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},yt.prototype.resolve=function(e,t,o){t=t||this.history.current;var i=D(e,t,o,this),r=this.match(i,t),n=r.redirectedFrom||r.fullPath;return{location:i,route:r,href:je(this.history.base,n,this.mode),normalizedTo:i,resolved:r}},yt.prototype.getRoutes=function(){return this.matcher.getRoutes()},yt.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==Ze&&this.history.transitionTo(this.history.getCurrentLocation())},yt.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==Ze&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(yt.prototype,kt);var Et=yt;yt.install=M,yt.version="3.6.5",yt.isNavigationFailure=me,yt.NavigationFailureType=bt,yt.START_LOCATION=Ze,ct&&window.Vue&&window.Vue.use(yt)},function(e,t,o){var i=o(183);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);o(230)("25571cbb",i,!0,{})},function(e,t,o){function i(e){for(var t=0;to.parts.length&&(i.parts.length=o.parts.length)}else{for(var l=[],r=0;r/,me=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,_e=/^@(?:\.([a-zA-Z]+))?:/,xe=/[()]/g,ve={upper:function(e){return e.toLocaleUpperCase()},lower:function(e){return e.toLocaleLowerCase()},capitalize:function(e){return""+e.charAt(0).toLocaleUpperCase()+e.substr(1)}},we=new ee,ye=function(e){var t=this;void 0===e&&(e={}),!q&&"undefined"!=typeof window&&window.Vue&&$(window.Vue);var o=e.locale||"en-US",i=!1!==e.fallbackLocale&&(e.fallbackLocale||"en-US"),r=e.messages||{},n=e.dateTimeFormats||e.datetimeFormats||{},l=e.numberFormats||{};this._vm=null,this._formatter=e.formatter||we,this._modifiers=e.modifiers||{},this._missing=e.missing||null,this._root=e.root||null,this._sync=void 0===e.sync||!!e.sync,this._fallbackRoot=void 0===e.fallbackRoot||!!e.fallbackRoot,this._fallbackRootWithEmptyString=void 0===e.fallbackRootWithEmptyString||!!e.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==e.formatFallbackMessages&&!!e.formatFallbackMessages,this._silentTranslationWarn=void 0!==e.silentTranslationWarn&&e.silentTranslationWarn,this._silentFallbackWarn=void 0!==e.silentFallbackWarn&&!!e.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new ge,this._dataListeners=new Set,this._componentInstanceCreatedListener=e.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==e.preserveDirectiveContent&&!!e.preserveDirectiveContent,this.pluralizationRules=e.pluralizationRules||{},this._warnHtmlInMessage=e.warnHtmlInMessage||"off",this._postTranslation=e.postTranslation||null,this._escapeParameterHtml=e.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in e&&(this.__VUE_I18N_BRIDGE__=e.__VUE_I18N_BRIDGE__),this.getChoiceIndex=function(e,o){var i=Object.getPrototypeOf(t);if(i&&i.getChoiceIndex){return i.getChoiceIndex.call(t,e,o)}return t.locale in t.pluralizationRules?t.pluralizationRules[t.locale].apply(t,[e,o]):function(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}(e,o)},this._exist=function(e,o){return!(!e||!o)&&(!c(t._path.getPathValue(e,o))||!!e[o])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(r).forEach(function(e){t._checkLocaleMessage(e,t._warnHtmlInMessage,r[e])}),this._initVM({locale:o,fallbackLocale:i,messages:r,dateTimeFormats:n,numberFormats:l})},ke={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0},sync:{configurable:!0}};ye.prototype._checkLocaleMessage=function(e,t,o){var n=[],l=function(e,t,o,n){if(s(o))Object.keys(o).forEach(function(i){var r=o[i];s(r)?(n.push(i),n.push("."),l(e,t,r,n),n.pop(),n.pop()):(n.push(i),l(e,t,r,n),n.pop())});else if(Z(o))o.forEach(function(o,i){s(o)?(n.push("["+i+"]"),n.push("."),l(e,t,o,n),n.pop(),n.pop()):(n.push("["+i+"]"),l(e,t,o,n),n.pop())});else if(a(o)){var c=be.test(o);if(c){var f="Detected HTML in message '"+o+"' of keypath '"+n.join("")+"' at '"+t+"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===e?i(f):"error"===e&&r(f)}}};l(t,e,o,n)},ye.prototype._initVM=function(e){var t=q.config.silent;q.config.silent=!0,this._vm=new q({data:e,__VUE18N__INSTANCE__:!0}),q.config.silent=t},ye.prototype.destroyVM=function(){this._vm.$destroy()},ye.prototype.subscribeDataChanging=function(e){this._dataListeners.add(e)},ye.prototype.unsubscribeDataChanging=function(e){u(this._dataListeners,e)},ye.prototype.watchI18nData=function(){var e=this;return this._vm.$watch("$data",function(){for(var t=h(e._dataListeners),o=t.length;o--;)q.nextTick(function(){t[o]&&t[o].$forceUpdate()})},{deep:!0})},ye.prototype.watchLocale=function(e){if(e){if(!this.__VUE_I18N_BRIDGE__)return null;var t=this,o=this._vm;return this.vm.$watch("locale",function(i){o.$set(o,"locale",i),t.__VUE_I18N_BRIDGE__&&e&&(e.locale.value=i),o.$forceUpdate()},{immediate:!0})}if(!this._sync||!this._root)return null;var i=this._vm;return this._root.$i18n.vm.$watch("locale",function(e){i.$set(i,"locale",e),i.$forceUpdate()},{immediate:!0})},ye.prototype.onComponentInstanceCreated=function(e){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(e,this)},ke.vm.get=function(){return this._vm},ke.messages.get=function(){return d(this._getMessages())},ke.dateTimeFormats.get=function(){return d(this._getDateTimeFormats())},ke.numberFormats.get=function(){return d(this._getNumberFormats())},ke.availableLocales.get=function(){return Object.keys(this.messages).sort()},ke.locale.get=function(){return this._vm.locale},ke.locale.set=function(e){this._vm.$set(this._vm,"locale",e)},ke.fallbackLocale.get=function(){return this._vm.fallbackLocale},ke.fallbackLocale.set=function(e){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",e)},ke.formatFallbackMessages.get=function(){return this._formatFallbackMessages},ke.formatFallbackMessages.set=function(e){this._formatFallbackMessages=e},ke.missing.get=function(){return this._missing},ke.missing.set=function(e){this._missing=e},ke.formatter.get=function(){return this._formatter},ke.formatter.set=function(e){this._formatter=e},ke.silentTranslationWarn.get=function(){return this._silentTranslationWarn},ke.silentTranslationWarn.set=function(e){this._silentTranslationWarn=e},ke.silentFallbackWarn.get=function(){return this._silentFallbackWarn},ke.silentFallbackWarn.set=function(e){this._silentFallbackWarn=e},ke.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},ke.preserveDirectiveContent.set=function(e){this._preserveDirectiveContent=e},ke.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},ke.warnHtmlInMessage.set=function(e){var t=this,o=this._warnHtmlInMessage;if(this._warnHtmlInMessage=e,o!==e&&("warn"===e||"error"===e)){var i=this._getMessages();Object.keys(i).forEach(function(e){t._checkLocaleMessage(e,t._warnHtmlInMessage,i[e])})}},ke.postTranslation.get=function(){return this._postTranslation},ke.postTranslation.set=function(e){this._postTranslation=e},ke.sync.get=function(){return this._sync},ke.sync.set=function(e){this._sync=e},ye.prototype._getMessages=function(){return this._vm.messages},ye.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},ye.prototype._getNumberFormats=function(){return this._vm.numberFormats},ye.prototype._warnDefault=function(e,t,o,i,r,n){if(!c(o))return o;if(this._missing){var l=this._missing.apply(null,[e,t,i,r]);if(a(l))return l}if(this._formatFallbackMessages){var s=p.apply(void 0,r);return this._render(t,n,s.params,t)}return t},ye.prototype._isFallbackRoot=function(e){return(this._fallbackRootWithEmptyString?!e:c(e))&&!c(this._root)&&this._fallbackRoot},ye.prototype._isSilentFallbackWarn=function(e){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(e):this._silentFallbackWarn},ye.prototype._isSilentFallback=function(e,t){return this._isSilentFallbackWarn(t)&&(this._isFallbackRoot()||e!==this.fallbackLocale)},ye.prototype._isSilentTranslationWarn=function(e){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(e):this._silentTranslationWarn},ye.prototype._interpolate=function(e,t,o,i,r,n,l){if(!t)return null;var p=this._path.getPathValue(t,o);if(Z(p)||s(p))return p;var d;if(c(p)){if(!s(t))return null;if(d=t[o],!a(d)&&!f(d))return null}else{if(!a(p)&&!f(p))return null;d=p}return a(d)&&(d.indexOf("@:")>=0||d.indexOf("@.")>=0)&&(d=this._link(e,t,d,i,"raw",n,l)),this._render(d,r,n,o)},ye.prototype._link=function(e,t,o,i,r,n,l){var a=o,s=a.match(me);for(var c in s)if(s.hasOwnProperty(c)){var f=s[c],p=f.match(_e),d=p[0],u=p[1],h=f.replace(d,"").replace(xe,"");if(g(l,h))return a;l.push(h);var b=this._interpolate(e,t,h,i,"raw"===r?"string":r,"raw"===r?void 0:n,l);if(this._isFallbackRoot(b)){if(!this._root)throw Error("unexpected error");var m=this._root.$i18n;b=m._translate(m._getMessages(),m.locale,m.fallbackLocale,h,i,r,n)}b=this._warnDefault(e,h,b,i,Z(n)?n:[n],r),this._modifiers.hasOwnProperty(u)?b=this._modifiers[u](b):ve.hasOwnProperty(u)&&(b=ve[u](b)),l.pop(),a=b?a.replace(f,b):a}return a},ye.prototype._createMessageContext=function(e,t,o,i){var r=this,l=Z(e)?e:[],a=n(e)?e:{},s=function(e){return l[e]},c=function(e){return a[e]},f=this._getMessages(),p=this.locale;return{list:s,named:c,values:e,formatter:t,path:o,messages:f,locale:p,linked:function(e){return r._interpolate(p,f[p]||{},e,null,i,void 0,[e])}}},ye.prototype._render=function(e,t,o,i){if(f(e))return e(this._createMessageContext(o,this._formatter||we,i,t));var r=this._formatter.interpolate(e,o,i);return r||(r=we.interpolate(e,o,i)),"string"!==t||a(r)?r:r.join("")},ye.prototype._appendItemToChain=function(e,t,o){var i=!1;return g(e,t)||(i=!0,t&&(i="!"!==t[t.length-1],t=t.replace(/!/g,""),e.push(t),o&&o[t]&&(i=o[t]))),i},ye.prototype._appendLocaleToChain=function(e,t,o){var i,r=t.split("-");do{var n=r.join("-");i=this._appendItemToChain(e,n,o),r.splice(-1,1)}while(r.length&&!0===i);return i},ye.prototype._appendBlockToChain=function(e,t,o){for(var i=!0,r=0;r0;)n[l]=arguments[l+4];if(!e)return"";var a=p.apply(void 0,n);this._escapeParameterHtml&&(a.params=v(a.params));var s=a.locale||t,c=this._translate(o,s,this.fallbackLocale,e,i,"string",a.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(r=this._root).$t.apply(r,[e].concat(n))}return c=this._warnDefault(s,e,c,i,n,"string"),this._postTranslation&&null!==c&&void 0!==c&&(c=this._postTranslation(c,e)),c},ye.prototype.t=function(e){for(var t,o=[],i=arguments.length-1;i-- >0;)o[i]=arguments[i+1];return(t=this)._t.apply(t,[e,this.locale,this._getMessages(),null].concat(o))},ye.prototype._i=function(e,t,o,i,r){var n=this._translate(o,t,this.fallbackLocale,e,i,"raw",r);if(this._isFallbackRoot(n)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(e,t,r)}return this._warnDefault(t,e,n,i,[r],"raw")},ye.prototype.i=function(e,t,o){return e?(a(t)||(t=this.locale),this._i(e,t,this._getMessages(),null,o)):""},ye.prototype._tc=function(e,t,o,i,r){for(var n,l=[],a=arguments.length-5;a-- >0;)l[a]=arguments[a+5];if(!e)return"";void 0===r&&(r=1);var s={count:r,n:r},c=p.apply(void 0,l);return c.params=Object.assign(s,c.params),l=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((n=this)._t.apply(n,[e,t,o,i].concat(l)),r)},ye.prototype.fetchChoice=function(e,t){if(!e||!a(e))return null;var o=e.split("|");return t=this.getChoiceIndex(t,o.length),o[t]?o[t].trim():e},ye.prototype.tc=function(e,t){for(var o,i=[],r=arguments.length-2;r-- >0;)i[r]=arguments[r+2];return(o=this)._tc.apply(o,[e,this.locale,this._getMessages(),null,t].concat(i))},ye.prototype._te=function(e,t,o){for(var i=[],r=arguments.length-3;r-- >0;)i[r]=arguments[r+3];var n=p.apply(void 0,i).locale||t;return this._exist(o[n],e)},ye.prototype.te=function(e,t){return this._te(e,this.locale,this._getMessages(),t)},ye.prototype.getLocaleMessage=function(e){return d(this._vm.messages[e]||{})},ye.prototype.setLocaleMessage=function(e,t){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(e,this._warnHtmlInMessage,t),this._vm.$set(this._vm.messages,e,t)},ye.prototype.mergeLocaleMessage=function(e,t){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(e,this._warnHtmlInMessage,t),this._vm.$set(this._vm.messages,e,m(void 0!==this._vm.messages[e]&&Object.keys(this._vm.messages[e]).length?Object.assign({},this._vm.messages[e]):{},t))},ye.prototype.getDateTimeFormat=function(e){return d(this._vm.dateTimeFormats[e]||{})},ye.prototype.setDateTimeFormat=function(e,t){this._vm.$set(this._vm.dateTimeFormats,e,t),this._clearDateTimeFormat(e,t)},ye.prototype.mergeDateTimeFormat=function(e,t){this._vm.$set(this._vm.dateTimeFormats,e,m(this._vm.dateTimeFormats[e]||{},t)),this._clearDateTimeFormat(e,t)},ye.prototype._clearDateTimeFormat=function(e,t){for(var o in t){var i=e+"__"+o;this._dateTimeFormatters.hasOwnProperty(i)&&delete this._dateTimeFormatters[i]}},ye.prototype._localizeDateTime=function(e,t,o,i,r,n){for(var l=t,a=i[l],s=this._getLocaleChain(t,o),f=0;f0;)t[o]=arguments[o+1];var i=this.locale,r=null,l=null;return 1===t.length?(a(t[0])?r=t[0]:n(t[0])&&(t[0].locale&&(i=t[0].locale),t[0].key&&(r=t[0].key)),l=Object.keys(t[0]).reduce(function(e,o){var i;return g(W,o)?Object.assign({},e,(i={},i[o]=t[0][o],i)):e},null)):2===t.length&&(a(t[0])&&(r=t[0]),a(t[1])&&(i=t[1])),this._d(e,i,r,l)},ye.prototype.getNumberFormat=function(e){return d(this._vm.numberFormats[e]||{})},ye.prototype.setNumberFormat=function(e,t){this._vm.$set(this._vm.numberFormats,e,t),this._clearNumberFormat(e,t)},ye.prototype.mergeNumberFormat=function(e,t){this._vm.$set(this._vm.numberFormats,e,m(this._vm.numberFormats[e]||{},t)),this._clearNumberFormat(e,t)},ye.prototype._clearNumberFormat=function(e,t){for(var o in t){var i=e+"__"+o;this._numberFormatters.hasOwnProperty(i)&&delete this._numberFormatters[i]}},ye.prototype._getNumberFormatter=function(e,t,o,i,r,n){for(var l=t,a=i[l],s=this._getLocaleChain(t,o),f=0;f0;)t[o]=arguments[o+1];var i=this.locale,r=null,l=null;return 1===t.length?a(t[0])?r=t[0]:n(t[0])&&(t[0].locale&&(i=t[0].locale),t[0].key&&(r=t[0].key),l=Object.keys(t[0]).reduce(function(e,o){var i;return g(H,o)?Object.assign({},e,(i={},i[o]=t[0][o],i)):e},null)):2===t.length&&(a(t[0])&&(r=t[0]),a(t[1])&&(i=t[1])),this._n(e,i,r,l)},ye.prototype._ntp=function(e,t,o,i){if(!ye.availabilities.numberFormat)return[];if(!o){return(i?new Intl.NumberFormat(t,i):new Intl.NumberFormat(t)).formatToParts(e)}var r=this._getNumberFormatter(e,t,this.fallbackLocale,this._getNumberFormats(),o,i),n=r&&r.formatToParts(e);if(this._isFallbackRoot(n)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(e,t,o,i)}return n||[]},Object.defineProperties(ye.prototype,ke);var Ee;Object.defineProperty(ye,"availabilities",{get:function(){if(!Ee){var e="undefined"!=typeof Intl;Ee={dateTimeFormat:e&&void 0!==Intl.DateTimeFormat,numberFormat:e&&void 0!==Intl.NumberFormat}}return Ee}}),ye.install=$,ye.version="8.28.2",t.a=ye},function(e,t,o){"use strict";function i(e){o(233)}var r=o(66),n=o(230),l=o(97),a=i,s=l(r.a,n.a,!1,a,null,null);t.a=s.exports},function(e,t,o){"use strict";var i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"app"}},[o("div",{staticClass:"action-right"},[o("el-dropdown",{staticClass:"international",attrs:{trigger:"click"},on:{command:e.handle_set_language}},[o("div",[o("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-setting"},on:{click:function(t){e.dialogVisible=!0}}},[e._v(e._s(e.$t("lang.choose")))])],1),e._v(" "),o("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[o("el-dropdown-item",{attrs:{Enabled:"language==='zh_CN'",command:"zh_CN",divided:""}},[e._v("\n "+e._s(e.$t("lang.zhcn"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='zh_TW'",command:"zh_TW",divided:""}},[e._v("\n "+e._s(e.$t("lang.zhtw"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='en'",command:"en",divided:""}},[e._v("\n "+e._s(e.$t("lang.en"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='es'",command:"es",divided:""}},[e._v("\n "+e._s(e.$t("lang.es"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='ru_RU'",command:"ru_RU",divided:""}},[e._v("\n "+e._s(e.$t("lang.ru"))+"\n ")]),e._v(" "),o("el-dropdown-item",{attrs:{Enabled:"language==='de'",command:"de",divided:""}},[e._v("\n "+e._s(e.$t("lang.de"))+"\n ")])],1)],1)],1),e._v(" "),o("h1",{staticClass:"header"},[e._v("Pixl.js")]),e._v(" "),o("el-row",[o("el-col",{attrs:{span:14}},[o("div",{staticClass:"action-left"},[o("el-button-group",[o("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-upload",disabled:e.btn_disabled()},on:{click:e.on_btn_upload}},[e._v(e._s(e.$t("menu.upload")))])],1),e._v(" "),o("el-button-group",[o("el-button",{attrs:{size:"mini",icon:"el-icon-plus",disabled:e.btn_disabled()},on:{click:e.on_btn_new_folder}},[e._v(e._s(e.$t("menu.newfolder")))]),e._v(" "),o("el-button",{attrs:{size:"mini",type:"danger",icon:"el-icon-delete",disabled:e.btn_disabled()},on:{click:e.on_btn_remove}},[e._v(e._s(e.$t("menu.del")))])],1),e._v(" "),o("el-button-group",[o("el-button",{attrs:{size:"mini",icon:"el-icon-top",disabled:e.btn_disabled()},on:{click:e.on_btn_up}},[e._v(e._s(e.$t("menu.up")))]),e._v(" "),o("el-button",{attrs:{size:"mini",icon:"el-icon-refresh",disabled:!e.connected},on:{click:e.on_btn_refresh}},[e._v(e._s(e.$t("menu.refresh")))])],1)],1)]),e._v(" "),o("el-col",{attrs:{span:10}},[o("div",{staticClass:"action-right"},[e.version?o("el-button",{attrs:{type:"success",size:"mini",icon:"el-icon-warning"}},[e._v(e._s(e.version))]):e._e(),e._v(" "),o("el-button-group",[o("el-button",{attrs:{type:"info",size:"mini",icon:"el-icon-cpu",disabled:!e.connected},on:{click:e.on_btn_enter_dfu}},[e._v(e._s(e.$t("menu.dfu")))]),e._v(" "),o("el-button",{attrs:{type:e.connBtnType,size:"mini",icon:"el-icon-connection"},on:{click:e.on_btn_ble_connect}},[e._v(e._s(e.connBtnText))])],1)],1)])],1),e._v(" "),o("el-row",[o("el-col",{attrs:{span:24}},[o("div",{staticClass:"folder-path"},[o("el-breadcrumb",{attrs:{separator:"/"}},[o("el-breadcrumb-item",[e._v(e._s(e.current_dir))])],1)],1)])],1),e._v(" "),o("div",[o("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.table_loading,expression:"table_loading"}],ref:"multipleTable",staticStyle:{width:"100%"},attrs:{data:e.tableData,"tooltip-effect":"dark","element-loading-text":e.$t("status.loading"),"element-loading-spinner":"el-icon-loading","cell-class-name":"file-cell","default-sort":{prop:"name",order:"ascending"}},on:{"selection-change":e.on_table_selection_change,"sort-change":e.on_table_sort_change}},[o("el-table-column",{attrs:{type:"selection",width:"42"}}),e._v(" "),o("el-table-column",{attrs:{prop:"name",label:e.$t("labels.name"),sortable:"",width:"320"},on:{"sort-method":e.sort_table_row_name},scopedSlots:e._u([{key:"default",fn:function(t){return[o("i",{class:t.row.icon}),e._v(" "),o("el-link",{attrs:{underline:!1},on:{click:function(o){return e.handle_name_click(t.$index,t.row)}}},[e._v("\n "+e._s(t.row.name))])]}}])}),e._v(" "),o("el-table-column",{attrs:{prop:"size",label:e.$t("labels.size"),sortable:"",width:"150"}}),e._v(" "),o("el-table-column",{attrs:{prop:"type",label:e.$t("labels.type"),sortable:"",width:"80"}}),e._v(" "),o("el-table-column",{attrs:{prop:"notes",label:e.$t("labels.remark"),sortable:""}}),e._v(" "),o("el-table-column",{attrs:{label:"",fixed:"right",width:"40"},scopedSlots:e._u([{key:"default",fn:function(t){return[o("el-dropdown",[o("span",{staticClass:"el-dropdown-link"},[o("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),o("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},["DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_remove(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.del")))]):e._e(),e._v(" "),"DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_rename(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.rename")))]):e._e(),e._v(" "),"DRIVE"!=t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_meta(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.prop")))]):e._e(),e._v(" "),"DRIVE"==t.row.type?o("el-dropdown-item",{nativeOn:{click:function(o){return e.on_row_btn_format(t.$index,t.row)}}},[e._v(e._s(e.$t("contxmenu.format")))]):e._e()],1)],1)]}}])})],1)],1),e._v(" "),o("el-dialog",{attrs:{title:e.$t("properties.title"),visible:e.meta_diag_visible,width:"30%"},on:{"update:visible":function(t){e.meta_diag_visible=t}}},[o("el-form",{ref:"form",attrs:{model:e.meta_form,"label-width":"80px"}},[o("el-form-item",{attrs:{label:e.$t("properties.remark")}},[o("el-input",{model:{value:e.meta_form.notes,callback:function(t){e.$set(e.meta_form,"notes",t)},expression:"meta_form.notes"}})],1),e._v(" "),o("el-form-item",{attrs:{label:e.$t("properties.attrib")}},[o("el-checkbox",{attrs:{label:e.$t("properties.hide")},model:{value:e.meta_form.flags.hide,callback:function(t){e.$set(e.meta_form.flags,"hide",t)},expression:"meta_form.flags.hide"}})],1)],1),e._v(" "),o("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:function(t){e.meta_diag_visible=!1}}},[e._v(e._s(e.$t("btn.cancel")))]),e._v(" "),o("el-button",{attrs:{type:"primary"},on:{click:e.on_diag_meta_close}},[e._v(e._s(e.$t("btn.ok")))])],1)],1),e._v(" "),o("el-dialog",{attrs:{title:e.$t("upload.title"),visible:e.upload_diag_visible,width:"30%","before-close":e.on_upload_diag_close},on:{"update:visible":function(t){e.upload_diag_visible=t}}},[o("div",[o("el-upload",{ref:"upload",staticClass:"upload-demo",attrs:{drag:"",action:"https://jsonplaceholder.typicode.com/posts/",multiple:"","http-request":e.on_upload_request,"on-error":e.on_upload_error}},[o("i",{staticClass:"el-icon-upload"}),e._v(" "),o("div",{staticClass:"el-upload__text"},[e._v(e._s(e.$t("upload.drag"))+" "),o("em",[e._v(e._s(e.$t("upload.click")))])]),e._v(" "),o("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[o("ul",[o("li",[e._v(e._s(e.$t("upload.maxsize")))]),e._v(" "),o("li",[e._v(e._s(e.$t("upload.maxname")))])])])])],1),e._v(" "),o("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"})])],1)},r=[],n={render:i,staticRenderFns:r};t.a=n},function(e,t,o){"use strict";var i=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"app"}},[o("router-view")],1)},r=[],n={render:i,staticRenderFns:r};t.a=n},function(e,t,o){"use strict";function i(e,t){for(var o in t)e[o]=t[o];return e}function r(e){try{return decodeURIComponent(e)}catch(e){}return e}function n(e,t,o){void 0===t&&(t={});var i,r=o||l;try{i=r(e||"")}catch(e){i={}}for(var n in t){var a=t[n];i[n]=Array.isArray(a)?a.map(He):He(a)}return i}function l(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var o=e.replace(/\+/g," ").split("="),i=r(o.shift()),n=o.length>0?r(o.join("=")):null;void 0===t[i]?t[i]=n:Array.isArray(t[i])?t[i].push(n):t[i]=[t[i],n]}),t):t}function a(e){var t=e?Object.keys(e).map(function(t){var o=e[t];if(void 0===o)return"";if(null===o)return qe(t);if(Array.isArray(o)){var i=[];return o.forEach(function(e){void 0!==e&&(null===e?i.push(qe(t)):i.push(qe(t)+"="+qe(e)))}),i.join("&")}return qe(t)+"="+qe(o)}).filter(function(e){return e.length>0}).join("&"):null;return t?"?"+t:""}function s(e,t,o,i){var r=i&&i.options.stringifyQuery,n=t.query||{};try{n=c(n)}catch(e){}var l={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:n,params:t.params||{},fullPath:p(t,r),matched:e?f(e):[]};return o&&(l.redirectedFrom=p(o,r)),Object.freeze(l)}function c(e){if(Array.isArray(e))return e.map(c);if(e&&"object"==typeof e){var t={};for(var o in e)t[o]=c(e[o]);return t}return e}function f(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function p(e,t){var o=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;void 0===r&&(r="");var n=t||a;return(o||"/")+n(i)+r}function d(e,t,o){return t===Ze?e===t:!!t&&(e.path&&t.path?e.path.replace(We,"")===t.path.replace(We,"")&&(o||e.hash===t.hash&&u(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(o||e.hash===t.hash&&u(e.query,t.query)&&u(e.params,t.params))))}function u(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var o=Object.keys(e).sort(),i=Object.keys(t).sort();return o.length===i.length&&o.every(function(o,r){var n=e[o];if(i[r]!==o)return!1;var l=t[o];return null==n||null==l?n===l:"object"==typeof n&&"object"==typeof l?u(n,l):String(n)===String(l)})}function h(e,t){return 0===e.path.replace(We,"/").indexOf(t.path.replace(We,"/"))&&(!t.hash||e.hash===t.hash)&&g(e.query,t.query)}function g(e,t){for(var o in t)if(!(o in e))return!1;return!0}function b(e){for(var t=0;t=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(o=e.slice(r+1),e=e.slice(0,r)),{path:e,query:o,hash:t}}function w(e){return e.replace(/\/(?:\s*\/)+/g,"/")}function y(e,t){for(var o,i=[],r=0,n=0,l="",a=t&&t.delimiter||"/";null!=(o=ot.exec(e));){var s=o[0],c=o[1],f=o.index;if(l+=e.slice(n,f),n=f+s.length,c)l+=c[1];else{var p=e[n],d=o[2],u=o[3],h=o[4],g=o[5],b=o[6],m=o[7];l&&(i.push(l),l="");var _=null!=d&&null!=p&&p!==d,x="+"===b||"*"===b,v="?"===b||"*"===b,w=o[2]||a,y=h||g;i.push({name:u||r++,prefix:d||"",delimiter:w,optional:v,repeat:x,partial:_,asterisk:!!m,pattern:y?L(y):m?".*":"[^"+T(w)+"]+?"})}}return n-1&&(r.params[s]=o.params[s]);return r.path=S(l.path,r.params,'named route "'+n+'"'),c(l,r,i)}if(r.path){r.params={};for(var f=0;f-1}function me(e,t){return be(e)&&e._isRouter&&(null==t||e.type===t)}function _e(e,t,o){var i=function(r){r>=e.length?o():e[r]?t(e[r],function(){i(r+1)}):i(r+1)};i(0)}function xe(e){return function(t,o,i){var r=!1,n=0,l=null;ve(e,function(e,t,o,a){if("function"==typeof e&&void 0===e.cid){r=!0,n++;var s,c=ke(function(t){ye(t)&&(t=t.default),e.resolved="function"==typeof t?t:it.extend(t),o.components[a]=t,--n<=0&&i()}),f=ke(function(e){var t="Failed to resolve async component "+a+": "+e;l||(l=be(e)?e:new Error(t),i(l))});try{s=e(c,f)}catch(e){f(e)}if(s)if("function"==typeof s.then)s.then(c,f);else{var p=s.component;p&&"function"==typeof p.then&&p.then(c,f)}}}),r||i()}}function ve(e,t){return we(e.map(function(e){return Object.keys(e.components).map(function(o){return t(e.components[o],e.instances[o],e,o)})}))}function we(e){return Array.prototype.concat.apply([],e)}function ye(e){return e.__esModule||mt&&"Module"===e[Symbol.toStringTag]}function ke(e){var t=!1;return function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];if(!t)return t=!0,e.apply(this,o)}}function Ee(e){if(!e)if(ct){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function ze(e,t){var o,i=Math.max(e.length,t.length);for(o=0;o=0?t.slice(0,o):t)+"#"+e}function Oe(e){ht?se($e(e)):window.location.hash=e}function Me(e){ht?ce($e(e)):window.location.replace($e(e))}function Ne(e,t){return e.push(t),function(){var o=e.indexOf(t);o>-1&&e.splice(o,1)}}function je(e,t,o){var i="hash"===o?"#"+t:t;return e?w(e+"/"+i):i}o.d(t,"a",function(){return Et});var Pe=/[!'()*]/g,Ye=function(e){return"%"+e.charCodeAt(0).toString(16)},Ve=/%2C/g,qe=function(e){return encodeURIComponent(e).replace(Pe,Ye).replace(Ve,",")},He=function(e){return null==e||"object"==typeof e?e:String(e)},We=/\/?$/,Ze=s(null,{path:"/"}),Xe={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,t){var o=t.props,r=t.children,n=t.parent,l=t.data;l.routerView=!0;for(var a=n.$createElement,s=o.name,c=n.$route,f=n._routerViewCache||(n._routerViewCache={}),p=0,d=!1;n&&n._routerRoot!==n;){var u=n.$vnode?n.$vnode.data:{};u.routerView&&p++,u.keepAlive&&n._directInactive&&n._inactive&&(d=!0),n=n.$parent}if(l.routerViewDepth=p,d){var h=f[s],g=h&&h.component;return g?(h.configProps&&m(g,l,h.route,h.configProps),a(g,l,r)):a()}var _=c.matched[p],x=_&&_.components[s];if(!_||!x)return f[s]=null,a();f[s]={component:x},l.registerRouteInstance=function(e,t){var o=_.instances[s];(t&&o!==e||!t&&o===e)&&(_.instances[s]=t)},(l.hook||(l.hook={})).prepatch=function(e,t){_.instances[s]=t.componentInstance},l.hook.init=function(e){e.data.keepAlive&&e.componentInstance&&e.componentInstance!==_.instances[s]&&(_.instances[s]=e.componentInstance),b(c)};var v=_.props&&_.props[s];return v&&(i(f[s],{route:c,configProps:v}),m(x,l,c,v)),a(x,l,r)}},Ge=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},Je=D,Ke=y,Qe=k,et=A,tt=B,ot=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");Je.parse=Ke,Je.compile=Qe,Je.tokensToFunction=et,Je.tokensToRegExp=tt;var it,rt=Object.create(null),nt=[String,Object],lt=[String,Array],at=function(){},st={name:"RouterLink",props:{to:{type:nt,required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:lt,default:"click"}},render:function(e){var t=this,o=this.$router,r=this.$route,n=o.resolve(this.to,r,this.append),l=n.location,a=n.route,c=n.href,f={},p=o.options.linkActiveClass,u=o.options.linkExactActiveClass,g=null==p?"router-link-active":p,b=null==u?"router-link-exact-active":u,m=null==this.activeClass?g:this.activeClass,_=null==this.exactActiveClass?b:this.exactActiveClass,x=a.redirectedFrom?s(null,$(a.redirectedFrom),null,o):a;f[_]=d(r,x,this.exactPath),f[m]=this.exact||this.exactPath?f[_]:h(r,x);var v=f[_]?this.ariaCurrentValue:null,w=function(e){O(e)&&(t.replace?o.replace(l,at):o.push(l,at))},y={click:O};Array.isArray(this.event)?this.event.forEach(function(e){y[e]=w}):y[this.event]=w;var k={class:f},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:c,route:a,navigate:w,isActive:f[m],isExactActive:f[_]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)k.on=y,k.attrs={href:c,"aria-current":v};else{var z=M(this.$slots.default);if(z){z.isStatic=!1;var A=z.data=i({},z.data);A.on=A.on||{};for(var T in A.on){var L=A.on[T];T in y&&(A.on[T]=Array.isArray(L)?L:[L])}for(var I in y)I in A.on?A.on[I].push(y[I]):A.on[I]=w;var C=z.data.attrs=i({},z.data.attrs);C.href=c,C["aria-current"]=v}else k.on=y}return e(this.tag,k,this.$slots.default)}},ct="undefined"!=typeof window,ft=ct&&window.performance&&window.performance.now?window.performance:Date,pt=Z(),dt=Object.create(null),ut=/^#\d/,ht=ct&&function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"function"==typeof window.history.pushState)}(),gt={redirected:2,aborted:4,cancelled:8,duplicated:16},bt=["params","query","hash"],mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,_t=function(e,t){this.router=e,this.base=Ee(t),this.current=Ze,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};_t.prototype.listen=function(e){this.cb=e},_t.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},_t.prototype.onError=function(e){this.errorCbs.push(e)},_t.prototype.transitionTo=function(e,t,o){var i,r=this;try{i=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach(function(t){t(e)}),e}var n=this.current;this.confirmTransition(i,function(){r.updateRoute(i),t&&t(i),r.ensureURL(),r.router.afterHooks.forEach(function(e){e&&e(i,n)}),r.ready||(r.ready=!0,r.readyCbs.forEach(function(e){e(i)}))},function(e){o&&o(e),e&&!r.ready&&(me(e,gt.redirected)&&n===Ze||(r.ready=!0,r.readyErrorCbs.forEach(function(t){t(e)})))})},_t.prototype.confirmTransition=function(e,t,o){var i=this,r=this.current;this.pending=e;var n=function(e){!me(e)&&be(e)&&(i.errorCbs.length?i.errorCbs.forEach(function(t){t(e)}):console.error(e)),o&&o(e)},l=e.matched.length-1,a=r.matched.length-1;if(d(e,r)&&l===a&&e.matched[l]===r.matched[a])return this.ensureURL(),e.hash&&K(this.router,r,e,!1),n(pe(r,e));var s=ze(this.current.matched,e.matched),c=s.updated,f=s.deactivated,p=s.activated,u=[].concat(Le(f),this.router.beforeHooks,Ie(c),p.map(function(e){return e.beforeEnter}),xe(p)),h=function(t,o){if(i.pending!==e)return n(de(r,e));try{t(e,r,function(t){!1===t?(i.ensureURL(!0),n(ue(r,e))):be(t)?(i.ensureURL(!0),n(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(n(fe(r,e)),"object"==typeof t&&t.replace?i.replace(t):i.push(t)):o(t)})}catch(e){n(e)}};_e(u,h,function(){_e(Fe(p).concat(i.router.resolveHooks),h,function(){if(i.pending!==e)return n(de(r,e));i.pending=null,t(e),i.router.app&&i.router.app.$nextTick(function(){b(e)})})})},_t.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)},_t.prototype.setupListeners=function(){},_t.prototype.teardown=function(){this.listeners.forEach(function(e){e()}),this.listeners=[],this.current=Ze,this.pending=null};var xt=function(e){function t(t,o){e.call(this,t,o),this._startLocation=Re(this.base)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,i=ht&&o;i&&this.listeners.push(J());var r=function(){var o=e.current,r=Re(e.base);e.current===Ze&&r===e._startLocation||e.transitionTo(r,function(e){i&&K(t,e,o,!0)})};window.addEventListener("popstate",r),this.listeners.push(function(){window.removeEventListener("popstate",r)})}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){se(w(i.base+e.fullPath)),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){ce(w(i.base+e.fullPath)),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.ensureURL=function(e){if(Re(this.base)!==this.current.fullPath){var t=w(this.base+this.current.fullPath);e?se(t):ce(t)}},t.prototype.getCurrentLocation=function(){return Re(this.base)},t}(_t),vt=function(e){function t(t,o,i){e.call(this,t,o),i&&Be(this.base)||De()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,o=t.options.scrollBehavior,i=ht&&o;i&&this.listeners.push(J());var r=function(){var t=e.current;De()&&e.transitionTo(Se(),function(o){i&&K(e.router,o,t,!0),ht||Me(o.fullPath)})},n=ht?"popstate":"hashchange";window.addEventListener(n,r),this.listeners.push(function(){window.removeEventListener(n,r)})}},t.prototype.push=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){Oe(e.fullPath),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this,r=this,n=r.current;this.transitionTo(e,function(e){Me(e.fullPath),K(i.router,e,n,!1),t&&t(e)},o)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Se()!==t&&(e?Oe(t):Me(t))},t.prototype.getCurrentLocation=function(){return Se()},t}(_t),wt=function(e){function t(t,o){e.call(this,t,o),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,o){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)},o)},t.prototype.replace=function(e,t,o){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)},o)},t.prototype.go=function(e){var t=this,o=this.index+e;if(!(o<0||o>=this.stack.length)){var i=this.stack[o];this.confirmTransition(i,function(){var e=t.current;t.index=o,t.updateRoute(i),t.router.afterHooks.forEach(function(t){t&&t(i,e)})},function(e){me(e,gt.duplicated)&&(t.index=o)})}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(_t),yt=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=q(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ht&&!1!==e.fallback,this.fallback&&(t="hash"),ct||(t="abstract"),this.mode=t,t){case"history":this.history=new xt(this,e.base);break;case"hash":this.history=new vt(this,e.base,this.fallback);break;case"abstract":this.history=new wt(this,e.base)}},kt={currentRoute:{configurable:!0}};yt.prototype.match=function(e,t,o){return this.matcher.match(e,t,o)},kt.currentRoute.get=function(){return this.history&&this.history.current},yt.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",function(){var o=t.apps.indexOf(e);o>-1&&t.apps.splice(o,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()}),!this.app){this.app=e;var o=this.history;if(o instanceof xt||o instanceof vt){var i=function(e){var i=o.current,r=t.options.scrollBehavior;ht&&r&&"fullPath"in e&&K(t,e,i,!1)},r=function(e){o.setupListeners(),i(e)};o.transitionTo(o.getCurrentLocation(),r,r)}o.listen(function(e){t.apps.forEach(function(t){t._route=e})})}},yt.prototype.beforeEach=function(e){return Ne(this.beforeHooks,e)},yt.prototype.beforeResolve=function(e){return Ne(this.resolveHooks,e)},yt.prototype.afterEach=function(e){return Ne(this.afterHooks,e)},yt.prototype.onReady=function(e,t){this.history.onReady(e,t)},yt.prototype.onError=function(e){this.history.onError(e)},yt.prototype.push=function(e,t,o){var i=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){i.history.push(e,t,o)});this.history.push(e,t,o)},yt.prototype.replace=function(e,t,o){var i=this;if(!t&&!o&&"undefined"!=typeof Promise)return new Promise(function(t,o){i.history.replace(e,t,o)});this.history.replace(e,t,o)},yt.prototype.go=function(e){this.history.go(e)},yt.prototype.back=function(){this.go(-1)},yt.prototype.forward=function(){this.go(1)},yt.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},yt.prototype.resolve=function(e,t,o){t=t||this.history.current;var i=$(e,t,o,this),r=this.match(i,t),n=r.redirectedFrom||r.fullPath;return{location:i,route:r,href:je(this.history.base,n,this.mode),normalizedTo:i,resolved:r}},yt.prototype.getRoutes=function(){return this.matcher.getRoutes()},yt.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==Ze&&this.history.transitionTo(this.history.getCurrentLocation())},yt.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==Ze&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(yt.prototype,kt);var Et=yt;yt.install=N,yt.version="3.6.5",yt.isNavigationFailure=me,yt.NavigationFailureType=gt,yt.START_LOCATION=Ze,ct&&window.Vue&&window.Vue.use(yt)},function(e,t,o){var i=o(185);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);o(234)("29109a0a",i,!0,{})},function(e,t,o){function i(e){for(var t=0;to.parts.length&&(i.parts.length=o.parts.length)}else{for(var l=[],r=0;r -1) {\n //return 'en'\n return locale;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return 'zh_TW';\n}\nvar i18n = new __WEBPACK_IMPORTED_MODULE_4_vue_i18n__[\"a\" /* default */]({\n // set locale\n // options: en | zh | es\n locale: getLanguage(),\n // set locale messages\n messages: messages\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (i18n);\n\n/***/ }),\n/* 64 */,\n/* 65 */,\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lib_pixl_ble__ = __webpack_require__(67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__lib_event__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__ = __webpack_require__(128);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n data: function data() {\n return {\n tableData: [],\n connBtnType: \"\",\n connBtnText: \"\" + this.$t(\"conn.connect\"),\n version: \"\",\n connected: false,\n table_loading: false,\n current_dir: \"\",\n upload_diag_visible: false,\n table_selection: [],\n language: \"zh_CN\",\n meta_diag_visible: false,\n meta_form: {\n notes: \"\",\n flags: {\n hide: false\n },\n amiibo: {\n head: 0,\n tail: 0\n },\n name: \"\",\n row: null\n }\n };\n },\n\n\n methods: {\n on_btn_ble_connect: function on_btn_ble_connect() {\n if (this.connected) {\n __WEBPACK_IMPORTED_MODULE_0__lib_pixl_ble__[\"a\" /* disconnect */]();\n this.connBtnText = \"\" + this.$t(\"conn.connect\");\n } else {\n this.connBtnText = \"\" + this.$t(\"conn.connecting\");\n __WEBPACK_IMPORTED_MODULE_0__lib_pixl_ble__[\"b\" /* connect */]();\n }\n },\n on_ble_connected: function on_ble_connected() {\n var _this = this;\n\n this.connBtnText = \"\" + this.$t(\"conn.disconnect\");\n this.connBtnType = \"success\";\n this.connected = true;\n this.$notify({\n title: 'Pixl.js',\n type: 'success',\n message: \"\" + this.$t(\"conn.consuccess\"),\n duration: 5000\n });\n\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"a\" /* get_version */]().then(function (res) {\n console.log(\"get version result\", res);\n _this.version = \"\" + _this.$t(\"status.connected\") + res.data.ver;\n\n if (res.data.ver.startsWith(\"2.0.0\")) {\n _this.$alert(\"\" + _this.$t(\"oldfirm.message\"), \"\" + _this.$t(\"oldfirm.title\"), {\n confirmButtonText: \"\" + _this.$t(\"btn.ok\"),\n callback: function callback(action) {}\n });\n }\n\n var v = res.data;\n\n LA.track(\"pixl_device_connect\", { \"version\": v.ver, \"mac\": v.ble_addr });\n\n _this.reload_drive();\n });\n },\n on_ble_disconnected: function on_ble_disconnected() {\n this.connBtnType = \"\";\n this.connected = false;\n this.connBtnText = \"\" + this.$t(\"conn.connect\");\n this.version = \"\";\n this.table_loading = false;\n this.tableData = [];\n this.current_dir = \"\";\n this.$notify({\n title: 'Pixl.js',\n type: 'error',\n message: \"\" + this.$t(\"conn.disconnected\"),\n duration: 5000\n });\n },\n on_ble_connect_error: function on_ble_connect_error() {\n this.connBtnType = \"\";\n this.connBtnText = \"\" + this.$t(\"conn.connect\");\n this.version = \"\";\n this.table_loading = false;\n this.tableData = [];\n this.current_dir = \"\";\n this.$notify({\n title: 'Pixl.js',\n type: 'error',\n message: \"\" + this.$t(\"conn.connfailed\"),\n duration: 5000\n });\n },\n on_btn_enter_dfu: function on_btn_enter_dfu() {\n var _this2 = this;\n\n this.$confirm(\"\" + this.$t(\"dfumode.startconfirm\"), \"\" + this.$t(\"dfumode.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n type: 'warning'\n }).then(function () {\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"b\" /* enter_dfu */]().then(function (data) {\n\n _this2.$confirm(\"\" + _this2.$t(\"dfumode.updateconfirm\"), \"\" + _this2.$t(\"dfumode.updatetitle\"), {\n confirmButtonText: \"\" + _this2.$t(\"btn.ok\"),\n cancelButtonText: \"\" + _this2.$t(\"btn.cancel\"),\n type: 'success'\n }).then(function (_) {\n document.location.href = \"https://thegecko.github.io/web-bluetooth-dfu/examples/web.html\";\n });\n });\n });\n },\n on_btn_up: function on_btn_up() {\n\n var drive = this.current_dir.substring(0, 2); //E:\n var path = this.current_dir.substring(2);\n\n if (path == '/') {\n // root\n this.current_dir = \"\";\n this.reload_drive();\n } else {\n var idx = path.lastIndexOf('/');\n if (idx == 0) {\n this.current_dir = drive + \"/\";\n } else {\n this.current_dir = drive + path.substring(0, idx);\n }\n\n this.reload_folder();\n }\n },\n on_btn_refresh: function on_btn_refresh() {\n if (this.current_dir == '') {\n this.reload_drive();\n } else {\n this.reload_folder();\n }\n },\n on_btn_new_folder: function on_btn_new_folder() {\n var _this3 = this;\n\n var thiz = this;\n this.$prompt(\"\" + this.$t(\"newfolder.message\"), \"\" + this.$t(\"newfolder.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n inputValue: \"\"\n }).then(function (_ref) {\n var value = _ref.value;\n\n if (value == \"\") {\n return;\n }\n thiz.table_loading = true;\n var path = _this3.append_segment(_this3.current_dir, value);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"c\" /* vfs_create_folder */](path).then(function (res) {\n thiz.table_loading = false;\n if (res.status == 0) {\n _this3.reload_folder();\n } else {\n _this3.$message({\n type: 'error',\n message: \"\" + _this3.$t(\"newfolder.newfoldererr\") + \" [\" + res.status + \"]\"\n });\n }\n }).catch(function (e) {\n thiz.table_loading = false;\n _this3.$message({\n type: 'error',\n message: \"\" + _this3.$t(\"newfolder.newfoldererr\") + \" [\" + e.message + \"]\"\n });\n });\n }).catch(function () {\n //ignore \n });\n },\n on_btn_upload: function on_btn_upload() {\n this.upload_diag_visible = true;\n },\n on_btn_remove: function on_btn_remove() {\n var _this4 = this;\n\n if (this.table_selection.length == 0) {\n return;\n }\n var thiz = this;\n var dir = this.current_dir;\n var proceed_count = 0;\n var total_count = this.table_selection.length;\n thiz.table_loading = true;\n this.table_selection.forEach(function (v) {\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"d\" /* vfs_remove */](_this4.append_segment(dir, v.name)).then(function (_) {\n _this4.delete_table_row_by_name(v.name);\n proceed_count++;\n if (proceed_count == total_count) {\n thiz.table_loading = false;\n }\n }).catch(function (e) {\n _this4.$message({\n type: 'error',\n message: v.name + (\"\" + _this4.$t(\"del.error\")) + e\n });\n proceed_count++;\n if (proceed_count == total_count) {\n thiz.table_loading = false;\n }\n });\n }, this);\n },\n on_upload_diag_close: function on_upload_diag_close(done) {\n var _this5 = this;\n\n this.$confirm(\"\" + this.$t(\"upload.closemessage\"), \"\" + this.$t(\"upload.closetitle\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\")\n }).then(function (_) {\n _this5.$refs.upload.clearFiles();\n _this5.reload_folder();\n done();\n }).catch(function (_) {});\n },\n on_upload_request: function on_upload_request(options) {\n console.log(options);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"e\" /* vfs_helper_write_file */](this.append_segment(this.current_dir, options.file.name), options.file, function (p) {\n options.onProgress({ percent: p.written_bytes / p.total_bytes * 100 });\n }, function (_) {\n options.onSuccess();\n }, function (e) {\n options.onError(e);\n });\n },\n on_upload_error: function on_upload_error(err, file, filelist) {\n this.$message({\n type: 'error',\n message: file.name + (\"\" + this.$t(\"upload.errupload\")) + err\n });\n },\n on_row_btn_format: function on_row_btn_format(index, row) {\n var _this6 = this;\n\n var thiz = this;\n this.$confirm(\"\" + this.$t(\"format.messrow1a\") + row.name + (\"\" + this.$t(\"format.messrow1b\")) + \"\\n\" + (\"\" + this.$t(\"format.messrow2\")) + '\\n' + (\"\" + this.$t(\"format.messrow3\")), \"\" + this.$t(\"format.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n type: 'warning'\n }).then(function () {\n thiz.table_loading = true;\n var path = row.name.substr(0, 1);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"f\" /* vfs_drive_format */](path).then(function (data) {\n _this6.$message({\n type: 'success',\n message: row.name + (\"\" + _this6.$t(\"format.formatok\"))\n });\n thiz.table_loading = false;\n _this6.reload_drive();\n }).catch(function (e) {\n _this6.$message({\n type: 'error',\n message: row.name + (\"\" + _this6.$t(\"format.formaterr\")) + err\n });\n thiz.table_loading = false;\n });\n });\n },\n on_row_btn_remove: function on_row_btn_remove(index, row) {\n var _this7 = this;\n\n var thiz = this;\n this.$confirm(\"\" + this.$t(\"del.message\") + row.name + (\"\" + this.$t(\"del.messageend\")), \"\" + this.$t(\"del.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n type: 'warning'\n }).then(function () {\n thiz.table_loading = true;\n var path = _this7.append_segment(_this7.current_dir, row.name);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"d\" /* vfs_remove */](path).then(function (data) {\n thiz.table_loading = false;\n if (data.status == 0) {\n _this7.$message({\n type: 'success',\n message: \"\" + _this7.$t(\"del.deleteok\")\n });\n\n _this7.reload_folder();\n } else {\n _this7.$message({\n type: 'error',\n message: row.name + (\"\" + _this7.$t(\"del.error\")) + \"[\" + data.status + \"]\"\n });\n }\n }).catch(function (e) {\n _this7.$message({\n type: 'error',\n message: row.name + (\"\" + _this7.$t(\"del.error\")) + \"[\" + err + \"]\"\n });\n thiz.table_loading = false;\n });\n });\n },\n on_row_btn_notes: function on_row_btn_notes(index, row) {\n var _this8 = this;\n\n var thiz = this;\n this.$prompt(\"\" + this.$t(\"properties.entermsg\"), \"\" + this.$t(\"properties.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n inputValue: row.notes\n }).then(function (_ref2) {\n var value = _ref2.value;\n\n var meta = {\n notes: value\n };\n\n var path = _this8.append_segment(_this8.current_dir, row.name);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"g\" /* vfs_update_meta */](path, meta).then(function (res) {\n if (res.status == 0) {\n row.notes = value;\n } else {\n _this8.$message({\n type: 'error',\n message: \"\" + _this8.$t(\"properties.errupdate\")\n });\n }\n }).catch(function (e) {\n _this8.$message({\n type: 'error',\n message: e.message\n });\n });\n }).catch(function () {\n //ignore \n });\n },\n on_row_btn_rename: function on_row_btn_rename(index, row) {\n var _this9 = this;\n\n var thiz = this;\n this.$prompt(\"\" + this.$t(\"rename.message\"), \"\" + this.$t(\"rename.title\"), {\n confirmButtonText: \"\" + this.$t(\"btn.ok\"),\n cancelButtonText: \"\" + this.$t(\"btn.cancel\"),\n inputValue: row.name\n }).then(function (_ref3) {\n var value = _ref3.value;\n\n if (value == row.name) {\n return;\n }\n thiz.table_loading = true;\n var path_old = _this9.append_segment(_this9.current_dir, row.name);\n var path_new = _this9.append_segment(_this9.current_dir, value);\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"h\" /* vfs_rename */](path_old, path_new).then(function (res) {\n thiz.table_loading = false;\n if (res.status == 0) {\n row.name = value;\n } else {\n _this9.$message({\n type: 'error',\n message: \"\" + _this9.$t(\"rename.errrename\") + \" [\" + res.status + \"]\"\n });\n }\n }).catch(function (e) {\n thiz.table_loading = false;\n _this9.$message({\n type: 'error',\n message: \"\" + _this9.$t(\"rename.errrename\") + \" [\" + e.message + \"]\"\n });\n });\n }).catch(function () {\n //ignore \n });\n },\n on_row_btn_meta: function on_row_btn_meta(index, row) {\n this.meta_form.name = row.name;\n this.meta_form.notes = row.notes;\n this.meta_form.flags = row.flags;\n this.meta_form.amiibo = row.amiibo;\n this.meta_form.row = row;\n this.meta_diag_visible = true;\n },\n on_diag_meta_close: function on_diag_meta_close() {\n var _this10 = this;\n\n var meta = {\n notes: this.meta_form.notes,\n flags: this.meta_form.flags,\n amiibo: this.meta_form.amiibo\n };\n this.meta_diag_visible = false;\n var path = this.append_segment(this.current_dir, this.meta_form.name);\n var meta_form = this.meta_form;\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"g\" /* vfs_update_meta */](path, meta).then(function (res) {\n if (res.status == 0) {\n meta_form.row.notes = meta_form.notes;\n meta_form.row.flags = meta_form.flags;\n meta_form.row.amiibo = meta_form.amiibo;\n } else {\n _this10.$message({\n type: 'error',\n message: \"\" + _this10.$t(\"properties.errupdate\")\n });\n }\n }).catch(function (e) {\n _this10.$message({\n type: 'error',\n message: e.message\n });\n });\n },\n on_table_selection_change: function on_table_selection_change(selected) {\n this.table_selection = selected;\n },\n on_table_sort_change: function on_table_sort_change(column, prop, order) {\n console.log(\"sort change: \", column, prop, order);\n },\n sort_table_row_name: function sort_table_row_name(a, b) {\n console.log(a, b); //not working\n return a < b ? 1 : -1;\n },\n handle_name_click: function handle_name_click(index, row) {\n if (row.type == \"DRIVE\") {\n this.current_dir = row.name.substr(0, 3);\n this.reload_folder();\n } else if (row.type == \"DIR\") {\n if (this.current_dir.charAt(this.current_dir.length - 1) != '/') {\n this.current_dir = this.current_dir + \"/\";\n }\n this.current_dir = this.current_dir + row.name;\n this.reload_folder();\n } else {\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"i\" /* vfs_helper_read_file */](this.append_segment(this.current_dir, row.name), function (_) {\n var url = window.URL.createObjectURL(new Blob([_], { type: 'application/octet-stream' }));\n // window.open(url);\n var downloadLink = document.createElement(\"a\");\n downloadLink.style.display = 'none';\n downloadLink.href = url;\n downloadLink.download = row.name;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n window.URL.revokeObjectURL(url);\n }, function (_) {}, function (_) {});\n }\n },\n reload_drive: function reload_drive() {\n var _this11 = this;\n\n this.table_loading = true;\n var thiz = this;\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"j\" /* vfs_get_drive_list */]().then(function (res) {\n console.log(res);\n var data = res.data;\n var _table_data = [];\n for (var i in data) {\n var drive = data[i];\n var row = {\n name: drive.label + \":/ [\" + drive.name + \"]\",\n size: drive.status == 0 ? thiz.format_size(drive.used_size) + \"/\" + thiz.format_size(drive.total_size) : \"\" + _this11.$t(\"drive.message\") + drive.status + (\"\" + _this11.$t(\"drive.messageend\")),\n type: \"DRIVE\",\n icon: \"el-icon-box\",\n notes: \"\"\n };\n _table_data.push(row);\n }\n thiz.tableData = _table_data;\n thiz.table_loading = false;\n });\n },\n reload_folder: function reload_folder() {\n this.table_loading = true;\n var thiz = this;\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"k\" /* vfs_read_folder */](this.current_dir).then(function (h) {\n thiz.table_loading = false;\n console.log(h);\n\n if (h.status == 0) {\n var _table_data = [];\n for (var i in h.data) {\n var file = h.data[i];\n\n var row = {\n name: file.name,\n size: thiz.format_size(file.size),\n type: file.type == 0 ? \"REG\" : \"DIR\",\n icon: file.type == 0 ? \"el-icon-document\" : \"el-icon-folder\",\n notes: file.meta.notes,\n flags: file.meta.flags,\n amiibo: file.meta.amiibo\n };\n\n _table_data.push(row);\n }\n thiz.tableData = _table_data;\n }\n });\n },\n format_size: function format_size(size) {\n if (typeof size == 'number') {\n if (size < 1024) {\n return size + \" B\";\n } else if (size < 1024 * 1024) {\n return (size / 1024).toFixed(2) + \" KB\";\n } else {\n return (size / 1024 / 1024).toFixed(2) + \" MB\";\n }\n } else {\n return size;\n }\n },\n btn_disabled: function btn_disabled() {\n return !this.connected || this.current_dir == '';\n },\n append_segment: function append_segment(dir, seg) {\n var drive = dir.substring(0, 2); //E:\n var path = dir.substring(2);\n if (path == '/') {\n return dir + seg;\n } else {\n return dir + '/' + seg;\n }\n },\n delete_table_row_by_name: function delete_table_row_by_name(name) {\n for (var i = 0; i < this.tableData.length; i++) {\n if (this.tableData[i].name == name) {\n this.tableData.splice(i, 1);\n return;\n }\n }\n },\n handle_set_language: function handle_set_language(lang) {\n var _this12 = this;\n\n this.$i18n.locale = lang;\n this.$cookie.set(\"lang\", lang, 60 * 60 * 24 * 365);\n if (this.connected) {\n this.connBtnText = \"\" + this.$t(\"conn.disconnect\");\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"a\" /* get_version */]().then(function (res) {\n console.log(\"get version result\", res);\n _this12.version = \"\" + _this12.$t(\"status.connected\") + res.data.ver;\n });\n } else {\n this.connBtnText = \"\" + this.$t(\"conn.connect\");\n }\n this.$message({\n message: \"\" + this.$t(\"lang.changeok\"),\n type: 'success'\n });\n }\n }, mounted: function mounted() {\n var dispatcher = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__lib_event__[\"a\" /* sharedEventDispatcher */])();\n dispatcher.addListener(\"ble_connected\", this.on_ble_connected);\n dispatcher.addListener(\"ble_disconnected\", this.on_ble_disconnected);\n dispatcher.addListener(\"ble_connect_error\", this.on_ble_connect_error);\n\n __WEBPACK_IMPORTED_MODULE_2__lib_pixl_proto__[\"l\" /* init */]();\n\n var lang = this.$cookie.get(\"lang\");\n if (!lang) {\n lang = \"zh_CN\";\n }\n\n this.language = lang;\n this.$i18n.locale = lang;\n this.connBtnText = \"\" + this.$t(\"conn.connect\");\n }\n});\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = connect;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = disconnect;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = tx_data;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__event__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_bytebuffer__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_bytebuffer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_bytebuffer__);\n\n\n\nvar NUS_SERVICE_UUID = \"6e400001-b5a3-f393-e0a9-e50e24dcca9e\";\nvar NUS_CHAR_TX_UUID = \"6e400002-b5a3-f393-e0a9-e50e24dcca9e\";\nvar NUS_CHAR_RX_UUID = \"6e400003-b5a3-f393-e0a9-e50e24dcca9e\";\n\nvar nus_service;\nvar nus_char_rx;\nvar nus_char_tx;\n\nvar bluetoothDevice;\n\nfunction connect() {\n return navigator.bluetooth.requestDevice({\n filters: [{ services: [NUS_SERVICE_UUID] }],\n optionalServices: [NUS_SERVICE_UUID]\n }).then(function (device) {\n bluetoothDevice = device;\n console.log(device);\n console.log('Connecting to GATT Server...');\n device.addEventListener('gattserverdisconnected', onDeviceDisconnected);\n return device.gatt.connect();\n }).then(function (server) {\n console.log('Getting Services...');\n return server.getPrimaryServices();\n }).then(function (services) {\n console.log('Getting Characteristics...');\n services.forEach(function (service) {\n if (service.uuid == NUS_SERVICE_UUID) {\n nus_service = service;\n console.log('> found nus Service: ' + service.uuid);\n }\n });\n return nus_service.getCharacteristics();\n }).then(function (characteristics) {\n characteristics.forEach(function (characteristic) {\n console.log('>> Characteristic: ' + characteristic.uuid + ' ' + getSupportedProperties(characteristic));\n if (characteristic.uuid == NUS_CHAR_TX_UUID) {\n nus_char_tx = characteristic;\n } else if (characteristic.uuid == NUS_CHAR_RX_UUID) {\n nus_char_rx = characteristic;\n characteristic.addEventListener('characteristicvaluechanged', onRxDataReceived);\n characteristic.startNotifications();\n }\n });\n console.log(\"connected!\");\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__event__[\"a\" /* sharedEventDispatcher */])().emit(\"ble_connected\");\n }).catch(function (error) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__event__[\"a\" /* sharedEventDispatcher */])().emit(\"ble_connect_error\");\n });\n}\n\nfunction disconnect() {\n if (bluetoothDevice && bluetoothDevice.gatt.connected) {\n bluetoothDevice.gatt.disconnect();\n bluetoothDevice = null;\n }\n}\n\nfunction tx_data(buff) {\n console.log(\"tx data:\", __WEBPACK_IMPORTED_MODULE_1_bytebuffer__[\"wrap\"](buff).toDebug());\n return nus_char_tx.writeValue(buff);\n}\n\n/* Utils */\n\nfunction onRxDataReceived(event) {\n console.log(\"rx data:\", __WEBPACK_IMPORTED_MODULE_1_bytebuffer__[\"wrap\"](event.target.value.buffer).toDebug());\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__event__[\"a\" /* sharedEventDispatcher */])().emit(\"ble_rx_data\", event.target.value.buffer);\n}\n\nfunction onDeviceDisconnected(event) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__event__[\"a\" /* sharedEventDispatcher */])().emit(\"ble_disconnected\");\n}\n\nfunction getSupportedProperties(characteristic) {\n var supportedProperties = [];\n for (var p in characteristic.properties) {\n if (characteristic.properties[p] === true) {\n supportedProperties.push(p.toUpperCase());\n }\n }\n return '[' + supportedProperties.join(', ') + ']';\n}\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n Copyright 2013-2014 Daniel Wirtz \r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license bytebuffer.js (c) 2015 Daniel Wirtz \r\n * Backing buffer: ArrayBuffer, Accessor: Uint8Array\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bytebuffer.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (true)\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(210)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module['exports'] = (function() {\r\n var Long; try { Long = require(\"long\"); } catch (e) {}\r\n return factory(Long);\r\n })();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"ByteBuffer\"] = factory(global[\"dcodeIO\"][\"Long\"]);\r\n\r\n})(this, function(Long) {\r\n \"use strict\";\r\n\r\n /**\r\n * Constructs a new ByteBuffer.\r\n * @class The swiss army knife for binary data in JavaScript.\r\n * @exports ByteBuffer\r\n * @constructor\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @expose\r\n */\r\n var ByteBuffer = function(capacity, littleEndian, noAssert) {\r\n if (typeof capacity === 'undefined')\r\n capacity = ByteBuffer.DEFAULT_CAPACITY;\r\n if (typeof littleEndian === 'undefined')\r\n littleEndian = ByteBuffer.DEFAULT_ENDIAN;\r\n if (typeof noAssert === 'undefined')\r\n noAssert = ByteBuffer.DEFAULT_NOASSERT;\r\n if (!noAssert) {\r\n capacity = capacity | 0;\r\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity\");\r\n littleEndian = !!littleEndian;\r\n noAssert = !!noAssert;\r\n }\r\n\r\n /**\r\n * Backing ArrayBuffer.\r\n * @type {!ArrayBuffer}\r\n * @expose\r\n */\r\n this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity);\r\n\r\n /**\r\n * Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`.\r\n * @type {?Uint8Array}\r\n * @expose\r\n */\r\n this.view = capacity === 0 ? null : new Uint8Array(this.buffer);\r\n\r\n /**\r\n * Absolute read/write offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.offset = 0;\r\n\r\n /**\r\n * Marked offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#mark\r\n * @see ByteBuffer#reset\r\n */\r\n this.markedOffset = -1;\r\n\r\n /**\r\n * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.limit = capacity;\r\n\r\n /**\r\n * Whether to use little endian byte order, defaults to `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.littleEndian = littleEndian;\r\n\r\n /**\r\n * Whether to skip assertions of offsets and values, defaults to `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.noAssert = noAssert;\r\n };\r\n\r\n /**\r\n * ByteBuffer version.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.VERSION = \"5.0.1\";\r\n\r\n /**\r\n * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.LITTLE_ENDIAN = true;\r\n\r\n /**\r\n * Big endian constant that can be used instead of its boolean value. Evaluates to `false`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.BIG_ENDIAN = false;\r\n\r\n /**\r\n * Default initial capacity of `16`.\r\n * @type {number}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_CAPACITY = 16;\r\n\r\n /**\r\n * Default endianess of `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;\r\n\r\n /**\r\n * Default no assertions flag of `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_NOASSERT = false;\r\n\r\n /**\r\n * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded\r\n * and int64 support is not available.\r\n * @type {?Long}\r\n * @const\r\n * @see https://github.com/dcodeIO/long.js\r\n * @expose\r\n */\r\n ByteBuffer.Long = Long || null;\r\n\r\n /**\r\n * @alias ByteBuffer.prototype\r\n * @inner\r\n */\r\n var ByteBufferPrototype = ByteBuffer.prototype;\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a ByteBuffer or not.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n * @private\r\n */\r\n ByteBufferPrototype.__isByteBuffer__;\r\n\r\n Object.defineProperty(ByteBufferPrototype, \"__isByteBuffer__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n // helpers\r\n\r\n /**\r\n * @type {!ArrayBuffer}\r\n * @inner\r\n */\r\n var EMPTY_BUFFER = new ArrayBuffer(0);\r\n\r\n /**\r\n * String.fromCharCode reference for compile-time renaming.\r\n * @type {function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Creates a source function for a string.\r\n * @param {string} s String to read from\r\n * @returns {function():number|null} Source function returning the next char code respectively `null` if there are\r\n * no more characters left.\r\n * @throws {TypeError} If the argument is invalid\r\n * @inner\r\n */\r\n function stringSource(s) {\r\n var i=0; return function() {\r\n return i < s.length ? s.charCodeAt(i++) : null;\r\n };\r\n }\r\n\r\n /**\r\n * Creates a destination function for a string.\r\n * @returns {function(number=):undefined|string} Destination function successively called with the next char code.\r\n * Returns the final string when called without arguments.\r\n * @inner\r\n */\r\n function stringDestination() {\r\n var cs = [], ps = []; return function() {\r\n if (arguments.length === 0)\r\n return ps.join('')+stringFromCharCode.apply(String, cs);\r\n if (cs.length + arguments.length > 1024)\r\n ps.push(stringFromCharCode.apply(String, cs)),\r\n cs.length = 0;\r\n Array.prototype.push.apply(cs, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Gets the accessor type.\r\n * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.accessor = function() {\r\n return Uint8Array;\r\n };\r\n /**\r\n * Allocates a new ByteBuffer backed by a buffer of the specified capacity.\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {\r\n return new ByteBuffer(capacity, littleEndian, noAssert);\r\n };\r\n\r\n /**\r\n * Concatenates multiple ByteBuffers into one.\r\n * @param {!Array.} buffers Buffers to concatenate\r\n * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string (\"base64\", \"hex\", \"binary\",\r\n * defaults to \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults\r\n * to {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} Concatenated ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {\r\n if (typeof encoding === 'boolean' || typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n var capacity = 0;\r\n for (var i=0, k=buffers.length, length; i 0) capacity += length;\r\n }\r\n if (capacity === 0)\r\n return new ByteBuffer(0, littleEndian, noAssert);\r\n var bb = new ByteBuffer(capacity, littleEndian, noAssert),\r\n bi;\r\n i=0; while (i} buffer Anything that can be wrapped\r\n * @param {(string|boolean)=} encoding String encoding if `buffer` is a string (\"base64\", \"hex\", \"binary\", defaults to\r\n * \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`\r\n * @expose\r\n */\r\n ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {\r\n if (typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n if (typeof buffer === 'string') {\r\n if (typeof encoding === 'undefined')\r\n encoding = \"utf8\";\r\n switch (encoding) {\r\n case \"base64\":\r\n return ByteBuffer.fromBase64(buffer, littleEndian);\r\n case \"hex\":\r\n return ByteBuffer.fromHex(buffer, littleEndian);\r\n case \"binary\":\r\n return ByteBuffer.fromBinary(buffer, littleEndian);\r\n case \"utf8\":\r\n return ByteBuffer.fromUTF8(buffer, littleEndian);\r\n case \"debug\":\r\n return ByteBuffer.fromDebug(buffer, littleEndian);\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n }\r\n if (buffer === null || typeof buffer !== 'object')\r\n throw TypeError(\"Illegal buffer\");\r\n var bb;\r\n if (ByteBuffer.isByteBuffer(buffer)) {\r\n bb = ByteBufferPrototype.clone.call(buffer);\r\n bb.markedOffset = -1;\r\n return bb;\r\n }\r\n if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER\r\n bb.buffer = buffer.buffer;\r\n bb.offset = buffer.byteOffset;\r\n bb.limit = buffer.byteOffset + buffer.byteLength;\r\n bb.view = new Uint8Array(buffer.buffer);\r\n }\r\n } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.byteLength > 0) {\r\n bb.buffer = buffer;\r\n bb.offset = 0;\r\n bb.limit = buffer.byteLength;\r\n bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null;\r\n }\r\n } else if (Object.prototype.toString.call(buffer) === \"[object Array]\") { // Create from octets\r\n bb = new ByteBuffer(buffer.length, littleEndian, noAssert);\r\n bb.limit = buffer.length;\r\n for (var i=0; i} value Array of booleans to write\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBitSet = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (!(value instanceof Array))\r\n throw TypeError(\"Illegal BitSet: Not an array\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n\r\n var start = offset,\r\n bits = value.length,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n k;\r\n\r\n offset += this.writeVarint32(bits,offset);\r\n\r\n while(bytes--) {\r\n k = (!!value[bit++] & 1) |\r\n ((!!value[bit++] & 1) << 1) |\r\n ((!!value[bit++] & 1) << 2) |\r\n ((!!value[bit++] & 1) << 3) |\r\n ((!!value[bit++] & 1) << 4) |\r\n ((!!value[bit++] & 1) << 5) |\r\n ((!!value[bit++] & 1) << 6) |\r\n ((!!value[bit++] & 1) << 7);\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0; k = 0;\r\n while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n }\r\n\r\n /**\r\n * Reads a BitSet as an array of booleans.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {Array\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBitSet = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n\r\n var ret = this.readVarint32(offset),\r\n bits = ret.value,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n value = [],\r\n k;\r\n\r\n offset += ret.length;\r\n\r\n while(bytes--) {\r\n k = this.readByte(offset++);\r\n value[bit++] = !!(k & 0x01);\r\n value[bit++] = !!(k & 0x02);\r\n value[bit++] = !!(k & 0x04);\r\n value[bit++] = !!(k & 0x08);\r\n value[bit++] = !!(k & 0x10);\r\n value[bit++] = !!(k & 0x20);\r\n value[bit++] = !!(k & 0x40);\r\n value[bit++] = !!(k & 0x80);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0;\r\n k = this.readByte(offset++);\r\n while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n }\r\n return value;\r\n }\r\n /**\r\n * Reads the specified number of bytes.\r\n * @param {number} length Number of bytes to read\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBytes = function(length, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var slice = this.slice(offset, offset + length);\r\n if (relative) this.offset += length;\n return slice;\r\n };\r\n\r\n /**\r\n * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.\r\n * @function\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;\r\n\r\n // types/ints/int8\r\n\r\n /**\r\n * Writes an 8bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity0 = this.buffer.byteLength;\n if (offset > capacity0)\n this.resize((capacity0 *= 2) > offset ? capacity0 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;\r\n\r\n /**\r\n * Reads an 8bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;\r\n\r\n /**\r\n * Writes an 8bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity1 = this.buffer.byteLength;\n if (offset > capacity1)\n this.resize((capacity1 *= 2) > offset ? capacity1 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;\r\n\r\n /**\r\n * Reads an 8bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;\r\n\r\n // types/ints/int16\r\n\r\n /**\r\n * Writes a 16bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity2 = this.buffer.byteLength;\n if (offset > capacity2)\n this.resize((capacity2 *= 2) > offset ? capacity2 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;\r\n\r\n /**\r\n * Reads a 16bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;\r\n\r\n /**\r\n * Writes a 16bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity3 = this.buffer.byteLength;\n if (offset > capacity3)\n this.resize((capacity3 *= 2) > offset ? capacity3 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;\r\n\r\n /**\r\n * Reads a 16bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;\r\n\r\n // types/ints/int32\r\n\r\n /**\r\n * Writes a 32bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity4 = this.buffer.byteLength;\n if (offset > capacity4)\n this.resize((capacity4 *= 2) > offset ? capacity4 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;\r\n\r\n /**\r\n * Reads a 32bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n value |= 0; // Cast to signed\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;\r\n\r\n /**\r\n * Writes a 32bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity5 = this.buffer.byteLength;\n if (offset > capacity5)\n this.resize((capacity5 *= 2) > offset ? capacity5 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;\r\n\r\n /**\r\n * Reads a 32bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;\r\n\r\n // types/ints/int64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Writes a 64bit signed integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity6 = this.buffer.byteLength;\n if (offset > capacity6)\n this.resize((capacity6 *= 2) > offset ? capacity6 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;\r\n\r\n /**\r\n * Reads a 64bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, false);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;\r\n\r\n /**\r\n * Writes a 64bit unsigned integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity7 = this.buffer.byteLength;\n if (offset > capacity7)\n this.resize((capacity7 *= 2) > offset ? capacity7 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.\r\n * @function\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;\r\n\r\n /**\r\n * Reads a 64bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;\r\n\r\n } // Long\r\n\r\n\r\n // types/floats/float32\r\n\r\n /*\r\n ieee754 - https://github.com/feross/ieee754\r\n\r\n The MIT License (MIT)\r\n\r\n Copyright (c) Feross Aboukhadijeh\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in\r\n all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.\r\n */\r\n\r\n /**\r\n * Reads an IEEE754 float from a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @returns {number}\r\n * @inner\r\n */\r\n function ieee754_read(buffer, offset, isLE, mLen, nBytes) {\r\n var e, m,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n nBits = -7,\r\n i = isLE ? (nBytes - 1) : 0,\r\n d = isLE ? -1 : 1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n }\r\n\r\n /**\r\n * Writes an IEEE754 float to a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} value\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @inner\r\n */\r\n function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isLE ? 0 : (nBytes - 1),\r\n d = isLE ? 1 : -1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n }\r\n\r\n /**\r\n * Writes a 32bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity8 = this.buffer.byteLength;\n if (offset > capacity8)\n this.resize((capacity8 *= 2) > offset ? capacity8 : offset);\n offset -= 4;\n ieee754_write(this.view, value, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;\r\n\r\n /**\r\n * Reads a 32bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;\r\n\r\n // types/floats/float64\r\n\r\n /**\r\n * Writes a 64bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 8;\n var capacity9 = this.buffer.byteLength;\n if (offset > capacity9)\n this.resize((capacity9 *= 2) > offset ? capacity9 : offset);\n offset -= 8;\n ieee754_write(this.view, value, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;\r\n\r\n /**\r\n * Reads a 64bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;\r\n\r\n\r\n // types/varints/varint32\r\n\r\n /**\r\n * Maximum number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT32_BYTES = 5;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint32 = function(value) {\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n value = value >>> 0;\r\n if (value < 1 << 7 ) return 1;\r\n else if (value < 1 << 14) return 2;\r\n else if (value < 1 << 21) return 3;\r\n else if (value < 1 << 28) return 4;\r\n else return 5;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.\r\n * @param {number} n Signed 32bit integer\r\n * @returns {number} Unsigned zigzag encoded 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode32 = function(n) {\r\n return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 32bit integer.\r\n * @param {number} n Unsigned zigzag encoded 32bit integer\r\n * @returns {number} Signed 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode32 = function(n) {\r\n return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Writes a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var size = ByteBuffer.calculateVarint32(value),\r\n b;\r\n offset += size;\n var capacity10 = this.buffer.byteLength;\n if (offset > capacity10)\n this.resize((capacity10 *= 2) > offset ? capacity10 : offset);\n offset -= size;\n value >>>= 0;\r\n while (value >= 0x80) {\r\n b = (value & 0x7f) | 0x80;\r\n this.view[offset++] = b;\r\n value >>>= 7;\r\n }\r\n this.view[offset++] = value;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return size;\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {\r\n return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available\r\n * to fully decode the varint.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var c = 0,\r\n value = 0 >>> 0,\r\n b;\r\n do {\r\n if (!this.noAssert && offset > this.limit) {\r\n var err = Error(\"Truncated\");\r\n err['truncated'] = true;\r\n throw err;\r\n }\r\n b = this.view[offset++];\r\n if (c < 5)\r\n value |= (b & 0x7f) << (7*c);\r\n ++c;\r\n } while ((b & 0x80) !== 0);\r\n value |= 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n }\r\n return {\r\n \"value\": value,\r\n \"length\": c\r\n };\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32ZigZag = function(offset) {\r\n var val = this.readVarint32(offset);\r\n if (typeof val === 'object')\r\n val[\"value\"] = ByteBuffer.zigZagDecode32(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode32(val);\r\n return val;\r\n };\r\n\r\n // types/varints/varint64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Maximum number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT64_BYTES = 10;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @param {number|!Long} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n if (part2 == 0) {\r\n if (part1 == 0) {\r\n if (part0 < 1 << 14)\r\n return part0 < 1 << 7 ? 1 : 2;\r\n else\r\n return part0 < 1 << 21 ? 3 : 4;\r\n } else {\r\n if (part1 < 1 << 14)\r\n return part1 < 1 << 7 ? 5 : 6;\r\n else\r\n return part1 < 1 << 21 ? 7 : 8;\r\n }\r\n } else\r\n return part2 < 1 << 7 ? 9 : 10;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.\r\n * @param {number|!Long} value Signed long\r\n * @returns {!Long} Unsigned zigzag encoded long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 64bit integer.\r\n * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number\r\n * @returns {!Long} Signed long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();\r\n };\r\n\r\n /**\r\n * Writes a 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n var size = ByteBuffer.calculateVarint64(value),\r\n part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n offset += size;\n var capacity11 = this.buffer.byteLength;\n if (offset > capacity11)\n this.resize((capacity11 *= 2) > offset ? capacity11 : offset);\n offset -= size;\n switch (size) {\r\n case 10: this.view[offset+9] = (part2 >>> 7) & 0x01;\r\n case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;\r\n case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;\r\n case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;\r\n }\r\n if (relative) {\r\n this.offset += size;\r\n return this;\r\n } else {\r\n return size;\r\n }\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {\r\n return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var start = offset,\r\n part0 = 0,\r\n part1 = 0,\r\n part2 = 0,\r\n b = 0;\r\n b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n throw Error(\"Buffer overrun\"); }}}}}}}}}}\r\n var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n } else {\r\n return {\r\n 'value': value,\r\n 'length': offset-start\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64ZigZag = function(offset) {\r\n var val = this.readVarint64(offset);\r\n if (val && val['value'] instanceof Long)\r\n val[\"value\"] = ByteBuffer.zigZagDecode64(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode64(val);\r\n return val;\r\n };\r\n\r\n } // Long\r\n\r\n\r\n // types/strings/cstring\r\n\r\n /**\r\n * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL\r\n * characters itself.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * contained in `str` + 1 if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeCString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n var i,\r\n k = str.length;\r\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n for (i=0; i>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n // UTF8 strings do not contain zero bytes in between except for the zero character, so:\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k+1;\n var capacity12 = this.buffer.byteLength;\n if (offset > capacity12)\n this.resize((capacity12 *= 2) > offset ? capacity12 : offset);\n offset -= k+1;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n this.view[offset++] = 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters\r\n * itself.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readCString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n temp;\r\n // UTF8 strings do not contain zero bytes in between except for the zero character itself, so:\r\n var sd, b = -1;\r\n utfx.decodeUTF8toUTF16(function() {\r\n if (b === 0) return null;\r\n if (offset >= this.limit)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" < \"+this.limit);\r\n b = this.view[offset++];\r\n return b === 0 ? null : b;\r\n }.bind(this), sd = stringDestination(), true);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/istring\r\n\r\n /**\r\n * Writes a length as uint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeIString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n offset += 4+k;\n var capacity13 = this.buffer.byteLength;\n if (offset > capacity13)\n this.resize((capacity13 *= 2) > offset ? capacity13 : offset);\n offset -= 4+k;\n if (this.littleEndian) {\n this.view[offset+3] = (k >>> 24) & 0xFF;\n this.view[offset+2] = (k >>> 16) & 0xFF;\n this.view[offset+1] = (k >>> 8) & 0xFF;\n this.view[offset ] = k & 0xFF;\n } else {\n this.view[offset ] = (k >>> 24) & 0xFF;\n this.view[offset+1] = (k >>> 16) & 0xFF;\n this.view[offset+2] = (k >>> 8) & 0xFF;\n this.view[offset+3] = k & 0xFF;\n }\n offset += 4;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start + 4 + k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+4+k));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as uint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readIString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readUint32(offset);\r\n var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/utf8string\r\n\r\n /**\r\n * Metrics representing number of UTF8 characters. Evaluates to `c`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_CHARS = 'c';\r\n\r\n /**\r\n * Metrics representing number of bytes. Evaluates to `b`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_BYTES = 'b';\r\n\r\n /**\r\n * Writes an UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUTF8String = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var k;\r\n var start = offset;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k;\n var capacity14 = this.buffer.byteLength;\n if (offset > capacity14)\n this.resize((capacity14 *= 2) > offset ? capacity14 : offset);\n offset -= k;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.\r\n * @function\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;\r\n\r\n /**\r\n * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's\r\n * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 characters\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Chars = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[0];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Bytes = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.\r\n * @function\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;\r\n\r\n /**\r\n * Reads an UTF8 encoded string.\r\n * @param {number} length Number of characters or bytes to read.\r\n * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {\r\n if (typeof metrics === 'number') {\r\n offset = metrics;\r\n metrics = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var i = 0,\r\n start = offset,\r\n sd;\r\n if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser\r\n sd = stringDestination();\r\n utfx.decodeUTF8(function() {\r\n return i < length && offset < this.limit ? this.view[offset++] : null;\r\n }.bind(this), function(cp) {\r\n ++i; utfx.UTF8toUTF16(cp, sd);\r\n });\r\n if (i !== length)\r\n throw RangeError(\"Illegal range: Truncated data, \"+i+\" == \"+length);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n } else if (metrics === ByteBuffer.METRICS_BYTES) {\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var k = offset + length;\r\n utfx.decodeUTF8toUTF16(function() {\r\n return offset < k ? this.view[offset++] : null;\r\n }.bind(this), sd = stringDestination(), this.noAssert);\r\n if (offset !== k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+k);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n 'string': sd(),\r\n 'length': offset - start\r\n };\r\n }\r\n } else\r\n throw TypeError(\"Unsupported metrics: \"+metrics);\r\n };\r\n\r\n /**\r\n * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.\r\n * @function\r\n * @param {number} length Number of characters or bytes to read\r\n * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;\r\n\r\n // types/strings/vstring\r\n\r\n /**\r\n * Writes a length as varint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeVString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k, l;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n l = ByteBuffer.calculateVarint32(k);\r\n offset += l+k;\n var capacity15 = this.buffer.byteLength;\n if (offset > capacity15)\n this.resize((capacity15 *= 2) > offset ? capacity15 : offset);\n offset -= l+k;\n offset += this.writeVarint32(k, offset);\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start+k+l)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+k+l));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as varint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readVString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readVarint32(offset);\r\n var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended\r\n * data's length.\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`\r\n * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`\r\n */\r\n ByteBufferPrototype.append = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var length = source.limit - source.offset;\r\n if (length <= 0) return this; // Nothing to append\r\n offset += length;\n var capacity16 = this.buffer.byteLength;\n if (offset > capacity16)\n this.resize((capacity16 *= 2) > offset ? capacity16 : offset);\n offset -= length;\n this.view.set(source.view.subarray(source.offset, source.limit), offset);\r\n source.offset += length;\r\n if (relative) this.offset += length;\n return this;\r\n };\r\n\r\n /**\r\n * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the\r\n specified offset up to the length of this ByteBuffer's data.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#append\r\n */\r\n ByteBufferPrototype.appendTo = function(target, offset) {\r\n target.append(this, offset);\r\n return this;\r\n };\r\n\r\n /**\r\n * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to\r\n * disable them if your code already makes sure that everything is valid.\r\n * @param {boolean} assert `true` to enable assertions, otherwise `false`\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.assert = function(assert) {\r\n this.noAssert = !assert;\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the capacity of this ByteBuffer's backing buffer.\r\n * @returns {number} Capacity of the backing buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.capacity = function() {\r\n return this.buffer.byteLength;\r\n };\r\n /**\r\n * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the\r\n * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.clear = function() {\r\n this.offset = 0;\r\n this.limit = this.buffer.byteLength;\r\n this.markedOffset = -1;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},\r\n * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`\r\n * @returns {!ByteBuffer} Cloned instance\r\n * @expose\r\n */\r\n ByteBufferPrototype.clone = function(copy) {\r\n var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n if (copy) {\r\n bb.buffer = new ArrayBuffer(this.buffer.byteLength);\r\n bb.view = new Uint8Array(bb.buffer);\r\n } else {\r\n bb.buffer = this.buffer;\r\n bb.view = this.view;\r\n }\r\n bb.offset = this.offset;\r\n bb.markedOffset = this.markedOffset;\r\n bb.limit = this.limit;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes\r\n * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and\r\n * adapt {@link ByteBuffer#markedOffset} to the same relative position if set.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.compact = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === 0 && end === this.buffer.byteLength)\r\n return this; // Already compacted\r\n var len = end - begin;\r\n if (len === 0) {\r\n this.buffer = EMPTY_BUFFER;\r\n this.view = null;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = 0;\r\n return this;\r\n }\r\n var buffer = new ArrayBuffer(len);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(begin, end));\r\n this.buffer = buffer;\r\n this.view = view;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Copy\r\n * @expose\r\n */\r\n ByteBufferPrototype.copy = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n var capacity = end - begin,\r\n bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);\r\n bb.offset = 0;\r\n bb.limit = capacity;\r\n if (bb.markedOffset >= 0) bb.markedOffset -= begin;\r\n this.copyTo(bb, 0, begin, end);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}\r\n * by the number of bytes copied if omitted.\r\n * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the\r\n * number of bytes copied if omitted.\r\n * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {\r\n var relative,\r\n targetRelative;\r\n if (!this.noAssert) {\r\n if (!ByteBuffer.isByteBuffer(target))\r\n throw TypeError(\"Illegal target: Not a ByteBuffer\");\r\n }\r\n targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;\r\n sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;\r\n sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;\r\n\r\n if (targetOffset < 0 || targetOffset > target.buffer.byteLength)\r\n throw RangeError(\"Illegal target range: 0 <= \"+targetOffset+\" <= \"+target.buffer.byteLength);\r\n if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength)\r\n throw RangeError(\"Illegal source range: 0 <= \"+sourceOffset+\" <= \"+this.buffer.byteLength);\r\n\r\n var len = sourceLimit - sourceOffset;\r\n if (len === 0)\r\n return target; // Nothing to copy\r\n\r\n target.ensureCapacity(targetOffset + len);\r\n\r\n target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset);\r\n\r\n if (relative) this.offset += len;\r\n if (targetRelative) target.offset += len;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the\r\n * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,\r\n * the required capacity will be used instead.\r\n * @param {number} capacity Required capacity\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.ensureCapacity = function(capacity) {\r\n var current = this.buffer.byteLength;\r\n if (current < capacity)\r\n return this.resize((current *= 2) > capacity ? current : capacity);\r\n return this;\r\n };\r\n\r\n /**\r\n * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {number|string} value Byte value to fill with. If given as a string, the first character is used.\r\n * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted. defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes\r\n */\r\n ByteBufferPrototype.fill = function(value, begin, end) {\r\n var relative = typeof begin === 'undefined';\n if (relative) begin = this.offset;\n if (typeof value === 'string' && value.length > 0)\r\n value = value.charCodeAt(0);\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin >= end)\r\n return this; // Nothing to fill\r\n while (begin < end) this.view[begin++] = value;\r\n if (relative) this.offset = begin;\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and\r\n * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.flip = function() {\r\n this.limit = this.offset;\r\n this.offset = 0;\r\n return this;\r\n };\r\n /**\r\n * Marks an offset on this ByteBuffer to be used later.\r\n * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @see ByteBuffer#reset\r\n * @expose\r\n */\r\n ByteBufferPrototype.mark = function(offset) {\r\n offset = typeof offset === 'undefined' ? this.offset : offset;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n this.markedOffset = offset;\r\n return this;\r\n };\r\n /**\r\n * Sets the byte order.\r\n * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.order = function(littleEndian) {\r\n if (!this.noAssert) {\r\n if (typeof littleEndian !== 'boolean')\r\n throw TypeError(\"Illegal littleEndian: Not a boolean\");\r\n }\r\n this.littleEndian = !!littleEndian;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) little endian byte order.\r\n * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.LE = function(littleEndian) {\r\n this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) big endian byte order.\r\n * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.BE = function(bigEndian) {\r\n this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;\r\n return this;\r\n };\r\n /**\r\n * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be\r\n * modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`\r\n * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`\r\n */\r\n ByteBufferPrototype.prepend = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var len = source.limit - source.offset;\r\n if (len <= 0) return this; // Nothing to prepend\r\n var diff = len - offset;\r\n if (diff > 0) { // Not enough space before offset, so resize + move\r\n var buffer = new ArrayBuffer(this.buffer.byteLength + diff);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(offset, this.buffer.byteLength), len);\r\n this.buffer = buffer;\r\n this.view = view;\r\n this.offset += diff;\r\n if (this.markedOffset >= 0) this.markedOffset += diff;\r\n this.limit += diff;\r\n offset += diff;\r\n } else {\r\n var arrayView = new Uint8Array(this.buffer);\r\n }\r\n this.view.set(source.view.subarray(source.offset, source.limit), offset - len);\r\n\r\n source.offset = source.limit;\r\n if (relative)\r\n this.offset -= len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#prepend\r\n */\r\n ByteBufferPrototype.prependTo = function(target, offset) {\r\n target.prepend(this, offset);\r\n return this;\r\n };\r\n /**\r\n * Prints debug information about this ByteBuffer's contents.\r\n * @param {function(string)=} out Output function to call, defaults to console.log\r\n * @expose\r\n */\r\n ByteBufferPrototype.printDebug = function(out) {\r\n if (typeof out !== 'function') out = console.log.bind(console);\r\n out(\r\n this.toString()+\"\\n\"+\r\n \"-------------------------------------------------------------------\\n\"+\r\n this.toDebug(/* columns */ true)\r\n );\r\n };\r\n\r\n /**\r\n * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}, so this returns `limit - offset`.\r\n * @returns {number} Remaining readable bytes. May be negative if `offset > limit`.\r\n * @expose\r\n */\r\n ByteBufferPrototype.remaining = function() {\r\n return this.limit - this.offset;\r\n };\r\n /**\r\n * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}\r\n * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been\r\n * marked, sets `offset = 0`.\r\n * @returns {!ByteBuffer} this\r\n * @see ByteBuffer#mark\r\n * @expose\r\n */\r\n ByteBufferPrototype.reset = function() {\r\n if (this.markedOffset >= 0) {\r\n this.offset = this.markedOffset;\r\n this.markedOffset = -1;\r\n } else {\r\n this.offset = 0;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that\r\n * large or larger.\r\n * @param {number} capacity Capacity required\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `capacity` is not a number\r\n * @throws {RangeError} If `capacity < 0`\r\n * @expose\r\n */\r\n ByteBufferPrototype.resize = function(capacity) {\r\n if (!this.noAssert) {\r\n if (typeof capacity !== 'number' || capacity % 1 !== 0)\n throw TypeError(\"Illegal capacity: \"+capacity+\" (not an integer)\");\n capacity |= 0;\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity: 0 <= \"+capacity);\r\n }\r\n if (this.buffer.byteLength < capacity) {\r\n var buffer = new ArrayBuffer(capacity);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view);\r\n this.buffer = buffer;\r\n this.view = view;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Reverses this ByteBuffer's contents.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.reverse = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return this; // Nothing to reverse\r\n Array.prototype.reverse.call(this.view.subarray(begin, end));\r\n return this;\r\n };\r\n /**\r\n * Skips the next `length` bytes. This will just advance\r\n * @param {number} length Number of bytes to skip. May also be negative to move the offset back.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.skip = function(length) {\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n }\r\n var offset = this.offset + length;\r\n if (!this.noAssert) {\r\n if (offset < 0 || offset > this.buffer.byteLength)\r\n throw RangeError(\"Illegal length: 0 <= \"+this.offset+\" + \"+length+\" <= \"+this.buffer.byteLength);\r\n }\r\n this.offset = offset;\r\n return this;\r\n };\r\n\r\n /**\r\n * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.slice = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var bb = this.clone();\r\n bb.offset = begin;\r\n bb.limit = end;\r\n return bb;\r\n };\r\n /**\r\n * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if\r\n * possible. Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBuffer = function(forceCopy) {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.byteLength);\n }\r\n // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is\r\n // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So:\r\n if (!forceCopy && offset === 0 && limit === this.buffer.byteLength)\r\n return this.buffer;\r\n if (offset === limit)\r\n return EMPTY_BUFFER;\r\n var buffer = new ArrayBuffer(limit - offset);\r\n new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0);\r\n return buffer;\r\n };\r\n\r\n /**\r\n * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}.\r\n * @function\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory.\r\n * Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer;\r\n\r\n /**\r\n * Converts the ByteBuffer's contents to a string.\r\n * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows\r\n * direct conversion to \"utf8\", \"hex\", \"base64\" and \"binary\" encoding. \"debug\" returns a hex representation with\r\n * highlighted offsets.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {string} String representation\r\n * @throws {Error} If `encoding` is invalid\r\n * @expose\r\n */\r\n ByteBufferPrototype.toString = function(encoding, begin, end) {\r\n if (typeof encoding === 'undefined')\r\n return \"ByteBufferAB(offset=\"+this.offset+\",markedOffset=\"+this.markedOffset+\",limit=\"+this.limit+\",capacity=\"+this.capacity()+\")\";\r\n if (typeof encoding === 'number')\r\n encoding = \"utf8\",\r\n begin = encoding,\r\n end = begin;\r\n switch (encoding) {\r\n case \"utf8\":\r\n return this.toUTF8(begin, end);\r\n case \"base64\":\r\n return this.toBase64(begin, end);\r\n case \"hex\":\r\n return this.toHex(begin, end);\r\n case \"binary\":\r\n return this.toBinary(begin, end);\r\n case \"debug\":\r\n return this.toDebug();\r\n case \"columns\":\r\n return this.toColumns();\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n };\r\n\r\n // lxiv-embeddable\r\n\r\n /**\r\n * lxiv-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/lxiv for details\r\n */\r\n var lxiv = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * lxiv namespace.\r\n * @type {!Object.}\r\n * @exports lxiv\r\n */\r\n var lxiv = {};\r\n\r\n /**\r\n * Character codes for output.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var aout = [\r\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\r\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102,\r\n 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\r\n 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47\r\n ];\r\n\r\n /**\r\n * Character codes for input.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var ain = [];\r\n for (var i=0, k=aout.length; i>2)&0x3f]);\r\n t = (b&0x3)<<4;\r\n if ((b = src()) !== null) {\r\n t |= (b>>4)&0xf;\r\n dst(aout[(t|((b>>4)&0xf))&0x3f]);\r\n t = (b&0xf)<<2;\r\n if ((b = src()) !== null)\r\n dst(aout[(t|((b>>6)&0x3))&0x3f]),\r\n dst(aout[b&0x3f]);\r\n else\r\n dst(aout[t&0x3f]),\r\n dst(61);\r\n } else\r\n dst(aout[t&0x3f]),\r\n dst(61),\r\n dst(61);\r\n }\r\n };\r\n\r\n /**\r\n * Decodes base64 char codes to bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n * @throws {Error} If a character code is invalid\r\n */\r\n lxiv.decode = function(src, dst) {\r\n var c, t1, t2;\r\n function fail(c) {\r\n throw Error(\"Illegal character code: \"+c);\r\n }\r\n while ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined') fail(c);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined') fail(c);\r\n dst((t1<<2)>>>0|(t2&0x30)>>4);\r\n if ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t1&0x3)<<6)>>>0|t2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Tests if a string is valid base64.\r\n * @param {string} str String to test\r\n * @returns {boolean} `true` if valid, otherwise `false`\r\n */\r\n lxiv.test = function(str) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str);\r\n };\r\n\r\n return lxiv;\r\n }();\r\n\r\n // encodings/base64\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents to a base64 encoded string.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Base64 encoded string\r\n * @throws {RangeError} If `begin` or `end` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBase64 = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin = begin | 0; end = end | 0;\r\n if (begin < 0 || end > this.capacity || begin > end)\r\n throw RangeError(\"begin, end\");\r\n var sd; lxiv.encode(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBase64 = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var bb = new ByteBuffer(str.length/4*3, littleEndian),\r\n i = 0;\r\n lxiv.decode(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Encodes a binary string to base64 like `window.btoa` does.\r\n * @param {string} str Binary string\r\n * @returns {string} Base64 encoded string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa\r\n * @expose\r\n */\r\n ByteBuffer.btoa = function(str) {\r\n return ByteBuffer.fromBinary(str).toBase64();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to binary like `window.atob` does.\r\n * @param {string} b64 Base64 encoded string\r\n * @returns {string} Binary string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob\r\n * @expose\r\n */\r\n ByteBuffer.atob = function(b64) {\r\n return ByteBuffer.fromBase64(b64).toBinary();\r\n };\r\n\r\n // encodings/binary\r\n\r\n /**\r\n * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Binary encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBinary = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin |= 0; end |= 0;\r\n if (begin < 0 || end > this.capacity() || begin > end)\r\n throw RangeError(\"begin, end\");\r\n if (begin === end)\r\n return \"\";\r\n var chars = [],\r\n parts = [];\r\n while (begin < end) {\r\n chars.push(this.view[begin++]);\r\n if (chars.length >= 1024)\r\n parts.push(String.fromCharCode.apply(String, chars)),\r\n chars = [];\r\n }\r\n return parts.join('') + String.fromCharCode.apply(String, chars);\r\n };\r\n\r\n /**\r\n * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBinary = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var i = 0,\r\n k = str.length,\r\n charCode,\r\n bb = new ByteBuffer(k, littleEndian);\r\n while (i 0xff)\r\n throw RangeError(\"illegal char code: \"+charCode);\r\n bb.view[i++] = charCode;\r\n }\r\n bb.limit = k;\r\n return bb;\r\n };\r\n\r\n // encodings/debug\r\n\r\n /**\r\n * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:\r\n * * `<` : offset,\r\n * * `'` : markedOffset,\r\n * * `>` : limit,\r\n * * `|` : offset and limit,\r\n * * `[` : offset and markedOffset,\r\n * * `]` : markedOffset and limit,\r\n * * `!` : offset, markedOffset and limit\r\n * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`\r\n * @returns {string|!Array.} Debug string or array of lines if `asArray = true`\r\n * @expose\r\n * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`\r\n * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`\r\n * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`\r\n * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`\r\n */\r\n ByteBufferPrototype.toDebug = function(columns) {\r\n var i = -1,\r\n k = this.buffer.byteLength,\r\n b,\r\n hex = \"\",\r\n asc = \"\",\r\n out = \"\";\r\n while (i 32 && b < 127 ? String.fromCharCode(b) : '.';\r\n }\r\n ++i;\r\n if (columns) {\r\n if (i > 0 && i % 16 === 0 && i !== k) {\r\n while (hex.length < 3*16+3) hex += \" \";\r\n out += hex+asc+\"\\n\";\r\n hex = asc = \"\";\r\n }\r\n }\r\n if (i === this.offset && i === this.limit)\r\n hex += i === this.markedOffset ? \"!\" : \"|\";\r\n else if (i === this.offset)\r\n hex += i === this.markedOffset ? \"[\" : \"<\";\r\n else if (i === this.limit)\r\n hex += i === this.markedOffset ? \"]\" : \">\";\r\n else\r\n hex += i === this.markedOffset ? \"'\" : (columns || (i !== 0 && i !== k) ? \" \" : \"\");\r\n }\r\n if (columns && hex !== \" \") {\r\n while (hex.length < 3*16+3)\r\n hex += \" \";\r\n out += hex + asc + \"\\n\";\r\n }\r\n return columns ? out : hex;\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string with marked offsets to a ByteBuffer.\r\n * @param {string} str Debug string to decode (not be generated with `columns = true`)\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n * @see ByteBuffer#toDebug\r\n */\r\n ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {\r\n var k = str.length,\r\n bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);\r\n var i = 0, j = 0, ch, b,\r\n rs = false, // Require symbol next\r\n ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?\r\n fail = false;\r\n while (i':\r\n if (!noAssert) {\r\n if (hl) {\r\n fail = true;\r\n break;\r\n }\r\n hl = true;\r\n }\r\n bb.limit = j;\r\n rs = false;\r\n break;\r\n case \"'\":\r\n if (!noAssert) {\r\n if (hm) {\r\n fail = true;\r\n break;\r\n }\r\n hm = true;\r\n }\r\n bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case ' ':\r\n rs = false;\r\n break;\r\n default:\r\n if (!noAssert) {\r\n if (rs) {\r\n fail = true;\r\n break;\r\n }\r\n }\r\n b = parseInt(ch+str.charAt(i++), 16);\r\n if (!noAssert) {\r\n if (isNaN(b) || b < 0 || b > 255)\r\n throw TypeError(\"Illegal str: Not a debug encoded string\");\r\n }\r\n bb.view[j++] = b;\r\n rs = true;\r\n }\r\n if (fail)\r\n throw TypeError(\"Illegal str: Invalid symbol at \"+i);\r\n }\r\n if (!noAssert) {\r\n if (!ho || !hl)\r\n throw TypeError(\"Illegal str: Missing offset or limit\");\r\n if (j>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var out = new Array(end - begin),\r\n b;\r\n while (begin < end) {\r\n b = this.view[begin++];\r\n if (b < 0x10)\r\n out.push(\"0\", b.toString(16));\r\n else out.push(b.toString(16));\r\n }\r\n return out.join('');\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromHex = function(str, littleEndian, noAssert) {\r\n if (!noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (str.length % 2 !== 0)\r\n throw TypeError(\"Illegal str: Length not a multiple of 2\");\r\n }\r\n var k = str.length,\r\n bb = new ByteBuffer((k / 2) | 0, littleEndian),\r\n b;\r\n for (var i=0, j=0; i 255)\r\n throw TypeError(\"Illegal str: Contains non-hex characters\");\r\n bb.view[j++] = b;\r\n }\r\n bb.limit = j;\r\n return bb;\r\n };\r\n\r\n // utfx-embeddable\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n // encodings/utf8\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded\r\n * string.\r\n * @returns {string} Hex encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toUTF8 = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var sd; try {\r\n utfx.decodeUTF8toUTF16(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n } catch (e) {\r\n if (begin !== end)\r\n throw RangeError(\"Illegal range: Truncated data, \"+begin+\" != \"+end);\r\n }\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes an UTF8 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {\r\n if (!noAssert)\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert),\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n return ByteBuffer;\r\n});\r\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(19);\nvar TAG = __webpack_require__(5)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(21);\nvar ITERATOR = __webpack_require__(5)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(7);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n/* 75 */,\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(5)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(7);\nvar isObject = __webpack_require__(14);\nvar newPromiseCapability = __webpack_require__(42);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 82 */,\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(27);\nvar SPECIES = __webpack_require__(5)('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(20);\nvar invoke = __webpack_require__(154);\nvar html = __webpack_require__(70);\nvar cel = __webpack_require__(40);\nvar global = __webpack_require__(4);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (__webpack_require__(19)(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n/***/ }),\n/* 85 */,\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer) {/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap) {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64');\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n return '/*# ' + data + ' */';\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(140).Buffer))\n\n/***/ }),\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_router__ = __webpack_require__(228);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__routes__ = __webpack_require__(130);\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]({\n mode: 'history',\n routes: __WEBPACK_IMPORTED_MODULE_2__routes__[\"a\" /* default */]\n}));\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a \n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","import { sharedEventDispatcher } from \"./event\";\nimport * as ByteBuffer from \"bytebuffer\"\n\nconst NUS_SERVICE_UUID = \"6e400001-b5a3-f393-e0a9-e50e24dcca9e\"\nconst NUS_CHAR_TX_UUID = \"6e400002-b5a3-f393-e0a9-e50e24dcca9e\"\nconst NUS_CHAR_RX_UUID = \"6e400003-b5a3-f393-e0a9-e50e24dcca9e\"\n\n\nvar nus_service;\nvar nus_char_rx;\nvar nus_char_tx;\n\nvar bluetoothDevice;\n\nexport function connect() {\n return navigator.bluetooth.requestDevice({\n filters: [\n { services: [NUS_SERVICE_UUID] }\n ],\n optionalServices: [NUS_SERVICE_UUID]\n })\n .then(device => {\n bluetoothDevice = device;\n console.log(device);\n console.log('Connecting to GATT Server...');\n device.addEventListener('gattserverdisconnected', onDeviceDisconnected);\n return device.gatt.connect();\n })\n .then(server => {\n console.log('Getting Services...');\n return server.getPrimaryServices();\n })\n .then(services => {\n console.log('Getting Characteristics...');\n services.forEach(service => {\n if (service.uuid == NUS_SERVICE_UUID) {\n nus_service = service;\n console.log('> found nus Service: ' + service.uuid);\n }\n });\n return nus_service.getCharacteristics();\n })\n .then(characteristics => {\n characteristics.forEach(characteristic => {\n console.log('>> Characteristic: ' + characteristic.uuid + ' ' +\n getSupportedProperties(characteristic));\n if (characteristic.uuid == NUS_CHAR_TX_UUID) {\n nus_char_tx = characteristic;\n\n } else if (characteristic.uuid == NUS_CHAR_RX_UUID) {\n nus_char_rx = characteristic;\n characteristic.addEventListener('characteristicvaluechanged',\n onRxDataReceived);\n characteristic.startNotifications();\n }\n });\n console.log(\"connected!\");\n sharedEventDispatcher().emit(\"ble_connected\");\n })\n .catch(error => {\n sharedEventDispatcher().emit(\"ble_connect_error\");\n });\n}\n\n\nexport function disconnect() {\n if (bluetoothDevice && bluetoothDevice.gatt.connected) {\n bluetoothDevice.gatt.disconnect();\n bluetoothDevice = null;\n }\n}\n\n\nexport function tx_data(buff) {\n console.log(\"tx data:\", ByteBuffer.wrap(buff).toDebug());\n return nus_char_tx.writeValue(buff);\n}\n\n/* Utils */\n\nfunction onRxDataReceived(event) {\n console.log(\"rx data:\", ByteBuffer.wrap(event.target.value.buffer).toDebug());\n sharedEventDispatcher().emit(\"ble_rx_data\", event.target.value.buffer);\n}\n\nfunction onDeviceDisconnected(event) {\n sharedEventDispatcher().emit(\"ble_disconnected\");\n}\n\nfunction getSupportedProperties(characteristic) {\n let supportedProperties = [];\n for (const p in characteristic.properties) {\n if (characteristic.properties[p] === true) {\n supportedProperties.push(p.toUpperCase());\n }\n }\n return '[' + supportedProperties.join(', ') + ']';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/pixl.ble.js","/*\r\n Copyright 2013-2014 Daniel Wirtz \r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license bytebuffer.js (c) 2015 Daniel Wirtz \r\n * Backing buffer: ArrayBuffer, Accessor: Uint8Array\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bytebuffer.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([\"long\"], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module['exports'] = (function() {\r\n var Long; try { Long = require(\"long\"); } catch (e) {}\r\n return factory(Long);\r\n })();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"ByteBuffer\"] = factory(global[\"dcodeIO\"][\"Long\"]);\r\n\r\n})(this, function(Long) {\r\n \"use strict\";\r\n\r\n /**\r\n * Constructs a new ByteBuffer.\r\n * @class The swiss army knife for binary data in JavaScript.\r\n * @exports ByteBuffer\r\n * @constructor\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @expose\r\n */\r\n var ByteBuffer = function(capacity, littleEndian, noAssert) {\r\n if (typeof capacity === 'undefined')\r\n capacity = ByteBuffer.DEFAULT_CAPACITY;\r\n if (typeof littleEndian === 'undefined')\r\n littleEndian = ByteBuffer.DEFAULT_ENDIAN;\r\n if (typeof noAssert === 'undefined')\r\n noAssert = ByteBuffer.DEFAULT_NOASSERT;\r\n if (!noAssert) {\r\n capacity = capacity | 0;\r\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity\");\r\n littleEndian = !!littleEndian;\r\n noAssert = !!noAssert;\r\n }\r\n\r\n /**\r\n * Backing ArrayBuffer.\r\n * @type {!ArrayBuffer}\r\n * @expose\r\n */\r\n this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity);\r\n\r\n /**\r\n * Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`.\r\n * @type {?Uint8Array}\r\n * @expose\r\n */\r\n this.view = capacity === 0 ? null : new Uint8Array(this.buffer);\r\n\r\n /**\r\n * Absolute read/write offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.offset = 0;\r\n\r\n /**\r\n * Marked offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#mark\r\n * @see ByteBuffer#reset\r\n */\r\n this.markedOffset = -1;\r\n\r\n /**\r\n * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.limit = capacity;\r\n\r\n /**\r\n * Whether to use little endian byte order, defaults to `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.littleEndian = littleEndian;\r\n\r\n /**\r\n * Whether to skip assertions of offsets and values, defaults to `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.noAssert = noAssert;\r\n };\r\n\r\n /**\r\n * ByteBuffer version.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.VERSION = \"5.0.1\";\r\n\r\n /**\r\n * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.LITTLE_ENDIAN = true;\r\n\r\n /**\r\n * Big endian constant that can be used instead of its boolean value. Evaluates to `false`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.BIG_ENDIAN = false;\r\n\r\n /**\r\n * Default initial capacity of `16`.\r\n * @type {number}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_CAPACITY = 16;\r\n\r\n /**\r\n * Default endianess of `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;\r\n\r\n /**\r\n * Default no assertions flag of `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_NOASSERT = false;\r\n\r\n /**\r\n * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded\r\n * and int64 support is not available.\r\n * @type {?Long}\r\n * @const\r\n * @see https://github.com/dcodeIO/long.js\r\n * @expose\r\n */\r\n ByteBuffer.Long = Long || null;\r\n\r\n /**\r\n * @alias ByteBuffer.prototype\r\n * @inner\r\n */\r\n var ByteBufferPrototype = ByteBuffer.prototype;\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a ByteBuffer or not.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n * @private\r\n */\r\n ByteBufferPrototype.__isByteBuffer__;\r\n\r\n Object.defineProperty(ByteBufferPrototype, \"__isByteBuffer__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n // helpers\r\n\r\n /**\r\n * @type {!ArrayBuffer}\r\n * @inner\r\n */\r\n var EMPTY_BUFFER = new ArrayBuffer(0);\r\n\r\n /**\r\n * String.fromCharCode reference for compile-time renaming.\r\n * @type {function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Creates a source function for a string.\r\n * @param {string} s String to read from\r\n * @returns {function():number|null} Source function returning the next char code respectively `null` if there are\r\n * no more characters left.\r\n * @throws {TypeError} If the argument is invalid\r\n * @inner\r\n */\r\n function stringSource(s) {\r\n var i=0; return function() {\r\n return i < s.length ? s.charCodeAt(i++) : null;\r\n };\r\n }\r\n\r\n /**\r\n * Creates a destination function for a string.\r\n * @returns {function(number=):undefined|string} Destination function successively called with the next char code.\r\n * Returns the final string when called without arguments.\r\n * @inner\r\n */\r\n function stringDestination() {\r\n var cs = [], ps = []; return function() {\r\n if (arguments.length === 0)\r\n return ps.join('')+stringFromCharCode.apply(String, cs);\r\n if (cs.length + arguments.length > 1024)\r\n ps.push(stringFromCharCode.apply(String, cs)),\r\n cs.length = 0;\r\n Array.prototype.push.apply(cs, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Gets the accessor type.\r\n * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.accessor = function() {\r\n return Uint8Array;\r\n };\r\n /**\r\n * Allocates a new ByteBuffer backed by a buffer of the specified capacity.\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {\r\n return new ByteBuffer(capacity, littleEndian, noAssert);\r\n };\r\n\r\n /**\r\n * Concatenates multiple ByteBuffers into one.\r\n * @param {!Array.} buffers Buffers to concatenate\r\n * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string (\"base64\", \"hex\", \"binary\",\r\n * defaults to \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults\r\n * to {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} Concatenated ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {\r\n if (typeof encoding === 'boolean' || typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n var capacity = 0;\r\n for (var i=0, k=buffers.length, length; i 0) capacity += length;\r\n }\r\n if (capacity === 0)\r\n return new ByteBuffer(0, littleEndian, noAssert);\r\n var bb = new ByteBuffer(capacity, littleEndian, noAssert),\r\n bi;\r\n i=0; while (i} buffer Anything that can be wrapped\r\n * @param {(string|boolean)=} encoding String encoding if `buffer` is a string (\"base64\", \"hex\", \"binary\", defaults to\r\n * \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`\r\n * @expose\r\n */\r\n ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {\r\n if (typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n if (typeof buffer === 'string') {\r\n if (typeof encoding === 'undefined')\r\n encoding = \"utf8\";\r\n switch (encoding) {\r\n case \"base64\":\r\n return ByteBuffer.fromBase64(buffer, littleEndian);\r\n case \"hex\":\r\n return ByteBuffer.fromHex(buffer, littleEndian);\r\n case \"binary\":\r\n return ByteBuffer.fromBinary(buffer, littleEndian);\r\n case \"utf8\":\r\n return ByteBuffer.fromUTF8(buffer, littleEndian);\r\n case \"debug\":\r\n return ByteBuffer.fromDebug(buffer, littleEndian);\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n }\r\n if (buffer === null || typeof buffer !== 'object')\r\n throw TypeError(\"Illegal buffer\");\r\n var bb;\r\n if (ByteBuffer.isByteBuffer(buffer)) {\r\n bb = ByteBufferPrototype.clone.call(buffer);\r\n bb.markedOffset = -1;\r\n return bb;\r\n }\r\n if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER\r\n bb.buffer = buffer.buffer;\r\n bb.offset = buffer.byteOffset;\r\n bb.limit = buffer.byteOffset + buffer.byteLength;\r\n bb.view = new Uint8Array(buffer.buffer);\r\n }\r\n } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.byteLength > 0) {\r\n bb.buffer = buffer;\r\n bb.offset = 0;\r\n bb.limit = buffer.byteLength;\r\n bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null;\r\n }\r\n } else if (Object.prototype.toString.call(buffer) === \"[object Array]\") { // Create from octets\r\n bb = new ByteBuffer(buffer.length, littleEndian, noAssert);\r\n bb.limit = buffer.length;\r\n for (var i=0; i} value Array of booleans to write\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBitSet = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (!(value instanceof Array))\r\n throw TypeError(\"Illegal BitSet: Not an array\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n\r\n var start = offset,\r\n bits = value.length,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n k;\r\n\r\n offset += this.writeVarint32(bits,offset);\r\n\r\n while(bytes--) {\r\n k = (!!value[bit++] & 1) |\r\n ((!!value[bit++] & 1) << 1) |\r\n ((!!value[bit++] & 1) << 2) |\r\n ((!!value[bit++] & 1) << 3) |\r\n ((!!value[bit++] & 1) << 4) |\r\n ((!!value[bit++] & 1) << 5) |\r\n ((!!value[bit++] & 1) << 6) |\r\n ((!!value[bit++] & 1) << 7);\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0; k = 0;\r\n while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n }\r\n\r\n /**\r\n * Reads a BitSet as an array of booleans.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {Array\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBitSet = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n\r\n var ret = this.readVarint32(offset),\r\n bits = ret.value,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n value = [],\r\n k;\r\n\r\n offset += ret.length;\r\n\r\n while(bytes--) {\r\n k = this.readByte(offset++);\r\n value[bit++] = !!(k & 0x01);\r\n value[bit++] = !!(k & 0x02);\r\n value[bit++] = !!(k & 0x04);\r\n value[bit++] = !!(k & 0x08);\r\n value[bit++] = !!(k & 0x10);\r\n value[bit++] = !!(k & 0x20);\r\n value[bit++] = !!(k & 0x40);\r\n value[bit++] = !!(k & 0x80);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0;\r\n k = this.readByte(offset++);\r\n while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n }\r\n return value;\r\n }\r\n /**\r\n * Reads the specified number of bytes.\r\n * @param {number} length Number of bytes to read\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBytes = function(length, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var slice = this.slice(offset, offset + length);\r\n if (relative) this.offset += length;\n return slice;\r\n };\r\n\r\n /**\r\n * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.\r\n * @function\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;\r\n\r\n // types/ints/int8\r\n\r\n /**\r\n * Writes an 8bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity0 = this.buffer.byteLength;\n if (offset > capacity0)\n this.resize((capacity0 *= 2) > offset ? capacity0 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;\r\n\r\n /**\r\n * Reads an 8bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;\r\n\r\n /**\r\n * Writes an 8bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity1 = this.buffer.byteLength;\n if (offset > capacity1)\n this.resize((capacity1 *= 2) > offset ? capacity1 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;\r\n\r\n /**\r\n * Reads an 8bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;\r\n\r\n // types/ints/int16\r\n\r\n /**\r\n * Writes a 16bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity2 = this.buffer.byteLength;\n if (offset > capacity2)\n this.resize((capacity2 *= 2) > offset ? capacity2 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;\r\n\r\n /**\r\n * Reads a 16bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;\r\n\r\n /**\r\n * Writes a 16bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity3 = this.buffer.byteLength;\n if (offset > capacity3)\n this.resize((capacity3 *= 2) > offset ? capacity3 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;\r\n\r\n /**\r\n * Reads a 16bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;\r\n\r\n // types/ints/int32\r\n\r\n /**\r\n * Writes a 32bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity4 = this.buffer.byteLength;\n if (offset > capacity4)\n this.resize((capacity4 *= 2) > offset ? capacity4 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;\r\n\r\n /**\r\n * Reads a 32bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n value |= 0; // Cast to signed\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;\r\n\r\n /**\r\n * Writes a 32bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity5 = this.buffer.byteLength;\n if (offset > capacity5)\n this.resize((capacity5 *= 2) > offset ? capacity5 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;\r\n\r\n /**\r\n * Reads a 32bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;\r\n\r\n // types/ints/int64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Writes a 64bit signed integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity6 = this.buffer.byteLength;\n if (offset > capacity6)\n this.resize((capacity6 *= 2) > offset ? capacity6 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;\r\n\r\n /**\r\n * Reads a 64bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, false);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;\r\n\r\n /**\r\n * Writes a 64bit unsigned integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity7 = this.buffer.byteLength;\n if (offset > capacity7)\n this.resize((capacity7 *= 2) > offset ? capacity7 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.\r\n * @function\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;\r\n\r\n /**\r\n * Reads a 64bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;\r\n\r\n } // Long\r\n\r\n\r\n // types/floats/float32\r\n\r\n /*\r\n ieee754 - https://github.com/feross/ieee754\r\n\r\n The MIT License (MIT)\r\n\r\n Copyright (c) Feross Aboukhadijeh\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in\r\n all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.\r\n */\r\n\r\n /**\r\n * Reads an IEEE754 float from a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @returns {number}\r\n * @inner\r\n */\r\n function ieee754_read(buffer, offset, isLE, mLen, nBytes) {\r\n var e, m,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n nBits = -7,\r\n i = isLE ? (nBytes - 1) : 0,\r\n d = isLE ? -1 : 1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n }\r\n\r\n /**\r\n * Writes an IEEE754 float to a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} value\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @inner\r\n */\r\n function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isLE ? 0 : (nBytes - 1),\r\n d = isLE ? 1 : -1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n }\r\n\r\n /**\r\n * Writes a 32bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity8 = this.buffer.byteLength;\n if (offset > capacity8)\n this.resize((capacity8 *= 2) > offset ? capacity8 : offset);\n offset -= 4;\n ieee754_write(this.view, value, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;\r\n\r\n /**\r\n * Reads a 32bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;\r\n\r\n // types/floats/float64\r\n\r\n /**\r\n * Writes a 64bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 8;\n var capacity9 = this.buffer.byteLength;\n if (offset > capacity9)\n this.resize((capacity9 *= 2) > offset ? capacity9 : offset);\n offset -= 8;\n ieee754_write(this.view, value, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;\r\n\r\n /**\r\n * Reads a 64bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;\r\n\r\n\r\n // types/varints/varint32\r\n\r\n /**\r\n * Maximum number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT32_BYTES = 5;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint32 = function(value) {\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n value = value >>> 0;\r\n if (value < 1 << 7 ) return 1;\r\n else if (value < 1 << 14) return 2;\r\n else if (value < 1 << 21) return 3;\r\n else if (value < 1 << 28) return 4;\r\n else return 5;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.\r\n * @param {number} n Signed 32bit integer\r\n * @returns {number} Unsigned zigzag encoded 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode32 = function(n) {\r\n return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 32bit integer.\r\n * @param {number} n Unsigned zigzag encoded 32bit integer\r\n * @returns {number} Signed 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode32 = function(n) {\r\n return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Writes a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var size = ByteBuffer.calculateVarint32(value),\r\n b;\r\n offset += size;\n var capacity10 = this.buffer.byteLength;\n if (offset > capacity10)\n this.resize((capacity10 *= 2) > offset ? capacity10 : offset);\n offset -= size;\n value >>>= 0;\r\n while (value >= 0x80) {\r\n b = (value & 0x7f) | 0x80;\r\n this.view[offset++] = b;\r\n value >>>= 7;\r\n }\r\n this.view[offset++] = value;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return size;\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {\r\n return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available\r\n * to fully decode the varint.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var c = 0,\r\n value = 0 >>> 0,\r\n b;\r\n do {\r\n if (!this.noAssert && offset > this.limit) {\r\n var err = Error(\"Truncated\");\r\n err['truncated'] = true;\r\n throw err;\r\n }\r\n b = this.view[offset++];\r\n if (c < 5)\r\n value |= (b & 0x7f) << (7*c);\r\n ++c;\r\n } while ((b & 0x80) !== 0);\r\n value |= 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n }\r\n return {\r\n \"value\": value,\r\n \"length\": c\r\n };\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32ZigZag = function(offset) {\r\n var val = this.readVarint32(offset);\r\n if (typeof val === 'object')\r\n val[\"value\"] = ByteBuffer.zigZagDecode32(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode32(val);\r\n return val;\r\n };\r\n\r\n // types/varints/varint64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Maximum number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT64_BYTES = 10;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @param {number|!Long} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n if (part2 == 0) {\r\n if (part1 == 0) {\r\n if (part0 < 1 << 14)\r\n return part0 < 1 << 7 ? 1 : 2;\r\n else\r\n return part0 < 1 << 21 ? 3 : 4;\r\n } else {\r\n if (part1 < 1 << 14)\r\n return part1 < 1 << 7 ? 5 : 6;\r\n else\r\n return part1 < 1 << 21 ? 7 : 8;\r\n }\r\n } else\r\n return part2 < 1 << 7 ? 9 : 10;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.\r\n * @param {number|!Long} value Signed long\r\n * @returns {!Long} Unsigned zigzag encoded long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 64bit integer.\r\n * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number\r\n * @returns {!Long} Signed long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();\r\n };\r\n\r\n /**\r\n * Writes a 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n var size = ByteBuffer.calculateVarint64(value),\r\n part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n offset += size;\n var capacity11 = this.buffer.byteLength;\n if (offset > capacity11)\n this.resize((capacity11 *= 2) > offset ? capacity11 : offset);\n offset -= size;\n switch (size) {\r\n case 10: this.view[offset+9] = (part2 >>> 7) & 0x01;\r\n case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;\r\n case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;\r\n case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;\r\n }\r\n if (relative) {\r\n this.offset += size;\r\n return this;\r\n } else {\r\n return size;\r\n }\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {\r\n return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var start = offset,\r\n part0 = 0,\r\n part1 = 0,\r\n part2 = 0,\r\n b = 0;\r\n b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n throw Error(\"Buffer overrun\"); }}}}}}}}}}\r\n var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n } else {\r\n return {\r\n 'value': value,\r\n 'length': offset-start\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64ZigZag = function(offset) {\r\n var val = this.readVarint64(offset);\r\n if (val && val['value'] instanceof Long)\r\n val[\"value\"] = ByteBuffer.zigZagDecode64(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode64(val);\r\n return val;\r\n };\r\n\r\n } // Long\r\n\r\n\r\n // types/strings/cstring\r\n\r\n /**\r\n * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL\r\n * characters itself.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * contained in `str` + 1 if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeCString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n var i,\r\n k = str.length;\r\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n for (i=0; i>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n // UTF8 strings do not contain zero bytes in between except for the zero character, so:\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k+1;\n var capacity12 = this.buffer.byteLength;\n if (offset > capacity12)\n this.resize((capacity12 *= 2) > offset ? capacity12 : offset);\n offset -= k+1;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n this.view[offset++] = 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters\r\n * itself.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readCString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n temp;\r\n // UTF8 strings do not contain zero bytes in between except for the zero character itself, so:\r\n var sd, b = -1;\r\n utfx.decodeUTF8toUTF16(function() {\r\n if (b === 0) return null;\r\n if (offset >= this.limit)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" < \"+this.limit);\r\n b = this.view[offset++];\r\n return b === 0 ? null : b;\r\n }.bind(this), sd = stringDestination(), true);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/istring\r\n\r\n /**\r\n * Writes a length as uint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeIString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n offset += 4+k;\n var capacity13 = this.buffer.byteLength;\n if (offset > capacity13)\n this.resize((capacity13 *= 2) > offset ? capacity13 : offset);\n offset -= 4+k;\n if (this.littleEndian) {\n this.view[offset+3] = (k >>> 24) & 0xFF;\n this.view[offset+2] = (k >>> 16) & 0xFF;\n this.view[offset+1] = (k >>> 8) & 0xFF;\n this.view[offset ] = k & 0xFF;\n } else {\n this.view[offset ] = (k >>> 24) & 0xFF;\n this.view[offset+1] = (k >>> 16) & 0xFF;\n this.view[offset+2] = (k >>> 8) & 0xFF;\n this.view[offset+3] = k & 0xFF;\n }\n offset += 4;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start + 4 + k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+4+k));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as uint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readIString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readUint32(offset);\r\n var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/utf8string\r\n\r\n /**\r\n * Metrics representing number of UTF8 characters. Evaluates to `c`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_CHARS = 'c';\r\n\r\n /**\r\n * Metrics representing number of bytes. Evaluates to `b`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_BYTES = 'b';\r\n\r\n /**\r\n * Writes an UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUTF8String = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var k;\r\n var start = offset;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k;\n var capacity14 = this.buffer.byteLength;\n if (offset > capacity14)\n this.resize((capacity14 *= 2) > offset ? capacity14 : offset);\n offset -= k;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.\r\n * @function\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;\r\n\r\n /**\r\n * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's\r\n * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 characters\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Chars = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[0];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Bytes = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.\r\n * @function\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;\r\n\r\n /**\r\n * Reads an UTF8 encoded string.\r\n * @param {number} length Number of characters or bytes to read.\r\n * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {\r\n if (typeof metrics === 'number') {\r\n offset = metrics;\r\n metrics = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var i = 0,\r\n start = offset,\r\n sd;\r\n if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser\r\n sd = stringDestination();\r\n utfx.decodeUTF8(function() {\r\n return i < length && offset < this.limit ? this.view[offset++] : null;\r\n }.bind(this), function(cp) {\r\n ++i; utfx.UTF8toUTF16(cp, sd);\r\n });\r\n if (i !== length)\r\n throw RangeError(\"Illegal range: Truncated data, \"+i+\" == \"+length);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n } else if (metrics === ByteBuffer.METRICS_BYTES) {\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var k = offset + length;\r\n utfx.decodeUTF8toUTF16(function() {\r\n return offset < k ? this.view[offset++] : null;\r\n }.bind(this), sd = stringDestination(), this.noAssert);\r\n if (offset !== k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+k);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n 'string': sd(),\r\n 'length': offset - start\r\n };\r\n }\r\n } else\r\n throw TypeError(\"Unsupported metrics: \"+metrics);\r\n };\r\n\r\n /**\r\n * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.\r\n * @function\r\n * @param {number} length Number of characters or bytes to read\r\n * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;\r\n\r\n // types/strings/vstring\r\n\r\n /**\r\n * Writes a length as varint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeVString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k, l;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n l = ByteBuffer.calculateVarint32(k);\r\n offset += l+k;\n var capacity15 = this.buffer.byteLength;\n if (offset > capacity15)\n this.resize((capacity15 *= 2) > offset ? capacity15 : offset);\n offset -= l+k;\n offset += this.writeVarint32(k, offset);\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start+k+l)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+k+l));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as varint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readVString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readVarint32(offset);\r\n var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended\r\n * data's length.\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`\r\n * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`\r\n */\r\n ByteBufferPrototype.append = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var length = source.limit - source.offset;\r\n if (length <= 0) return this; // Nothing to append\r\n offset += length;\n var capacity16 = this.buffer.byteLength;\n if (offset > capacity16)\n this.resize((capacity16 *= 2) > offset ? capacity16 : offset);\n offset -= length;\n this.view.set(source.view.subarray(source.offset, source.limit), offset);\r\n source.offset += length;\r\n if (relative) this.offset += length;\n return this;\r\n };\r\n\r\n /**\r\n * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the\r\n specified offset up to the length of this ByteBuffer's data.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#append\r\n */\r\n ByteBufferPrototype.appendTo = function(target, offset) {\r\n target.append(this, offset);\r\n return this;\r\n };\r\n\r\n /**\r\n * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to\r\n * disable them if your code already makes sure that everything is valid.\r\n * @param {boolean} assert `true` to enable assertions, otherwise `false`\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.assert = function(assert) {\r\n this.noAssert = !assert;\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the capacity of this ByteBuffer's backing buffer.\r\n * @returns {number} Capacity of the backing buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.capacity = function() {\r\n return this.buffer.byteLength;\r\n };\r\n /**\r\n * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the\r\n * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.clear = function() {\r\n this.offset = 0;\r\n this.limit = this.buffer.byteLength;\r\n this.markedOffset = -1;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},\r\n * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`\r\n * @returns {!ByteBuffer} Cloned instance\r\n * @expose\r\n */\r\n ByteBufferPrototype.clone = function(copy) {\r\n var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n if (copy) {\r\n bb.buffer = new ArrayBuffer(this.buffer.byteLength);\r\n bb.view = new Uint8Array(bb.buffer);\r\n } else {\r\n bb.buffer = this.buffer;\r\n bb.view = this.view;\r\n }\r\n bb.offset = this.offset;\r\n bb.markedOffset = this.markedOffset;\r\n bb.limit = this.limit;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes\r\n * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and\r\n * adapt {@link ByteBuffer#markedOffset} to the same relative position if set.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.compact = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === 0 && end === this.buffer.byteLength)\r\n return this; // Already compacted\r\n var len = end - begin;\r\n if (len === 0) {\r\n this.buffer = EMPTY_BUFFER;\r\n this.view = null;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = 0;\r\n return this;\r\n }\r\n var buffer = new ArrayBuffer(len);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(begin, end));\r\n this.buffer = buffer;\r\n this.view = view;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Copy\r\n * @expose\r\n */\r\n ByteBufferPrototype.copy = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n var capacity = end - begin,\r\n bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);\r\n bb.offset = 0;\r\n bb.limit = capacity;\r\n if (bb.markedOffset >= 0) bb.markedOffset -= begin;\r\n this.copyTo(bb, 0, begin, end);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}\r\n * by the number of bytes copied if omitted.\r\n * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the\r\n * number of bytes copied if omitted.\r\n * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {\r\n var relative,\r\n targetRelative;\r\n if (!this.noAssert) {\r\n if (!ByteBuffer.isByteBuffer(target))\r\n throw TypeError(\"Illegal target: Not a ByteBuffer\");\r\n }\r\n targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;\r\n sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;\r\n sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;\r\n\r\n if (targetOffset < 0 || targetOffset > target.buffer.byteLength)\r\n throw RangeError(\"Illegal target range: 0 <= \"+targetOffset+\" <= \"+target.buffer.byteLength);\r\n if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength)\r\n throw RangeError(\"Illegal source range: 0 <= \"+sourceOffset+\" <= \"+this.buffer.byteLength);\r\n\r\n var len = sourceLimit - sourceOffset;\r\n if (len === 0)\r\n return target; // Nothing to copy\r\n\r\n target.ensureCapacity(targetOffset + len);\r\n\r\n target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset);\r\n\r\n if (relative) this.offset += len;\r\n if (targetRelative) target.offset += len;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the\r\n * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,\r\n * the required capacity will be used instead.\r\n * @param {number} capacity Required capacity\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.ensureCapacity = function(capacity) {\r\n var current = this.buffer.byteLength;\r\n if (current < capacity)\r\n return this.resize((current *= 2) > capacity ? current : capacity);\r\n return this;\r\n };\r\n\r\n /**\r\n * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {number|string} value Byte value to fill with. If given as a string, the first character is used.\r\n * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted. defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes\r\n */\r\n ByteBufferPrototype.fill = function(value, begin, end) {\r\n var relative = typeof begin === 'undefined';\n if (relative) begin = this.offset;\n if (typeof value === 'string' && value.length > 0)\r\n value = value.charCodeAt(0);\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin >= end)\r\n return this; // Nothing to fill\r\n while (begin < end) this.view[begin++] = value;\r\n if (relative) this.offset = begin;\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and\r\n * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.flip = function() {\r\n this.limit = this.offset;\r\n this.offset = 0;\r\n return this;\r\n };\r\n /**\r\n * Marks an offset on this ByteBuffer to be used later.\r\n * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @see ByteBuffer#reset\r\n * @expose\r\n */\r\n ByteBufferPrototype.mark = function(offset) {\r\n offset = typeof offset === 'undefined' ? this.offset : offset;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n this.markedOffset = offset;\r\n return this;\r\n };\r\n /**\r\n * Sets the byte order.\r\n * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.order = function(littleEndian) {\r\n if (!this.noAssert) {\r\n if (typeof littleEndian !== 'boolean')\r\n throw TypeError(\"Illegal littleEndian: Not a boolean\");\r\n }\r\n this.littleEndian = !!littleEndian;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) little endian byte order.\r\n * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.LE = function(littleEndian) {\r\n this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) big endian byte order.\r\n * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.BE = function(bigEndian) {\r\n this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;\r\n return this;\r\n };\r\n /**\r\n * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be\r\n * modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`\r\n * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`\r\n */\r\n ByteBufferPrototype.prepend = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var len = source.limit - source.offset;\r\n if (len <= 0) return this; // Nothing to prepend\r\n var diff = len - offset;\r\n if (diff > 0) { // Not enough space before offset, so resize + move\r\n var buffer = new ArrayBuffer(this.buffer.byteLength + diff);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(offset, this.buffer.byteLength), len);\r\n this.buffer = buffer;\r\n this.view = view;\r\n this.offset += diff;\r\n if (this.markedOffset >= 0) this.markedOffset += diff;\r\n this.limit += diff;\r\n offset += diff;\r\n } else {\r\n var arrayView = new Uint8Array(this.buffer);\r\n }\r\n this.view.set(source.view.subarray(source.offset, source.limit), offset - len);\r\n\r\n source.offset = source.limit;\r\n if (relative)\r\n this.offset -= len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#prepend\r\n */\r\n ByteBufferPrototype.prependTo = function(target, offset) {\r\n target.prepend(this, offset);\r\n return this;\r\n };\r\n /**\r\n * Prints debug information about this ByteBuffer's contents.\r\n * @param {function(string)=} out Output function to call, defaults to console.log\r\n * @expose\r\n */\r\n ByteBufferPrototype.printDebug = function(out) {\r\n if (typeof out !== 'function') out = console.log.bind(console);\r\n out(\r\n this.toString()+\"\\n\"+\r\n \"-------------------------------------------------------------------\\n\"+\r\n this.toDebug(/* columns */ true)\r\n );\r\n };\r\n\r\n /**\r\n * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}, so this returns `limit - offset`.\r\n * @returns {number} Remaining readable bytes. May be negative if `offset > limit`.\r\n * @expose\r\n */\r\n ByteBufferPrototype.remaining = function() {\r\n return this.limit - this.offset;\r\n };\r\n /**\r\n * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}\r\n * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been\r\n * marked, sets `offset = 0`.\r\n * @returns {!ByteBuffer} this\r\n * @see ByteBuffer#mark\r\n * @expose\r\n */\r\n ByteBufferPrototype.reset = function() {\r\n if (this.markedOffset >= 0) {\r\n this.offset = this.markedOffset;\r\n this.markedOffset = -1;\r\n } else {\r\n this.offset = 0;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that\r\n * large or larger.\r\n * @param {number} capacity Capacity required\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `capacity` is not a number\r\n * @throws {RangeError} If `capacity < 0`\r\n * @expose\r\n */\r\n ByteBufferPrototype.resize = function(capacity) {\r\n if (!this.noAssert) {\r\n if (typeof capacity !== 'number' || capacity % 1 !== 0)\n throw TypeError(\"Illegal capacity: \"+capacity+\" (not an integer)\");\n capacity |= 0;\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity: 0 <= \"+capacity);\r\n }\r\n if (this.buffer.byteLength < capacity) {\r\n var buffer = new ArrayBuffer(capacity);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view);\r\n this.buffer = buffer;\r\n this.view = view;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Reverses this ByteBuffer's contents.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.reverse = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return this; // Nothing to reverse\r\n Array.prototype.reverse.call(this.view.subarray(begin, end));\r\n return this;\r\n };\r\n /**\r\n * Skips the next `length` bytes. This will just advance\r\n * @param {number} length Number of bytes to skip. May also be negative to move the offset back.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.skip = function(length) {\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n }\r\n var offset = this.offset + length;\r\n if (!this.noAssert) {\r\n if (offset < 0 || offset > this.buffer.byteLength)\r\n throw RangeError(\"Illegal length: 0 <= \"+this.offset+\" + \"+length+\" <= \"+this.buffer.byteLength);\r\n }\r\n this.offset = offset;\r\n return this;\r\n };\r\n\r\n /**\r\n * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.slice = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var bb = this.clone();\r\n bb.offset = begin;\r\n bb.limit = end;\r\n return bb;\r\n };\r\n /**\r\n * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if\r\n * possible. Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBuffer = function(forceCopy) {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.byteLength);\n }\r\n // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is\r\n // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So:\r\n if (!forceCopy && offset === 0 && limit === this.buffer.byteLength)\r\n return this.buffer;\r\n if (offset === limit)\r\n return EMPTY_BUFFER;\r\n var buffer = new ArrayBuffer(limit - offset);\r\n new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0);\r\n return buffer;\r\n };\r\n\r\n /**\r\n * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}.\r\n * @function\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory.\r\n * Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer;\r\n\r\n /**\r\n * Converts the ByteBuffer's contents to a string.\r\n * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows\r\n * direct conversion to \"utf8\", \"hex\", \"base64\" and \"binary\" encoding. \"debug\" returns a hex representation with\r\n * highlighted offsets.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {string} String representation\r\n * @throws {Error} If `encoding` is invalid\r\n * @expose\r\n */\r\n ByteBufferPrototype.toString = function(encoding, begin, end) {\r\n if (typeof encoding === 'undefined')\r\n return \"ByteBufferAB(offset=\"+this.offset+\",markedOffset=\"+this.markedOffset+\",limit=\"+this.limit+\",capacity=\"+this.capacity()+\")\";\r\n if (typeof encoding === 'number')\r\n encoding = \"utf8\",\r\n begin = encoding,\r\n end = begin;\r\n switch (encoding) {\r\n case \"utf8\":\r\n return this.toUTF8(begin, end);\r\n case \"base64\":\r\n return this.toBase64(begin, end);\r\n case \"hex\":\r\n return this.toHex(begin, end);\r\n case \"binary\":\r\n return this.toBinary(begin, end);\r\n case \"debug\":\r\n return this.toDebug();\r\n case \"columns\":\r\n return this.toColumns();\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n };\r\n\r\n // lxiv-embeddable\r\n\r\n /**\r\n * lxiv-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/lxiv for details\r\n */\r\n var lxiv = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * lxiv namespace.\r\n * @type {!Object.}\r\n * @exports lxiv\r\n */\r\n var lxiv = {};\r\n\r\n /**\r\n * Character codes for output.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var aout = [\r\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\r\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102,\r\n 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\r\n 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47\r\n ];\r\n\r\n /**\r\n * Character codes for input.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var ain = [];\r\n for (var i=0, k=aout.length; i>2)&0x3f]);\r\n t = (b&0x3)<<4;\r\n if ((b = src()) !== null) {\r\n t |= (b>>4)&0xf;\r\n dst(aout[(t|((b>>4)&0xf))&0x3f]);\r\n t = (b&0xf)<<2;\r\n if ((b = src()) !== null)\r\n dst(aout[(t|((b>>6)&0x3))&0x3f]),\r\n dst(aout[b&0x3f]);\r\n else\r\n dst(aout[t&0x3f]),\r\n dst(61);\r\n } else\r\n dst(aout[t&0x3f]),\r\n dst(61),\r\n dst(61);\r\n }\r\n };\r\n\r\n /**\r\n * Decodes base64 char codes to bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n * @throws {Error} If a character code is invalid\r\n */\r\n lxiv.decode = function(src, dst) {\r\n var c, t1, t2;\r\n function fail(c) {\r\n throw Error(\"Illegal character code: \"+c);\r\n }\r\n while ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined') fail(c);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined') fail(c);\r\n dst((t1<<2)>>>0|(t2&0x30)>>4);\r\n if ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t1&0x3)<<6)>>>0|t2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Tests if a string is valid base64.\r\n * @param {string} str String to test\r\n * @returns {boolean} `true` if valid, otherwise `false`\r\n */\r\n lxiv.test = function(str) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str);\r\n };\r\n\r\n return lxiv;\r\n }();\r\n\r\n // encodings/base64\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents to a base64 encoded string.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Base64 encoded string\r\n * @throws {RangeError} If `begin` or `end` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBase64 = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin = begin | 0; end = end | 0;\r\n if (begin < 0 || end > this.capacity || begin > end)\r\n throw RangeError(\"begin, end\");\r\n var sd; lxiv.encode(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBase64 = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var bb = new ByteBuffer(str.length/4*3, littleEndian),\r\n i = 0;\r\n lxiv.decode(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Encodes a binary string to base64 like `window.btoa` does.\r\n * @param {string} str Binary string\r\n * @returns {string} Base64 encoded string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa\r\n * @expose\r\n */\r\n ByteBuffer.btoa = function(str) {\r\n return ByteBuffer.fromBinary(str).toBase64();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to binary like `window.atob` does.\r\n * @param {string} b64 Base64 encoded string\r\n * @returns {string} Binary string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob\r\n * @expose\r\n */\r\n ByteBuffer.atob = function(b64) {\r\n return ByteBuffer.fromBase64(b64).toBinary();\r\n };\r\n\r\n // encodings/binary\r\n\r\n /**\r\n * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Binary encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBinary = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin |= 0; end |= 0;\r\n if (begin < 0 || end > this.capacity() || begin > end)\r\n throw RangeError(\"begin, end\");\r\n if (begin === end)\r\n return \"\";\r\n var chars = [],\r\n parts = [];\r\n while (begin < end) {\r\n chars.push(this.view[begin++]);\r\n if (chars.length >= 1024)\r\n parts.push(String.fromCharCode.apply(String, chars)),\r\n chars = [];\r\n }\r\n return parts.join('') + String.fromCharCode.apply(String, chars);\r\n };\r\n\r\n /**\r\n * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBinary = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var i = 0,\r\n k = str.length,\r\n charCode,\r\n bb = new ByteBuffer(k, littleEndian);\r\n while (i 0xff)\r\n throw RangeError(\"illegal char code: \"+charCode);\r\n bb.view[i++] = charCode;\r\n }\r\n bb.limit = k;\r\n return bb;\r\n };\r\n\r\n // encodings/debug\r\n\r\n /**\r\n * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:\r\n * * `<` : offset,\r\n * * `'` : markedOffset,\r\n * * `>` : limit,\r\n * * `|` : offset and limit,\r\n * * `[` : offset and markedOffset,\r\n * * `]` : markedOffset and limit,\r\n * * `!` : offset, markedOffset and limit\r\n * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`\r\n * @returns {string|!Array.} Debug string or array of lines if `asArray = true`\r\n * @expose\r\n * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`\r\n * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`\r\n * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`\r\n * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`\r\n */\r\n ByteBufferPrototype.toDebug = function(columns) {\r\n var i = -1,\r\n k = this.buffer.byteLength,\r\n b,\r\n hex = \"\",\r\n asc = \"\",\r\n out = \"\";\r\n while (i 32 && b < 127 ? String.fromCharCode(b) : '.';\r\n }\r\n ++i;\r\n if (columns) {\r\n if (i > 0 && i % 16 === 0 && i !== k) {\r\n while (hex.length < 3*16+3) hex += \" \";\r\n out += hex+asc+\"\\n\";\r\n hex = asc = \"\";\r\n }\r\n }\r\n if (i === this.offset && i === this.limit)\r\n hex += i === this.markedOffset ? \"!\" : \"|\";\r\n else if (i === this.offset)\r\n hex += i === this.markedOffset ? \"[\" : \"<\";\r\n else if (i === this.limit)\r\n hex += i === this.markedOffset ? \"]\" : \">\";\r\n else\r\n hex += i === this.markedOffset ? \"'\" : (columns || (i !== 0 && i !== k) ? \" \" : \"\");\r\n }\r\n if (columns && hex !== \" \") {\r\n while (hex.length < 3*16+3)\r\n hex += \" \";\r\n out += hex + asc + \"\\n\";\r\n }\r\n return columns ? out : hex;\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string with marked offsets to a ByteBuffer.\r\n * @param {string} str Debug string to decode (not be generated with `columns = true`)\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n * @see ByteBuffer#toDebug\r\n */\r\n ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {\r\n var k = str.length,\r\n bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);\r\n var i = 0, j = 0, ch, b,\r\n rs = false, // Require symbol next\r\n ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?\r\n fail = false;\r\n while (i':\r\n if (!noAssert) {\r\n if (hl) {\r\n fail = true;\r\n break;\r\n }\r\n hl = true;\r\n }\r\n bb.limit = j;\r\n rs = false;\r\n break;\r\n case \"'\":\r\n if (!noAssert) {\r\n if (hm) {\r\n fail = true;\r\n break;\r\n }\r\n hm = true;\r\n }\r\n bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case ' ':\r\n rs = false;\r\n break;\r\n default:\r\n if (!noAssert) {\r\n if (rs) {\r\n fail = true;\r\n break;\r\n }\r\n }\r\n b = parseInt(ch+str.charAt(i++), 16);\r\n if (!noAssert) {\r\n if (isNaN(b) || b < 0 || b > 255)\r\n throw TypeError(\"Illegal str: Not a debug encoded string\");\r\n }\r\n bb.view[j++] = b;\r\n rs = true;\r\n }\r\n if (fail)\r\n throw TypeError(\"Illegal str: Invalid symbol at \"+i);\r\n }\r\n if (!noAssert) {\r\n if (!ho || !hl)\r\n throw TypeError(\"Illegal str: Missing offset or limit\");\r\n if (j>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var out = new Array(end - begin),\r\n b;\r\n while (begin < end) {\r\n b = this.view[begin++];\r\n if (b < 0x10)\r\n out.push(\"0\", b.toString(16));\r\n else out.push(b.toString(16));\r\n }\r\n return out.join('');\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromHex = function(str, littleEndian, noAssert) {\r\n if (!noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (str.length % 2 !== 0)\r\n throw TypeError(\"Illegal str: Length not a multiple of 2\");\r\n }\r\n var k = str.length,\r\n bb = new ByteBuffer((k / 2) | 0, littleEndian),\r\n b;\r\n for (var i=0, j=0; i 255)\r\n throw TypeError(\"Illegal str: Contains non-hex characters\");\r\n bb.view[j++] = b;\r\n }\r\n bb.limit = j;\r\n return bb;\r\n };\r\n\r\n // utfx-embeddable\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n // encodings/utf8\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded\r\n * string.\r\n * @returns {string} Hex encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toUTF8 = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var sd; try {\r\n utfx.decodeUTF8toUTF16(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n } catch (e) {\r\n if (begin !== end)\r\n throw RangeError(\"Illegal range: Truncated data, \"+begin+\" != \"+end);\r\n }\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes an UTF8 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {\r\n if (!noAssert)\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert),\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n return ByteBuffer;\r\n});\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bytebuffer/dist/bytebuffer.js\n// module id = 68\n// module chunks = 1","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_classof.js\n// module id = 69\n// module chunks = 1","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_is-array-iter.js\n// module id = 73\n// module chunks = 1","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-call.js\n// module id = 74\n// module chunks = 1","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-detect.js\n// module id = 76\n// module chunks = 1","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_perform.js\n// module id = 80\n// module chunks = 1","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_promise-resolve.js\n// module id = 81\n// module chunks = 1","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_species-constructor.js\n// module id = 83\n// module chunks = 1","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_task.js\n// module id = 84\n// module chunks = 1","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap) {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64');\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n return '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 86\n// module chunks = 1","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/component-normalizer.js\n// module id = 97\n// module chunks = 1","import Vue from \"vue\"\nimport VueRouter from \"vue-router\"\nimport routes from \"./routes\"\n\nVue.use(VueRouter)\n\nexport default new VueRouter({\n mode: 'history',\n routes\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// style-loader: Adds some css to the DOM by adding a \n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","import { sharedEventDispatcher } from \"./event\";\nimport * as ByteBuffer from \"bytebuffer\"\n\nconst NUS_SERVICE_UUID = \"6e400001-b5a3-f393-e0a9-e50e24dcca9e\"\nconst NUS_CHAR_TX_UUID = \"6e400002-b5a3-f393-e0a9-e50e24dcca9e\"\nconst NUS_CHAR_RX_UUID = \"6e400003-b5a3-f393-e0a9-e50e24dcca9e\"\n\n\nvar nus_service;\nvar nus_char_rx;\nvar nus_char_tx;\n\nvar bluetoothDevice;\n\nexport function connect() {\n return navigator.bluetooth.requestDevice({\n filters: [\n { services: [NUS_SERVICE_UUID] }\n ],\n optionalServices: [NUS_SERVICE_UUID]\n })\n .then(device => {\n bluetoothDevice = device;\n console.log(device);\n console.log('Connecting to GATT Server...');\n device.addEventListener('gattserverdisconnected', onDeviceDisconnected);\n return device.gatt.connect();\n })\n .then(server => {\n console.log('Getting Services...');\n return server.getPrimaryServices();\n })\n .then(services => {\n console.log('Getting Characteristics...');\n services.forEach(service => {\n if (service.uuid == NUS_SERVICE_UUID) {\n nus_service = service;\n console.log('> found nus Service: ' + service.uuid);\n }\n });\n return nus_service.getCharacteristics();\n })\n .then(characteristics => {\n characteristics.forEach(characteristic => {\n console.log('>> Characteristic: ' + characteristic.uuid + ' ' +\n getSupportedProperties(characteristic));\n if (characteristic.uuid == NUS_CHAR_TX_UUID) {\n nus_char_tx = characteristic;\n\n } else if (characteristic.uuid == NUS_CHAR_RX_UUID) {\n nus_char_rx = characteristic;\n characteristic.addEventListener('characteristicvaluechanged',\n onRxDataReceived);\n characteristic.startNotifications();\n }\n });\n console.log(\"connected!\");\n sharedEventDispatcher().emit(\"ble_connected\");\n })\n .catch(error => {\n sharedEventDispatcher().emit(\"ble_connect_error\");\n });\n}\n\n\nexport function disconnect() {\n if (bluetoothDevice && bluetoothDevice.gatt.connected) {\n bluetoothDevice.gatt.disconnect();\n bluetoothDevice = null;\n }\n}\n\n\nexport function tx_data(buff) {\n console.log(\"tx data:\", ByteBuffer.wrap(buff).toDebug());\n return nus_char_tx.writeValue(buff);\n}\n\n/* Utils */\n\nfunction onRxDataReceived(event) {\n console.log(\"rx data:\", ByteBuffer.wrap(event.target.value.buffer).toDebug());\n sharedEventDispatcher().emit(\"ble_rx_data\", event.target.value.buffer);\n}\n\nfunction onDeviceDisconnected(event) {\n sharedEventDispatcher().emit(\"ble_disconnected\");\n}\n\nfunction getSupportedProperties(characteristic) {\n let supportedProperties = [];\n for (const p in characteristic.properties) {\n if (characteristic.properties[p] === true) {\n supportedProperties.push(p.toUpperCase());\n }\n }\n return '[' + supportedProperties.join(', ') + ']';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/pixl.ble.js","/*\r\n Copyright 2013-2014 Daniel Wirtz \r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license bytebuffer.js (c) 2015 Daniel Wirtz \r\n * Backing buffer: ArrayBuffer, Accessor: Uint8Array\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bytebuffer.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([\"long\"], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module['exports'] = (function() {\r\n var Long; try { Long = require(\"long\"); } catch (e) {}\r\n return factory(Long);\r\n })();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"ByteBuffer\"] = factory(global[\"dcodeIO\"][\"Long\"]);\r\n\r\n})(this, function(Long) {\r\n \"use strict\";\r\n\r\n /**\r\n * Constructs a new ByteBuffer.\r\n * @class The swiss army knife for binary data in JavaScript.\r\n * @exports ByteBuffer\r\n * @constructor\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @expose\r\n */\r\n var ByteBuffer = function(capacity, littleEndian, noAssert) {\r\n if (typeof capacity === 'undefined')\r\n capacity = ByteBuffer.DEFAULT_CAPACITY;\r\n if (typeof littleEndian === 'undefined')\r\n littleEndian = ByteBuffer.DEFAULT_ENDIAN;\r\n if (typeof noAssert === 'undefined')\r\n noAssert = ByteBuffer.DEFAULT_NOASSERT;\r\n if (!noAssert) {\r\n capacity = capacity | 0;\r\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity\");\r\n littleEndian = !!littleEndian;\r\n noAssert = !!noAssert;\r\n }\r\n\r\n /**\r\n * Backing ArrayBuffer.\r\n * @type {!ArrayBuffer}\r\n * @expose\r\n */\r\n this.buffer = capacity === 0 ? EMPTY_BUFFER : new ArrayBuffer(capacity);\r\n\r\n /**\r\n * Uint8Array utilized to manipulate the backing buffer. Becomes `null` if the backing buffer has a capacity of `0`.\r\n * @type {?Uint8Array}\r\n * @expose\r\n */\r\n this.view = capacity === 0 ? null : new Uint8Array(this.buffer);\r\n\r\n /**\r\n * Absolute read/write offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.offset = 0;\r\n\r\n /**\r\n * Marked offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#mark\r\n * @see ByteBuffer#reset\r\n */\r\n this.markedOffset = -1;\r\n\r\n /**\r\n * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.limit = capacity;\r\n\r\n /**\r\n * Whether to use little endian byte order, defaults to `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.littleEndian = littleEndian;\r\n\r\n /**\r\n * Whether to skip assertions of offsets and values, defaults to `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.noAssert = noAssert;\r\n };\r\n\r\n /**\r\n * ByteBuffer version.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.VERSION = \"5.0.1\";\r\n\r\n /**\r\n * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.LITTLE_ENDIAN = true;\r\n\r\n /**\r\n * Big endian constant that can be used instead of its boolean value. Evaluates to `false`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.BIG_ENDIAN = false;\r\n\r\n /**\r\n * Default initial capacity of `16`.\r\n * @type {number}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_CAPACITY = 16;\r\n\r\n /**\r\n * Default endianess of `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;\r\n\r\n /**\r\n * Default no assertions flag of `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_NOASSERT = false;\r\n\r\n /**\r\n * A `Long` class for representing a 64-bit two's-complement integer value. May be `null` if Long.js has not been loaded\r\n * and int64 support is not available.\r\n * @type {?Long}\r\n * @const\r\n * @see https://github.com/dcodeIO/long.js\r\n * @expose\r\n */\r\n ByteBuffer.Long = Long || null;\r\n\r\n /**\r\n * @alias ByteBuffer.prototype\r\n * @inner\r\n */\r\n var ByteBufferPrototype = ByteBuffer.prototype;\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a ByteBuffer or not.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n * @private\r\n */\r\n ByteBufferPrototype.__isByteBuffer__;\r\n\r\n Object.defineProperty(ByteBufferPrototype, \"__isByteBuffer__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n // helpers\r\n\r\n /**\r\n * @type {!ArrayBuffer}\r\n * @inner\r\n */\r\n var EMPTY_BUFFER = new ArrayBuffer(0);\r\n\r\n /**\r\n * String.fromCharCode reference for compile-time renaming.\r\n * @type {function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Creates a source function for a string.\r\n * @param {string} s String to read from\r\n * @returns {function():number|null} Source function returning the next char code respectively `null` if there are\r\n * no more characters left.\r\n * @throws {TypeError} If the argument is invalid\r\n * @inner\r\n */\r\n function stringSource(s) {\r\n var i=0; return function() {\r\n return i < s.length ? s.charCodeAt(i++) : null;\r\n };\r\n }\r\n\r\n /**\r\n * Creates a destination function for a string.\r\n * @returns {function(number=):undefined|string} Destination function successively called with the next char code.\r\n * Returns the final string when called without arguments.\r\n * @inner\r\n */\r\n function stringDestination() {\r\n var cs = [], ps = []; return function() {\r\n if (arguments.length === 0)\r\n return ps.join('')+stringFromCharCode.apply(String, cs);\r\n if (cs.length + arguments.length > 1024)\r\n ps.push(stringFromCharCode.apply(String, cs)),\r\n cs.length = 0;\r\n Array.prototype.push.apply(cs, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Gets the accessor type.\r\n * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.accessor = function() {\r\n return Uint8Array;\r\n };\r\n /**\r\n * Allocates a new ByteBuffer backed by a buffer of the specified capacity.\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {\r\n return new ByteBuffer(capacity, littleEndian, noAssert);\r\n };\r\n\r\n /**\r\n * Concatenates multiple ByteBuffers into one.\r\n * @param {!Array.} buffers Buffers to concatenate\r\n * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string (\"base64\", \"hex\", \"binary\",\r\n * defaults to \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults\r\n * to {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} Concatenated ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {\r\n if (typeof encoding === 'boolean' || typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n var capacity = 0;\r\n for (var i=0, k=buffers.length, length; i 0) capacity += length;\r\n }\r\n if (capacity === 0)\r\n return new ByteBuffer(0, littleEndian, noAssert);\r\n var bb = new ByteBuffer(capacity, littleEndian, noAssert),\r\n bi;\r\n i=0; while (i} buffer Anything that can be wrapped\r\n * @param {(string|boolean)=} encoding String encoding if `buffer` is a string (\"base64\", \"hex\", \"binary\", defaults to\r\n * \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`\r\n * @expose\r\n */\r\n ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {\r\n if (typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n if (typeof buffer === 'string') {\r\n if (typeof encoding === 'undefined')\r\n encoding = \"utf8\";\r\n switch (encoding) {\r\n case \"base64\":\r\n return ByteBuffer.fromBase64(buffer, littleEndian);\r\n case \"hex\":\r\n return ByteBuffer.fromHex(buffer, littleEndian);\r\n case \"binary\":\r\n return ByteBuffer.fromBinary(buffer, littleEndian);\r\n case \"utf8\":\r\n return ByteBuffer.fromUTF8(buffer, littleEndian);\r\n case \"debug\":\r\n return ByteBuffer.fromDebug(buffer, littleEndian);\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n }\r\n if (buffer === null || typeof buffer !== 'object')\r\n throw TypeError(\"Illegal buffer\");\r\n var bb;\r\n if (ByteBuffer.isByteBuffer(buffer)) {\r\n bb = ByteBufferPrototype.clone.call(buffer);\r\n bb.markedOffset = -1;\r\n return bb;\r\n }\r\n if (buffer instanceof Uint8Array) { // Extract ArrayBuffer from Uint8Array\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER\r\n bb.buffer = buffer.buffer;\r\n bb.offset = buffer.byteOffset;\r\n bb.limit = buffer.byteOffset + buffer.byteLength;\r\n bb.view = new Uint8Array(buffer.buffer);\r\n }\r\n } else if (buffer instanceof ArrayBuffer) { // Reuse ArrayBuffer\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.byteLength > 0) {\r\n bb.buffer = buffer;\r\n bb.offset = 0;\r\n bb.limit = buffer.byteLength;\r\n bb.view = buffer.byteLength > 0 ? new Uint8Array(buffer) : null;\r\n }\r\n } else if (Object.prototype.toString.call(buffer) === \"[object Array]\") { // Create from octets\r\n bb = new ByteBuffer(buffer.length, littleEndian, noAssert);\r\n bb.limit = buffer.length;\r\n for (var i=0; i} value Array of booleans to write\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBitSet = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (!(value instanceof Array))\r\n throw TypeError(\"Illegal BitSet: Not an array\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n\r\n var start = offset,\r\n bits = value.length,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n k;\r\n\r\n offset += this.writeVarint32(bits,offset);\r\n\r\n while(bytes--) {\r\n k = (!!value[bit++] & 1) |\r\n ((!!value[bit++] & 1) << 1) |\r\n ((!!value[bit++] & 1) << 2) |\r\n ((!!value[bit++] & 1) << 3) |\r\n ((!!value[bit++] & 1) << 4) |\r\n ((!!value[bit++] & 1) << 5) |\r\n ((!!value[bit++] & 1) << 6) |\r\n ((!!value[bit++] & 1) << 7);\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0; k = 0;\r\n while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n }\r\n\r\n /**\r\n * Reads a BitSet as an array of booleans.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {Array\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBitSet = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n\r\n var ret = this.readVarint32(offset),\r\n bits = ret.value,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n value = [],\r\n k;\r\n\r\n offset += ret.length;\r\n\r\n while(bytes--) {\r\n k = this.readByte(offset++);\r\n value[bit++] = !!(k & 0x01);\r\n value[bit++] = !!(k & 0x02);\r\n value[bit++] = !!(k & 0x04);\r\n value[bit++] = !!(k & 0x08);\r\n value[bit++] = !!(k & 0x10);\r\n value[bit++] = !!(k & 0x20);\r\n value[bit++] = !!(k & 0x40);\r\n value[bit++] = !!(k & 0x80);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0;\r\n k = this.readByte(offset++);\r\n while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n }\r\n return value;\r\n }\r\n /**\r\n * Reads the specified number of bytes.\r\n * @param {number} length Number of bytes to read\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBytes = function(length, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var slice = this.slice(offset, offset + length);\r\n if (relative) this.offset += length;\n return slice;\r\n };\r\n\r\n /**\r\n * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.\r\n * @function\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;\r\n\r\n // types/ints/int8\r\n\r\n /**\r\n * Writes an 8bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity0 = this.buffer.byteLength;\n if (offset > capacity0)\n this.resize((capacity0 *= 2) > offset ? capacity0 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;\r\n\r\n /**\r\n * Reads an 8bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;\r\n\r\n /**\r\n * Writes an 8bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 1;\n var capacity1 = this.buffer.byteLength;\n if (offset > capacity1)\n this.resize((capacity1 *= 2) > offset ? capacity1 : offset);\n offset -= 1;\n this.view[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;\r\n\r\n /**\r\n * Reads an 8bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var value = this.view[offset];\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;\r\n\r\n // types/ints/int16\r\n\r\n /**\r\n * Writes a 16bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity2 = this.buffer.byteLength;\n if (offset > capacity2)\n this.resize((capacity2 *= 2) > offset ? capacity2 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;\r\n\r\n /**\r\n * Reads a 16bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;\r\n\r\n /**\r\n * Writes a 16bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 2;\n var capacity3 = this.buffer.byteLength;\n if (offset > capacity3)\n this.resize((capacity3 *= 2) > offset ? capacity3 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.view[offset+1] = (value & 0xFF00) >>> 8;\r\n this.view[offset ] = value & 0x00FF;\r\n } else {\r\n this.view[offset] = (value & 0xFF00) >>> 8;\r\n this.view[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;\r\n\r\n /**\r\n * Reads a 16bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.view[offset ];\r\n value |= this.view[offset+1] << 8;\r\n } else {\r\n value = this.view[offset ] << 8;\r\n value |= this.view[offset+1];\r\n }\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;\r\n\r\n // types/ints/int32\r\n\r\n /**\r\n * Writes a 32bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity4 = this.buffer.byteLength;\n if (offset > capacity4)\n this.resize((capacity4 *= 2) > offset ? capacity4 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;\r\n\r\n /**\r\n * Reads a 32bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n value |= 0; // Cast to signed\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;\r\n\r\n /**\r\n * Writes a 32bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity5 = this.buffer.byteLength;\n if (offset > capacity5)\n this.resize((capacity5 *= 2) > offset ? capacity5 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.view[offset+3] = (value >>> 24) & 0xFF;\n this.view[offset+2] = (value >>> 16) & 0xFF;\n this.view[offset+1] = (value >>> 8) & 0xFF;\n this.view[offset ] = value & 0xFF;\n } else {\n this.view[offset ] = (value >>> 24) & 0xFF;\n this.view[offset+1] = (value >>> 16) & 0xFF;\n this.view[offset+2] = (value >>> 8) & 0xFF;\n this.view[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;\r\n\r\n /**\r\n * Reads a 32bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.view[offset+2] << 16;\n value |= this.view[offset+1] << 8;\n value |= this.view[offset ];\n value += this.view[offset+3] << 24 >>> 0;\n } else {\n value = this.view[offset+1] << 16;\n value |= this.view[offset+2] << 8;\n value |= this.view[offset+3];\n value += this.view[offset ] << 24 >>> 0;\n }\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;\r\n\r\n // types/ints/int64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Writes a 64bit signed integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity6 = this.buffer.byteLength;\n if (offset > capacity6)\n this.resize((capacity6 *= 2) > offset ? capacity6 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;\r\n\r\n /**\r\n * Reads a 64bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, false);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;\r\n\r\n /**\r\n * Writes a 64bit unsigned integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity7 = this.buffer.byteLength;\n if (offset > capacity7)\n this.resize((capacity7 *= 2) > offset ? capacity7 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.view[offset+3] = (lo >>> 24) & 0xFF;\n this.view[offset+2] = (lo >>> 16) & 0xFF;\n this.view[offset+1] = (lo >>> 8) & 0xFF;\n this.view[offset ] = lo & 0xFF;\n offset += 4;\r\n this.view[offset+3] = (hi >>> 24) & 0xFF;\n this.view[offset+2] = (hi >>> 16) & 0xFF;\n this.view[offset+1] = (hi >>> 8) & 0xFF;\n this.view[offset ] = hi & 0xFF;\n } else {\r\n this.view[offset ] = (hi >>> 24) & 0xFF;\n this.view[offset+1] = (hi >>> 16) & 0xFF;\n this.view[offset+2] = (hi >>> 8) & 0xFF;\n this.view[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.view[offset ] = (lo >>> 24) & 0xFF;\n this.view[offset+1] = (lo >>> 16) & 0xFF;\n this.view[offset+2] = (lo >>> 8) & 0xFF;\n this.view[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.\r\n * @function\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;\r\n\r\n /**\r\n * Reads a 64bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.view[offset+2] << 16;\n lo |= this.view[offset+1] << 8;\n lo |= this.view[offset ];\n lo += this.view[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.view[offset+2] << 16;\n hi |= this.view[offset+1] << 8;\n hi |= this.view[offset ];\n hi += this.view[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.view[offset+1] << 16;\n hi |= this.view[offset+2] << 8;\n hi |= this.view[offset+3];\n hi += this.view[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.view[offset+1] << 16;\n lo |= this.view[offset+2] << 8;\n lo |= this.view[offset+3];\n lo += this.view[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;\r\n\r\n } // Long\r\n\r\n\r\n // types/floats/float32\r\n\r\n /*\r\n ieee754 - https://github.com/feross/ieee754\r\n\r\n The MIT License (MIT)\r\n\r\n Copyright (c) Feross Aboukhadijeh\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in\r\n all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.\r\n */\r\n\r\n /**\r\n * Reads an IEEE754 float from a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @returns {number}\r\n * @inner\r\n */\r\n function ieee754_read(buffer, offset, isLE, mLen, nBytes) {\r\n var e, m,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n nBits = -7,\r\n i = isLE ? (nBytes - 1) : 0,\r\n d = isLE ? -1 : 1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n }\r\n\r\n /**\r\n * Writes an IEEE754 float to a byte array.\r\n * @param {!Array} buffer\r\n * @param {number} value\r\n * @param {number} offset\r\n * @param {boolean} isLE\r\n * @param {number} mLen\r\n * @param {number} nBytes\r\n * @inner\r\n */\r\n function ieee754_write(buffer, value, offset, isLE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isLE ? 0 : (nBytes - 1),\r\n d = isLE ? 1 : -1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\r\n\r\n buffer[offset + i - d] |= s * 128;\r\n }\r\n\r\n /**\r\n * Writes a 32bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 4;\n var capacity8 = this.buffer.byteLength;\n if (offset > capacity8)\n this.resize((capacity8 *= 2) > offset ? capacity8 : offset);\n offset -= 4;\n ieee754_write(this.view, value, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;\r\n\r\n /**\r\n * Reads a 32bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 23, 4);\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;\r\n\r\n // types/floats/float64\r\n\r\n /**\r\n * Writes a 64bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n offset += 8;\n var capacity9 = this.buffer.byteLength;\n if (offset > capacity9)\n this.resize((capacity9 *= 2) > offset ? capacity9 : offset);\n offset -= 8;\n ieee754_write(this.view, value, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;\r\n\r\n /**\r\n * Reads a 64bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.byteLength);\n }\r\n var value = ieee754_read(this.view, offset, this.littleEndian, 52, 8);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;\r\n\r\n\r\n // types/varints/varint32\r\n\r\n /**\r\n * Maximum number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT32_BYTES = 5;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint32 = function(value) {\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n value = value >>> 0;\r\n if (value < 1 << 7 ) return 1;\r\n else if (value < 1 << 14) return 2;\r\n else if (value < 1 << 21) return 3;\r\n else if (value < 1 << 28) return 4;\r\n else return 5;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.\r\n * @param {number} n Signed 32bit integer\r\n * @returns {number} Unsigned zigzag encoded 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode32 = function(n) {\r\n return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 32bit integer.\r\n * @param {number} n Unsigned zigzag encoded 32bit integer\r\n * @returns {number} Signed 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode32 = function(n) {\r\n return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Writes a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var size = ByteBuffer.calculateVarint32(value),\r\n b;\r\n offset += size;\n var capacity10 = this.buffer.byteLength;\n if (offset > capacity10)\n this.resize((capacity10 *= 2) > offset ? capacity10 : offset);\n offset -= size;\n value >>>= 0;\r\n while (value >= 0x80) {\r\n b = (value & 0x7f) | 0x80;\r\n this.view[offset++] = b;\r\n value >>>= 7;\r\n }\r\n this.view[offset++] = value;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return size;\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {\r\n return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available\r\n * to fully decode the varint.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var c = 0,\r\n value = 0 >>> 0,\r\n b;\r\n do {\r\n if (!this.noAssert && offset > this.limit) {\r\n var err = Error(\"Truncated\");\r\n err['truncated'] = true;\r\n throw err;\r\n }\r\n b = this.view[offset++];\r\n if (c < 5)\r\n value |= (b & 0x7f) << (7*c);\r\n ++c;\r\n } while ((b & 0x80) !== 0);\r\n value |= 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n }\r\n return {\r\n \"value\": value,\r\n \"length\": c\r\n };\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32ZigZag = function(offset) {\r\n var val = this.readVarint32(offset);\r\n if (typeof val === 'object')\r\n val[\"value\"] = ByteBuffer.zigZagDecode32(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode32(val);\r\n return val;\r\n };\r\n\r\n // types/varints/varint64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Maximum number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT64_BYTES = 10;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @param {number|!Long} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n if (part2 == 0) {\r\n if (part1 == 0) {\r\n if (part0 < 1 << 14)\r\n return part0 < 1 << 7 ? 1 : 2;\r\n else\r\n return part0 < 1 << 21 ? 3 : 4;\r\n } else {\r\n if (part1 < 1 << 14)\r\n return part1 < 1 << 7 ? 5 : 6;\r\n else\r\n return part1 < 1 << 21 ? 7 : 8;\r\n }\r\n } else\r\n return part2 < 1 << 7 ? 9 : 10;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.\r\n * @param {number|!Long} value Signed long\r\n * @returns {!Long} Unsigned zigzag encoded long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 64bit integer.\r\n * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number\r\n * @returns {!Long} Signed long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();\r\n };\r\n\r\n /**\r\n * Writes a 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n var size = ByteBuffer.calculateVarint64(value),\r\n part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n offset += size;\n var capacity11 = this.buffer.byteLength;\n if (offset > capacity11)\n this.resize((capacity11 *= 2) > offset ? capacity11 : offset);\n offset -= size;\n switch (size) {\r\n case 10: this.view[offset+9] = (part2 >>> 7) & 0x01;\r\n case 9 : this.view[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;\r\n case 8 : this.view[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7 : this.view[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6 : this.view[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5 : this.view[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;\r\n case 4 : this.view[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3 : this.view[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2 : this.view[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1 : this.view[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;\r\n }\r\n if (relative) {\r\n this.offset += size;\r\n return this;\r\n } else {\r\n return size;\r\n }\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {\r\n return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var start = offset,\r\n part0 = 0,\r\n part1 = 0,\r\n part2 = 0,\r\n b = 0;\r\n b = this.view[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.view[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n throw Error(\"Buffer overrun\"); }}}}}}}}}}\r\n var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n } else {\r\n return {\r\n 'value': value,\r\n 'length': offset-start\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64ZigZag = function(offset) {\r\n var val = this.readVarint64(offset);\r\n if (val && val['value'] instanceof Long)\r\n val[\"value\"] = ByteBuffer.zigZagDecode64(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode64(val);\r\n return val;\r\n };\r\n\r\n } // Long\r\n\r\n\r\n // types/strings/cstring\r\n\r\n /**\r\n * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL\r\n * characters itself.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * contained in `str` + 1 if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeCString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n var i,\r\n k = str.length;\r\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n for (i=0; i>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n // UTF8 strings do not contain zero bytes in between except for the zero character, so:\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k+1;\n var capacity12 = this.buffer.byteLength;\n if (offset > capacity12)\n this.resize((capacity12 *= 2) > offset ? capacity12 : offset);\n offset -= k+1;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n this.view[offset++] = 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters\r\n * itself.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readCString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n temp;\r\n // UTF8 strings do not contain zero bytes in between except for the zero character itself, so:\r\n var sd, b = -1;\r\n utfx.decodeUTF8toUTF16(function() {\r\n if (b === 0) return null;\r\n if (offset >= this.limit)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" < \"+this.limit);\r\n b = this.view[offset++];\r\n return b === 0 ? null : b;\r\n }.bind(this), sd = stringDestination(), true);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/istring\r\n\r\n /**\r\n * Writes a length as uint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeIString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n offset += 4+k;\n var capacity13 = this.buffer.byteLength;\n if (offset > capacity13)\n this.resize((capacity13 *= 2) > offset ? capacity13 : offset);\n offset -= 4+k;\n if (this.littleEndian) {\n this.view[offset+3] = (k >>> 24) & 0xFF;\n this.view[offset+2] = (k >>> 16) & 0xFF;\n this.view[offset+1] = (k >>> 8) & 0xFF;\n this.view[offset ] = k & 0xFF;\n } else {\n this.view[offset ] = (k >>> 24) & 0xFF;\n this.view[offset+1] = (k >>> 16) & 0xFF;\n this.view[offset+2] = (k >>> 8) & 0xFF;\n this.view[offset+3] = k & 0xFF;\n }\n offset += 4;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start + 4 + k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+4+k));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as uint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readIString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readUint32(offset);\r\n var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/utf8string\r\n\r\n /**\r\n * Metrics representing number of UTF8 characters. Evaluates to `c`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_CHARS = 'c';\r\n\r\n /**\r\n * Metrics representing number of bytes. Evaluates to `b`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_BYTES = 'b';\r\n\r\n /**\r\n * Writes an UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUTF8String = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var k;\r\n var start = offset;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n offset += k;\n var capacity14 = this.buffer.byteLength;\n if (offset > capacity14)\n this.resize((capacity14 *= 2) > offset ? capacity14 : offset);\n offset -= k;\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.\r\n * @function\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;\r\n\r\n /**\r\n * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's\r\n * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 characters\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Chars = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[0];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Bytes = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[1];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.\r\n * @function\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;\r\n\r\n /**\r\n * Reads an UTF8 encoded string.\r\n * @param {number} length Number of characters or bytes to read.\r\n * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {\r\n if (typeof metrics === 'number') {\r\n offset = metrics;\r\n metrics = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var i = 0,\r\n start = offset,\r\n sd;\r\n if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser\r\n sd = stringDestination();\r\n utfx.decodeUTF8(function() {\r\n return i < length && offset < this.limit ? this.view[offset++] : null;\r\n }.bind(this), function(cp) {\r\n ++i; utfx.UTF8toUTF16(cp, sd);\r\n });\r\n if (i !== length)\r\n throw RangeError(\"Illegal range: Truncated data, \"+i+\" == \"+length);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n } else if (metrics === ByteBuffer.METRICS_BYTES) {\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.byteLength);\n }\r\n var k = offset + length;\r\n utfx.decodeUTF8toUTF16(function() {\r\n return offset < k ? this.view[offset++] : null;\r\n }.bind(this), sd = stringDestination(), this.noAssert);\r\n if (offset !== k)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+k);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n 'string': sd(),\r\n 'length': offset - start\r\n };\r\n }\r\n } else\r\n throw TypeError(\"Unsupported metrics: \"+metrics);\r\n };\r\n\r\n /**\r\n * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.\r\n * @function\r\n * @param {number} length Number of characters or bytes to read\r\n * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;\r\n\r\n // types/strings/vstring\r\n\r\n /**\r\n * Writes a length as varint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeVString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset,\r\n k, l;\r\n k = utfx.calculateUTF16asUTF8(stringSource(str), this.noAssert)[1];\r\n l = ByteBuffer.calculateVarint32(k);\r\n offset += l+k;\n var capacity15 = this.buffer.byteLength;\n if (offset > capacity15)\n this.resize((capacity15 *= 2) > offset ? capacity15 : offset);\n offset -= l+k;\n offset += this.writeVarint32(k, offset);\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n this.view[offset++] = b;\r\n }.bind(this));\r\n if (offset !== start+k+l)\r\n throw RangeError(\"Illegal range: Truncated data, \"+offset+\" == \"+(offset+k+l));\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as varint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readVString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.byteLength);\n }\r\n var start = offset;\r\n var len = this.readVarint32(offset);\r\n var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended\r\n * data's length.\r\n * @param {!ByteBuffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its offsets\r\n * will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`\r\n * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`\r\n */\r\n ByteBufferPrototype.append = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var length = source.limit - source.offset;\r\n if (length <= 0) return this; // Nothing to append\r\n offset += length;\n var capacity16 = this.buffer.byteLength;\n if (offset > capacity16)\n this.resize((capacity16 *= 2) > offset ? capacity16 : offset);\n offset -= length;\n this.view.set(source.view.subarray(source.offset, source.limit), offset);\r\n source.offset += length;\r\n if (relative) this.offset += length;\n return this;\r\n };\r\n\r\n /**\r\n * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the\r\n specified offset up to the length of this ByteBuffer's data.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#append\r\n */\r\n ByteBufferPrototype.appendTo = function(target, offset) {\r\n target.append(this, offset);\r\n return this;\r\n };\r\n\r\n /**\r\n * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to\r\n * disable them if your code already makes sure that everything is valid.\r\n * @param {boolean} assert `true` to enable assertions, otherwise `false`\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.assert = function(assert) {\r\n this.noAssert = !assert;\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the capacity of this ByteBuffer's backing buffer.\r\n * @returns {number} Capacity of the backing buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.capacity = function() {\r\n return this.buffer.byteLength;\r\n };\r\n /**\r\n * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the\r\n * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.clear = function() {\r\n this.offset = 0;\r\n this.limit = this.buffer.byteLength;\r\n this.markedOffset = -1;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},\r\n * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`\r\n * @returns {!ByteBuffer} Cloned instance\r\n * @expose\r\n */\r\n ByteBufferPrototype.clone = function(copy) {\r\n var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n if (copy) {\r\n bb.buffer = new ArrayBuffer(this.buffer.byteLength);\r\n bb.view = new Uint8Array(bb.buffer);\r\n } else {\r\n bb.buffer = this.buffer;\r\n bb.view = this.view;\r\n }\r\n bb.offset = this.offset;\r\n bb.markedOffset = this.markedOffset;\r\n bb.limit = this.limit;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes\r\n * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and\r\n * adapt {@link ByteBuffer#markedOffset} to the same relative position if set.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.compact = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === 0 && end === this.buffer.byteLength)\r\n return this; // Already compacted\r\n var len = end - begin;\r\n if (len === 0) {\r\n this.buffer = EMPTY_BUFFER;\r\n this.view = null;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = 0;\r\n return this;\r\n }\r\n var buffer = new ArrayBuffer(len);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(begin, end));\r\n this.buffer = buffer;\r\n this.view = view;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Copy\r\n * @expose\r\n */\r\n ByteBufferPrototype.copy = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n var capacity = end - begin,\r\n bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);\r\n bb.offset = 0;\r\n bb.limit = capacity;\r\n if (bb.markedOffset >= 0) bb.markedOffset -= begin;\r\n this.copyTo(bb, 0, begin, end);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}\r\n * by the number of bytes copied if omitted.\r\n * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the\r\n * number of bytes copied if omitted.\r\n * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {\r\n var relative,\r\n targetRelative;\r\n if (!this.noAssert) {\r\n if (!ByteBuffer.isByteBuffer(target))\r\n throw TypeError(\"Illegal target: Not a ByteBuffer\");\r\n }\r\n targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;\r\n sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;\r\n sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;\r\n\r\n if (targetOffset < 0 || targetOffset > target.buffer.byteLength)\r\n throw RangeError(\"Illegal target range: 0 <= \"+targetOffset+\" <= \"+target.buffer.byteLength);\r\n if (sourceOffset < 0 || sourceLimit > this.buffer.byteLength)\r\n throw RangeError(\"Illegal source range: 0 <= \"+sourceOffset+\" <= \"+this.buffer.byteLength);\r\n\r\n var len = sourceLimit - sourceOffset;\r\n if (len === 0)\r\n return target; // Nothing to copy\r\n\r\n target.ensureCapacity(targetOffset + len);\r\n\r\n target.view.set(this.view.subarray(sourceOffset, sourceLimit), targetOffset);\r\n\r\n if (relative) this.offset += len;\r\n if (targetRelative) target.offset += len;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the\r\n * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,\r\n * the required capacity will be used instead.\r\n * @param {number} capacity Required capacity\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.ensureCapacity = function(capacity) {\r\n var current = this.buffer.byteLength;\r\n if (current < capacity)\r\n return this.resize((current *= 2) > capacity ? current : capacity);\r\n return this;\r\n };\r\n\r\n /**\r\n * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {number|string} value Byte value to fill with. If given as a string, the first character is used.\r\n * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted. defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes\r\n */\r\n ByteBufferPrototype.fill = function(value, begin, end) {\r\n var relative = typeof begin === 'undefined';\n if (relative) begin = this.offset;\n if (typeof value === 'string' && value.length > 0)\r\n value = value.charCodeAt(0);\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin >= end)\r\n return this; // Nothing to fill\r\n while (begin < end) this.view[begin++] = value;\r\n if (relative) this.offset = begin;\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and\r\n * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.flip = function() {\r\n this.limit = this.offset;\r\n this.offset = 0;\r\n return this;\r\n };\r\n /**\r\n * Marks an offset on this ByteBuffer to be used later.\r\n * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @see ByteBuffer#reset\r\n * @expose\r\n */\r\n ByteBufferPrototype.mark = function(offset) {\r\n offset = typeof offset === 'undefined' ? this.offset : offset;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n this.markedOffset = offset;\r\n return this;\r\n };\r\n /**\r\n * Sets the byte order.\r\n * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.order = function(littleEndian) {\r\n if (!this.noAssert) {\r\n if (typeof littleEndian !== 'boolean')\r\n throw TypeError(\"Illegal littleEndian: Not a boolean\");\r\n }\r\n this.littleEndian = !!littleEndian;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) little endian byte order.\r\n * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.LE = function(littleEndian) {\r\n this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) big endian byte order.\r\n * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.BE = function(bigEndian) {\r\n this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;\r\n return this;\r\n };\r\n /**\r\n * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer|string|!ArrayBuffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be\r\n * modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`\r\n * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`\r\n */\r\n ByteBufferPrototype.prepend = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.byteLength)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.byteLength);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var len = source.limit - source.offset;\r\n if (len <= 0) return this; // Nothing to prepend\r\n var diff = len - offset;\r\n if (diff > 0) { // Not enough space before offset, so resize + move\r\n var buffer = new ArrayBuffer(this.buffer.byteLength + diff);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view.subarray(offset, this.buffer.byteLength), len);\r\n this.buffer = buffer;\r\n this.view = view;\r\n this.offset += diff;\r\n if (this.markedOffset >= 0) this.markedOffset += diff;\r\n this.limit += diff;\r\n offset += diff;\r\n } else {\r\n var arrayView = new Uint8Array(this.buffer);\r\n }\r\n this.view.set(source.view.subarray(source.offset, source.limit), offset - len);\r\n\r\n source.offset = source.limit;\r\n if (relative)\r\n this.offset -= len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#prepend\r\n */\r\n ByteBufferPrototype.prependTo = function(target, offset) {\r\n target.prepend(this, offset);\r\n return this;\r\n };\r\n /**\r\n * Prints debug information about this ByteBuffer's contents.\r\n * @param {function(string)=} out Output function to call, defaults to console.log\r\n * @expose\r\n */\r\n ByteBufferPrototype.printDebug = function(out) {\r\n if (typeof out !== 'function') out = console.log.bind(console);\r\n out(\r\n this.toString()+\"\\n\"+\r\n \"-------------------------------------------------------------------\\n\"+\r\n this.toDebug(/* columns */ true)\r\n );\r\n };\r\n\r\n /**\r\n * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}, so this returns `limit - offset`.\r\n * @returns {number} Remaining readable bytes. May be negative if `offset > limit`.\r\n * @expose\r\n */\r\n ByteBufferPrototype.remaining = function() {\r\n return this.limit - this.offset;\r\n };\r\n /**\r\n * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}\r\n * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been\r\n * marked, sets `offset = 0`.\r\n * @returns {!ByteBuffer} this\r\n * @see ByteBuffer#mark\r\n * @expose\r\n */\r\n ByteBufferPrototype.reset = function() {\r\n if (this.markedOffset >= 0) {\r\n this.offset = this.markedOffset;\r\n this.markedOffset = -1;\r\n } else {\r\n this.offset = 0;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that\r\n * large or larger.\r\n * @param {number} capacity Capacity required\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `capacity` is not a number\r\n * @throws {RangeError} If `capacity < 0`\r\n * @expose\r\n */\r\n ByteBufferPrototype.resize = function(capacity) {\r\n if (!this.noAssert) {\r\n if (typeof capacity !== 'number' || capacity % 1 !== 0)\n throw TypeError(\"Illegal capacity: \"+capacity+\" (not an integer)\");\n capacity |= 0;\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity: 0 <= \"+capacity);\r\n }\r\n if (this.buffer.byteLength < capacity) {\r\n var buffer = new ArrayBuffer(capacity);\r\n var view = new Uint8Array(buffer);\r\n view.set(this.view);\r\n this.buffer = buffer;\r\n this.view = view;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Reverses this ByteBuffer's contents.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.reverse = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n if (begin === end)\r\n return this; // Nothing to reverse\r\n Array.prototype.reverse.call(this.view.subarray(begin, end));\r\n return this;\r\n };\r\n /**\r\n * Skips the next `length` bytes. This will just advance\r\n * @param {number} length Number of bytes to skip. May also be negative to move the offset back.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.skip = function(length) {\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n }\r\n var offset = this.offset + length;\r\n if (!this.noAssert) {\r\n if (offset < 0 || offset > this.buffer.byteLength)\r\n throw RangeError(\"Illegal length: 0 <= \"+this.offset+\" + \"+length+\" <= \"+this.buffer.byteLength);\r\n }\r\n this.offset = offset;\r\n return this;\r\n };\r\n\r\n /**\r\n * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.slice = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var bb = this.clone();\r\n bb.offset = begin;\r\n bb.limit = end;\r\n return bb;\r\n };\r\n /**\r\n * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if\r\n * possible. Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBuffer = function(forceCopy) {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.byteLength);\n }\r\n // NOTE: It's not possible to have another ArrayBuffer reference the same memory as the backing buffer. This is\r\n // possible with Uint8Array#subarray only, but we have to return an ArrayBuffer by contract. So:\r\n if (!forceCopy && offset === 0 && limit === this.buffer.byteLength)\r\n return this.buffer;\r\n if (offset === limit)\r\n return EMPTY_BUFFER;\r\n var buffer = new ArrayBuffer(limit - offset);\r\n new Uint8Array(buffer).set(new Uint8Array(this.buffer).subarray(offset, limit), 0);\r\n return buffer;\r\n };\r\n\r\n /**\r\n * Returns a raw buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. This is an alias of {@link ByteBuffer#toBuffer}.\r\n * @function\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory.\r\n * Defaults to `false`\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toArrayBuffer = ByteBufferPrototype.toBuffer;\r\n\r\n /**\r\n * Converts the ByteBuffer's contents to a string.\r\n * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows\r\n * direct conversion to \"utf8\", \"hex\", \"base64\" and \"binary\" encoding. \"debug\" returns a hex representation with\r\n * highlighted offsets.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {string} String representation\r\n * @throws {Error} If `encoding` is invalid\r\n * @expose\r\n */\r\n ByteBufferPrototype.toString = function(encoding, begin, end) {\r\n if (typeof encoding === 'undefined')\r\n return \"ByteBufferAB(offset=\"+this.offset+\",markedOffset=\"+this.markedOffset+\",limit=\"+this.limit+\",capacity=\"+this.capacity()+\")\";\r\n if (typeof encoding === 'number')\r\n encoding = \"utf8\",\r\n begin = encoding,\r\n end = begin;\r\n switch (encoding) {\r\n case \"utf8\":\r\n return this.toUTF8(begin, end);\r\n case \"base64\":\r\n return this.toBase64(begin, end);\r\n case \"hex\":\r\n return this.toHex(begin, end);\r\n case \"binary\":\r\n return this.toBinary(begin, end);\r\n case \"debug\":\r\n return this.toDebug();\r\n case \"columns\":\r\n return this.toColumns();\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n };\r\n\r\n // lxiv-embeddable\r\n\r\n /**\r\n * lxiv-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/lxiv for details\r\n */\r\n var lxiv = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * lxiv namespace.\r\n * @type {!Object.}\r\n * @exports lxiv\r\n */\r\n var lxiv = {};\r\n\r\n /**\r\n * Character codes for output.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var aout = [\r\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\r\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102,\r\n 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\r\n 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47\r\n ];\r\n\r\n /**\r\n * Character codes for input.\r\n * @type {!Array.}\r\n * @inner\r\n */\r\n var ain = [];\r\n for (var i=0, k=aout.length; i>2)&0x3f]);\r\n t = (b&0x3)<<4;\r\n if ((b = src()) !== null) {\r\n t |= (b>>4)&0xf;\r\n dst(aout[(t|((b>>4)&0xf))&0x3f]);\r\n t = (b&0xf)<<2;\r\n if ((b = src()) !== null)\r\n dst(aout[(t|((b>>6)&0x3))&0x3f]),\r\n dst(aout[b&0x3f]);\r\n else\r\n dst(aout[t&0x3f]),\r\n dst(61);\r\n } else\r\n dst(aout[t&0x3f]),\r\n dst(61),\r\n dst(61);\r\n }\r\n };\r\n\r\n /**\r\n * Decodes base64 char codes to bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n * @throws {Error} If a character code is invalid\r\n */\r\n lxiv.decode = function(src, dst) {\r\n var c, t1, t2;\r\n function fail(c) {\r\n throw Error(\"Illegal character code: \"+c);\r\n }\r\n while ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined') fail(c);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined') fail(c);\r\n dst((t1<<2)>>>0|(t2&0x30)>>4);\r\n if ((c = src()) !== null) {\r\n t1 = ain[c];\r\n if (typeof t1 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t2&0xf)<<4)>>>0|(t1&0x3c)>>2);\r\n if ((c = src()) !== null) {\r\n t2 = ain[c];\r\n if (typeof t2 === 'undefined')\r\n if (c === 61) break; else fail(c);\r\n dst(((t1&0x3)<<6)>>>0|t2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Tests if a string is valid base64.\r\n * @param {string} str String to test\r\n * @returns {boolean} `true` if valid, otherwise `false`\r\n */\r\n lxiv.test = function(str) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(str);\r\n };\r\n\r\n return lxiv;\r\n }();\r\n\r\n // encodings/base64\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents to a base64 encoded string.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Base64 encoded string\r\n * @throws {RangeError} If `begin` or `end` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBase64 = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin = begin | 0; end = end | 0;\r\n if (begin < 0 || end > this.capacity || begin > end)\r\n throw RangeError(\"begin, end\");\r\n var sd; lxiv.encode(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBase64 = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var bb = new ByteBuffer(str.length/4*3, littleEndian),\r\n i = 0;\r\n lxiv.decode(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Encodes a binary string to base64 like `window.btoa` does.\r\n * @param {string} str Binary string\r\n * @returns {string} Base64 encoded string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa\r\n * @expose\r\n */\r\n ByteBuffer.btoa = function(str) {\r\n return ByteBuffer.fromBinary(str).toBase64();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to binary like `window.atob` does.\r\n * @param {string} b64 Base64 encoded string\r\n * @returns {string} Binary string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob\r\n * @expose\r\n */\r\n ByteBuffer.atob = function(b64) {\r\n return ByteBuffer.fromBase64(b64).toBinary();\r\n };\r\n\r\n // encodings/binary\r\n\r\n /**\r\n * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Binary encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBinary = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin |= 0; end |= 0;\r\n if (begin < 0 || end > this.capacity() || begin > end)\r\n throw RangeError(\"begin, end\");\r\n if (begin === end)\r\n return \"\";\r\n var chars = [],\r\n parts = [];\r\n while (begin < end) {\r\n chars.push(this.view[begin++]);\r\n if (chars.length >= 1024)\r\n parts.push(String.fromCharCode.apply(String, chars)),\r\n chars = [];\r\n }\r\n return parts.join('') + String.fromCharCode.apply(String, chars);\r\n };\r\n\r\n /**\r\n * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBinary = function(str, littleEndian) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"str\");\r\n var i = 0,\r\n k = str.length,\r\n charCode,\r\n bb = new ByteBuffer(k, littleEndian);\r\n while (i 0xff)\r\n throw RangeError(\"illegal char code: \"+charCode);\r\n bb.view[i++] = charCode;\r\n }\r\n bb.limit = k;\r\n return bb;\r\n };\r\n\r\n // encodings/debug\r\n\r\n /**\r\n * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:\r\n * * `<` : offset,\r\n * * `'` : markedOffset,\r\n * * `>` : limit,\r\n * * `|` : offset and limit,\r\n * * `[` : offset and markedOffset,\r\n * * `]` : markedOffset and limit,\r\n * * `!` : offset, markedOffset and limit\r\n * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`\r\n * @returns {string|!Array.} Debug string or array of lines if `asArray = true`\r\n * @expose\r\n * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`\r\n * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`\r\n * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`\r\n * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`\r\n */\r\n ByteBufferPrototype.toDebug = function(columns) {\r\n var i = -1,\r\n k = this.buffer.byteLength,\r\n b,\r\n hex = \"\",\r\n asc = \"\",\r\n out = \"\";\r\n while (i 32 && b < 127 ? String.fromCharCode(b) : '.';\r\n }\r\n ++i;\r\n if (columns) {\r\n if (i > 0 && i % 16 === 0 && i !== k) {\r\n while (hex.length < 3*16+3) hex += \" \";\r\n out += hex+asc+\"\\n\";\r\n hex = asc = \"\";\r\n }\r\n }\r\n if (i === this.offset && i === this.limit)\r\n hex += i === this.markedOffset ? \"!\" : \"|\";\r\n else if (i === this.offset)\r\n hex += i === this.markedOffset ? \"[\" : \"<\";\r\n else if (i === this.limit)\r\n hex += i === this.markedOffset ? \"]\" : \">\";\r\n else\r\n hex += i === this.markedOffset ? \"'\" : (columns || (i !== 0 && i !== k) ? \" \" : \"\");\r\n }\r\n if (columns && hex !== \" \") {\r\n while (hex.length < 3*16+3)\r\n hex += \" \";\r\n out += hex + asc + \"\\n\";\r\n }\r\n return columns ? out : hex;\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string with marked offsets to a ByteBuffer.\r\n * @param {string} str Debug string to decode (not be generated with `columns = true`)\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n * @see ByteBuffer#toDebug\r\n */\r\n ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {\r\n var k = str.length,\r\n bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);\r\n var i = 0, j = 0, ch, b,\r\n rs = false, // Require symbol next\r\n ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?\r\n fail = false;\r\n while (i':\r\n if (!noAssert) {\r\n if (hl) {\r\n fail = true;\r\n break;\r\n }\r\n hl = true;\r\n }\r\n bb.limit = j;\r\n rs = false;\r\n break;\r\n case \"'\":\r\n if (!noAssert) {\r\n if (hm) {\r\n fail = true;\r\n break;\r\n }\r\n hm = true;\r\n }\r\n bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case ' ':\r\n rs = false;\r\n break;\r\n default:\r\n if (!noAssert) {\r\n if (rs) {\r\n fail = true;\r\n break;\r\n }\r\n }\r\n b = parseInt(ch+str.charAt(i++), 16);\r\n if (!noAssert) {\r\n if (isNaN(b) || b < 0 || b > 255)\r\n throw TypeError(\"Illegal str: Not a debug encoded string\");\r\n }\r\n bb.view[j++] = b;\r\n rs = true;\r\n }\r\n if (fail)\r\n throw TypeError(\"Illegal str: Invalid symbol at \"+i);\r\n }\r\n if (!noAssert) {\r\n if (!ho || !hl)\r\n throw TypeError(\"Illegal str: Missing offset or limit\");\r\n if (j>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var out = new Array(end - begin),\r\n b;\r\n while (begin < end) {\r\n b = this.view[begin++];\r\n if (b < 0x10)\r\n out.push(\"0\", b.toString(16));\r\n else out.push(b.toString(16));\r\n }\r\n return out.join('');\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromHex = function(str, littleEndian, noAssert) {\r\n if (!noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (str.length % 2 !== 0)\r\n throw TypeError(\"Illegal str: Length not a multiple of 2\");\r\n }\r\n var k = str.length,\r\n bb = new ByteBuffer((k / 2) | 0, littleEndian),\r\n b;\r\n for (var i=0, j=0; i 255)\r\n throw TypeError(\"Illegal str: Contains non-hex characters\");\r\n bb.view[j++] = b;\r\n }\r\n bb.limit = j;\r\n return bb;\r\n };\r\n\r\n // utfx-embeddable\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n // encodings/utf8\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded\r\n * string.\r\n * @returns {string} Hex encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toUTF8 = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.byteLength)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.byteLength);\n }\r\n var sd; try {\r\n utfx.decodeUTF8toUTF16(function() {\r\n return begin < end ? this.view[begin++] : null;\r\n }.bind(this), sd = stringDestination());\r\n } catch (e) {\r\n if (begin !== end)\r\n throw RangeError(\"Illegal range: Truncated data, \"+begin+\" != \"+end);\r\n }\r\n return sd();\r\n };\r\n\r\n /**\r\n * Decodes an UTF8 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {\r\n if (!noAssert)\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n var bb = new ByteBuffer(utfx.calculateUTF16asUTF8(stringSource(str), true)[1], littleEndian, noAssert),\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(stringSource(str), function(b) {\r\n bb.view[i++] = b;\r\n });\r\n bb.limit = i;\r\n return bb;\r\n };\r\n\r\n return ByteBuffer;\r\n});\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bytebuffer/dist/bytebuffer.js\n// module id = 68\n// module chunks = 1","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_classof.js\n// module id = 69\n// module chunks = 1","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_is-array-iter.js\n// module id = 73\n// module chunks = 1","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-call.js\n// module id = 74\n// module chunks = 1","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-detect.js\n// module id = 76\n// module chunks = 1","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_perform.js\n// module id = 80\n// module chunks = 1","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_promise-resolve.js\n// module id = 81\n// module chunks = 1","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_species-constructor.js\n// module id = 83\n// module chunks = 1","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_task.js\n// module id = 84\n// module chunks = 1","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap) {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64');\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n return '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 86\n// module chunks = 1","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/component-normalizer.js\n// module id = 97\n// module chunks = 1","import Vue from \"vue\"\nimport VueRouter from \"vue-router\"\nimport routes from \"./routes\"\n\nVue.use(VueRouter)\n\nexport default new VueRouter({\n mode: 'history',\n routes\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// style-loader: Adds some css to the DOM by adding a