diff --git a/.Rbuildignore b/.Rbuildignore index 07addb6..2dad123 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -14,3 +14,5 @@ ^CRAN-RELEASE$ ^\.github$ ^codecov\.yml$ +^doc$ +^Meta$ diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index fa79f8a..aa42e25 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -12,19 +12,22 @@ jobs: fail-fast: false matrix: config: - - { os: windows-latest, r: '3.6', args: "--no-manual"} - - { os: macOS-latest, r: '3.6', args: "--no-manual", sf_args: "--with-proj-lib=/usr/local/lib/"} - - { os: macOS-latest, r: '3.6', args: "--no-manual", no_node: true, sf_args: "--with-proj-lib=/usr/local/lib/"} - - { os: macOS-latest, r: 'devel', sf_args: "--with-proj-lib=/usr/local/lib/"} - - { os: ubuntu-16.04, r: '3.5', v8: "libnode-dev", args: "--no-manual"} - - { os: ubuntu-16.04, r: '3.6', v8: "libv8-dev", args: "--no-manual"} - - { os: ubuntu-16.04, r: '3.6', v8: "libnode-dev"} - + - { os: windows-latest, r: 'release', args: "--no-manual"} + - { os: macOS-latest, r: 'release', args: "--no-manual"} + - { os: macOS-latest, r: 'release', args: "--no-manual", no_node: true} + - { os: ubuntu-18.04, r: 'oldrel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest", v8: "libnode-dev", args: "--no-manual"} + - { os: ubuntu-18.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest", v8: "libnode-dev"} + - { os: ubuntu-18.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest", v8: "libv8-dev"} + - { os: ubuntu-18.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest", v8: "libnode-dev", args: "--no-manual"} env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + RSPM: ${{ matrix.config.rspm }} + CRAN: ${{ matrix.config.cran }} + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + cache-version: v2 steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - uses: actions/setup-node@v1 if: matrix.config.no_node == false @@ -33,7 +36,7 @@ jobs: if: matrix.config.no_node == false run: npm install -g mapshaper - - uses: r-lib/actions/setup-r@master + - uses: r-lib/actions/setup-r@v1 with: r-version: ${{ matrix.config.r }} @@ -42,11 +45,18 @@ jobs: - uses: r-lib/actions/setup-tinytex@master if: contains(matrix.config.args, 'no-manual') == false + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), "depends.Rds", version = 2) + shell: Rscript {0} + - name: Cache R packages - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-r-${{ matrix.config.r }}-v8-${{ matrix.config.v8 }}-${{ matrix.config.dev_sf }}-${{ hashFiles('DESCRIPTION') }} + key: ${{ env.cache-version }}-${{ runner.os }}-r-${{ matrix.config.r }}-${{ hashFiles('depends.Rds') }} + restore-keys: ${{ env.cache-version }}-${{ runner.os }}-r-${{ matrix.config.r }}- - name: install macOS system dependencies if: runner.os == 'macOS' @@ -73,10 +83,9 @@ jobs: run: | Rscript -e "remotes::install_github('r-hub/sysreqs')" sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo add-apt-repository -y ppa:cran/jq + sudo add-apt-repository -y ppa:cran/v8 sudo -s eval "$sysreqs" # install spatial dependencies - sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable sudo apt update sudo apt install \ libudunits2-dev \ @@ -87,14 +96,15 @@ jobs: - name: Install dependencies run: | - remotes::install_deps(dependencies = TRUE, configure.args = c('sf' = '${{ matrix.config.sf_args }}')) + remotes::install_deps(dependencies = TRUE) remotes::install_cran('rcmdcheck') shell: Rscript {0} - - name: Check + env: + TMPDIR: ${{ runner.temp }} run: | - rcmdcheck::rcmdcheck(args = '${{ matrix.config.args }}', error_on = 'warning', check_dir = 'check') + rcmdcheck::rcmdcheck(args = "${{ matrix.config.args }}", error_on = 'warning', check_dir = 'check') shell: Rscript {0} @@ -106,7 +116,7 @@ jobs: path: check - name: Test coverage - if: matrix.config.os == 'macOS-latest' && matrix.config.r == '3.6' + if: matrix.config.os == 'macOS-latest' && matrix.config.r == 'release' continue-on-error: true run: | Rscript -e 'remotes::install_github("r-lib/covr@gh-actions")' diff --git a/.gitignore b/.gitignore index ab15f1f..5a966ef 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ inst/doc !/scratch/fedora-test/*.R !/scratch/fedora-test/Dockerfile !/scratch/fedora-test/README* +/doc/ +/Meta/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index dcb0f70..0000000 --- a/.travis.yml +++ /dev/null @@ -1,41 +0,0 @@ -language: r -sudo: required - -# Get mapshaper node module installed. Instructions from here: -# http://entulho.fiatjaf.alhur.es/guias/how-to-use-node-along-with-other-language-on-travis-ci/ - -before_install: - - sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable --yes - - sudo add-apt-repository -y ppa:opencpu/jq - - sudo add-apt-repository -y ppa:cran/v8 - - sudo apt-get --yes --force-yes update -qq - - sudo apt-get install --yes libprotobuf-dev protobuf-compiler libnode-dev libjq-dev - - sudo apt-get install --yes libudunits2-dev libproj-dev libgeos-dev libgdal-dev - - . $HOME/.nvm/nvm.sh - - nvm install stable - - nvm use stable - - npm install -g mapshaper - -r_packages: - - jsonlite - - devtools - -r_github_packages: - - jimhester/covr - -after_success: -- R -e 'covr::codecov()' - -r: - - release - - devel - - oldrel - -matrix: - allow_failures: - - r: devel - -notifications: - email: - on_success: change - on_failure: change diff --git a/DESCRIPTION b/DESCRIPTION index 1d52ca4..85132dd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -50,4 +50,4 @@ VignetteBuilder: Encoding: UTF-8 LazyData: TRUE Roxygen: list(markdown = TRUE) -RoxygenNote: 7.1.0 +RoxygenNote: 7.1.1 diff --git a/NEWS.md b/NEWS.md index 9b65d6e..6f81c60 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,10 @@ * Fixed a bug where functions would fail when there was a space in user's `tmpdir()` path and `sys = TRUE` (#107) +* Updated bundled mapshaper library to v 0.4.163, which fixed a bug in `ms_erase` (#110, #104, #112) +* When `sys = TRUE`, now uses `mapshaper-xl` in the system call, allowing +larger memory use. Default 8GB can be specified in new argument `sysgb` (#94, #112) +* Internally switched to using `system2()` over `system()` for flexibility # rmapshaper 0.4.4 diff --git a/R/clip_erase.R b/R/clip_erase.R index b021b0f..3a3870e 100755 --- a/R/clip_erase.R +++ b/R/clip_erase.R @@ -19,15 +19,7 @@ #' @param bbox supply a bounding box instead of a clipping layer to extract from #' the target layer. Supply as a numeric vector: \code{c(minX, minY, maxX, maxY)}. #' @param remove_slivers Remove tiny sliver polygons created by clipping. (Default \code{FALSE}) -#' @param force_FC should the output be forced to be a \code{FeatureCollection} even -#' if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -#' \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -#' the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -#' objects, as the output is always the same as the input. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return clipped target in the same class as the input target #' @@ -76,7 +68,7 @@ #' #' @export ms_clip <- function(target, clip = NULL, bbox = NULL, remove_slivers = FALSE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.logical(force_FC)) stop("force_FC must be TRUE or FALSE") stop_for_old_v8() UseMethod("ms_clip") @@ -84,61 +76,61 @@ ms_clip <- function(target, clip = NULL, bbox = NULL, remove_slivers = FALSE, #' @export ms_clip.character <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { target <- check_character_input(target) clip_erase_json(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.geo_json <- function(target, clip = NULL, bbox = NULL, remove_slivers = FALSE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_json(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.geo_list <- function(target, clip = NULL, bbox = NULL, remove_slivers = FALSE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_geo_list(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.SpatialPolygons <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.SpatialLines <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.SpatialPoints <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.sf <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sf(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_clip.sfc <- function(target, clip = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sf(target = target, overlay_layer = clip, type = "clip", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' Remove features or portions of features that fall inside a specified area @@ -160,15 +152,7 @@ ms_clip.sfc <- function(target, clip = NULL, bbox = NULL, #' @param bbox supply a bounding box instead of an erasing layer to remove from #' the target layer. Supply as a numeric vector: \code{c(minX, minY, maxX, maxY)}. #' @param remove_slivers Remove tiny sliver polygons created by erasing. (Default \code{FALSE}) -#' @param force_FC should the output be forced to be a \code{FeatureCollection} even -#' if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -#' \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -#' the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -#' objects, as the output is always the same class as the input. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return erased target in the same format as the input target #' @examples @@ -219,7 +203,7 @@ ms_clip.sfc <- function(target, clip = NULL, bbox = NULL, #' #'@export ms_erase <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.logical(force_FC)) stop("force_FC must be TRUE or FALSE") stop_for_old_v8() UseMethod("ms_erase") @@ -227,65 +211,65 @@ ms_erase <- function(target, erase = NULL, bbox = NULL, #' @export ms_erase.character <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { target <- check_character_input(target) clip_erase_json(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.geo_json <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_json(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.geo_list <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_geo_list(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.SpatialPolygons <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.SpatialLines <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.SpatialPoints <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sp(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.sf <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sf(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_erase.sfc <- function(target, erase = NULL, bbox = NULL, - remove_slivers = FALSE, force_FC = TRUE, sys = FALSE) { + remove_slivers = FALSE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { clip_erase_sf(target = target, overlay_layer = erase, type = "erase", - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } clip_erase_json <- function(target, overlay_layer, bbox, remove_slivers, type, - force_FC, sys) { + force_FC, sys, sys_gb) { check_overlay_bbox(overlay_layer = overlay_layer, bbox = bbox, type = type) @@ -294,11 +278,11 @@ clip_erase_json <- function(target, overlay_layer, bbox, remove_slivers, type, } mapshaper_clip_erase(target_layer = target, overlay_layer = overlay_layer, type = type, - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } clip_erase_geo_list <- function(target, overlay_layer, bbox, type, - remove_slivers, force_FC, sys) { + remove_slivers, force_FC, sys, sys_gb) { check_overlay_bbox(overlay_layer = overlay_layer, bbox = bbox, type = type) @@ -308,11 +292,11 @@ clip_erase_geo_list <- function(target, overlay_layer, bbox, type, } target <- geo_list_to_json(target) ret <- clip_erase_json(target = target, overlay_layer = overlay_layer, type = type, - remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys) + remove_slivers = remove_slivers, bbox = bbox, force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } -clip_erase_sp <- function(target, overlay_layer, bbox, type, remove_slivers, force_FC, sys) { +clip_erase_sp <- function(target, overlay_layer, bbox, type, remove_slivers, force_FC, sys, sys_gb) { check_overlay_bbox(overlay_layer = overlay_layer, bbox = bbox, type = type) @@ -336,7 +320,7 @@ clip_erase_sp <- function(target, overlay_layer, bbox, type, remove_slivers, for result <- mapshaper_clip_erase(target_layer = target_geojson, overlay_layer = overlay_geojson, type = type, remove_slivers = remove_slivers, - bbox = bbox, force_FC = TRUE, sys = sys) + bbox = bbox, force_FC = TRUE, sys = sys, sys_gb = sys_gb) ret <- GeoJSON_to_sp(result, target_proj) @@ -348,7 +332,7 @@ clip_erase_sp <- function(target, overlay_layer, bbox, type, remove_slivers, for ret } -clip_erase_sf <- function(target, overlay_layer, bbox, type, remove_slivers, force_FC, sys) { +clip_erase_sf <- function(target, overlay_layer, bbox, type, remove_slivers, force_FC, sys, sys_gb) { check_overlay_bbox(overlay_layer = overlay_layer, bbox = bbox, type = type) @@ -377,7 +361,7 @@ clip_erase_sf <- function(target, overlay_layer, bbox, type, remove_slivers, for result <- mapshaper_clip_erase(target_layer = target_geojson, overlay_layer = overlay_geojson, type = type, remove_slivers = remove_slivers, - bbox = bbox, force_FC = TRUE, sys = sys) + bbox = bbox, force_FC = TRUE, sys = sys, sys_gb = sys_gb) ret <- GeoJSON_to_sf(result, target_proj) @@ -410,7 +394,7 @@ check_overlay_bbox <- function(overlay_layer, bbox, type) { } mapshaper_clip_erase <- function(target_layer, overlay_layer, bbox, type, - remove_slivers, force_FC, sys) { + remove_slivers, force_FC, sys, sys_gb) { remove_slivers <- ifelse(remove_slivers, "remove-slivers", "") @@ -418,13 +402,13 @@ mapshaper_clip_erase <- function(target_layer, overlay_layer, bbox, type, if (!is.null(bbox)) { cmd <- paste0("-", type, " bbox=",paste0(bbox, collapse = ","), " ", remove_slivers) - out <- apply_mapshaper_commands(target_layer, cmd, force_FC = force_FC, sys = sys) + out <- apply_mapshaper_commands(target_layer, cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } else if (!is.null(overlay_layer)) { if (sys) { on.exit(unlink(c(target_layer, overlay_layer)), add = TRUE) cmd <- paste0("-", type) - out <- sys_mapshaper(data = target_layer, data2 = overlay_layer, command = cmd) + out <- sys_mapshaper(data = target_layer, data2 = overlay_layer, command = cmd, sys_gb = sys_gb) } else { ms <- ms_make_ctx() diff --git a/R/dissolve.R b/R/dissolve.R index a547fcf..f4f4ffa 100644 --- a/R/dissolve.R +++ b/R/dissolve.R @@ -16,15 +16,7 @@ #' @param copy_fields fields to copy. The first instance of each field will be #' copied to the aggregated feature. #' @param weight Name of an attribute field for generating weighted centroids (points only). -#' @param force_FC should the output be forced to be a \code{FeatureCollection} even -#' if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -#' \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -#' the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -#' objects, as the output is always the same class as the input. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return the same class as the input #' @@ -62,81 +54,81 @@ #' #' @export ms_dissolve <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { UseMethod("ms_dissolve") } #' @export ms_dissolve.character <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) call <- make_dissolve_call(field = field, sum_fields = sum_fields, weight = weight, copy_fields = copy_fields, snap = snap) - apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_dissolve.geo_json <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { call <- make_dissolve_call(field = field, sum_fields = sum_fields, weight = weight, copy_fields = copy_fields, snap = snap) - apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_dissolve.geo_list <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { call <- make_dissolve_call(field = field, sum_fields = sum_fields, weight = weight, copy_fields = copy_fields, snap = snap) geojson <- geo_list_to_json(input) - ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = force_FC, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export ms_dissolve.SpatialPolygons <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { dissolve_sp(input = input, field = field, sum_fields = sum_fields, copy_fields = copy_fields, - weight = weight, snap = snap, sys = sys) + weight = weight, snap = snap, sys = sys, sys_gb = sys_gb) } #' @export ms_dissolve.SpatialPoints <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { dissolve_sp(input = input, field = field, sum_fields = sum_fields, copy_fields = copy_fields, - weight = weight, snap = snap, sys = sys) + weight = weight, snap = snap, sys = sys, sys_gb = sys_gb) } #' @export ms_dissolve.sf <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.null(weight) && !(weight %in% names(input))) { stop("specified 'weight' column not present in input data", call. = FALSE) } dissolve_sf(input = input, field = field, sum_fields = sum_fields, copy_fields = copy_fields, - weight = weight, snap = snap, sys = sys) + weight = weight, snap = snap, sys = sys, sys_gb = sys_gb) } #' @export ms_dissolve.sfc <- function(input, field = NULL, sum_fields = NULL, copy_fields = NULL, - weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE) { + weight = NULL, snap = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.null(weight)) { warning("'weight' cannot be used with sfc objects. Ignoring it and proceeding...") } dissolve_sf(input = input, field = field, sum_fields = sum_fields, copy_fields = copy_fields, - weight = NULL, snap = snap, sys = sys) + weight = NULL, snap = snap, sys = sys, sys_gb = sys_gb) } make_dissolve_call <- function(field, sum_fields, copy_fields, weight, snap) { @@ -166,7 +158,7 @@ make_dissolve_call <- function(field, sum_fields, copy_fields, weight, snap) { call } -dissolve_sp <- function(input, field, sum_fields, copy_fields, weight, snap, sys) { +dissolve_sp <- function(input, field, sum_fields, copy_fields, weight, snap, sys, sys_gb) { if (!inherits(input, "SpatialPointsDataFrame") && !is.null(weight)) { stop("weight arguments only applies to points with attributes", call. = FALSE) @@ -179,10 +171,10 @@ dissolve_sp <- function(input, field, sum_fields, copy_fields, weight, snap, sys call <- make_dissolve_call(field = field, sum_fields = sum_fields, copy_fields = copy_fields, weight = weight, snap = snap) - ms_sp(input = input, call = call, sys = sys) + ms_sp(input = input, call = call, sys = sys, sys_gb = sys_gb) } -dissolve_sf <- function(input, field, sum_fields, copy_fields, weight, snap, sys) { +dissolve_sf <- function(input, field, sum_fields, copy_fields, weight, snap, sys, sys_gb) { if (!all(sf::st_is(input, c("POINT", "MULTIPOINT", "POLYGON", "MULTIPOLYGON")))) { stop("ms_dissolve only works with (MULTI)POINT or (MULTI)POLYGON", call. = FALSE) @@ -195,5 +187,5 @@ dissolve_sf <- function(input, field, sum_fields, copy_fields, weight, snap, sys call <- make_dissolve_call(field = field, sum_fields = sum_fields, copy_fields = copy_fields, weight = weight, snap = snap) - ms_sf(input = input, call = call, sys = sys) + ms_sf(input = input, call = call, sys = sys, sys_gb = sys_gb) } diff --git a/R/explode.R b/R/explode.R index a59c783..9e132b6 100644 --- a/R/explode.R +++ b/R/explode.R @@ -12,15 +12,7 @@ #' \item multipart \code{SpatialPolygons}, \code{SpatialLines}; #' \item \code{sf} or \code{sfc} multipart lines, or polygons object #' } -#' @param force_FC should the output be forced to be a \code{FeatureCollection} even -#' if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -#' \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -#' the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -#' objects, as the output is always the same class as the input. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return same class as input #' @@ -49,28 +41,28 @@ #' out@data #' #' @export -ms_explode <- function(input, force_FC = TRUE, sys = FALSE) { +ms_explode <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { UseMethod("ms_explode") } #' @export -ms_explode.character <- function(input, force_FC = TRUE, sys = FALSE) { +ms_explode.character <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) - apply_mapshaper_commands(data = input, command = "-explode", force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = "-explode", force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_explode.geo_json <- function(input, force_FC = TRUE, sys = FALSE) { - apply_mapshaper_commands(data = input, command = "-explode", force_FC = force_FC, sys = sys) +ms_explode.geo_json <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { + apply_mapshaper_commands(data = input, command = "-explode", force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_explode.geo_list <- function(input, force_FC = TRUE, sys = FALSE) { +ms_explode.geo_list <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) - ret <- apply_mapshaper_commands(data = geojson, command = "-explode", force_FC = force_FC, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = "-explode", force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } @@ -79,13 +71,13 @@ ms_explode.geo_list <- function(input, force_FC = TRUE, sys = FALSE) { ## sp::disaggregate due to converstion to/from geojson #' @export -ms_explode.SpatialPolygons <- function(input, force_FC = TRUE, sys = FALSE) { - explode_sp(input, sys = sys) +ms_explode.SpatialPolygons <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { + explode_sp(input, sys = sys, sys_gb = sys_gb) } #' @export -ms_explode.SpatialLines <- function(input, force_FC = TRUE, sys = FALSE) { - explode_sp(input, sys = sys) +ms_explode.SpatialLines <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { + explode_sp(input, sys = sys, sys_gb = sys_gb) } # #' @describeIn ms_explode Method for SpatialPoints @@ -94,20 +86,20 @@ ms_explode.SpatialLines <- function(input, force_FC = TRUE, sys = FALSE) { # explode_sp(input, force_FC) # } -explode_sp <- function(input, sys) { - ms_sp(input = input, call = "-explode", sys = sys) +explode_sp <- function(input, sys, sys_gb) { + ms_sp(input = input, call = "-explode", sys = sys, sys_gb = sys_gb) } #' @export -ms_explode.sf <- function(input, force_FC = TRUE, sys = FALSE) { - explode_sf(input = input, sys = sys) +ms_explode.sf <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { + explode_sf(input = input, sys = sys, sys_gb = sys_gb) } #' @export -ms_explode.sfc <- function(input, force_FC = TRUE, sys = FALSE) { - explode_sf(input = input, sys = sys) +ms_explode.sfc <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { + explode_sf(input = input, sys = sys, sys_gb = sys_gb) } -explode_sf <- function(input, sys) { - ms_sf(input = input, call = "-explode", sys = sys) +explode_sf <- function(input, sys, sys_gb) { + ms_sf(input = input, call = "-explode", sys = sys, sys_gb = sys_gb) } diff --git a/R/filter_fields.R b/R/filter_fields.R index f91cd4f..9ff7864 100644 --- a/R/filter_fields.R +++ b/R/filter_fields.R @@ -10,9 +10,7 @@ #' \item \code{sf} object #' } #' @param fields character vector of fields to retain. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return object with only specified attributes retained, in the same class as #' the input @@ -35,55 +33,55 @@ #' out@data #' #' @export -ms_filter_fields <- function(input, fields, sys = FALSE) { +ms_filter_fields <- function(input, fields, sys = FALSE, sys_gb = 8) { if (!is.character(fields)) stop("fields must be a character vector") UseMethod("ms_filter_fields") } #' @export -ms_filter_fields.character <- function(input, fields, sys = FALSE) { +ms_filter_fields.character <- function(input, fields, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) cmd <- make_filterfields_call(fields) - apply_mapshaper_commands(data = input, command = cmd, force_FC = FALSE, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = FALSE, sys = sys, sys_gb = sys_gb) } #' @export -ms_filter_fields.geo_json <- function(input, fields, sys = FALSE) { +ms_filter_fields.geo_json <- function(input, fields, sys = FALSE, sys_gb = 8) { cmd <- make_filterfields_call(fields) - apply_mapshaper_commands(data = input, command = cmd, force_FC = FALSE, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = FALSE, sys = sys, sys_gb = sys_gb) } #' @export -ms_filter_fields.geo_list <- function(input, fields, sys = FALSE) { +ms_filter_fields.geo_list <- function(input, fields, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) cmd <- make_filterfields_call(fields) - ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = FALSE, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = FALSE, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export -ms_filter_fields.SpatialPolygonsDataFrame <- function(input, fields, sys = FALSE) { - ms_filter_fields_sp(input, fields, sys = sys) +ms_filter_fields.SpatialPolygonsDataFrame <- function(input, fields, sys = FALSE, sys_gb = 8) { + ms_filter_fields_sp(input, fields, sys = sys, sys_gb = sys_gb) } #' @export -ms_filter_fields.SpatialPointsDataFrame <- function(input, fields, sys = FALSE) { - ms_filter_fields_sp(input, fields, sys = sys) +ms_filter_fields.SpatialPointsDataFrame <- function(input, fields, sys = FALSE, sys_gb = 8) { + ms_filter_fields_sp(input, fields, sys = sys, sys_gb = sys_gb) } #' @export -ms_filter_fields.SpatialLinesDataFrame <- function(input, fields, sys = FALSE) { - ms_filter_fields_sp(input, fields, sys = sys) +ms_filter_fields.SpatialLinesDataFrame <- function(input, fields, sys = FALSE, sys_gb = 8) { + ms_filter_fields_sp(input, fields, sys = sys, sys_gb = sys_gb) } #' @export -ms_filter_fields.sf <- function(input, fields, sys = FALSE) { +ms_filter_fields.sf <- function(input, fields, sys = FALSE, sys_gb = 8) { if (!all(fields %in% names(input))) { stop("Not all fields are in input") } @@ -95,7 +93,7 @@ ms_filter_fields.sf <- function(input, fields, sys = FALSE) { input[, fields, drop = FALSE] } -ms_filter_fields_sp <- function(input, fields, sys) { +ms_filter_fields_sp <- function(input, fields, sys, sys_gb) { # cmd <- make_filterfields_call(fields) # diff --git a/R/filter_islands.R b/R/filter_islands.R index fb95a69..f397223 100644 --- a/R/filter_islands.R +++ b/R/filter_islands.R @@ -17,16 +17,7 @@ #' @param drop_null_geometries should features with empty geometries be dropped? #' Default \code{TRUE}. Ignored for \code{SpatialPolyons*}, as it is always #' \code{TRUE}. -#' @param force_FC should the output be forced to be a \code{FeatureCollection} -#' even if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -#' and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -#' attributes associated with the geometries, a \code{GeometryCollection} will -#' be output. Ignored for \code{Spatial} objects, as the output is always the -#' same class as the input. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return object with only specified features retained, in the same class as #' the input @@ -55,7 +46,7 @@ #' #' @export ms_filter_islands <- function(input, min_area = NULL, min_vertices = NULL, drop_null_geometries = TRUE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.null(min_area) && !is.numeric(min_area)) stop("min_area must be numeric") if (!is.null(min_vertices) && !is.numeric(min_vertices)) stop("min_vertices must be numeric") if (!is.logical(drop_null_geometries)) stop("drop_null_geometries must be TRUE or FALSE") @@ -65,59 +56,59 @@ ms_filter_islands <- function(input, min_area = NULL, min_vertices = NULL, drop_ #' @export ms_filter_islands.character <- function(input, min_area = NULL, min_vertices = NULL, drop_null_geometries = TRUE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) cmd <- make_filterislands_call(min_area = min_area, min_vertices = min_vertices, drop_null_geometries = drop_null_geometries) - apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_filter_islands.geo_json <- function(input, min_area = NULL, min_vertices = NULL, drop_null_geometries = TRUE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { cmd <- make_filterislands_call(min_area = min_area, min_vertices = min_vertices, drop_null_geometries = drop_null_geometries) - apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export ms_filter_islands.geo_list <- function(input, min_area = NULL, min_vertices = NULL, drop_null_geometries = TRUE, - force_FC = TRUE, sys = FALSE) { + force_FC = TRUE, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) cmd <- make_filterislands_call(min_area = min_area, min_vertices = min_vertices, drop_null_geometries = drop_null_geometries) - ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = force_FC, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export ms_filter_islands.SpatialPolygons <- function(input, min_area = NULL, min_vertices = NULL, drop_null_geometries = TRUE, - force_FC = TRUE, sys = FALSE) { - ms_filter_islands_sp(input, min_area = min_area, min_vertices = min_vertices, sys = sys) + force_FC = TRUE, sys = FALSE, sys_gb = 8) { + ms_filter_islands_sp(input, min_area = min_area, min_vertices = min_vertices, sys = sys, sys_gb = sys_gb) } -ms_filter_islands_sp <- function(input, min_area = NULL, min_vertices = NULL, sys) { +ms_filter_islands_sp <- function(input, min_area = NULL, min_vertices = NULL, sys, sys_gb) { cmd <- make_filterislands_call(min_area = min_area, min_vertices = min_vertices, drop_null_geometries = TRUE) - ms_sp(input = input, call = cmd, sys = sys) + ms_sp(input = input, call = cmd, sys = sys, sys_gb = sys_gb) } #' @export ms_filter_islands.sf <- function(input, min_area = NULL, min_vertices = NULL, - drop_null_geometries = TRUE, force_FC = TRUE, sys = FALSE) { + drop_null_geometries = TRUE, force_FC = TRUE, sys = FALSE, sys_gb = 8) { cmd <- make_filterislands_call(min_area = min_area, min_vertices = min_vertices, drop_null_geometries = TRUE) - ms_sf(input = input, call = cmd, sys = sys) + ms_sf(input = input, call = cmd, sys = sys, sys_gb = sys_gb) } #' @export diff --git a/R/inner_lines.R b/R/inner_lines.R index ce8afb8..ca9502e 100644 --- a/R/inner_lines.R +++ b/R/inner_lines.R @@ -7,15 +7,7 @@ #' \item \code{SpatialPolygons*}; #' \item \code{sf} or \code{sfc} polygons object #' } -#' @param force_FC should the output be forced to be a \code{FeatureCollection} -#' even if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -#' and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -#' attributes associated with the geometries, a \code{GeometryCollection} will -#' be output. Ignored for \code{Spatial} objects. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return lines in the same class as the input layer, but without attributes #' @@ -53,49 +45,49 @@ #' plot(out) #' #' @export -ms_innerlines <- function(input, force_FC = TRUE, sys = FALSE) { +ms_innerlines <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.logical(force_FC)) stop("force_FC must be TRUE or FALSE") UseMethod("ms_innerlines") } #' @export -ms_innerlines.character <- function(input, force_FC = TRUE, sys = FALSE) { +ms_innerlines.character <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) apply_mapshaper_commands(data = input, command = "-innerlines", - force_FC = force_FC, sys = sys) + force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_innerlines.geo_json <- function(input, force_FC = TRUE, sys = FALSE) { +ms_innerlines.geo_json <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { apply_mapshaper_commands(data = input, command = "-innerlines", - force_FC = force_FC, sys = sys) + force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_innerlines.geo_list <- function(input, force_FC = TRUE, sys = FALSE) { +ms_innerlines.geo_list <- function(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) ret <- apply_mapshaper_commands(data = geojson, command = "-innerlines", - force_FC = force_FC, sys = sys) + force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export -ms_innerlines.SpatialPolygons <- function(input, force_FC, sys = FALSE) { - ms_sp(as(input, "SpatialPolygons"), "-innerlines", sys = sys) +ms_innerlines.SpatialPolygons <- function(input, force_FC, sys = FALSE, sys_gb = 8) { + ms_sp(as(input, "SpatialPolygons"), "-innerlines", sys = sys, sys_gb = sys_gb) } #' @export -ms_innerlines.sf <- function(input, force_FC, sys = FALSE) { - ms_sf(sf::st_geometry(input), "-innerlines", sys = sys) +ms_innerlines.sf <- function(input, force_FC, sys = FALSE, sys_gb = 8) { + ms_sf(sf::st_geometry(input), "-innerlines", sys = sys, sys_gb = sys_gb) } #' @export -ms_innerlines.sfc <- function(input, force_FC, sys = FALSE) { - ms_sf(input, "-innerlines", sys = sys) +ms_innerlines.sfc <- function(input, force_FC, sys = FALSE, sys_gb = 8) { + ms_sf(input, "-innerlines", sys = sys, sys_gb = sys_gb) } diff --git a/R/lines.R b/R/lines.R index 0f2dbd8..7e48ec3 100644 --- a/R/lines.R +++ b/R/lines.R @@ -14,15 +14,7 @@ #' intermediate level of hierarchy at TYPE 1, with the lowest-level internal #' boundaries set to TYPE 2. Supplying a character vector of field names adds #' additional levels of hierarchy. -#' @param force_FC should the output be forced to be a \code{FeatureCollection} -#' even if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -#' and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -#' attributes associated with the geometries, a \code{GeometryCollection} will -#' be output. Ignored for \code{Spatial} objects. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return topological boundaries as lines, in the same class as the input #' @@ -58,45 +50,45 @@ #' plot(out) #' #' @export -ms_lines <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE) { +ms_lines <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.null(fields) && !is.character(fields)) stop("fields must be a character vector of field names") if (!is.logical(force_FC)) stop("force_FC must be TRUE or FALSE") UseMethod("ms_lines") } #' @export -ms_lines.character <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE) { +ms_lines.character <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) command <- make_lines_call(fields) apply_mapshaper_commands(data = input, command = command, force_FC = force_FC, - sys = sys) + sys = sys, sys_gb = sys_gb) } #' @export -ms_lines.geo_json <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE) { +ms_lines.geo_json <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { command <- make_lines_call(fields) apply_mapshaper_commands(data = input, command = command, force_FC = force_FC, - sys = sys) + sys = sys, sys_gb = sys_gb) } #' @export -ms_lines.geo_list <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE) { +ms_lines.geo_list <- function(input, fields = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) command <- make_lines_call(fields) ret <- apply_mapshaper_commands(data = geojson, command = command, - force_FC = force_FC, sys = sys) + force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export -ms_lines.SpatialPolygons <- function(input, fields = NULL, force_FC, sys = FALSE) { +ms_lines.SpatialPolygons <- function(input, fields = NULL, force_FC, sys = FALSE, sys_gb = 8) { if (.hasSlot(input, "data")) { if (!all(fields %in% names(input@data))) { @@ -106,37 +98,37 @@ ms_lines.SpatialPolygons <- function(input, fields = NULL, force_FC, sys = FALSE command <- make_lines_call(fields) - ms_sp(input, command, sys = sys) + ms_sp(input, command, sys = sys, sys_gb = sys_gb) } #' @export -ms_lines.sf <- function(input, fields = NULL, force_FC, sys = FALSE) { +ms_lines.sf <- function(input, fields = NULL, force_FC, sys = FALSE, sys_gb = 8) { if (!all(fields %in% names(input))) { stop("not all fields specified exist in input data") } - lines_sf(input = input, fields = fields, sys = sys) + lines_sf(input = input, fields = fields, sys = sys, sys_gb = sys_gb) } #' @export -ms_lines.sfc <- function(input, fields = NULL, force_FC, sys = FALSE) { +ms_lines.sfc <- function(input, fields = NULL, force_FC, sys = FALSE, sys_gb = 8) { if (!is.null(fields)) { stop("Do not specify fields for sfc classes", call. = FALSE) } - lines_sf(input = input, fields = fields, sys = sys) + lines_sf(input = input, fields = fields, sys = sys, sys_gb = sys_gb) } -lines_sf <- function(input, fields, sys) { +lines_sf <- function(input, fields, sys, sys_gb) { if (!all(sf::st_is(input, c("POLYGON", "MULTIPOLYGON")))) { stop("ms_lines only works with (MULTI)POLYGON") } command <- make_lines_call(fields) - ms_sf(input, command, sys = sys) + ms_sf(input, command, sys = sys, sys_gb = sys_gb) } make_lines_call <- function(fields) { diff --git a/R/points.R b/R/points.R index 8c9a844..78798f9 100644 --- a/R/points.R +++ b/R/points.R @@ -21,16 +21,7 @@ #' \code{location} is specified. #' @param y name of field containing y coordinate values. Must be \code{NULL} if #' \code{location} is specified. -#' @param force_FC should the output be forced to be a \code{FeatureCollection} -#' even if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -#' and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -#' attributes associated with the geometries, a \code{GeometryCollection} will -#' be output. Ignored for \code{Spatial} objects, as a -#' \code{SpatialPoints*} is always the output. -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return points in the same class as the input. #' @@ -66,53 +57,53 @@ #' plot(out) #' #' @export -ms_points <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE) { +ms_points <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { if (!is.logical(force_FC)) stop("force_FC must be TRUE or FALSE") UseMethod("ms_points") } #' @export -ms_points.character <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE) { +ms_points.character <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) cmd <- make_points_call(location = location, x = x, y = y) - apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_points.geo_json <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE) { +ms_points.geo_json <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { cmd <- make_points_call(location = location, x = x, y = y) - apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys) + apply_mapshaper_commands(data = input, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) } #' @export -ms_points.geo_list <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE) { +ms_points.geo_list <- function(input, location = NULL, x = NULL, y = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) { cmd <- make_points_call(location = location, x = x, y = y) geojson <- geo_list_to_json(input) - ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = force_FC, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = cmd, force_FC = force_FC, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } #' @export -ms_points.SpatialPolygons <- function(input, location = NULL, x = NULL, y = NULL, force_FC, sys = FALSE) { +ms_points.SpatialPolygons <- function(input, location = NULL, x = NULL, y = NULL, force_FC, sys = FALSE, sys_gb = 8) { cmd <- make_points_call(location = location, x = x, y = y) - ms_sp(input, cmd, sys = sys) + ms_sp(input, cmd, sys = sys, sys_gb = sys_gb) } #' @export -ms_points.sf <- function(input, location = NULL, x = NULL, y = NULL, force_FC, sys = FALSE) { +ms_points.sf <- function(input, location = NULL, x = NULL, y = NULL, force_FC, sys = FALSE, sys_gb = 8) { cmd <- make_points_call(location = location, x = x, y = y) - ms_sf(input, cmd, sys = sys) + ms_sf(input, cmd, sys = sys, sys_gb = sys_gb) } #' @export diff --git a/R/simplify.R b/R/simplify.R index aa8530a..74f8a93 100644 --- a/R/simplify.R +++ b/R/simplify.R @@ -30,20 +30,11 @@ #' @param explode Should multipart polygons be converted to singlepart polygons? #' This prevents small shapes from disappearing during simplification if #' \code{keep_shapes = TRUE}. Default \code{FALSE} -#' @param force_FC should the output be forced to be a \code{FeatureCollection} -#' even if there are no attributes? Default \code{TRUE}. -#' \code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -#' and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -#' attributes associated with the geometries, a \code{GeometryCollection} will -#' be output. Ignored for \code{Spatial} objects, as the output is always the -#' same class as the input. #' @param drop_null_geometries should Features with null geometries be dropped? #' Ignored for \code{Spatial*} objects, as it is always \code{TRUE}. #' @param snap_interval Specify snapping distance in source units, must be a #' numeric. Default \code{NULL} -#' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives -#' better performance on large files. Requires the mapshaper node package to be installed -#' and on the PATH. +#' @inheritParams apply_mapshaper_commands #' #' @return a simplified representation of the geometry in the same class as the #' input @@ -90,7 +81,7 @@ ms_simplify <- function(input, keep = 0.05, method = NULL, weighting = 0.7, keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, drop_null_geometries = TRUE, - snap_interval = NULL, sys = FALSE) { + snap_interval = NULL, sys = FALSE, sys_gb = 8) { UseMethod("ms_simplify") } @@ -98,14 +89,14 @@ ms_simplify <- function(input, keep = 0.05, method = NULL, weighting = 0.7, ms_simplify.character <- function(input, keep = 0.05, method = NULL, weighting = 0.7, keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, - drop_null_geometries = TRUE, snap_interval = NULL, sys = FALSE) { + drop_null_geometries = TRUE, snap_interval = NULL, sys = FALSE, sys_gb = 8) { input <- check_character_input(input) ms_simplify_json(input = input, keep = keep, method = method, weighting = weighting, keep_shapes = keep_shapes, no_repair = no_repair, snap = snap, explode = explode, force_FC = force_FC, drop_null_geometries = drop_null_geometries, - snap_interval = snap_interval, sys = sys) + snap_interval = snap_interval, sys = sys, sys_gb = sys_gb) } @@ -113,12 +104,12 @@ ms_simplify.character <- function(input, keep = 0.05, method = NULL, weighting = ms_simplify.geo_json <- function(input, keep = 0.05, method = NULL, weighting = 0.7, keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, - drop_null_geometries = TRUE, snap_interval = NULL, sys = FALSE) { + drop_null_geometries = TRUE, snap_interval = NULL, sys = FALSE, sys_gb = 8) { ms_simplify_json(input = input, keep = keep, method = method, weighting = weighting, keep_shapes = keep_shapes, no_repair = no_repair, snap = snap, explode = explode, force_FC = force_FC, drop_null_geometries = drop_null_geometries, - snap_interval = snap_interval, sys = sys) + snap_interval = snap_interval, sys = sys, sys_gb = sys_gb) } #' @export @@ -126,14 +117,14 @@ ms_simplify.geo_list <- function(input, keep = 0.05, method = NULL, weighting = 0.7, keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, drop_null_geometries = TRUE, - snap_interval = NULL, sys = FALSE) { + snap_interval = NULL, sys = FALSE, sys_gb = 8) { geojson <- geo_list_to_json(input) ret <- ms_simplify_json(input = geojson, keep = keep, method = method, weighting = weighting, keep_shapes = keep_shapes, no_repair = no_repair, snap = snap, explode = explode, force_FC = force_FC, drop_null_geometries = drop_null_geometries, - snap_interval = snap_interval, sys = sys) + snap_interval = snap_interval, sys = sys, sys_gb = sys_gb) geojsonio::geojson_list(ret) } @@ -143,7 +134,7 @@ ms_simplify.SpatialPolygons <- function(input, keep = 0.05, method = NULL, weigh keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, drop_null_geometries = TRUE, - snap_interval = NULL, sys = FALSE) { + snap_interval = NULL, sys = FALSE, sys_gb = 8) { if (!is(input, "Spatial")) stop("input must be a spatial object") @@ -152,7 +143,7 @@ ms_simplify.SpatialPolygons <- function(input, keep = 0.05, method = NULL, weigh snap = snap, explode = explode, drop_null_geometries = !keep_shapes, snap_interval = snap_interval) - ms_sp(input, call, sys = sys) + ms_sp(input, call, sys = sys, sys_gb = sys_gb) } @@ -164,7 +155,7 @@ ms_simplify.sf <- function(input, keep = 0.05, method = NULL, weighting = 0.7, keep_shapes = FALSE, no_repair = FALSE, snap = TRUE, explode = FALSE, force_FC = TRUE, drop_null_geometries = TRUE, - snap_interval = NULL, sys = FALSE) { + snap_interval = NULL, sys = FALSE, sys_gb = 8) { if (!all(sf::st_geometry_type(input) %in% c("LINESTRING", "MULTILINESTRING", "POLYGON", "MULTIPOLYGON"))) { @@ -178,21 +169,21 @@ ms_simplify.sf <- function(input, keep = 0.05, method = NULL, weighting = 0.7, drop_null_geometries = !keep_shapes, snap_interval = snap_interval) - ms_sf(input, call, sys = sys) + ms_sf(input, call, sys = sys, sys_gb = sys_gb) } #' @export ms_simplify.sfc <- ms_simplify.sf ms_simplify_json <- function(input, keep, method, weighting, keep_shapes, no_repair, snap, - explode, force_FC, drop_null_geometries, snap_interval, sys) { + explode, force_FC, drop_null_geometries, snap_interval, sys, sys_gb) { call <- make_simplify_call(keep = keep, method = method, weighting = weighting, keep_shapes = keep_shapes, no_repair = no_repair, snap = snap, explode = explode, drop_null_geometries = drop_null_geometries, snap_interval = snap_interval) - ret <- apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys) + ret <- apply_mapshaper_commands(data = input, command = call, force_FC = force_FC, sys = sys, sys_gb = sys_gb) ret } diff --git a/R/utils.R b/R/utils.R index e45a6d7..8f3601d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -12,10 +12,12 @@ #' @param sys Should the system mapshaper be used instead of the bundled mapshaper? Gives #' better performance on large files. Requires the mapshaper node package to be installed #' and on the PATH. +#' @param sys_gb How much memory (in GB) should be allocated if using the system +#' mapshaper (`sys = TRUE`)? Default 8. Ignored if `sys = FALSE` #' #' @return geojson #' @export -apply_mapshaper_commands <- function(data, command, force_FC, sys = FALSE) { +apply_mapshaper_commands <- function(data, command, force_FC, sys = FALSE, sys_gb = 8) { data <- as.character(data) @@ -38,7 +40,7 @@ apply_mapshaper_commands <- function(data, command, force_FC, sys = FALSE) { command <- paste(ms_compact(command), collapse = " ") if (sys) { - ret <- sys_mapshaper(data = data, command = command) + ret <- sys_mapshaper(data = data, command = command, sys_gb = sys_gb) } else { ms <- ms_make_ctx() @@ -70,8 +72,9 @@ ms_make_ctx <- function() { ctx } -sys_mapshaper <- function(data, data2 = NULL, command) { - check_sys_mapshaper(verbose = FALSE) +sys_mapshaper <- function(data, data2 = NULL, command, sys_gb = 8) { + # Get full path to sys mapshaper, use mapshaper-xl + ms_path <- paste0(check_sys_mapshaper("mapshaper-xl", verbose = FALSE)) # Check if need to read/write the file or if it's been written already # by write_sf or writeOGR @@ -95,11 +98,11 @@ sys_mapshaper <- function(data, data2 = NULL, command) { out_data_file <- temp_geojson() if (!is.null(data2)) { - cmd <- paste("mapshaper", shQuote(in_data_file), command, shQuote(in_data_file2), "-o", shQuote(out_data_file)) + cmd_args <- c(sys_gb, shQuote(in_data_file), command, shQuote(in_data_file2), "-o", shQuote(out_data_file)) } else { - cmd <- paste("mapshaper", shQuote(in_data_file), command, "-o", shQuote(out_data_file)) + cmd_args <- c(sys_gb, shQuote(in_data_file), command, "-o", shQuote(out_data_file)) } - suppressMessages(system(cmd)) + system2(ms_path, cmd_args) if (read_write) { on.exit(unlink(out_data_file), add = TRUE) @@ -125,7 +128,7 @@ return_data = data; }" } -ms_sp <- function(input, call, sys = FALSE) { +ms_sp <- function(input, call, sys = FALSE, sys_gb = 8) { has_data <- .hasSlot(input, "data") if (has_data) { @@ -134,7 +137,7 @@ ms_sp <- function(input, call, sys = FALSE) { geojson <- sp_to_GeoJSON(input, file = sys) - ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = TRUE, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = TRUE, sys = sys, sys_gb = sys_gb) if (!sys & grepl('^\\{"type":"GeometryCollection"', ret)) { stop("Cannot convert result to a Spatial* object. @@ -172,7 +175,7 @@ sp_to_GeoJSON <- function(sp, file = FALSE){ } ## Utilties for sf -ms_sf <- function(input, call, sys = FALSE) { +ms_sf <- function(input, call, sys = FALSE, sys_gb = 8) { has_data <- is(input, "sf") if (has_data) { @@ -184,7 +187,7 @@ ms_sf <- function(input, call, sys = FALSE) { geojson <- sf_to_GeoJSON(input, file = sys) - ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = TRUE, sys = sys) + ret <- apply_mapshaper_commands(data = geojson, command = call, force_FC = TRUE, sys = sys, sys_gb = sys_gb) if (!sys & grepl('^\\{"type":"GeometryCollection"', ret)) { stop("Cannot convert result to an sf object. @@ -248,19 +251,20 @@ sf_sp_to_tempfile <- function(obj) { #' Check the system mapshaper #' +#' @param command either "mapshaper-xl" (default) or "mapshaper" #' @param verbose Print a message stating mapshaper's current version? Default `TRUE` #' #' @return TRUE (with a message) if appropriate version is installed, otherwise throws an error #' @export -check_sys_mapshaper <- function(verbose = TRUE) { - if (!nzchar(Sys.which("mapshaper"))) { - stop("The mapshaper node library must be installed and on your path.\n", - "Install node.js (https://nodejs.org/en/) and then install mapshaper with:\n - npm install -g mapshaper") +check_sys_mapshaper <- function(command = "mapshaper-xl", verbose = TRUE) { + if (!command %in% c("mapshaper-xl", "mapshaper")) { + stop("command must be one of 'mapshaper-xl' or 'mapshaper'", call. = FALSE) } - sys_ms_version <- package_version(system("mapshaper --version 2>&1", intern = TRUE)) - min_ms_version <- package_version("0.4.0") # Update when updating bundled mapshaper.js + ms_path <- sys_ms_path(command) + + sys_ms_version <- package_version(sys_ms_version()) + min_ms_version <- package_version(bundled_ms_version()) # Update when updating bundled mapshaper.js if (sys_ms_version < min_ms_version) { stop("You need to upgrade your system mapshaper library.\n", @@ -269,7 +273,36 @@ check_sys_mapshaper <- function(verbose = TRUE) { if (verbose) { message("mapshaper version ", sys_ms_version, " is installed and on your PATH") } - TRUE + ms_path +} + +sys_ms_path <- function(command) { + err_msg <- paste0("The mapshaper node library must be installed and on your PATH.\n", + "Install node.js (https://nodejs.org/en/) and then install mapshaper with:\n", + " npm install -g mapshaper") + + ms_path <- Sys.which(command) + + if (!nzchar(ms_path)) { + # try to find it: + if (nzchar(Sys.which("npm"))) { + npm_prefix <- system2("npm", "get prefix", stdout = TRUE) + ms_path <- file.path(npm_prefix, "bin", command) + if (!file.exists(ms_path)) stop(err_msg, call. = FALSE) + } else { + stop(err_msg, call. = FALSE) + } + } + ms_path +} + +sys_ms_version <- function() { + system2(sys_ms_path("mapshaper"), "--version", stdout = TRUE) +} + +bundled_ms_version <- function() { + ms <- ms_make_ctx() + ms$get("mapshaper.internal.VERSION") } ms_compact <- function(l) Filter(Negate(is.null), l) diff --git a/README.Rmd b/README.Rmd index 9b4bddd..92096d5 100644 --- a/README.Rmd +++ b/README.Rmd @@ -16,8 +16,6 @@ options(warnPartialMatchArgs = FALSE) ``` -[![Travis-CI Build Status](https://travis-ci.org/ateucher/rmapshaper.svg?branch=master)](https://travis-ci.org/ateucher/rmapshaper) -[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/ateucher/rmapshaper?branch=master&svg=true)](https://ci.appveyor.com/project/ateucher/rmapshaper) [![Codecov test coverage](https://codecov.io/gh/ateucher/rmapshaper/branch/master/graph/badge.svg)](https://codecov.io/gh/ateucher/rmapshaper?branch=master) [![R build status](https://github.com/ateucher/rmapshaper/workflows/R-CMD-check/badge.svg)](https://github.com/ateucher/rmapshaper) [![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/rmapshaper)](https://cran.r-project.org/package=rmapshaper) diff --git a/README.md b/README.md index 92b203f..8dc57b7 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,18 @@ -[![Travis-CI Build -Status](https://travis-ci.org/ateucher/rmapshaper.svg?branch=master)](https://travis-ci.org/ateucher/rmapshaper) -[![AppVeyor Build -Status](https://ci.appveyor.com/api/projects/status/github/ateucher/rmapshaper?branch=master&svg=true)](https://ci.appveyor.com/project/ateucher/rmapshaper) [![Codecov test coverage](https://codecov.io/gh/ateucher/rmapshaper/branch/master/graph/badge.svg)](https://codecov.io/gh/ateucher/rmapshaper?branch=master) [![R build status](https://github.com/ateucher/rmapshaper/workflows/R-CMD-check/badge.svg)](https://github.com/ateucher/rmapshaper) -[![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/rmapshaper)](https://cran.r-project.org/package=rmapshaper) +[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/rmapshaper)](https://cran.r-project.org/package=rmapshaper) [![CRAN Downloads per month](http://cranlogs.r-pkg.org/badges/rmapshaper)](https://cran.r-project.org/package=rmapshaper) [![CRAN total downloads](http://cranlogs.r-pkg.org/badges/grand-total/rmapshaper?color=lightgrey)](https://cran.r-project.org/package=rmapshaper) -rmapshaper -========== +# rmapshaper An R package providing access to the awesome [mapshaper](https://github.com/mbloch/mapshaper/) tool by Matthew Bloch, @@ -88,15 +83,21 @@ turn it into a `geo_json` object: ``` r library(geojsonio) +#> Registered S3 method overwritten by 'geojsonsf': +#> method from +#> print.geojson geojson #> #> Attaching package: 'geojsonio' #> The following object is masked from 'package:base': #> #> pretty library(rmapshaper) +#> Registered S3 method overwritten by 'geojsonlint': +#> method from +#> print.location dplyr library(sp) library(sf) -#> Linking to GEOS 3.8.1, GDAL 2.4.4, PROJ 7.0.0 +#> Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1 ## First convert to json states_json <- geojson_json(states, geometry = "polygon", group = "group") @@ -114,6 +115,7 @@ plot(states_sp) ``` r ## Now simplify using default parameters, then plot the simplified states states_simp <- ms_simplify(states_sp) +#> Warning in sp::proj4string(sp): CRS object has comment, which is lost in output plot(states_simp) ``` @@ -125,6 +127,7 @@ shared boundaries: ``` r states_very_simp <- ms_simplify(states_sp, keep = 0.001) +#> Warning in sp::proj4string(sp): CRS object has comment, which is lost in output plot(states_very_simp) ``` @@ -135,9 +138,9 @@ gaps are evident: ``` r library(rgeos) -#> rgeos version: 0.5-2, (SVN revision 621) -#> GEOS runtime version: 3.7.2-CAPI-1.11.2 -#> Linking to sp version: 1.3-1 +#> rgeos version: 0.5-5, (SVN revision 640) +#> GEOS runtime version: 3.8.1-CAPI-1.13.3 +#> Linking to sp version: 1.4-2 #> Polygon checking: TRUE states_gsimp <- gSimplify(states_sp, tol = 1, topologyPreserve = TRUE) plot(states_gsimp) @@ -201,14 +204,13 @@ First make sure you have mapshaper installed: ``` r check_sys_mapshaper() -#> mapshaper version 0.4.154 is installed and on your PATH -#> [1] TRUE +#> mapshaper version 0.5.53 is installed and on your PATH +#> mapshaper-xl +#> "/usr/local/bin/mapshaper-xl" ``` If you get an error, you will need to install mapshaper. First install -node -(https://nodejs.org/en/) -and then install mapshaper with: +node () and then install mapshaper with: npm install -g mapshaper @@ -219,7 +221,56 @@ states_simp_internal <- ms_simplify(states_sf) states_simp_sys <- ms_simplify(states_sf, sys = TRUE) all.equal(states_simp_internal, states_simp_sys) -#> [1] TRUE +#> [1] "Component \"geometry\": Component 1: Component 1: Mean relative difference: 0.03139317" +#> [2] "Component \"geometry\": Component 2: Component 1: Mean relative difference: 0.03351984" +#> [3] "Component \"geometry\": Component 3: Component 1: Mean relative difference: 0.02481586" +#> [4] "Component \"geometry\": Component 4: Component 1: Mean relative difference: 0.0625425" +#> [5] "Component \"geometry\": Component 5: Component 1: Mean relative difference: 0.03847964" +#> [6] "Component \"geometry\": Component 6: Component 1: Mean relative difference: 0.02028062" +#> [7] "Component \"geometry\": Component 7: Component 1: Mean relative difference: 0.01304473" +#> [8] "Component \"geometry\": Component 8: Component 1: Mean relative difference: 0.05068546" +#> [9] "Component \"geometry\": Component 9: Component 1: Mean relative difference: 0.03076616" +#> [10] "Component \"geometry\": Component 10: Component 1: Mean relative difference: 0.03550646" +#> [11] "Component \"geometry\": Component 11: Component 1: Mean relative difference: 0.02459161" +#> [12] "Component \"geometry\": Component 12: Component 1: Mean relative difference: 0.02310049" +#> [13] "Component \"geometry\": Component 13: Component 1: Mean relative difference: 0.04302159" +#> [14] "Component \"geometry\": Component 14: Component 1: Mean relative difference: 0.04605118" +#> [15] "Component \"geometry\": Component 15: Component 1: Mean relative difference: 0.02087527" +#> [16] "Component \"geometry\": Component 16: Component 1: Mean relative difference: 0.02282804" +#> [17] "Component \"geometry\": Component 17: Component 1: Mean relative difference: 0.02475744" +#> [18] "Component \"geometry\": Component 18: Component 1: Mean relative difference: 0.01700793" +#> [19] "Component \"geometry\": Component 19: Component 1: Mean relative difference: 0.01307087" +#> [20] "Component \"geometry\": Component 20: Component 1: Mean relative difference: 0.01163646" +#> [21] "Component \"geometry\": Component 21: Component 1: Mean relative difference: 0.02520351" +#> [22] "Component \"geometry\": Component 22: Component 1: Mean relative difference: 0.03941653" +#> [23] "Component \"geometry\": Component 23: Component 1: Mean relative difference: 0.02819596" +#> [24] "Component \"geometry\": Component 24: Component 1: Mean relative difference: 0.02349732" +#> [25] "Component \"geometry\": Component 25: Component 1: Mean relative difference: 0.04404438" +#> [26] "Component \"geometry\": Component 26: Component 1: Mean relative difference: 0.02730449" +#> [27] "Component \"geometry\": Component 27: Component 1: Mean relative difference: 0.04357254" +#> [28] "Component \"geometry\": Component 28: Component 1: Mean relative difference: 0.0161367" +#> [29] "Component \"geometry\": Component 29: Component 1: Mean relative difference: 0.01429417" +#> [30] "Component \"geometry\": Component 30: Component 1: Mean relative difference: 0.03548754" +#> [31] "Component \"geometry\": Component 31: Component 1: Mean relative difference: 0.03331207" +#> [32] "Component \"geometry\": Component 32: Component 1: Mean relative difference: 0.003467503" +#> [33] "Component \"geometry\": Component 33: Component 1: Mean relative difference: 0.05236853" +#> [34] "Component \"geometry\": Component 34: Component 1: Mean relative difference: 0.0337256" +#> [35] "Component \"geometry\": Component 35: Component 1: Mean relative difference: 0.02353558" +#> [36] "Component \"geometry\": Component 36: Component 1: Mean relative difference: 0.03420177" +#> [37] "Component \"geometry\": Component 37: Component 1: Mean relative difference: 0.03062568" +#> [38] "Component \"geometry\": Component 38: Component 1: Mean relative difference: 0.03140095" +#> [39] "Component \"geometry\": Component 39: Component 1: Mean relative difference: 0.007568402" +#> [40] "Component \"geometry\": Component 40: Component 1: Mean relative difference: 0.02151849" +#> [41] "Component \"geometry\": Component 41: Component 1: Mean relative difference: 0.02945216" +#> [42] "Component \"geometry\": Component 42: Component 1: Mean relative difference: 0.01900139" +#> [43] "Component \"geometry\": Component 43: Component 1: Mean relative difference: 0.06560268" +#> [44] "Component \"geometry\": Component 44: Component 1: Mean relative difference: 0.03583831" +#> [45] "Component \"geometry\": Component 45: Component 1: Mean relative difference: 0.01754127" +#> [46] "Component \"geometry\": Component 46: Component 1: Mean relative difference: 0.03534092" +#> [47] "Component \"geometry\": Component 47: Component 1: Mean relative difference: 0.02179796" +#> [48] "Component \"geometry\": Component 48: Component 1: Mean relative difference: 0.02831459" +#> [49] "Component \"geometry\": Component 49: Component 1: Mean relative difference: 0.02682678" +#> [50] "Component \"geometry\": Component 50: Component 1: Mean relative difference: 0.04003401" ``` ### Thanks diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 7852774..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,47 +0,0 @@ -# DO NOT CHANGE the "init" and "install" sections below - -# Download script file from GitHub -init: - ps: | - $ErrorActionPreference = "Stop" - Invoke-WebRequest http://raw.github.com/krlmlr/r-appveyor/master/scripts/appveyor-tool.ps1 -OutFile "..\appveyor-tool.ps1" - Import-Module '..\appveyor-tool.ps1' - -install: - ps: Bootstrap - -# Adapt as necessary starting from here - -build_script: - - travis-tool.sh install_deps - -test_script: - - travis-tool.sh run_tests - -environment: - USE_RTOOLS: true - PKGTYPE: source - - -on_failure: - - 7z a failure.zip *.Rcheck\* - - appveyor PushArtifact failure.zip - -artifacts: - - path: '*.Rcheck\**\*.log' - name: Logs - - - path: '*.Rcheck\**\*.out' - name: Logs - - - path: '*.Rcheck\**\*.fail' - name: Logs - - - path: '*.Rcheck\**\*.Rout' - name: Logs - - - path: '\*_*.tar.gz' - name: Bits - - - path: '\*_*.zip' - name: Bits diff --git a/inst/mapshaper/README.md b/inst/mapshaper/README.md index 3aaf5b6..8a98c97 100644 --- a/inst/mapshaper/README.md +++ b/inst/mapshaper/README.md @@ -5,7 +5,7 @@ The license for `mapshaper` and its dependencies, as well as their licenses, are ``` npm install -g browserify -npm install mapshaper +npm install mapshaper@0.4.163 echo "global.mapshaper = require('mapshaper');" > in.js browserify in.js -o inst/mapshaper/mapshaper-browserify.js rm in.js @@ -17,7 +17,7 @@ To make this work in V8, which does not have all of the capability of Node, a co of modifications are required: ### setTimout and setImmediate -Because the functions `setTimeout` and `setImmediate` are not available in the V8 engine, the definition of `utils.reduceAsync` (approximately line `18000` in the browserified file) must be slightly modified to avoid them. Thanks to [@timelyportfolio](https://github.com/timelyportfolio) for figuring this out: +Because the functions `setTimeout` and `setImmediate` are not available in the V8 engine, the definition of `reduceAsync` (approximately line `6579` in the browserified file) must be slightly modified to avoid them. Thanks to [@timelyportfolio](https://github.com/timelyportfolio) for figuring this out: ```javascript utils.reduceAsync = function(arr, memo, iter, done) { @@ -56,7 +56,7 @@ utils.reduceAsync = function(arr, memo, iter, done) { ``` ### Output to geojson, not buffer: -In `mapshaper-browserify.js`, on line 16153 in the `internal.exportGeoJSON` function +In `mapshaper-browserify.js`, on line 13713 in the `internal.exportGeoJSON` function definition, where `internal.exportDatasetAsGeoJSON` is called, change `ofmt` argument from `'buffer'` to `'geojson'`, so the line looks like this: @@ -64,6 +64,16 @@ from `'buffer'` to `'geojson'`, so the line looks like this: content: internal.exportDatasetAsGeoJSON(d, opts, 'geojson'), ``` +### Don't try to print startup messages (throws errors) +In `mapshaper-browserify.js`, on lines 28506-28508, comment out the call to +`internal.printStartupMessages()`: + +```javascript +// if (!internal.runningInBrowser()) { +// internal.printStartupMessages(); +// } +``` + Finally, minify (uglify() the javascript to make it smaller and faster: ``` diff --git a/inst/mapshaper/mapshaper-browserify.min.js b/inst/mapshaper/mapshaper-browserify.min.js index b0d5a2f..dbfa938 100644 --- a/inst/mapshaper/mapshaper-browserify.min.js +++ b/inst/mapshaper/mapshaper-browserify.min.js @@ -1 +1 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i=N)eof=true;else if((c=text.charCodeAt(I++))===NEWLINE)eol=true;else if(c===RETURN){eol=true;if(text.charCodeAt(I)===NEWLINE)++I}return text.slice(j+1,i-1).replace(/""/g,'"')}while(I0){var parent=pos-1>>1;var parentValue=this.values[parent];if(value>=parentValue){break}this.ids[pos]=this.ids[parent];this.values[pos]=parentValue;pos=parent}this.ids[pos]=id;this.values[pos]=value};FlatQueue.prototype.pop=function pop(){if(this.length===0){return undefined}var top=this.ids[0];this.length--;if(this.length>0){var id=this.ids[0]=this.ids[this.length];var value=this.values[0]=this.values[this.length];var halfLength=this.length>>1;var pos=0;while(pos=value){break}this.ids[pos]=bestIndex;this.values[pos]=bestValue;pos=left}this.ids[pos]=id;this.values[pos]=value}this.ids.pop();this.values.pop();return top};FlatQueue.prototype.peek=function peek(){return this.ids[0]};FlatQueue.prototype.peekValue=function peekValue(){return this.values[0]};var ARRAY_TYPES=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var VERSION=3;var Flatbush=function Flatbush(numItems,nodeSize,ArrayType,data){if(nodeSize===void 0)nodeSize=16;if(ArrayType===void 0)ArrayType=Float64Array;if(numItems===undefined){throw new Error("Missing required argument: numItems.")}if(isNaN(numItems)||numItems<=0){throw new Error("Unpexpected numItems value: "+numItems+".")}this.numItems=+numItems;this.nodeSize=Math.min(Math.max(+nodeSize,2),65535);var n=numItems;var numNodes=n;this._levelBounds=[n*4];do{n=Math.ceil(n/this.nodeSize);numNodes+=n;this._levelBounds.push(numNodes*4)}while(n!==1);this.ArrayType=ArrayType||Float64Array;this.IndexArrayType=numNodes<16384?Uint16Array:Uint32Array;var arrayTypeIndex=ARRAY_TYPES.indexOf(this.ArrayType);var nodesByteSize=numNodes*4*this.ArrayType.BYTES_PER_ELEMENT;if(arrayTypeIndex<0){throw new Error("Unexpected typed array class: "+ArrayType+".")}if(data&&data instanceof ArrayBuffer){this.data=data;this._boxes=new this.ArrayType(this.data,8,numNodes*4);this._indices=new this.IndexArrayType(this.data,8+nodesByteSize,numNodes);this._pos=numNodes*4;this.minX=this._boxes[this._pos-4];this.minY=this._boxes[this._pos-3];this.maxX=this._boxes[this._pos-2];this.maxY=this._boxes[this._pos-1]}else{this.data=new ArrayBuffer(8+nodesByteSize+numNodes*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new this.ArrayType(this.data,8,numNodes*4);this._indices=new this.IndexArrayType(this.data,8+nodesByteSize,numNodes);this._pos=0;this.minX=Infinity;this.minY=Infinity;this.maxX=-Infinity;this.maxY=-Infinity;new Uint8Array(this.data,0,2).set([251,(VERSION<<4)+arrayTypeIndex]);new Uint16Array(this.data,2,1)[0]=nodeSize;new Uint32Array(this.data,4,1)[0]=numItems}this._queue=new FlatQueue};Flatbush.from=function from(data){if(!(data instanceof ArrayBuffer)){throw new Error("Data must be an instance of ArrayBuffer.")}var ref=new Uint8Array(data,0,2);var magic=ref[0];var versionAndType=ref[1];if(magic!==251){throw new Error("Data does not appear to be in a Flatbush format.")}if(versionAndType>>4!==VERSION){throw new Error("Got v"+(versionAndType>>4)+" data when expected v"+VERSION+".")}var ref$1=new Uint16Array(data,2,1);var nodeSize=ref$1[0];var ref$2=new Uint32Array(data,4,1);var numItems=ref$2[0];return new Flatbush(numItems,nodeSize,ARRAY_TYPES[versionAndType&15],data)};Flatbush.prototype.add=function add(minX,minY,maxX,maxY){var index=this._pos>>2;this._indices[index]=index;this._boxes[this._pos++]=minX;this._boxes[this._pos++]=minY;this._boxes[this._pos++]=maxX;this._boxes[this._pos++]=maxY;if(minXthis.maxX){this.maxX=maxX}if(maxY>this.maxY){this.maxY=maxY}};Flatbush.prototype.finish=function finish(){if(this._pos>>2!==this.numItems){throw new Error("Added "+(this._pos>>2)+" items when expected "+this.numItems+".")}var width=this.maxX-this.minX;var height=this.maxY-this.minY;var hilbertValues=new Uint32Array(this.numItems);var hilbertMax=(1<<16)-1;for(var i=0;inodeMaxX){nodeMaxX=maxX$1}if(maxY$1>nodeMaxY){nodeMaxY=maxY$1}}this._indices[this._pos>>2]=nodeIndex;this._boxes[this._pos++]=nodeMinX;this._boxes[this._pos++]=nodeMinY;this._boxes[this._pos++]=nodeMaxX;this._boxes[this._pos++]=nodeMaxY}}};Flatbush.prototype.search=function search(minX,minY,maxX,maxY,filterFn){if(this._pos!==this._boxes.length){throw new Error("Data not yet indexed - call index.finish().")}var nodeIndex=this._boxes.length-4;var level=this._levelBounds.length-1;var queue=[];var results=[];while(nodeIndex!==undefined){var end=Math.min(nodeIndex+this.nodeSize*4,this._levelBounds[level]);for(var pos=nodeIndex;pos>2]|0;if(maxXthis._boxes[pos+2]){continue}if(minY>this._boxes[pos+3]){continue}if(nodeIndex>2]|0;var dx=axisDist(x,this._boxes[pos],this._boxes[pos+2]);var dy=axisDist(y,this._boxes[pos+1],this._boxes[pos+3]);var dist=dx*dx+dy*dy;if(nodeIndexmaxDistSquared){q.clear();return results}results.push(-q.pop()-1);if(results.length===maxResults){q.clear();return results}}nodeIndex=q.pop()}q.clear();return results};function axisDist(k,min,max){return k>1;if(arr[m]>value){j=m}else{i=m+1}}return arr[i]}function sort(values,boxes,indices,left,right){if(left>=right){return}var pivot=values[left+right>>1];var i=left-1;var j=right+1;while(true){do{i++}while(values[i]pivot);if(i>=j){break}swap(values,boxes,indices,i,j)}sort(values,boxes,indices,left,j);sort(values,boxes,indices,j+1,right)}function swap(values,boxes,indices,i,j){var temp=values[i];values[i]=values[j];values[j]=temp;var k=4*i;var m=4*j;var a=boxes[k];var b=boxes[k+1];var c=boxes[k+2];var d=boxes[k+3];boxes[k]=boxes[m];boxes[k+1]=boxes[m+1];boxes[k+2]=boxes[m+2];boxes[k+3]=boxes[m+3];boxes[m]=a;boxes[m+1]=b;boxes[m+2]=c;boxes[m+3]=d;var e=indices[i];indices[i]=indices[j];indices[j]=e}function hilbert(x,y){var a=x^y;var b=65535^a;var c=65535^(x|y);var d=x&(y^65535);var A=a|b>>1;var B=a>>1^a;var C=c>>1^b&d>>1^c;var D=a&c>>1^d>>1^d;a=A;b=B;c=C;d=D;A=a&a>>2^b&b>>2;B=a&b>>2^b&(a^b)>>2;C^=a&c>>2^b&d>>2;D^=b&c>>2^(a^b)&d>>2;a=A;b=B;c=C;d=D;A=a&a>>4^b&b>>4;B=a&b>>4^b&(a^b)>>4;C^=a&c>>4^b&d>>4;D^=b&c>>4^(a^b)&d>>4;a=A;b=B;c=C;d=D;C^=a&c>>8^b&d>>8;D^=b&c>>8^(a^b)&d>>8;a=C^C>>1;b=D^D>>1;var i0=x^y;var i1=b|65535^(i0|a);i0=(i0|i0<<8)&16711935;i0=(i0|i0<<4)&252645135;i0=(i0|i0<<2)&858993459;i0=(i0|i0<<1)&1431655765;i1=(i1|i1<<8)&16711935;i1=(i1|i1<<4)&252645135;i1=(i1|i1<<2)&858993459;i1=(i1|i1<<1)&1431655765;return(i1<<1|i0)>>>0}return Flatbush})},{}],4:[function(require,module,exports){"use strict";var Response=function(){function Response(statusCode,headers,body,url){if(typeof statusCode!=="number"){throw new TypeError("statusCode must be a number but was "+typeof statusCode)}if(headers===null){throw new TypeError("headers cannot be null")}if(typeof headers!=="object"){throw new TypeError("headers must be an object but was "+typeof headers)}this.statusCode=statusCode;var headersToLowerCase={};for(var key in headers){headersToLowerCase[key.toLowerCase()]=headers[key]}this.headers=headersToLowerCase;this.body=body;this.url=url}Response.prototype.isError=function(){return this.statusCode===0||this.statusCode>=400};Response.prototype.getBody=function(encoding){if(this.statusCode===0){var err=new Error("This request to "+this.url+" resulted in a status code of 0. This usually indicates some kind of network error in a browser (e.g. CORS not being set up or the DNS failing to resolve):\n"+this.body.toString());err.statusCode=this.statusCode;err.headers=this.headers;err.body=this.body;err.url=this.url;throw err}if(this.statusCode>=300){var err=new Error("Server responded to "+this.url+" with status code "+this.statusCode+":\n"+this.body.toString());err.statusCode=this.statusCode;err.headers=this.headers;err.body=this.body;err.url=this.url;throw err}if(!encoding||typeof this.body==="string"){return this.body}return this.body.toString(encoding)};return Response}();module.exports=Response},{}],5:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports._dbcs=DBCSCodec;var UNASSIGNED=-1,GB18030_CODE=-2,SEQ_START=-10,NODE_START=-1e3,UNASSIGNED_NODE=new Array(256),DEF_CHAR=-1;for(var i=0;i<256;i++)UNASSIGNED_NODE[i]=UNASSIGNED;function DBCSCodec(codecOptions,iconv){this.encodingName=codecOptions.encodingName;if(!codecOptions)throw new Error("DBCS codec is called without the data.");if(!codecOptions.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var mappingTable=codecOptions.table();this.decodeTables=[];this.decodeTables[0]=UNASSIGNED_NODE.slice(0);this.decodeTableSeq=[];for(var i=0;i0;addr>>=8)bytes.push(addr&255);if(bytes.length==0)bytes.push(0);var node=this.decodeTables[0];for(var i=bytes.length-1;i>0;i--){var val=node[bytes[i]];if(val==UNASSIGNED){node[bytes[i]]=NODE_START-this.decodeTables.length;this.decodeTables.push(node=UNASSIGNED_NODE.slice(0))}else if(val<=NODE_START){node=this.decodeTables[NODE_START-val]}else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+addr.toString(16))}return node};DBCSCodec.prototype._addDecodeChunk=function(chunk){var curAddr=parseInt(chunk[0],16);var writeTable=this._getDecodeTrieNode(curAddr);curAddr=curAddr&255;for(var k=1;k255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+chunk[0]+": too long"+curAddr)};DBCSCodec.prototype._getEncodeBucket=function(uCode){var high=uCode>>8;if(this.encodeTable[high]===undefined)this.encodeTable[high]=UNASSIGNED_NODE.slice(0);return this.encodeTable[high]};DBCSCodec.prototype._setEncodeChar=function(uCode,dbcsCode){var bucket=this._getEncodeBucket(uCode);var low=uCode&255;if(bucket[low]<=SEQ_START)this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR]=dbcsCode;else if(bucket[low]==UNASSIGNED)bucket[low]=dbcsCode};DBCSCodec.prototype._setEncodeSequence=function(seq,dbcsCode){var uCode=seq[0];var bucket=this._getEncodeBucket(uCode);var low=uCode&255;var node;if(bucket[low]<=SEQ_START){node=this.encodeTableSeq[SEQ_START-bucket[low]]}else{node={};if(bucket[low]!==UNASSIGNED)node[DEF_CHAR]=bucket[low];bucket[low]=SEQ_START-this.encodeTableSeq.length;this.encodeTableSeq.push(node)}for(var j=1;j=0)this._setEncodeChar(uCode,mbCode);else if(uCode<=NODE_START)this._fillEncodeTable(NODE_START-uCode,mbCode<<8,skipEncodeChars);else if(uCode<=SEQ_START)this._setEncodeSequence(this.decodeTableSeq[SEQ_START-uCode],mbCode)}};function DBCSEncoder(options,codec){this.leadSurrogate=-1;this.seqObj=undefined;this.encodeTable=codec.encodeTable;this.encodeTableSeq=codec.encodeTableSeq;this.defaultCharSingleByte=codec.defCharSB;this.gb18030=codec.gb18030}DBCSEncoder.prototype.write=function(str){var newBuf=Buffer.alloc(str.length*(this.gb18030?4:3)),leadSurrogate=this.leadSurrogate,seqObj=this.seqObj,nextChar=-1,i=0,j=0;while(true){if(nextChar===-1){if(i==str.length)break;var uCode=str.charCodeAt(i++)}else{var uCode=nextChar;nextChar=-1}if(55296<=uCode&&uCode<57344){if(uCode<56320){if(leadSurrogate===-1){leadSurrogate=uCode;continue}else{leadSurrogate=uCode;uCode=UNASSIGNED}}else{if(leadSurrogate!==-1){uCode=65536+(leadSurrogate-55296)*1024+(uCode-56320);leadSurrogate=-1}else{uCode=UNASSIGNED}}}else if(leadSurrogate!==-1){nextChar=uCode;uCode=UNASSIGNED;leadSurrogate=-1}var dbcsCode=UNASSIGNED;if(seqObj!==undefined&&uCode!=UNASSIGNED){var resCode=seqObj[uCode];if(typeof resCode==="object"){seqObj=resCode;continue}else if(typeof resCode=="number"){dbcsCode=resCode}else if(resCode==undefined){resCode=seqObj[DEF_CHAR];if(resCode!==undefined){dbcsCode=resCode;nextChar=uCode}else{}}seqObj=undefined}else if(uCode>=0){var subtable=this.encodeTable[uCode>>8];if(subtable!==undefined)dbcsCode=subtable[uCode&255];if(dbcsCode<=SEQ_START){seqObj=this.encodeTableSeq[SEQ_START-dbcsCode];continue}if(dbcsCode==UNASSIGNED&&this.gb18030){var idx=findIdx(this.gb18030.uChars,uCode);if(idx!=-1){var dbcsCode=this.gb18030.gbChars[idx]+(uCode-this.gb18030.uChars[idx]);newBuf[j++]=129+Math.floor(dbcsCode/12600);dbcsCode=dbcsCode%12600;newBuf[j++]=48+Math.floor(dbcsCode/1260);dbcsCode=dbcsCode%1260;newBuf[j++]=129+Math.floor(dbcsCode/10);dbcsCode=dbcsCode%10;newBuf[j++]=48+dbcsCode;continue}}}if(dbcsCode===UNASSIGNED)dbcsCode=this.defaultCharSingleByte;if(dbcsCode<256){newBuf[j++]=dbcsCode}else if(dbcsCode<65536){newBuf[j++]=dbcsCode>>8;newBuf[j++]=dbcsCode&255}else{newBuf[j++]=dbcsCode>>16;newBuf[j++]=dbcsCode>>8&255;newBuf[j++]=dbcsCode&255}}this.seqObj=seqObj;this.leadSurrogate=leadSurrogate;return newBuf.slice(0,j)};DBCSEncoder.prototype.end=function(){if(this.leadSurrogate===-1&&this.seqObj===undefined)return;var newBuf=Buffer.alloc(10),j=0;if(this.seqObj){var dbcsCode=this.seqObj[DEF_CHAR];if(dbcsCode!==undefined){if(dbcsCode<256){newBuf[j++]=dbcsCode}else{newBuf[j++]=dbcsCode>>8;newBuf[j++]=dbcsCode&255}}else{}this.seqObj=undefined}if(this.leadSurrogate!==-1){newBuf[j++]=this.defaultCharSingleByte;this.leadSurrogate=-1}return newBuf.slice(0,j)};DBCSEncoder.prototype.findIdx=findIdx;function DBCSDecoder(options,codec){this.nodeIdx=0;this.prevBuf=Buffer.alloc(0);this.decodeTables=codec.decodeTables;this.decodeTableSeq=codec.decodeTableSeq;this.defaultCharUnicode=codec.defaultCharUnicode;this.gb18030=codec.gb18030}DBCSDecoder.prototype.write=function(buf){var newBuf=Buffer.alloc(buf.length*2),nodeIdx=this.nodeIdx,prevBuf=this.prevBuf,prevBufOffset=this.prevBuf.length,seqStart=-this.prevBuf.length,uCode;if(prevBufOffset>0)prevBuf=Buffer.concat([prevBuf,buf.slice(0,10)]);for(var i=0,j=0;i=0?buf[i]:prevBuf[i+prevBufOffset];var uCode=this.decodeTables[nodeIdx][curByte];if(uCode>=0){}else if(uCode===UNASSIGNED){i=seqStart;uCode=this.defaultCharUnicode.charCodeAt(0)}else if(uCode===GB18030_CODE){var curSeq=seqStart>=0?buf.slice(seqStart,i+1):prevBuf.slice(seqStart+prevBufOffset,i+1+prevBufOffset);var ptr=(curSeq[0]-129)*12600+(curSeq[1]-48)*1260+(curSeq[2]-129)*10+(curSeq[3]-48);var idx=findIdx(this.gb18030.gbChars,ptr);uCode=this.gb18030.uChars[idx]+ptr-this.gb18030.gbChars[idx]}else if(uCode<=NODE_START){nodeIdx=NODE_START-uCode;continue}else if(uCode<=SEQ_START){var seq=this.decodeTableSeq[SEQ_START-uCode];for(var k=0;k>8}uCode=seq[seq.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+uCode+" at "+nodeIdx+"/"+curByte);if(uCode>65535){uCode-=65536;var uCodeLead=55296+Math.floor(uCode/1024);newBuf[j++]=uCodeLead&255;newBuf[j++]=uCodeLead>>8;uCode=56320+uCode%1024}newBuf[j++]=uCode&255;newBuf[j++]=uCode>>8;nodeIdx=0;seqStart=i+1}this.nodeIdx=nodeIdx;this.prevBuf=seqStart>=0?buf.slice(seqStart):prevBuf.slice(seqStart+prevBufOffset);return newBuf.slice(0,j).toString("ucs2")};DBCSDecoder.prototype.end=function(){var ret="";while(this.prevBuf.length>0){ret+=this.defaultCharUnicode;var buf=this.prevBuf.slice(1);this.prevBuf=Buffer.alloc(0);this.nodeIdx=0;if(buf.length>0)ret+=this.write(buf)}this.nodeIdx=0;return ret};function findIdx(table,val){if(table[0]>val)return-1;var l=0,r=table.length;while(l>>6);buf[bufIdx++]=128+(charCode&63)}else{buf[bufIdx++]=224+(charCode>>>12);buf[bufIdx++]=128+(charCode>>>6&63);buf[bufIdx++]=128+(charCode&63)}}return buf.slice(0,bufIdx)};InternalEncoderCesu8.prototype.end=function(){};function InternalDecoderCesu8(options,codec){this.acc=0;this.contBytes=0;this.accBytes=0;this.defaultCharUnicode=codec.defaultCharUnicode}InternalDecoderCesu8.prototype.write=function(buf){var acc=this.acc,contBytes=this.contBytes,accBytes=this.accBytes,res="";for(var i=0;i0){res+=this.defaultCharUnicode;contBytes=0}if(curByte<128){res+=String.fromCharCode(curByte)}else if(curByte<224){acc=curByte&31;contBytes=1;accBytes=1}else if(curByte<240){acc=curByte&15;contBytes=2;accBytes=1}else{res+=this.defaultCharUnicode}}else{if(contBytes>0){acc=acc<<6|curByte&63;contBytes--;accBytes++;if(contBytes===0){if(accBytes===2&&acc<128&&acc>0)res+=this.defaultCharUnicode;else if(accBytes===3&&acc<2048)res+=this.defaultCharUnicode;else res+=String.fromCharCode(acc)}}else{res+=this.defaultCharUnicode}}}this.acc=acc;this.contBytes=contBytes;this.accBytes=accBytes;return res};InternalDecoderCesu8.prototype.end=function(){var res=0;if(this.contBytes>0)res+=this.defaultCharUnicode;return res}},{"safer-buffer":39,string_decoder:50}],9:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports._sbcs=SBCSCodec;function SBCSCodec(codecOptions,iconv){if(!codecOptions)throw new Error("SBCS codec is called without the data.");if(!codecOptions.chars||codecOptions.chars.length!==128&&codecOptions.chars.length!==256)throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(codecOptions.chars.length===128){var asciiString="";for(var i=0;i<128;i++)asciiString+=String.fromCharCode(i);codecOptions.chars=asciiString+codecOptions.chars}this.decodeBuf=Buffer.from(codecOptions.chars,"ucs2");var encodeBuf=Buffer.alloc(65536,iconv.defaultCharSingleByte.charCodeAt(0));for(var i=0;i?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xb0\xb7\u2219\u221a\u2592\u2500\u2502\u253c\u2524\u252c\u251c\u2534\u2510\u250c\u2514\u2518\u03b2\u221e\u03c6\xb1\xbd\xbc\u2248\xab\xbb\ufef7\ufef8\ufffd\ufffd\ufefb\ufefc\ufffd\xa0\xad\ufe82\xa3\xa4\ufe84\ufffd\ufffd\ufe8e\ufe8f\ufe95\ufe99\u060c\ufe9d\ufea1\ufea5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufed1\u061b\ufeb1\ufeb5\ufeb9\u061f\xa2\ufe80\ufe81\ufe83\ufe85\ufeca\ufe8b\ufe8d\ufe91\ufe93\ufe97\ufe9b\ufe9f\ufea3\ufea7\ufea9\ufeab\ufead\ufeaf\ufeb3\ufeb7\ufebb\ufebf\ufec1\ufec5\ufecb\ufecf\xa6\xac\xf7\xd7\ufec9\u0640\ufed3\ufed7\ufedb\ufedf\ufee3\ufee7\ufeeb\ufeed\ufeef\ufef3\ufebd\ufecc\ufece\ufecd\ufee1\ufe7d\u0651\ufee5\ufee9\ufeec\ufef0\ufef2\ufed0\ufed5\ufef5\ufef6\ufedd\ufed9\ufef1\u25a0\ufffd"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xa4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0386\ufffd\xb7\xac\xa6\u2018\u2019\u0388\u2015\u0389\u038a\u03aa\u038c\ufffd\ufffd\u038e\u03ab\xa9\u038f\xb2\xb3\u03ac\xa3\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03cd\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xbd\u0398\u0399\xab\xbb\u2591\u2592\u2593\u2502\u2524\u039a\u039b\u039c\u039d\u2563\u2551\u2557\u255d\u039e\u039f\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u03a0\u03a1\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u2518\u250c\u2588\u2584\u03b4\u03b5\u2580\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u0384\xad\xb1\u03c5\u03c6\u03c7\xa7\u03c8\u0385\xb0\xa8\u03c9\u03cb\u03b0\u03ce\u25a0\xa0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\u203e\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0160\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\u017d\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0161\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\u017e\xff"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\ufe88\xd7\xf7\uf8f6\uf8f5\uf8f4\uf8f7\ufe71\x88\u25a0\u2502\u2500\u2510\u250c\u2514\u2518\ufe79\ufe7b\ufe7d\ufe7f\ufe77\ufe8a\ufef0\ufef3\ufef2\ufece\ufecf\ufed0\ufef6\ufef8\ufefa\ufefc\xa0\uf8fa\uf8f9\uf8f8\xa4\uf8fb\ufe8b\ufe91\ufe97\ufe9b\ufe9f\ufea3\u060c\xad\ufea7\ufeb3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufeb7\u061b\ufebb\ufebf\ufeca\u061f\ufecb\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\ufec7\u0639\u063a\ufecc\ufe82\ufe84\ufe8e\ufed3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\ufed7\ufedb\ufedf\uf8fc\ufef5\ufef7\ufef9\ufefb\ufee3\ufee7\ufeec\ufee9\ufffd"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\xad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045a\u045b\u045c\xa7\u045e\u045f"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e81\u0e82\u0e84\u0e87\u0e88\u0eaa\u0e8a\u0e8d\u0e94\u0e95\u0e96\u0e97\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea1\u0ea2\u0ea3\u0ea5\u0ea7\u0eab\u0ead\u0eae\ufffd\ufffd\ufffd\u0eaf\u0eb0\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0ebc\u0eb1\u0ebb\u0ebd\ufffd\ufffd\ufffd\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ec6\ufffd\u0edc\u0edd\u20ad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\ufffd\ufffd\xa2\xac\xa6\ufffd"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e48\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e49\u0e4a\u0e4b\u20ac\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\xa2\xac\xa6\xa0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20ac\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\u20ac\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u2126\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\ufffd\xa9\u2044\xa4\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\xa2\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},macgreek:{type:"_sbcs",chars:"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\xad\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\u0387\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\ufffd"},maciceland:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macroman:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macromania:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u015e\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\u0103\u015f\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\u0162\u0163\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macthai:{type:"_sbcs",chars:"\xab\xbb\u2026\uf88c\uf88f\uf892\uf895\uf898\uf88b\uf88e\uf891\uf894\uf897\u201c\u201d\uf899\ufffd\u2022\uf884\uf889\uf885\uf886\uf887\uf888\uf88a\uf88d\uf890\uf893\uf896\u2018\u2019\ufffd\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufeff\u200b\u2013\u2014\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u2122\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\xae\xa9\ufffd\ufffd\ufffd\ufffd"},macturkish:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\ufffd\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255a\u255b\u255c\u255d\u255e\u255f\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256a\u256b\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u255d\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u045e\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u040e\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8t:{type:"_sbcs",chars:"\u049b\u0493\u201a\u0492\u201e\u2026\u2020\u2021\ufffd\u2030\u04b3\u2039\u04b2\u04b7\u04b6\ufffd\u049a\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\ufffd\u04ef\u04ee\u0451\xa4\u04e3\xa6\xa7\ufffd\ufffd\ufffd\xab\xac\xad\xae\ufffd\xb0\xb1\xb2\u0401\ufffd\u04e2\xb6\xb7\ufffd\u2116\ufffd\xbb\ufffd\ufffd\ufffd\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\u0587\u0589)(\xbb\xab\u2014.\u055d,-\u058a\u2026\u055c\u055b\u055e\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053a\u056a\u053b\u056b\u053c\u056c\u053d\u056d\u053e\u056e\u053f\u056f\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054a\u057a\u054b\u057b\u054c\u057c\u054d\u057d\u054e\u057e\u054f\u057f\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055a\ufffd"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u049a\u04ba\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u049b\u04bb\u045f\xa0\u04b0\u04b1\u04d8\xa4\u04e8\xa6\xa7\u0401\xa9\u0492\xab\xac\xad\xae\u04ae\xb0\xb1\u0406\u0456\u04e9\xb5\xb6\xb7\u0451\u2116\u0493\xbb\u04d9\u04a2\u04a3\u04af\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},tcvn:{type:"_sbcs",chars:"\0\xda\u1ee4\x03\u1eea\u1eec\u1eee\x07\b\t\n\v\f\r\x0e\x0f\x10\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xc0\u1ea2\xc3\xc1\u1ea0\u1eb6\u1eac\xc8\u1eba\u1ebc\xc9\u1eb8\u1ec6\xcc\u1ec8\u0128\xcd\u1eca\xd2\u1ece\xd5\xd3\u1ecc\u1ed8\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xa0\u0102\xc2\xca\xd4\u01a0\u01af\u0110\u0103\xe2\xea\xf4\u01a1\u01b0\u0111\u1eb0\u0300\u0309\u0303\u0301\u0323\xe0\u1ea3\xe3\xe1\u1ea1\u1eb2\u1eb1\u1eb3\u1eb5\u1eaf\u1eb4\u1eae\u1ea6\u1ea8\u1eaa\u1ea4\u1ec0\u1eb7\u1ea7\u1ea9\u1eab\u1ea5\u1ead\xe8\u1ec2\u1ebb\u1ebd\xe9\u1eb9\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\xec\u1ec9\u1ec4\u1ebe\u1ed2\u0129\xed\u1ecb\xf2\u1ed4\u1ecf\xf5\xf3\u1ecd\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ed6\u1ee7\u0169\xfa\u1ee5\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5\u1ed0"},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10f1\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10f2\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10f3\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10f4\u10ef\u10f0\u10f5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04ee\u0493\u201e\u2026\u04b6\u04ae\u04b2\u04af\u04a0\u04e2\u04a2\u049a\u04ba\u04b8\u0497\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u04b3\u04b7\u04a1\u04e3\u04a3\u049b\u04bb\u04b9\xa0\u040e\u045e\u0408\u04e8\u0498\u04b0\xa7\u0401\xa9\u04d8\xab\xac\u04ef\xae\u049c\xb0\u04b1\u0406\u0456\u0499\u04e9\xb6\xb7\u0451\u2116\u04d9\xbb\u0458\u04aa\u04ab\u049d\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},viscii:{type:"_sbcs",chars:"\0\x01\u1eb2\x03\x04\u1eb4\u1eaa\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\u1ef6\x15\x16\x17\x18\u1ef8\x1a\x1b\x1c\x1d\u1ef4\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\u1ea0\u1eae\u1eb0\u1eb6\u1ea4\u1ea6\u1ea8\u1eac\u1ebc\u1eb8\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1ee2\u1eda\u1edc\u1ede\u1eca\u1ece\u1ecc\u1ec8\u1ee6\u0168\u1ee4\u1ef2\xd5\u1eaf\u1eb1\u1eb7\u1ea5\u1ea7\u1ea9\u1ead\u1ebd\u1eb9\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ed1\u1ed3\u1ed5\u1ed7\u1ee0\u01a0\u1ed9\u1edd\u1edf\u1ecb\u1ef0\u1ee8\u1eea\u1eec\u01a1\u1edb\u01af\xc0\xc1\xc2\xc3\u1ea2\u0102\u1eb3\u1eb5\xc8\xc9\xca\u1eba\xcc\xcd\u0128\u1ef3\u0110\u1ee9\xd2\xd3\xd4\u1ea1\u1ef7\u1eeb\u1eed\xd9\xda\u1ef9\u1ef5\xdd\u1ee1\u01b0\xe0\xe1\xe2\xe3\u1ea3\u0103\u1eef\u1eab\xe8\xe9\xea\u1ebb\xec\xed\u0129\u1ec9\u0111\u1ef1\xf2\xf3\xf4\xf5\u1ecf\u1ecd\u1ee5\xf9\xfa\u0169\u1ee7\xfd\u1ee3\u1eee"},iso646cn:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#\xa5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},iso646jp:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xa5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xc0\xc2\xc8\xca\xcb\xce\xcf\xb4\u02cb\u02c6\xa8\u02dc\xd9\xdb\u20a4\xaf\xdd\xfd\xb0\xc7\xe7\xd1\xf1\xa1\xbf\xa4\xa3\xa5\xa7\u0192\xa2\xe2\xea\xf4\xfb\xe1\xe9\xf3\xfa\xe0\xe8\xf2\xf9\xe4\xeb\xf6\xfc\xc5\xee\xd8\xc6\xe5\xed\xf8\xe6\xc4\xec\xd6\xdc\xc9\xef\xdf\xd4\xc1\xc3\xe3\xd0\xf0\xcd\xcc\xd3\xd2\xd5\xf5\u0160\u0161\xda\u0178\xff\xde\xfe\xb7\xb5\xb6\xbe\u2014\xbc\xbd\xaa\xba\xab\u25a0\xbb\xb1\ufffd"},macintosh:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},ascii:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},tis620:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"}}},{}],11:[function(require,module,exports){"use strict";module.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026\xa0\u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\u20ac\u25a0\xa0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2514\u2534\u252c\u251c\u2500\u253c\u2563\u2551\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xa7\u2557\u255d\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},{}],12:[function(require,module,exports){module.exports=[["8740","\u43f0\u4c32\u4603\u45a6\u4578\ud85c\ude67\u4d77\u45b3\ud85f\udcb1\u4ce2\ud85f\udcc5\u3b95\u4736\u4744\u4c47\u4c40\ud850\udebf\ud84d\ude17\ud85c\udf52\ud85b\ude8b\ud85c\udcd2\u4c57\ud868\udf51\u474f\u45da\u4c85\ud85f\udc6c\u4d07\u4aa4\u46a1\ud85a\udf23\u7225\ud856\ude54\ud846\ude63\ud84f\ude06\ud84f\udf61\u664d\u56fb"],["8767","\u7d95\u591d\ud862\udfb9\u3df4\u9734\ud85e\udfef\u5bdb\ud847\udd5e\u5aa4\u3625\ud867\udeb0\u5ad1\u5bb7\u5cfc\u676e\u8593\ud866\udd45\u7461\u749d\u3875\ud847\udd53\ud84d\ude9e\ud858\udc21\u3eec"],["87a1","\ud856\udcde\u3af5\u7afc\u9f97\ud850\udd61\ud862\udd0d\ud84c\uddea\ud842\ude8a\ud84c\ude5e\u430a\u8484\u9f96\u942f\u4930\u8613\u5896\u974a\u9218\u79d0\u7a32\u6660\u6a29\u889d\u744c\u7bc5\u6782\u7a2c\u524f\u9046\u34e6\u73c4\ud857\uddb9\u74c6\u9fc7\u57b3\u492f\u544c\u4131\ud84d\ude8e\u5818\u7a72\ud85e\udf65\u8b8f\u46ae\ud85b\ude88\u4181\ud857\udd99\u7bae\ud849\udcbc\u9fc8\ud849\udcc1\ud849\udcc9\ud849\udccc\u9fc9\u8504\ud84d\uddbb\u40b4\u9fca\u44e1\ud86b\uddff\u62c1\u706e\u9fcb"],["8840","\u31c0",4,"\ud840\udd0c\u31c5\ud840\udcd1\ud840\udccd\u31c6\u31c7\ud840\udccb\ud847\udfe8\u31c8\ud840\udcca\u31c9\u31ca\u31cb\u31cc\ud840\udd0e\u31cd\u31ce\u0100\xc1\u01cd\xc0\u0112\xc9\u011a\xc8\u014c\xd3\u01d1\xd2\u0fff\xca\u0304\u1ebe\u0fff\xca\u030c\u1ec0\xca\u0101\xe1\u01ce\xe0\u0251\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da"],["88a1","\u01dc\xfc\u0fff\xea\u0304\u1ebf\u0fff\xea\u030c\u1ec1\xea\u0261\u23da\u23db"],["8940","\ud868\udfa9\ud844\udd45"],["8943","\u650a"],["8946","\u4e3d\u6edd\u9d4e\u91df"],["894c","\ud85d\udf35\u6491\u4f1a\u4f28\u4fa8\u5156\u5174\u519c\u51e4\u52a1\u52a8\u533b\u534e\u53d1\u53d8\u56e2\u58f0\u5904\u5907\u5932\u5934\u5b66\u5b9e\u5b9f\u5c9a\u5e86\u603b\u6589\u67fe\u6804\u6865\u6d4e\u70bc\u7535\u7ea4\u7eac\u7eba\u7ec7\u7ecf\u7edf\u7f06\u7f37\u827a\u82cf\u836f\u89c6\u8bbe\u8be2\u8f66\u8f67\u8f6e"],["89a1","\u7411\u7cfc\u7dcd\u6946\u7ac9\u5227"],["89ab","\u918c\u78b8\u915e\u80bc"],["89b0","\u8d0b\u80f6\ud842\udde7"],["89b5","\u809f\u9ec7\u4ccd\u9dc9\u9e0c\u4c3e\ud867\uddf6\ud85c\udc0e\u9e0a\ud868\udd33\u35c1"],["89c1","\u6e9a\u823e\u7519"],["89c5","\u4911\u9a6c\u9a8f\u9f99\u7987\ud861\udc6c\ud847\uddca\ud841\uddd0\ud84a\udee6\u4e24\u4e81\u4e80\u4e87\u4ebf\u4eeb\u4f37\u344c\u4fbd\u3e48\u5003\u5088\u347d\u3493\u34a5\u5186\u5905\u51db\u51fc\u5205\u4e89\u5279\u5290\u5327\u35c7\u53a9\u3551\u53b0\u3553\u53c2\u5423\u356d\u3572\u3681\u5493\u54a3\u54b4\u54b9\u54d0\u54ef\u5518\u5523\u5528\u3598\u553f\u35a5\u35bf\u55d7\u35c5"],["8a40","\ud85f\udd84\u5525"],["8a43","\ud843\udc42\ud843\udd15\ud854\udd2b\u5590\ud84b\udcc6\u39ec\ud840\udf41\u8e46\ud853\uddb8\ud865\udce5\u4053\ud860\udcbe\u777a\ud84b\udc38\u3a34\u47d5\ud860\udd5d\ud85a\uddf2\ud853\uddea\u64dd\ud843\udd7c\ud843\udfb4\ud843\udcd5\ud844\udcf4\u648d\u8e7e\ud843\ude96\ud843\udc0b\ud843\udf64\ud84b\udca9\ud860\ude56\ud851\udcd3"],["8a64","\ud843\udd46\ud866\ude4d\ud860\udce9\u47f4\ud853\udea7\ud84b\udcc2\u9ab2\u3a67\ud865\uddf4\u3fed\u3506\ud854\udec7\ud865\udfd4\ud85e\udcc8\ud84b\udd44\u9d6e\u9815"],["8a76","\u43d9\ud858\udca5\u64b4\u54e3\ud84b\udd4c\ud84a\udfca\ud844\udc77\u39fb\ud844\udc6f"],["8aa1","\ud859\udeda\ud859\udf16\ud85e\udda0\u64ea\ud854\udc52\ud843\udc43\u8e68\ud848\udda1\ud862\udf4c\ud841\udf31"],["8aac","\u480b\ud840\udda9\u3ffa\u5873\ud84b\udd8d"],["8ab2","\ud851\uddc8\ud841\udcfc\ud858\udc97\ud843\udf4c\ud843\udd96\u5579\u40bb\u43ba"],["8abb","\u4ab4\ud84a\ude66\ud844\udc9d\u81aa\u98f5\ud843\udd9c\u6379\u39fe\ud849\udf75\u8dc0\u56a1\u647c\u3e43"],["8ac9","\ud869\ude01\ud843\ude09\ud84a\udecf\ud84b\udcc9"],["8ace","\ud844\udcc8\ud84e\uddc2\u3992\u3a06\ud860\ude9b\u3578\ud857\ude49\ud848\udcc7\u5652\ud843\udf31\ud84b\udcb2\ud865\udf20\u34bc\u6c3d\ud853\ude3b"],["8adf","\ud85d\udd74\ud84b\ude8b\ud848\ude08\ud869\ude5b\ud863\udccd\ud843\ude7a\ud843\udc34\ud85a\udc1c\u7f93\ud844\udccf\ud84a\udc03\ud84a\udd39\u35fb\ud854\udde3\ud843\ude8c\ud843\udf8d\ud843\udeaa\u3f93\ud843\udf30\ud843\udd47\ud844\udd4f\ud843\ude4c"],["8af6","\ud843\udeab\ud842\udfa9\ud843\udd48\ud844\udcc0\ud844\udd3d\u3ff9\ud849\ude96\u6432\ud843\udfad"],["8b40","\ud84c\udff4\ud85d\ude39\ud84a\udfce\ud843\udd7e\ud843\udd7f\ud84b\udc51\ud84b\udc55\u3a18\ud843\ude98\ud844\udcc7\ud843\udf2e\ud869\ude32\ud85a\udf50\ud863\udcd2\ud863\udd99\ud863\udcca\u95aa\u54cc\u82c4\u55b9"],["8b55","\ud867\udec3\u9c26\u9ab6\ud85d\udf5e\ud84b\uddee\u7140\u816d\u80ec\u5c1c\ud859\udd72\u8134\u3797\u535f\ud860\udcbd\u91b6\ud843\udefa\ud843\ude0f\ud843\ude77\ud843\udefb\u35dd\ud853\uddeb\u3609\ud843\udcd6\u56af\ud849\udfb5\ud844\udcc9\ud843\ude10\ud843\ude78\ud844\udc78\ud844\udd48\ud860\ude07\ud845\udc55\ud843\ude79\ud853\ude50\ud84b\udda4\u5a54\ud844\udc1d\ud844\udc1e\ud844\udcf5\ud844\udcf6\u579c\ud843\ude11"],["8ba1","\ud85d\ude94\ud860\udecd\ud843\udfb5\ud843\ude7b\ud854\udd7e\u3703\ud843\udfb6\ud844\udd80\ud854\uded8\ud868\udebd\ud852\uddda\ud846\udc3a\ud850\udd77\ud860\ude7c\u5899\u5268\u361a\ud855\udf3d\u7bb2\u5b68\u4800\u4b2c\u9f27\u49e7\u9c1f\u9b8d\ud856\udf74\ud84c\udd3d\u55fb\u35f2\u5689\u4e28\u5902\ud846\udfc1\ud87e\udc78\u9751\ud840\udc86\u4e5b\u4ebb\u353e\u5c23\u5f51\u5fc4\u38fa\u624c\u6535\u6b7a\u6c35\u6c3a\u706c\u722b\u4e2c\u72ad\ud852\udce9\u7f52\u793b\u7cf9\u7f53\ud858\ude6a\u34c1"],["8bde","\ud858\udf4b\u8002\u8080\ud859\ude12\ud85a\udd51\u535d\u8864\u89c1\ud85e\udcb2\u8ba0\u8d1d\u9485\u9578\u957f\u95e8\ud863\ude0f\u97e6\u9875\u98ce\u98de\u9963\ud866\udc10\u9c7c\u9e1f\u9ec4\u6b6f\uf907\u4e37\ud840\udc87\u961d\u6237\u94a2"],["8c40","\u503b\u6dfe\ud867\udc73\u9fa6\u3dc9\u888f\ud850\udd4e\u7077\u5cf5\u4b20\ud854\uddcd\u3559\ud857\udd30\u6122\ud862\ude32\u8fa7\u91f6\u7191\u6719\u73ba\ud84c\ude81\ud868\udd07\u3c8b\ud846\udd80\u4b10\u78e4\u7402\u51ae\ud861\udf0f\u4009\u6a63\ud868\udeba\u4223\u860f\ud842\ude6f\u7a2a\ud866\udd47\ud862\udeea\u9755\u704d\u5324\ud848\udc7e\u93f4\u76d9\ud862\udde3\u9fa7\u77dd\u4ea3\u4ff0\u50bc\u4e2f\u4f17\u9fa8\u5434\u7d8b\u5892\u58d0\ud847\uddb6\u5e92\u5e99\u5fc2\ud849\udf12\u658b"],["8ca1","\ud84c\udff9\u6919\u6a43\ud84f\udc63\u6cff"],["8ca7","\u7200\ud851\udd05\u738c\u3edb\ud852\ude13\u5b15\u74b9\u8b83\ud857\udca4\ud855\ude95\u7a93\u7bec\u7cc3\u7e6c\u82f8\u8597\u9fa9\u8890\u9faa\u8eb9\u9fab\u8fcf\u855f\u99e0\u9221\u9fac\ud863\uddb9\ud845\udc3f\u4071\u42a2\u5a1a"],["8cc9","\u9868\u676b\u4276\u573d"],["8cce","\u85d6\ud852\udd7b\u82bf\ud85c\udd0d\u4c81\ud85b\udd74\u5d7b\ud85a\udf15\ud85b\udfbe\u9fad\u9fae\u5b96\u9faf\u66e7\u7e5b\u6e57\u79ca\u3d88\u44c3\ud84c\ude56\ud849\udf96\u439a\u4536"],["8ce6","\u5cd5\ud84e\udf1a\u8af9\u5c78\u3d12\ud84d\udd51\u5d78\u9fb2\u7157\u4558\ud850\udcec\ud847\ude23\u4c77\u3978\u344a\ud840\udda4\ud85b\udc41\u8acc\u4fb4\ud840\ude39\u59bf\u816c\u9856\ud866\udcfa\u5f3b"],["8d40","\ud842\udf9f"],["8d42","\ud848\uddc1\ud862\udd6d\u4102\u46bb\ud864\udc79\u3f07\u9fb3\ud868\uddb5\u40f8\u37d6\u46f7\ud85b\udc46\u417c\ud861\udeb2\ud85c\udfff\u456d\u38d4\ud855\udc9a\u4561\u451b\u4d89\u4c7b\u4d76\u45ea\u3fc8\ud852\udf0f\u3661\u44de\u44bd\u41ed\u5d3e\u5d48\u5d56\u3dfc\u380f\u5da4\u5db9\u3820\u3838\u5e42\u5ebd\u5f25\u5f83\u3908\u3914\u393f\u394d\u60d7\u613d\u5ce5\u3989\u61b7\u61b9\u61cf\u39b8\u622c\u6290\u62e5\u6318\u39f8\u56b1"],["8da1","\u3a03\u63e2\u63fb\u6407\u645a\u3a4b\u64c0\u5d15\u5621\u9f9f\u3a97\u6586\u3abd\u65ff\u6653\u3af2\u6692\u3b22\u6716\u3b42\u67a4\u6800\u3b58\u684a\u6884\u3b72\u3b71\u3b7b\u6909\u6943\u725c\u6964\u699f\u6985\u3bbc\u69d6\u3bdd\u6a65\u6a74\u6a71\u6a82\u3bec\u6a99\u3bf2\u6aab\u6ab5\u6ad4\u6af6\u6b81\u6bc1\u6bea\u6c75\u6caa\u3ccb\u6d02\u6d06\u6d26\u6d81\u3cef\u6da4\u6db1\u6e15\u6e18\u6e29\u6e86\ud862\uddc0\u6ebb\u6ee2\u6eda\u9f7f\u6ee8\u6ee9\u6f24\u6f34\u3d46\ud84f\udf41\u6f81\u6fbe\u3d6a\u3d75\u71b7\u5c99\u3d8a\u702c\u3d91\u7050\u7054\u706f\u707f\u7089\ud840\udf25\u43c1\u35f1\ud843\uded8"],["8e40","\ud84f\uded7\u57be\ud85b\uded3\u713e\ud855\udfe0\u364e\u69a2\ud862\udfe9\u5b74\u7a49\ud856\udce1\ud865\udcd9\u7a65\u7a7d\ud856\uddac\u7abb\u7ab0\u7ac2\u7ac3\u71d1\ud859\udc8d\u41ca\u7ada\u7add\u7aea\u41ef\u54b2\ud857\udc01\u7b0b\u7b55\u7b29\ud854\udf0e\ud857\udcfe\u7ba2\u7b6f\u839c\ud856\udfb4\ud85b\udc7f\u7bd0\u8421\u7b92\u7bb8\ud857\udd20\u3dad\ud857\udc65\u8492\u7bfa\u7c06\u7c35\ud857\udcc1\u7c44\u7c83\ud852\udc82\u7ca6\u667d\ud851\udd78\u7cc9\u7cc7\u7ce6\u7c74\u7cf3\u7cf5\u7cce"],["8ea1","\u7e67\u451d\ud85b\ude44\u7d5d\ud85b\uded6\u748d\u7d89\u7dab\u7135\u7db3\u7dd2\ud850\udc57\ud858\udc29\u7de4\u3d13\u7df5\ud845\udff9\u7de5\ud860\udf6d\u7e1d\ud858\udd21\ud858\udd5a\u7e6e\u7e92\u432b\u946c\u7e27\u7f40\u7f41\u7f47\u7936\ud858\uded0\u99e1\u7f97\ud858\udf51\u7fa3\ud845\ude61\ud840\udc68\u455c\ud84d\udf66\u4503\ud860\udf3a\u7ffa\ud859\udc89\u8005\u8008\u801d\u8028\u802f\ud868\udc87\ud85b\udcc3\u803b\u803c\u8061\ud849\udf14\u4989\ud859\ude26\ud84f\udde3\ud859\udee8\u6725\u80a7\ud862\ude48\u8107\u811a\u58b0\ud849\udef6\u6c7f\ud859\udc98\ud853\udfb8\u64e7\ud845\udc8a\u8218\ud846\udc5e\u6a53\ud852\ude65\ud852\ude95\u447a\u8229\ud842\udf0d\ud85a\ude52\ud84f\udd7e\u4ff9\ud845\udcfd\u84e2\u8362\ud85a\udf0a\ud852\udda7\ud84d\udd30\ud845\udf73\ud84f\uddf8\u82aa\u691b\ud87e\udd94\u41db"],["8f40","\u854b\u82d0\u831a\ud843\ude16\ud845\udfb4\u36c1\ud84c\udd7d\ud84d\udd5a\u827b\u82e2\u8318\ud84f\ude8b\ud85b\udda3\ud85a\udf05\ud85a\udf97\ud84d\uddce\u3dbf\u831d\u55ec\u8385\u450b\ud85b\udda5\u83ac\u83c1\u83d3\u347e\ud85b\uded4\u6a57\u855a\u3496\ud85b\ude42\ud84b\udeef\u8458\ud856\udfe4\u8471\u3dd3\u44e4\u6aa7\u844a\ud84f\udcb5\u7958\u84a8\ud85a\udf96\ud85b\ude77\ud85b\ude43\u84de\u840f\u8391\u44a0\u8493\u84e4\ud857\udc91\u4240\ud857\udcc0\u4543\u8534\u5af2\ud85b\ude99\u4527\u8573\u4516\u67bf\u8616"],["8fa1","\ud861\ude25\ud861\ude3b\u85c1\ud85c\udc88\u8602\ud845\udd82\ud85c\udccd\ud87e\uddb2\u456a\u8628\u3648\ud846\udca2\u53f7\ud85c\udf9a\u867e\u8771\ud868\udcf8\u87ee\ud84b\udc27\u87b1\u87da\u880f\u5661\u866c\u6856\u460f\u8845\u8846\ud85d\udde0\ud84f\uddb9\ud85d\udde4\u885e\u889c\u465b\u88b4\u88b5\u63c1\u88c5\u7777\ud85d\udf0f\u8987\u898a\u89a6\u89a9\u89a7\u89bc\ud862\ude25\u89e7\ud85e\udd24\ud85e\udebd\u8a9c\u7793\u91fe\u8a90\ud85e\ude59\u7ae9\ud85e\udf3a\ud84f\udf8f\u4713\ud85e\udf38\u717c\u8b0c\u8b1f\ud855\udc30\ud855\udd65\u8b3f\u8b4c\u8b4d\u8aa9\ud852\ude7a\u8b90\u8b9b\u8aaf\ud845\udedf\u4615\u884f\u8c9b\ud85f\udd54\ud85f\udd8f\ud87e\uddd4\u3725\ud85f\udd53\u8cd6\ud85f\udd98\ud85f\uddbd\u8d12\u8d03\ud846\udd10\u8cdb\u705c\u8d11\ud853\udcc9\u3ed0\u8d77"],["9040","\u8da9\ud860\udc02\ud844\udc14\ud852\udd8a\u3b7c\ud860\uddbc\ud85c\udd0c\u7ae7\u8ead\u8eb6\u8ec3\u92d4\u8f19\u8f2d\ud860\udf65\ud861\udc12\u8fa5\u9303\ud868\ude9f\ud842\ude50\u8fb3\u492a\ud862\uddde\ud861\udd3d\ud84f\uddbb\u5ef8\ud84c\ude62\u8ff9\ud868\udc14\ud861\udebc\ud861\udd01\ud848\udf25\u3980\ud85b\uded7\u9037\ud861\udd3c\ud85e\udebe\u9061\ud861\udd6c\ud861\ude0b\u90a8\ud861\udf13\u90c4\ud861\udee6\u90ae\u90fd\u9167\u3af0\u91a9\u91c4\u7cac\ud862\udd33\ud847\ude89\u920e\u6c9f\u9241\u9262\ud855\uddb9\u92b9\ud862\udec6\ud84f\udc9b\ud862\udf0c\ud855\udddb"],["90a1","\ud843\udd31\u932c\u936b\ud862\udee1\ud862\udfeb\u708f\u5ac3\ud862\udee2\ud862\udee5\u4965\u9244\ud862\udfec\ud863\udc39\ud862\udfff\u9373\u945b\u8ebc\u9585\u95a6\u9426\u95a0\u6ff6\u42b9\ud849\ude7a\ud861\uded8\ud844\ude7c\ud84f\ude2e\u49df\u6c1c\u967b\u9696\u416c\u96a3\ud85b\uded5\u61da\u96b6\u78f5\ud862\udee0\u96bd\u53cc\u49a1\ud85b\udcb8\ud840\ude74\ud859\udc10\ud864\udcaf\ud864\udce5\ud852\uded1\ud846\udd15\ud84c\udf0a\u9731\u8642\u9736\u4a0f\u453d\u4585\ud852\udee9\u7075\u5b41\u971b\u975c\ud864\uddd5\u9757\u5b4a\ud864\uddeb\u975f\u9425\u50d0\ud84c\udcb7\ud84c\udcbc\u9789\u979f\u97b1\u97be\u97c0\u97d2\u97e0\ud855\udc6c\u97ee\u741c\ud865\udc33\u97ff\u97f5\ud865\udc1d\ud85e\udd7a\u4ad1\u9834\u9833\u984b\u9866\u3b0e\ud85c\udd75\u3d51\ud841\ude30\ud850\udd5c"],["9140","\ud855\udf06\u98ca\u98b7\u98c8\u98c7\u4aff\ud85b\udd27\ud845\uded3\u55b0\u98e1\u98e6\u98ec\u9378\u9939\ud852\ude29\u4b72\ud866\udc57\ud866\udd05\u99f5\u9a0c\u9a3b\u9a10\u9a58\ud855\udf25\u36c4\ud864\udcb1\ud866\udfd5\u9ae0\u9ae2\ud866\udf05\u9af4\u4c0e\u9b14\u9b2d\ud861\ude00\u5034\u9b34\ud85a\udda8\u38c3\ud84c\udc7d\u9b50\u9b40\ud867\udd3e\u5a45\ud846\udc63\u9b8e\ud850\ude4b\u9c02\u9bff\u9c0c\ud867\ude68\u9dd4\ud867\udfb7\ud868\udd92\ud868\uddab\ud868\udce1\ud868\udd23\ud868\udddf\u9d7e\u9d83\ud868\udd34\u9e0e\u6888"],["91a1","\u9dc4\ud848\udd5b\ud868\udd93\ud868\ude20\ud846\udd3b\ud868\ude33\u9d39\ud868\udcb9\ud868\udeb4\u9e90\u9e95\u9e9e\u9ea2\u4d34\u9eaa\u9eaf\ud850\udf64\u9ec1\u3b60\u39e5\u3d1d\u4f32\u37be\ud863\udc2b\u9f02\u9f08\u4b96\u9424\ud85b\udda2\u9f17\u9f16\u9f39\u569f\u568a\u9f45\u99b8\ud864\udc8b\u97f2\u847f\u9f62\u9f69\u7adc\u9f8e\u7216\u4bbe\ud852\udd75\ud852\uddbb\u7177\ud852\uddf8\ud850\udf48\ud852\ude51\u739e\ud862\udfda\ud846\udcfa\u799f\ud862\udd7e\ud863\ude36\u9369\u93f3\ud862\ude44\u92ec\u9381\u93cb\ud862\udd6c\ud851\udcb9\u7217\u3eeb\u7772\u7a43\u70d0\ud851\udc73\ud850\udff8\u717e\ud845\udfef\u70a3\ud846\udcbe\ud84d\udd99\u3ec7\ud846\udc85\ud855\udc2f\ud845\udff8\u3722\ud845\udefb\ud846\udc39\u36e1\ud845\udf74\ud846\udcd1\ud857\udf4b\u3723\ud845\udec0\u575b\ud852\ude25\ud844\udffe\ud844\udea8"],["9240","\ud844\udfc6\ud845\udcb6\u8503\ud84d\udea6\u8503\u8455\ud852\udd94\ud85c\udd65\ud84f\ude31\ud855\udd5c\ud84f\udefb\ud85c\udc52\u44f4\ud84d\udeee\ud866\udd9d\ud85b\udf26\u67f9\u3733\u3c15\u3de7\u586c\ud846\udd22\u6810\u4057\ud84d\udf3f\ud850\udce1\ud850\udc8b\ud850\udd0f\ud85b\udc21\u54cb\u569e\ud859\udeb1\u5692\ud843\udfdf\ud842\udfa8\ud843\ude0d\u93c6\ud862\udf13\u939c\u4ef8\u512b\u3819\ud851\udc36\u4ebc\ud841\udc65\ud840\udf7f\u4f4b\u4f8a\ud855\ude51\u5a68\ud840\uddab\ud840\udfcb\u3999\ud840\udf0a\ud841\udc14\u3435\u4f29\ud840\udec0\ud863\udeb3\ud840\ude75\u8ada\ud840\ude0c\u4e98"],["92a1","\u50cd\u510d\u4fa2\u4f03\ud852\ude0e\ud84f\ude8a\u4f42\u502e\u506c\u5081\u4fcc\u4fe5\u5058\u50fc\u5159\u515b\u515d\u515e\u6e76\ud84d\udd95\ud84f\ude39\ud84f\udebf\u6d72\ud846\udc84\ud84f\ude89\u51a8\u51c3\ud841\udde0\u44dd\ud841\udca3\ud841\udc92\ud841\udc91\u8d7a\ud862\ude9c\ud841\udf0e\u5259\u52a4\ud842\udc73\u52e1\u936e\u467a\u718c\ud850\udf8c\ud843\udc20\ud852\uddac\ud844\udce4\u69d1\ud843\ude1d\u7479\u3ede\u7499\u7414\u7456\u7398\u4b8e\ud852\udebc\ud850\udc8d\u53d0\u3584\u720f\ud850\udcc9\u55b4\ud840\udf45\u54cd\ud842\udfc6\u571d\u925d\u96f4\u9366\u57dd\u578d\u577f\u363e\u58cb\u5a99\ud862\ude46\ud845\udefa\ud845\udf6f\ud845\udf10\u5a2c\u59b8\u928f\u5a7e\u5acf\u5a12\ud856\udd46\ud846\uddf3\ud846\udc61\ud850\ude95\u36f5\u6d05\u7443\u5a21\ud857\ude83"],["9340","\u5a81\ud862\udfd7\ud841\udc13\u93e0\u748c\ud844\udf03\u7105\u4972\u9408\ud862\uddfb\u93bd\u37a0\u5c1e\u5c9e\u5e5e\u5e48\ud846\udd96\ud846\udd7c\ud84e\udeee\u5ecd\u5b4f\ud846\udd03\ud846\udd04\u3701\ud846\udca0\u36dd\ud845\udefe\u36d3\u812a\ud862\ude47\ud847\uddba\ud84d\udc72\ud862\udda8\u5f0c\u5f0e\ud846\udd27\ud845\udfab\u5a6b\ud845\udf3b\u5b44\u8614\ud85d\uddfd\u8860\u607e\ud84a\udc60\ud849\ude2b\u5fdb\u3eb8\ud849\uddaf\ud849\uddbe\ud864\udc88\ud85b\udf73\u61c0\ud840\udc3e\ud840\udc46\ud849\ude1b\u6199\u6198\u6075\ud84b\udc9b\ud84b\udd07\ud851\uded4\ud864\udd4d"],["93a1","\u6471\ud851\ude65\ud84a\udf6a\u3a29\ud84a\udf22\ud84d\udc50\ud866\udcea\ud84b\ude78\u6337\ud869\udc5b\u64b6\u6331\u63d1\ud852\udde3\ud84b\udd67\u62a4\ud84b\udca1\u643b\u656b\u6972\u3bf4\ud84c\udc8e\ud84c\udead\ud852\udd89\ud84c\udeab\u550d\ud84c\udee0\ud846\udcd9\ud865\udc3f\u66ce\ud84c\ude89\ud84c\uddb3\u3ae0\u4190\ud855\udd84\ud862\udf22\ud855\udd8f\ud845\udefc\ud855\udd5b\ud855\udc25\u78ee\ud84c\udd03\ud846\udc2a\ud84c\ude34\u3464\ud84c\ude0f\ud84c\udd82\ud850\udec9\u668e\ud85b\udd24\u666b\u4b93\u6630\ud85e\udc70\ud847\uddeb\u6663\ud84c\uded2\ud84c\udee1\u661e\ud856\udc72\u38d1\ud84e\udc3a\ud84d\udfbc\u3b99\ud84d\udfa2\ud84c\udffe\u74d0\u3b96\u678f\ud851\ude2a\u68b6\u681e\u3bc4\u6abe\u3863\ud84d\udfd5\ud851\udc87\u6a33\u6a52\u6ac9\u6b05\ud846\udd12\u6511\u6898\u6a4c\u3bd7\u6a7a\u6b57\ud84f\udfc0\ud84f\udc9a\u93a0\u92f2\ud862\udfea\ud862\udecb"],["9440","\u9289\ud860\udc1e\ud862\udddc\u9467\u6da5\u6f0b\ud852\uddec\u6d67\ud84f\udf7f\u3d8f\u6e04\ud850\udc3c\u5a3d\u6e0a\u5847\u6d24\u7842\u713b\ud850\udf1a\ud850\ude76\u70f1\u7250\u7287\u7294\ud851\udf8f\ud851\udf25\u5179\ud852\udea4\ud841\uddeb\u747a\ud84f\udef8\ud84d\ude5f\ud852\ude4a\ud852\udd17\ud857\udfe1\u3f06\u3eb1\ud852\udedf\ud863\udc23\ud84f\udf35\u60a7\u3ef3\u74cc\u743c\u9387\u7437\u449f\ud85b\uddea\u4551\u7583\u3f63\ud853\udcd9\ud853\udd06\u3f58\u7555\u7673\ud869\uddc6\u3b19\u7468\ud862\udecc\ud852\uddab\ud852\udd8e\u3afb"],["94a1","\u3dcd\ud852\ude4e\u3eff\ud852\uddc5\ud852\udcf3\u91fa\u5732\u9342\ud862\udee3\ud846\udc64\u50df\ud854\ude21\ud854\udde7\u7778\ud84c\ude32\u770e\u770f\u777b\ud851\ude97\ud84d\udf81\u3a5e\ud852\udcf0\u7438\u749b\u3ebf\ud852\udeba\ud852\udec7\u40c8\ud852\ude96\ud858\uddae\u9307\ud855\udd81\u781e\u788d\u7888\u78d2\u73d0\u7959\ud85d\udf41\ud855\udee3\u410e\u799b\u8496\u79a5\u6a2d\ud84f\udefa\u7a3a\u79f4\u416e\ud845\udee6\u4132\u9235\u79f1\ud843\udd4c\ud852\udd8c\ud840\ude99\ud84f\uddba\ud845\udf6e\u3597\u556b\u3570\u36aa\ud840\uddd4\ud843\udc0d\u7ae2\u5a59\ud849\udef5\ud856\udeaf\ud856\ude9c\u5a0d\ud840\ude5b\u78f0\u5a2a\ud856\udfc6\u7afe\u41f9\u7c5d\u7c6d\u4211\ud856\udfb3\ud857\udebc\ud857\udea6\u7ccd\ud852\uddf9\ud845\udfb0\u7c8e\u7c7c\u7cae\u6ab2\u7ddc\u7e07\u7dd3\u7f4e\ud858\ude61"],["9540","\ud858\udd5c\ud85e\udf48\u7d97\ud857\ude82\u426a\ud85a\udf75\ud842\udd16\u67d6\ud840\udc4e\ud84d\uddcf\u57c4\ud859\udc12\ud858\udff8\ud852\udd62\u7fdd\u7b27\ud842\udc2c\ud856\udee9\ud857\udd43\u7b0c\ud857\ude0e\u99e6\u8645\u9a63\u6a1c\ud84d\udc3f\u39e2\ud852\uddf7\ud859\uddad\u9a1f\ud859\udda0\u8480\ud85c\udd27\ud85b\udcd1\u44ea\u8137\u4402\u80c6\u8109\u8142\ud859\udfb4\u98c3\ud85a\ude42\u8262\u8265\ud85a\ude51\u8453\ud85b\udda7\u8610\ud85c\ude1b\u5a86\u417f\ud846\udc40\u5b2b\ud846\udca1\u5ae4\ud846\udcd8\u86a0\ud87e\uddbc\ud84f\udd8f\u882d\ud85d\udc22\u5a02"],["95a1","\u886e\u4f45\u8887\u88bf\u88e6\u8965\u894d\ud855\ude83\u8954\ud85d\udf85\ud85d\udf84\ud862\udff5\ud862\udfd9\ud862\udf9c\ud862\uddf9\u3ead\u84a3\u46f5\u46cf\u37f2\u8a3d\u8a1c\ud865\udc48\u5f4d\u922b\ud850\ude84\u65d4\u7129\u70c4\ud846\udc45\u9d6d\u8c9f\u8ce9\ud85f\udddc\u599a\u77c3\u59f0\u436e\u36d4\u8e2a\u8ea7\ud853\udc09\u8f30\u8f4a\u42f4\u6c58\u6fbb\ud848\udf21\u489b\u6f79\u6e8b\ud845\udfda\u9be9\u36b5\ud852\udd2f\u90bb\u9097\u5571\u4906\u91bb\u9404\ud862\ude4b\u4062\ud862\udefc\u9427\ud863\udc1d\ud863\udc3b\u84e5\u8a2b\u9599\u95a7\u9597\u9596\ud863\udd34\u7445\u3ec2\ud852\udcff\ud852\ude42\ud850\udfea\u3ee7\ud84c\ude25\u968f\ud863\udee7\ud863\ude66\ud863\ude65\u3ecc\ud852\udded\ud852\ude78\ud84f\udfee\u7412\u746b\u3efc\u9741\ud864\udcb0"],["9640","\u6847\u4a1d\ud864\udc93\ud855\udfdf\u975d\u9368\ud862\udd89\ud863\udc26\ud862\udf2f\ud858\udfbe\u92ba\u5b11\u8b69\u493c\u73f9\ud850\ude1b\u979b\u9771\u9938\ud843\udf26\u5dc1\ud862\udfc5\ud852\udeb2\u981f\ud865\udcda\u92f6\ud865\uddd7\u91e5\u44c0\ud862\udf50\ud852\ude67\ud862\udf64\u98dc\ud862\ude45\u3f00\u922a\u4925\u8414\u993b\u994d\ud85e\udf06\u3dfd\u999b\u4b6f\u99aa\u9a5c\ud862\udf65\ud856\udcc8\u6a8f\u9a21\u5afe\u9a2f\ud866\udcf1\u4b90\ud866\udd48\u99bc\u4bbd\u4b97\u937d\u5872\ud844\udf02\u5822\ud852\uddb8"],["96a1","\ud845\udce8\u7844\ud849\udf1f\ud84f\uddb8\u68c5\u3d7d\u9458\u3927\u6150\ud849\udf81\ud84a\udd6b\u6107\u9c4f\u9c53\u9c7b\u9c35\u9c10\u9b7f\u9bcf\ud867\ude2d\u9b9f\ud868\uddf5\ud868\udcfe\u9d21\u4cae\ud850\udd04\u9e18\u4cb0\u9d0c\ud868\uddb4\ud868\udced\ud868\udcf3\ud866\udd2f\u9da5\u84bd\ud85b\ude12\ud85b\udfdf\ud85a\udf82\u85fc\u4533\ud85b\udda4\ud85b\ude84\ud85b\uddf0\u8420\u85ee\ud85b\ude00\ud84d\udfd7\ud858\udc64\u79e2\ud84d\udd9c\ud84d\ude40\u492d\ud852\uddde\u3d62\u93db\u92be\u9348\ud840\udebf\u78b9\u9277\u944d\u4fe4\u3440\u9064\ud855\udd5d\u783d\u7854\u78b6\u784b\ud845\udf57\ud84c\uddc9\ud852\udd41\u369a\u4f72\u6fda\u6fd9\u701e\u701e\u5414\ud850\uddb5\u57bb\u58f3\u578a\u9d16\u57d7\u7134\u34af\ud850\uddac\u71eb\ud85b\udc40\ud853\udf97\u5b28\ud845\udfb5\ud862\ude49"],["9740","\u610c\u5ace\u5a0b\u42bc\ud851\udc88\u372c\u4b7b\ud862\uddfc\u93bb\u93b8\ud846\udcd6\ud843\udf1d\u8472\ud85b\udcc0\ud845\udc13\ud850\udefa\ud84b\udc26\ud850\udfc1\u5994\ud84f\uddb7\ud859\udf41\u7da8\ud858\udd5b\ud858\udca4\ud852\uddb9\ud852\udd8b\ud862\uddfa\u92e5\u73e2\u3ee9\u74b4\ud862\udf63\ud846\udc9f\u3ee1\ud852\udeb3\u6ad8\u73f3\u73fb\u3ed6\ud852\ude3e\ud852\ude94\ud845\udfd9\ud852\ude66\ud840\udfa7\ud845\udc24\ud852\udde5\u7448\ud852\udd16\u70a5\ud852\udd76\u9284\u73e6\u935f\ud841\udcfe\u9331\ud862\udece\ud862\ude16\u9386\ud862\udfe7\ud855\uddd5\u4935\ud862\ude82\u716b"],["97a1","\ud852\udd43\ud843\udcff\u56a4\ud841\ude1a\ud842\udfeb\ud843\udcb8\u5502\u79c4\ud845\udffa\u7dfe\ud845\udec2\ud852\ude50\ud846\udc52\u452e\u9401\u370a\ud862\udec0\ud852\uddad\u59b0\ud846\udcbf\ud846\udc83\ud85d\udc84\u5aa1\u36e2\ud84f\udd5b\u36b0\u925f\u5a79\ud862\ude81\ud846\udc62\u9374\u3ccd\ud842\udeb4\u4a96\u398a\u50f4\u3d69\u3d4c\ud844\udf9c\u7175\u42fb\ud860\ude18\u6e0f\ud864\udce4\u44eb\u6d57\ud85f\ude4f\u7067\u6caf\u3cd6\ud84f\udfed\ud84f\ude2d\u6e02\u6f0c\u3d6f\ud840\udff5\u7551\u36bc\u34c8\u4680\u3eda\u4871\u59c4\u926e\u493e\u8f41\ud863\udc1c\ud85a\udfc0\u5812\u57c8\u36d6\ud845\udc52\u70fe\ud850\udf62\ud852\ude71\ud84b\udfe3\ud844\udeb0\ud848\udfbd\u68b9\u6967\ud844\udf98\ud84d\udce5\ud85e\udff4\ud84d\udedf\ud862\ude83\ud84d\udfd6\ud84c\udffa\ud853\udc9f\u6a1a\ud84d\udead\ud85b\udcb7\u843e\u44df\u44ce"],["9840","\ud85b\udd26\ud85b\udd51\ud85b\udc82\ud85b\udfde\u6f17\ud85c\udd09\u833d\ud845\udf3a\u83ed\ud85b\udc80\ud85c\udc53\ud845\udfdb\u5989\u5a82\ud845\udfb3\u5a61\u5a71\ud846\udd05\ud850\uddfc\u372d\u59ef\ud845\udf3c\u36c7\u718e\u9390\u669a\ud850\udea5\u5a6e\u5a2b\ud850\ude93\u6a2b\ud84f\udef9\ud85d\udf36\ud851\udc5b\ud850\udeca\u711d\ud850\ude59\ud862\udde1\u4fb0\ud85b\udd28\u5cc2\ud851\udcce\ud85f\ude4d\ud850\udfbd\u6a0c\ud850\ude56\ud844\udf04\u70a6\u7133\ud850\udfe9\u3da5\u6cdf\ud87e\udc25\ud852\ude4f\u7e65\u59eb\u5d2f\u3df3\u5f5c\ud852\ude5d\ud845\udfdf\u7da4\u8426"],["98a1","\u5485\ud84e\udefa\ud84c\udf00\ud840\ude14\u577e\ud842\udcd5\ud841\ude19\u3fe5\ud847\udf9e\ud868\udeb6\u7003\ud864\udd5b\u5d70\u738f\u7cd3\ud862\ude59\ud865\udc20\u4fc8\u7fe7\u72cd\u7310\ud85e\udef4\u7338\u7339\ud855\udef6\u7341\u7348\u3ea9\ud85e\udf18\u906c\u71f5\ud852\udcf2\u73e1\u81f6\u3eca\u770c\u3ed1\u6ca2\u56fd\u7419\u741e\u741f\u3ee2\u3ef0\u3ef4\u3efa\u74d3\u3f0e\u3f53\u7542\u756d\u7572\u758d\u3f7c\u75c8\u75dc\u3fc0\u764d\u3fd7\u7674\u3fdc\u767a\ud853\udf5c\u7188\u5623\u8980\u5869\u401d\u7743\u4039\u6761\u4045\u35db\u7798\u406a\u406f\u5c5e\u77be\u77cb\u58f2\u7818\u70b9\u781c\u40a8\u7839\u7847\u7851\u7866\u8448\ud855\udd35\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8fbb\u7a06\u8fbc\u4167\u7a91\u41b2\u7abc\u8279\u41c4\u7acf\u7adb\u41cf\u4e21\u7b62\u7b6c\u7b7b\u7c12\u7c1b\u4260\u427a\u7c7b\u7c9c\u428c\u7cb8\u4294\u7ced\u8f93\u70c0\ud843\udccf\u7dcf\u7dd4\u7dd0\u7dfd\u7fae\u7fb4\u729f\u4397\u8020\u8025\u7b39\u802e\u8031\u8054\u3dcc\u57b4\u70a0\u80b7\u80e9\u43ed\u810c\u732a\u810e\u8112\u7560\u8114\u4401\u3b39\u8156\u8159\u815a"],["99a1","\u4413\u583a\u817c\u8184\u4425\u8193\u442d\u81a5\u57ef\u81c1\u81e4\u8254\u448f\u82a6\u8276\u82ca\u82d8\u82ff\u44b0\u8357\u9669\u698a\u8405\u70f5\u8464\u60e3\u8488\u4504\u84be\u84e1\u84f8\u8510\u8538\u8552\u453b\u856f\u8570\u85e0\u4577\u8672\u8692\u86b2\u86ef\u9645\u878b\u4606\u4617\u88ae\u88ff\u8924\u8947\u8991\ud85e\udd67\u8a29\u8a38\u8a94\u8ab4\u8c51\u8cd4\u8cf2\u8d1c\u4798\u585f\u8dc3\u47ed\u4eee\u8e3a\u55d8\u5754\u8e71\u55f5\u8eb0\u4837\u8ece\u8ee2\u8ee4\u8eed\u8ef2\u8fb7\u8fc1\u8fca\u8fcc\u9033\u99c4\u48ad\u98e0\u9213\u491e\u9228\u9258\u926b\u92b1\u92ae\u92bf"],["9a40","\u92e3\u92eb\u92f3\u92f4\u92fd\u9343\u9384\u93ad\u4945\u4951\u9ebf\u9417\u5301\u941d\u942d\u943e\u496a\u9454\u9479\u952d\u95a2\u49a7\u95f4\u9633\u49e5\u67a0\u4a24\u9740\u4a35\u97b2\u97c2\u5654\u4ae4\u60e8\u98b9\u4b19\u98f1\u5844\u990e\u9919\u51b4\u991c\u9937\u9942\u995d\u9962\u4b70\u99c5\u4b9d\u9a3c\u9b0f\u7a83\u9b69\u9b81\u9bdd\u9bf1\u9bf4\u4c6d\u9c20\u376f\ud846\udfc2\u9d49\u9c3a"],["9aa1","\u9efe\u5650\u9d93\u9dbd\u9dc0\u9dfc\u94f6\u8fb6\u9e7b\u9eac\u9eb1\u9ebd\u9ec6\u94dc\u9ee2\u9ef1\u9ef8\u7ac8\u9f44\ud840\udc94\ud840\udeb7\ud840\udfa0\u691a\u94c3\u59ac\ud841\udcd7\u5840\u94c1\u37b9\ud841\uddd5\ud841\ude15\ud841\ude76\ud845\udeba\u5757\u7173\ud842\udec2\ud842\udecd\ud842\udfbf\u546a\ud87e\udc3b\ud842\udfcb\u549e\ud842\udffb\ud843\udc3b\ud843\udc53\ud843\udc65\ud843\udc7c\u60e7\ud843\udc8d\u567a\ud843\udcb5\ud843\udcdd\ud843\udced\ud843\udd6f\ud843\uddb2\ud843\uddc8\u6955\u9c2f\u87a5\ud843\ude04\ud843\ude0e\ud843\uded7\ud843\udf90\ud843\udf2d\ud843\ude73\u5c20\ud843\udfbc\u5e0b\ud844\udc5c\ud844\udc4f\ud844\udc76\u671e\ud844\udc7b\ud844\udc88\ud844\udc96\u3647\ud844\udcbf\ud844\udcd3\ud844\udd2f\ud844\udd3b\u5364\u84ad\ud844\udee3\ud844\udf75\ud844\udf36\u8b81\ud845\udd77\ud845\ude19\ud845\udfc3\ud845\udfc7\u4e78\u70bb\ud846\udc2d\ud846\udd6a"],["9b40","\ud846\ude2d\ud846\ude45\ud847\udc2a\ud847\udc70\ud847\udcac\ud847\udec8\u62c3\ud847\uded5\ud847\udf15\u7198\u6855\ud848\udc45\u69e9\u36c8\ud848\ude7c\ud848\udfd7\ud848\udffa\ud849\udf2a\ud84a\udc71\ud84a\udd4f\u82fd\ud84a\udd67\ud84a\udd93\ud84a\uded5\u89a5\ud84a\udee8\u8fa0\ud84a\udf0e\u97b8\ud84a\udf3f\u9847\u9abd\ud84b\udc4c"],["9b62","\ud84b\udc88\ud84b\udcb7\ud856\udfe8\ud84b\udd08\ud84b\udd12\ud84b\uddb7\ud84b\udd95\ud84b\ude42\ud84b\udf74\ud84b\udfcc\ud84c\udc33\ud84c\udc66\ud84c\udf1f\ud84c\udfde\u5fb1\u6648\u66bf\ud85e\ude79\ud84d\udd67\ud84d\uddf3\u7201\ud852\uddba\u77d7\ud84d\ude1a\ud84d\udf16\u7e87\ud840\udf46\u58b5\u670e"],["9ba1","\u6918\ud84e\udea7\ud85d\ude57\ud857\udfe2\ud84f\ude11\ud84f\udeb9\ud85d\uddfe\ud848\udc9a\u48d0\u4ab8\ud850\udd19\ud862\ude9a\ud850\udeee\ud850\udf0d\ud850\udc3b\ud850\udf34\ud850\udf96\ud852\ude45\ud841\uddca\u51d2\ud841\ude11\u599f\ud847\udea8\u3bbe\ud84f\udcff\ud851\udc04\ud851\udcd6\u5788\ud851\ude74\u399b\ud851\udf2f\ud861\udde8\ud866\uddc9\u3762\ud848\uddc3\u8b5e\ud862\udf4e\u99d6\ud852\udc12\ud852\udcfb\ud852\ude15\u7209\ud852\udec0\ud843\udc78\u5965\ud853\udea5\ud853\udf86\ud841\udf79\u8eda\ud854\udc2c\u528f\u573f\u7171\ud854\ude99\ud855\udc19\ud84f\udf4a\ud852\udea7\u55bc\ud855\udc46\ud855\udc6e\ud85a\udf52\u91d4\u3473\ud855\udd3f\ud85d\ude32\ud855\udd5e\u4718\ud855\udd62\ud855\udd66\ud855\udfc7\ud852\udd3f\ud856\udc5d\u5066\u34fb\ud84c\udfcc\u60de\ud856\udd03\u477c\ud862\udd48\ud856\udeae\ud856\udf89\ud857\udc06\ud847\udd90\u57a1\u7151\u6fb6\ud858\udd02\ud85f\udc12\u9056\ud858\uddb2\ud853\udf9a\u8b62\ud859\udc02\ud859\udc4a"],["9c40","\u5d5b\ud85a\udff7\u8f36\ud859\udc84\ud846\udd1c\u8aea\ud852\uddf6\ud859\udc88\ud84f\udfef\ud859\udd12\u4bc0\ud859\uddbf\ud859\udeb5\ud849\udf1b\u9465\ud855\udfe1\u6195\u5a27\ud87e\udccd\u4fbb\u56b9\ud851\udd21\ud859\udefc\u4e6a\ud852\udd34\u9656\u6d8f\ud85b\udcbd\u3618\u8977\ud859\udf99\ud85a\udc6e\ud859\udc11\ud85a\udc5e\u71df\ud85a\udcc7\u7b42\ud864\udcc0\ud842\ude11\ud85a\udd26\u9104\ud85a\udd39\u7a45\u9df0\ud85a\uddfa\u9a26\ud85a\ude2d\u365f\ud859\udc69\ud840\udc21\u7983\ud85a\ude34\ud85a\udf5b\u5d2c\ud84d\udd19\u83cf\ud85a\udf9d\u46d0\ud85b\udca4\u753b\u8865\ud85b\uddae\u58b6"],["9ca1","\u371c\ud849\udd8d\ud85c\udc4b\ud85c\uddcd\u3c54\ud85c\ude80\ud85c\ude85\u9281\ud848\udd7a\ud85c\ude8b\u9330\ud85c\udee6\ud852\uddd0\u6c39\u949f\ud85d\udc50\ud843\udef8\u8827\u88f5\ud84a\udd26\ud861\udc73\ud845\udfb1\u6eb8\ud852\ude2a\ud846\udc20\u39a4\u36b9\u5c10\u79e3\u453f\u66b6\ud867\udcad\ud866\udca4\u8943\ud85d\udfcc\ud85e\udc58\u56d6\u40df\ud845\ude0a\u39a1\ud84d\udf2f\ud860\udce8\ud844\udfc5\u71ad\u8366\ud85e\udddd\ud864\udda8\u5a67\u4cb7\ud85c\udcaf\ud862\uddab\ud85e\uddfd\ud85e\ude0a\ud85e\udf0b\ud85f\udd66\ud850\udd7a\u7b43\u797e\ud860\udc09\u6fb5\ud868\udedf\u6a03\ud860\udf18\u53a2\ud85b\ude07\u93bf\u6836\u975d\ud860\udd6f\ud860\udc23\ud85a\uddb5\ud844\udfed\ud84c\ude2f\ud860\udc48\u5d85\ud863\udc30\ud860\udc83\u5715\u9823\ud862\udd49\u5dab\ud852\udd88\u65be\u69d5\u53d2\ud852\udea5\ud84f\udf81\u3c11\u6736\ud860\udc90\ud860\udcf4\ud860\udd2e\ud847\udfa1\ud860\udd4f"],["9d40","\ud860\udd89\ud860\uddaf\ud860\ude1a\ud860\udf06\ud860\udf2f\ud860\udf8a\u35ca\ud861\udc68\ud861\udeaa\u48fa\u63e6\ud862\udd56\u7808\u9255\ud862\uddb8\u43f2\ud862\udde7\u43df\ud862\udde8\ud862\udf46\ud862\udfd4\u59f8\ud863\udc09\u8f0b\ud863\udfc5\ud864\udcec\u7b51\ud864\udd10\ud864\udd3c\u3df7\ud864\udd5e\ud852\udeca\u8fd0\u728f\u568b\ud865\udce7\ud865\udde9\ud865\uddb0\ud865\uddb8\ud865\udf32\ud866\udcd1\ud866\udd49\ud866\udd6a\ud866\uddc3\ud866\ude28\ud866\udf0e\ud867\udd5a\ud867\udd9b\u7e9f\ud867\udef8\ud867\udf23\u4ca4\u9547\ud868\ude93\u71a2\ud868\udeff\u4d91\u9012\ud869\uddcb\u4d9c\ud843\udc9c\u8fbe\u55c1"],["9da1","\u8fba\ud849\udcb0\u8fb9\ud852\ude93\u4509\u7e7f\u6f56\u6ab1\u4eea\u34e4\ud862\udf2c\ud85e\udc9d\u373a\u8e80\ud845\udff5\ud860\udc24\ud862\udf6c\ud862\udf99\ud85e\ude3e\ud859\udeaf\u3deb\ud85d\ude55\ud84f\udcb7\ud855\ude35\ud856\udd56\u4e9a\ud857\ude81\ud858\ude58\u56bf\ud843\ude6d\u8e0e\u5b6d\ud84f\ude88\ud853\udc9e\u63de\u62d0\ud845\udff6\ud846\udc7b\u6530\u562d\ud857\udc4a\u541a\ud854\udf11\u3dc6\ud867\udd98\u4c7d\u5622\u561e\u7f49\ud857\uded8\u5975\ud84f\udd40\u8770\u4e1c\ud843\udfea\ud843\udd49\ud84d\udeba\u8117\u9d5e\u8d18\u763b\u9c45\u764e\u77b9\u9345\u5432\u8148\u82f7\u5625\u8132\u8418\u80bd\u55ea\u7962\u5643\u5416\ud843\ude9d\u35ce\u5605\u55f1\u66f1\ud860\udee2\u362d\u7534\u55f0\u55ba\u5497\u5572\ud843\udc41\ud843\udc96\u5ed0\ud854\udd48\ud843\ude76\ud84b\udc62"],["9e40","\ud843\udea2\u9eab\u7d5a\u55de\ud844\udc75\u629d\u976d\u5494\u8ccd\u71f6\u9176\u63fc\u63b9\u63fe\u5569\ud84a\udf43\u9c72\ud84b\udeb3\u519a\u34df\ud843\udda7\u51a7\u544d\u551e\u5513\u7666\u8e2d\ud85a\udc8a\u75b1\u80b6\u8804\u8786\u88c7\u81b6\u841c\ud844\udcc1\u44ec\u7304\ud851\udf06\u5b90\u830b\ud85a\udc93\u567b\ud849\udef4\ud85f\udd2f\ud850\udda3\ud85f\udd73\ud85b\uded0\ud85c\udeb6\u9170\ud844\uddd9\u9208\ud84f\udcfc\ud869\udea9\ud843\udeac\ud843\udef9\u7266\ud847\udca2\u474e\ud853\udfc2\ud85f\udff9\ud843\udfeb\u40fa"],["9ea1","\u9c5d\u651f\ud84b\udda0\u48f3\ud851\udfe0\ud867\udd7c\ud843\udfec\ud843\ude0a\u6062\ud85d\udda3\ud843\udfed"],["9ead","\ud858\udc48\ud844\udd87\u71a3\u7e8e\u9d50\u4e1a\u4e04\u3577\u5b0d\u6cb2\u5367\u36ac\u39dc\u537d\u36a5\ud851\ude18\u589a\ud852\udf6e\u822d\u544b\u57aa\ud856\ude95\ud842\udd79"],["9ec5","\u3a52\ud849\udc65\u7374\ud867\udeac\u4d09\u9bed\ud84f\udcfe\ud867\udf30\u4c5b\ud853\udfa9\ud865\udd9e\ud867\udfde\u845c\ud84f\uddb6\ud85c\udeb2\ud859\udfb3\ud84d\udf20\u632e\u7d25\ud84f\udef7\ud84f\ude2c\u3a2a\u9008\u52cc\u3e74\u367a\u45e9\ud841\udc8e\u7640\u5af0\ud843\udeb6\u787a\ud85f\udf2e\u58a7\u40bf\u567c\u9b8b\u5d74\u7654\ud869\udc34\u9e85\u4ce1\u75f9\u37fb\u6119\ud84c\udcda\ud850\udff2"],["9ef5","\u565d\ud844\udea9\u57a7\ud852\udd63\ud867\ude06\u5234\ud85c\udcae\u35ad\u6c4a\u9d7c"],["9f40","\u7c56\u9b39\u57de\ud845\udf6c\u5c53\u64d3\ud865\udcd0\ud858\udf35\ud85c\udd64\u86ad\ud843\udd28\ud85b\udd22\ud852\udee2\ud843\udd71"],["9f4f","\u51fe\ud847\udf0f\u5d8e\u9703\ud847\uddd1\u9e81\u904c\u7b1f\u9b02\u5cd1\u7ba3\u6268\u6335\u9aff\u7bcf\u9b2a\u7c7e\u9b2e\u7c42\u7c86\u9c15\u7bfc\u9b09\u9f17\u9c1b\ud852\udd3e\u9f5a\u5573\u5bc3\u4ffd\u9e98\u4ff2\u5260\u3e06\u52d1\u5767\u5056\u59b7\u5e12\u97c8\u9dab\u8f5c\u5469\u97b4\u9940\u97ba\u532c\u6130"],["9fa1","\u692c\u53da\u9c0a\u9d02\u4c3b\u9641\u6980\u50a6\u7546\ud845\udf6d\u99da\u5273"],["9fae","\u9159\u9681\u915c"],["9fb2","\u9151\ud863\ude97\u637f\ud85b\udd23\u6aca\u5611\u918e\u757a\u6285\ud840\udffc\u734f\u7c70\ud857\udc21\ud84f\udcfd"],["9fc1","\ud852\udd19\u76d6\u9b9d\u4e2a\ud843\udcd4\u83be\u8842"],["9fc9","\u5c4a\u69c0\u50ed\u577a\u521f\u5df5\u4ece\u6c31\ud840\uddf2\u4f39\u549c\u54da\u529a\u8d82\u35fe\u5f0c\u35f3"],["9fdb","\u6b52\u917c\u9fa5\u9b97\u982e\u98b4\u9aba\u9ea8\u9e84\u717a\u7b14"],["9fe7","\u6bfa\u8818\u7f78"],["9feb","\u5620\ud869\ude4a\u8e77\u9f53"],["9ff0","\u8dd4\u8e4f\u9e1c\u8e01\u6282\ud860\udf7d\u8e28\u8e75\u7ad3\ud852\ude77\u7a3e\u78d8\u6cea\u8a67\u7607"],["a040","\ud862\ude5a\u9f26\u6cce\u87d6\u75c3\ud868\udeb2\u7853\ud87e\udc40\u8d0c\u72e2\u7371\u8b2d\u7302\u74f1\u8ceb\ud852\udebb\u862f\u5fba\u88a0\u44b7"],["a055","\ud846\udc3b\ud85b\ude05"],["a058","\u8a7e\ud849\udd1b"],["a05b","\u60fd\u7667\u9ad7\u9d44\u936e\u9b8f\u87f5"],["a063","\u880f\u8cf7\u732c\u9721\u9bb0\u35d6\u72b2\u4c07\u7c51\u994a\ud858\udd59\u6159\u4c04\u9e96\u617d"],["a073","\u575f\u616f\u62a6\u6239\u62ce\u3a5c\u61e2\u53aa\ud84c\udff5\u6364\u6802\u35d2"],["a0a1","\u5d57\ud862\udfc2\u8fda\ud863\ude39"],["a0a6","\u50d9\ud847\udd46\u7906\u5332\u9638\ud843\udf3b\u4065"],["a0ae","\u77fe"],["a0b0","\u7cc2\ud857\udf1a\u7cda\u7a2d\u8066\u8063\u7d4d\u7505\u74f2\u8994\u821a\u670c\u8062\ud85d\udc86\u805b\u74f0\u8103\u7724\u8989\ud859\udfcc\u7553\ud85b\uded1\u87a9\u87ce\u81c8\u878c\u8a49\u8cad\u8b43\u772b\u74f8\u84da\u3635\u69b2\u8da6"],["a0d4","\u89a9\u7468\u6db9\u87c1\ud850\udc11\u74e7\u3ddb\u7176\u60a4\u619c\u3cd1\u7162\u6077"],["a0e2","\u7f71\ud862\udf2d\u7250\u60e9\u4b7e\u5220\u3c18\ud84f\udcc7\ud857\uded7\ud85d\ude56\ud855\udd31\ud846\udd44\ud844\udefe\ud866\udd03\ud85b\udddc\ud85c\udcad\u5cc1\ud858\uddad\ud862\ude0f\ud84d\ude77\ud840\udcee\ud85a\udc46\ud853\udf0e\u4562\u5b1f\ud858\udf4c\u9f50\u9ea6\ud858\ude6b"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4e36\u4e3f\u4e85\u4ea0\u5182\u5196\u51ab\u52f9\u5338\u5369\u53b6\u590a\u5b80\u5ddb\u2f33\u5e7f\u5ef4\u5f50\u5f61\u6534\u65e0\u7592\u7676\u8fb5\u96b6\xa8\u02c6\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\uff3b\uff3d\u273d\u3041",23],["c740","\u3059",58,"\u30a1\u30a2\u30a3\u30a4"],["c7a1","\u30a5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041b",26,"\u0451\u0436",25,"\u21e7\u21b8\u21b9\u31cf\ud840\udccc\u4e5a\ud840\udc8a\u5202\u4491"],["c8a1","\u9fb0\u5188\u9fb1\ud85d\ude07"],["c8cd","\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u309b\u309c\u2e80\u2e84\u2e86\u2e87\u2e88\u2e8a\u2e8c\u2e8d\u2e95\u2e9c\u2e9d\u2ea5\u2ea7\u2eaa\u2eac\u2eae\u2eb6\u2ebc\u2ebe\u2ec6\u2eca\u2ecc\u2ecd\u2ecf\u2ed6\u2ed7\u2ede\u2ee3"],["c8f5","\u0283\u0250\u025b\u0254\u0275\u0153\xf8\u014b\u028a\u026a"],["f9fe","\uffed"],["fa40","\ud841\udd47\u92db\ud841\udddf\ud84f\udfc5\u854c\u42b5\u73ef\u51b5\u3649\ud852\udd42\ud862\udde4\u9344\ud846\udddb\u82ee\ud84f\udcc8\u783c\u6744\u62df\ud852\udd33\ud862\uddaa\ud840\udea0\ud85a\udfb3\ud844\udf05\u4fab\ud849\udced\u5008\ud85b\udd29\ud85e\ude84\ud84d\ude00\ud852\udeb1\ud849\udd13\u5029\ud840\udf7e\u5fa4\ud840\udf80\ud840\udf47\u6edb\ud841\udc1f\u507d\u5101\u347a\u510e\u986c\u3743\u8416\ud852\udda4\ud841\udc87\u5160\ud84c\udfb4\u516a\ud842\udfff\ud848\udcfc\ud840\udee5\ud849\udd30\ud841\udd8e\ud84c\ude33\ud846\udd83\u5b82\u877d\ud841\uddb3\ud84f\udc99\u51b2\u51b8"],["faa1","\u9d34\u51c9\u51cf\u51d1\u3cdc\u51d3\ud852\udea6\u51b3\u51e2\u5342\u51ed\u83cd\u693e\ud84d\udf2d\u5f7b\u520b\u5226\u523c\u52b5\u5257\u5294\u52b9\u52c5\u7c15\u8542\u52e0\u860d\ud85a\udf13\u5305\ud862\udede\u5549\u6ed9\ud84f\udf80\ud842\udd54\ud84f\udfec\u5333\u5344\ud842\udfe2\u6ccb\ud845\udf26\u681b\u73d5\u604a\u3eaa\u38cc\ud845\udee8\u71dd\u44a2\u536d\u5374\ud861\udeab\u537e\u537f\ud845\udd96\ud845\ude13\u77e6\u5393\ud862\ude9b\u53a0\u53ab\u53ae\u73a7\ud855\udf72\u3f59\u739c\u53c1\u53c5\u6c49\u4e49\u57fe\u53d9\u3aab\ud842\udf8f\u53e0\ud84f\udfeb\ud84b\udda3\u53f6\ud843\udc77\u5413\u7079\u552b\u6657\u6d5b\u546d\ud85a\udf53\ud843\udd74\u555d\u548f\u54a4\u47a6\ud845\udf0d\ud843\udedd\u3db4\ud843\udd4d"],["fb40","\ud862\uddbc\ud849\ude98\u5547\u4ced\u542f\u7417\u5586\u55a9\u5605\ud846\udcd7\ud850\udc3a\u4552\ud851\udc35\u66b3\ud844\udcb4\u5637\u66cd\ud84c\ude8a\u66a4\u66ad\u564d\u564f\u78f1\u56f1\u9787\u53fe\u5700\u56ef\u56ed\ud862\udf66\u3623\ud844\ude4f\u5746\ud850\udda5\u6c6e\u708b\u5742\u36b1\ud85b\udc7e\u57e6\ud845\udc16\u5803\ud845\udc54\ud850\udf63\u5826\ud852\udff5\u585c\u58aa\u3561\u58e0\u58dc\ud844\ude3c\u58fb\u5bff\u5743\ud868\udd50\ud850\ude78\u93d3\u35a1\u591f\u68a6\u36c3\u6e59"],["fba1","\ud845\ude3e\u5a24\u5553\ud845\ude92\u8505\u59c9\ud843\udd4e\ud85b\udc81\ud85b\udd2a\ud845\udfdc\u59d9\ud845\udffb\ud845\udfb2\ud85b\udda6\u6d71\ud846\udc28\ud845\uded5\u59f9\ud85b\ude45\u5aab\u5a63\u36e6\ud852\udda9\u5a77\u3708\u5a96\u7465\u5ad3\ud85b\udfa1\ud849\udd54\u3d85\ud846\udd11\u3732\ud845\udeb8\u5e83\u52d0\u5b76\u6588\u5b7c\ud85e\ude0e\u4004\u485d\ud840\ude04\u5bd5\u6160\ud846\ude34\ud856\uddcc\ud841\udda5\u5bf3\u5b9d\u4d10\u5c05\ud846\udf44\u5c13\u73ce\u5c14\ud847\udca5\ud85a\udf28\u5c49\u48dd\u5c85\u5ce9\u5cef\u5d8b\ud847\uddf9\ud847\ude37\u5d10\u5d18\u5d46\ud847\udea4\u5cba\u5dd7\u82fc\u382d\ud852\udd01\ud848\udc49\ud848\udd73\u8287\u3836\u3bc2\u5e2e\u6a8a\u5e75\u5e7a\ud851\udcbc\ud843\udcd3\u53a6\u4eb7\u5ed0\u53a8\ud845\udf71\u5e09\u5ef4\ud861\udc82"],["fc40","\u5ef9\u5efb\u38a0\u5efc\u683e\u941b\u5f0d\ud840\uddc1\ud87e\udc94\u3ade\u48ae\ud844\udf3a\u5f3a\ud85a\udc88\ud848\udfd0\u5f58\ud849\udc71\u5f63\u97bd\ud85b\ude6e\u5f72\u9340\ud862\ude36\u5fa7\u5db6\u3d5f\ud854\ude50\ud847\udf6a\ud85c\udcf8\ud849\ude68\u91d6\ud840\ude9e\ud862\ude29\u6031\u6685\ud846\udc77\u3963\u3dc7\u3639\u5790\ud849\udfb4\u7971\u3e40\u609e\u60a4\u60b3\ud852\udd82\ud852\udd8f\ud85e\ude53\u74a4\u50e1\u5aa0\u6164\u8424\u6142\ud87e\udca6\ud85b\uded2\u6181\u51f4\ud841\ude56\u6187\u5baa\ud84f\udfb7"],["fca1","\ud84a\udc5f\u61d3\ud862\udf9d\ud866\udd5d\u61d0\u3932\ud84a\udd80\ud84a\udcc1\u6023\u615c\u651e\u638b\ud840\udd18\u62c5\ud845\udf70\u62d5\ud84b\ude0d\u636c\ud852\udddf\u3a17\u6438\u63f8\ud844\udf8e\ud845\udffc\u6490\u6f8a\ud84b\ude36\u9814\ud850\udc8c\ud855\udf1d\u64e1\u64e5\u947b\u3a66\u643a\u3a57\u654d\u6f16\ud852\ude28\ud852\ude23\u6585\u656d\u655f\ud84c\udc7e\u65b5\ud852\udd40\u4b37\u65d1\u40d8\ud846\udc29\u65e0\u65e3\u5fdf\ud84d\udc00\u6618\ud84c\uddf7\ud84c\uddf8\u6644\ud84c\udda4\ud84c\udda5\u664b\ud843\ude75\u6667\ud854\udde6\u6673\u6674\ud847\ude3d\ud84c\ude31\ud861\uddf4\ud84c\uddc8\ud854\udf13\u77c5\ud84a\udcf7\u99a4\u6702\ud850\udf9c\ud852\ude21\u3b2b\u69fa\ud84d\udfc2\u675e\u6767\u6762\ud850\uddcd\ud864\udced\u67d7\u44e9\u6822\u6e50\u923c\u6801\ud84c\udfe6\ud85b\udda0\u685d"],["fd40","\ud84d\udc6f\u69e1\u6a0b\ud862\udedf\u6973\u68c3\ud84d\uddcd\u6901\u6900\u3d32\u3a01\ud84d\ude3c\u3b80\u67ac\u6961\ud862\ude4a\u42fc\u6936\u6998\u3ba1\ud840\udfc9\u8363\u5090\u69f9\ud84d\ude59\ud848\udd2a\u6a45\ud84d\udf03\u6a9d\u3bf3\u67b1\u6ac8\ud864\udd9c\u3c0d\u6b1d\ud842\udd23\u60de\u6b35\u6b74\ud849\udfcd\u6eb5\ud84e\udedb\ud840\udfb5\ud846\udd58\u3740\u5421\ud84e\udf5a\u6be1\ud84f\udefc\u6bdc\u6c37\ud849\udc8b\ud852\udcf1\ud85a\udf51\u6c5a\u8226\u6c79\ud84f\uddbc\u44c5\ud84f\uddbd\ud850\udda4\ud852\udd0c\ud852\udd00"],["fda1","\ud84f\udcc9\u36e5\u3ceb\ud843\udd32\u9b83\ud84c\uddf9\ud849\udc91\u7f8f\u6837\ud85b\udd25\ud85b\udda1\ud85b\uddeb\u6d96\u6d5c\u6e7c\u6f04\ud852\udd7f\ud850\udc85\ud85b\ude72\u8533\ud85b\udf74\u51c7\u6c9c\u6e1d\u842e\ud862\udf21\u6e2f\ud84f\ude2f\u7453\ud84f\udf82\u79cc\u6e4f\u5a91\ud84c\udc4b\u6ff8\u370d\u6f9d\ud84f\ude30\u6efa\ud845\udc97\ud850\udc3d\u4555\u93f0\u6f44\u6f5c\u3d4e\u6f74\ud864\udd70\u3d3b\u6f9f\ud850\udd44\u6fd3\ud850\udc91\ud850\udd55\ud850\udc39\ud84f\udff0\ud84f\udfb4\ud850\udd3f\u51df\ud850\udd56\ud850\udd57\ud850\udd40\ud858\udddd\u704b\u707e\u70a7\u7081\u70cc\u70d5\u70d6\u70df\u4104\u3de8\u71b4\u7196\ud850\ude77\u712b\u7145\u5a88\u714a\u716e\u5c9c\ud850\udf65\u714f\u9362\ud850\udec1\u712c\ud851\udc5a\ud852\ude27\ud852\ude22\u71ba\ud862\udfe8\u70bd\u720e"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\ud855\ude05\u722e\u7240\ud852\udd74\u68bd\u7255\u7257\u3e55\ud84c\udc44\u680d\u6f3d\u7282\u732a\u732b\ud852\udc23\ud862\udc2b\u48ed\ud862\udc04\u7328\u732e\u73cf\u73aa\ud843\udc3a\ud85a\ude2e\u73c9\u7449\ud850\udde2\ud845\udee7\ud852\ude24\u6623\u36c5\ud852\uddb7\ud852\udd8d\ud852\uddfb\u73f7\u7415\u6903\ud852\ude26\u7439\ud841\uddc3\u3ed7\u745c\ud84a\udcad\u7460\ud863\udeb2\u7447\u73e4\u7476\u83b9\u746c\u3730\u7474\u93f1\u6a2c\u7482\u4953\ud852\ude8c"],["fea1","\ud850\udd5f\ud852\ude79\ud862\udf8f\u5b46\ud863\udc03\ud846\udc9e\u74c8\ud846\udd88\u750e\u74e9\u751e\ud863\uded9\ud846\ude4b\u5bd7\ud863\udeac\u9385\u754d\u754a\u7567\u756e\ud853\udf82\u3f04\ud853\udd13\u758e\u745d\u759e\u75b4\u7602\u762c\u7651\u764f\u766f\u7676\ud858\udff5\u7690\u81ef\u37f8\ud85a\udd11\ud85a\udd0e\u76a1\u76a5\u76b7\u76cc\ud85b\udf9f\u8462\ud854\udc9d\ud854\udd7d\ud847\ude1c\u771e\u7726\u7740\u64af\ud854\ude20\u7758\ud84c\udeac\u77af\ud862\udd64\ud862\udd68\ud845\udec1\u77f4\u7809\ud844\udf76\ud852\ude12\u68ca\u78af\u78c7\u78d3\u96a5\u792e\ud855\udde0\u78d7\u7934\u78b1\ud85d\ude0c\u8fb8\u8884\ud862\udf2b\ud858\udc83\ud849\ude1c\u7986\u8900\u6902\u7980\ud856\udc57\u799d\ud85e\udf39\u793c\u79a9\u6e2a\ud85c\udd26\u3ea8\u79c6\ud864\udd0d\u79d4"]]},{}],13:[function(require,module,exports){module.exports=[["0","\0",127,"\u20ac"],["8140","\u4e02\u4e04\u4e05\u4e06\u4e0f\u4e12\u4e17\u4e1f\u4e20\u4e21\u4e23\u4e26\u4e29\u4e2e\u4e2f\u4e31\u4e33\u4e35\u4e37\u4e3c\u4e40\u4e41\u4e42\u4e44\u4e46\u4e4a\u4e51\u4e55\u4e57\u4e5a\u4e5b\u4e62\u4e63\u4e64\u4e65\u4e67\u4e68\u4e6a",5,"\u4e72\u4e74",9,"\u4e7f",6,"\u4e87\u4e8a"],["8180","\u4e90\u4e96\u4e97\u4e99\u4e9c\u4e9d\u4e9e\u4ea3\u4eaa\u4eaf\u4eb0\u4eb1\u4eb4\u4eb6\u4eb7\u4eb8\u4eb9\u4ebc\u4ebd\u4ebe\u4ec8\u4ecc\u4ecf\u4ed0\u4ed2\u4eda\u4edb\u4edc\u4ee0\u4ee2\u4ee6\u4ee7\u4ee9\u4eed\u4eee\u4eef\u4ef1\u4ef4\u4ef8\u4ef9\u4efa\u4efc\u4efe\u4f00\u4f02",6,"\u4f0b\u4f0c\u4f12",4,"\u4f1c\u4f1d\u4f21\u4f23\u4f28\u4f29\u4f2c\u4f2d\u4f2e\u4f31\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e",4,"\u4f44\u4f45\u4f47",5,"\u4f52\u4f54\u4f56\u4f61\u4f62\u4f66\u4f68\u4f6a\u4f6b\u4f6d\u4f6e\u4f71\u4f72\u4f75\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f80\u4f81\u4f82\u4f85\u4f86\u4f87\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f95\u4f96\u4f98\u4f99\u4f9a\u4f9c\u4f9e\u4f9f\u4fa1\u4fa2"],["8240","\u4fa4\u4fab\u4fad\u4fb0",4,"\u4fb6",8,"\u4fc0\u4fc1\u4fc2\u4fc6\u4fc7\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fd2",4,"\u4fd9\u4fdb\u4fe0\u4fe2\u4fe4\u4fe5\u4fe7\u4feb\u4fec\u4ff0\u4ff2\u4ff4\u4ff5\u4ff6\u4ff7\u4ff9\u4ffb\u4ffc\u4ffd\u4fff",11],["8280","\u500b\u500e\u5010\u5011\u5013\u5015\u5016\u5017\u501b\u501d\u501e\u5020\u5022\u5023\u5024\u5027\u502b\u502f",10,"\u503b\u503d\u503f\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504a\u504b\u504d\u5050",4,"\u5056\u5057\u5058\u5059\u505b\u505d",7,"\u5066",5,"\u506d",8,"\u5078\u5079\u507a\u507c\u507d\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508a\u508b\u508c\u508e",20,"\u50a4\u50a6\u50aa\u50ab\u50ad",4,"\u50b3",6,"\u50bc"],["8340","\u50bd",17,"\u50d0",5,"\u50d7\u50d8\u50d9\u50db",10,"\u50e8\u50e9\u50ea\u50eb\u50ef\u50f0\u50f1\u50f2\u50f4\u50f6",4,"\u50fc",9,"\u5108"],["8380","\u5109\u510a\u510c",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514a\u514c\u514e\u514f\u5150\u5152\u5153\u5157\u5158\u5159\u515b\u515d",4,"\u5163\u5164\u5166\u5167\u5169\u516a\u516f\u5172\u517a\u517e\u517f\u5183\u5184\u5186\u5187\u518a\u518b\u518e\u518f\u5190\u5191\u5193\u5194\u5198\u519a\u519d\u519e\u519f\u51a1\u51a3\u51a6",4,"\u51ad\u51ae\u51b4\u51b8\u51b9\u51ba\u51be\u51bf\u51c1\u51c2\u51c3\u51c5\u51c8\u51ca\u51cd\u51ce\u51d0\u51d2",5],["8440","\u51d8\u51d9\u51da\u51dc\u51de\u51df\u51e2\u51e3\u51e5",5,"\u51ec\u51ee\u51f1\u51f2\u51f4\u51f7\u51fe\u5204\u5205\u5209\u520b\u520c\u520f\u5210\u5213\u5214\u5215\u521c\u521e\u521f\u5221\u5222\u5223\u5225\u5226\u5227\u522a\u522c\u522f\u5231\u5232\u5234\u5235\u523c\u523e\u5244",5,"\u524b\u524e\u524f\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525a\u525b\u525d\u525f\u5260\u5262\u5263\u5264\u5266\u5268\u526b\u526c\u526d\u526e\u5270\u5271\u5273",9,"\u527e\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529c\u52a4\u52a5\u52a6\u52a7\u52ae\u52af\u52b0\u52b4",9,"\u52c0\u52c1\u52c2\u52c4\u52c5\u52c6\u52c8\u52ca\u52cc\u52cd\u52ce\u52cf\u52d1\u52d3\u52d4\u52d5\u52d7\u52d9",5,"\u52e0\u52e1\u52e2\u52e3\u52e5",10,"\u52f1",7,"\u52fb\u52fc\u52fd\u5301\u5302\u5303\u5304\u5307\u5309\u530a\u530b\u530c\u530e"],["8540","\u5311\u5312\u5313\u5314\u5318\u531b\u531c\u531e\u531f\u5322\u5324\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u532f",9,"\u533c\u533d\u5340\u5342\u5344\u5346\u534b\u534c\u534d\u5350\u5354\u5358\u5359\u535b\u535d\u5365\u5368\u536a\u536c\u536d\u5372\u5376\u5379\u537b\u537c\u537d\u537e\u5380\u5381\u5383\u5387\u5388\u538a\u538e\u538f"],["8580","\u5390",4,"\u5396\u5397\u5399\u539b\u539c\u539e\u53a0\u53a1\u53a4\u53a7\u53aa\u53ab\u53ac\u53ad\u53af",6,"\u53b7\u53b8\u53b9\u53ba\u53bc\u53bd\u53be\u53c0\u53c3",4,"\u53ce\u53cf\u53d0\u53d2\u53d3\u53d5\u53da\u53dc\u53dd\u53de\u53e1\u53e2\u53e7\u53f4\u53fa\u53fe\u53ff\u5400\u5402\u5405\u5407\u540b\u5414\u5418\u5419\u541a\u541c\u5422\u5424\u5425\u542a\u5430\u5433\u5436\u5437\u543a\u543d\u543f\u5441\u5442\u5444\u5445\u5447\u5449\u544c\u544d\u544e\u544f\u5451\u545a\u545d",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547a\u547e\u547f\u5481\u5483\u5485\u5487\u5488\u5489\u548a\u548d\u5491\u5493\u5497\u5498\u549c\u549e\u549f\u54a0\u54a1"],["8640","\u54a2\u54a5\u54ae\u54b0\u54b2\u54b5\u54b6\u54b7\u54b9\u54ba\u54bc\u54be\u54c3\u54c5\u54ca\u54cb\u54d6\u54d8\u54db\u54e0",4,"\u54eb\u54ec\u54ef\u54f0\u54f1\u54f4",5,"\u54fb\u54fe\u5500\u5502\u5503\u5504\u5505\u5508\u550a",4,"\u5512\u5513\u5515",5,"\u551c\u551d\u551e\u551f\u5521\u5525\u5526"],["8680","\u5528\u5529\u552b\u552d\u5532\u5534\u5535\u5536\u5538\u5539\u553a\u553b\u553d\u5540\u5542\u5545\u5547\u5548\u554b",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555d\u555e\u555f\u5560\u5562\u5563\u5568\u5569\u556b\u556f",5,"\u5579\u557a\u557d\u557f\u5585\u5586\u558c\u558d\u558e\u5590\u5592\u5593\u5595\u5596\u5597\u559a\u559b\u559e\u55a0",6,"\u55a8",8,"\u55b2\u55b4\u55b6\u55b8\u55ba\u55bc\u55bf",4,"\u55c6\u55c7\u55c8\u55ca\u55cb\u55ce\u55cf\u55d0\u55d5\u55d7",4,"\u55de\u55e0\u55e2\u55e7\u55e9\u55ed\u55ee\u55f0\u55f1\u55f4\u55f6\u55f8",4,"\u55ff\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560a\u560b\u560d\u5610",7,"\u5619\u561a\u561c\u561d\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562a\u562b\u562e\u562f\u5630\u5633\u5635\u5637\u5638\u563a\u563c\u563d\u563e\u5640",11,"\u564f",4,"\u5655\u5656\u565a\u565b\u565d",4],["8780","\u5663\u5665\u5666\u5667\u566d\u566e\u566f\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567a\u567d",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56a4",10,"\u56b0",6,"\u56b8\u56b9\u56ba\u56bb\u56bd",12,"\u56cb",8,"\u56d5\u56d6\u56d8\u56d9\u56dc\u56e3\u56e5",5,"\u56ec\u56ee\u56ef\u56f2\u56f3\u56f6\u56f7\u56f8\u56fb\u56fc\u5700\u5701\u5702\u5705\u5707\u570b",6],["8840","\u5712",9,"\u571d\u571e\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572b\u5731\u5732\u5734",4,"\u573c\u573d\u573f\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574b\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576c\u576e\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577a\u577d\u577e\u577f\u5780"],["8880","\u5781\u5787\u5788\u5789\u578a\u578d",4,"\u5794",6,"\u579c\u579d\u579e\u579f\u57a5\u57a8\u57aa\u57ac\u57af\u57b0\u57b1\u57b3\u57b5\u57b6\u57b7\u57b9",8,"\u57c4",6,"\u57cc\u57cd\u57d0\u57d1\u57d3\u57d6\u57d7\u57db\u57dc\u57de\u57e1\u57e2\u57e3\u57e5",7,"\u57ee\u57f0\u57f1\u57f2\u57f3\u57f5\u57f6\u57f7\u57fb\u57fc\u57fe\u57ff\u5801\u5803\u5804\u5805\u5808\u5809\u580a\u580c\u580e\u580f\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581a\u581b\u581c\u581d\u581f\u5822\u5823\u5825",4,"\u582b",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583e",5,"\u5845",6,"\u584e\u584f\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585f",5,"\u5866",4,"\u586d",16,"\u587f\u5882\u5884\u5886\u5887\u5888\u588a\u588b\u588c"],["8980","\u588d",4,"\u5894",4,"\u589b\u589c\u589d\u58a0",7,"\u58aa",17,"\u58bd\u58be\u58bf\u58c0\u58c2\u58c3\u58c4\u58c6",10,"\u58d2\u58d3\u58d4\u58d6",13,"\u58e5",5,"\u58ed\u58ef\u58f1\u58f2\u58f4\u58f5\u58f7\u58f8\u58fa",7,"\u5903\u5905\u5906\u5908",4,"\u590e\u5910\u5911\u5912\u5913\u5917\u5918\u591b\u591d\u591e\u5920\u5921\u5922\u5923\u5926\u5928\u592c\u5930\u5932\u5933\u5935\u5936\u593b"],["8a40","\u593d\u593e\u593f\u5940\u5943\u5945\u5946\u594a\u594c\u594d\u5950\u5952\u5953\u5959\u595b",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597a\u597b\u597c\u597e\u597f\u5980\u5985\u5989\u598b\u598c\u598e\u598f\u5990\u5991\u5994\u5995\u5998\u599a\u599b\u599c\u599d\u599f\u59a0\u59a1\u59a2\u59a6"],["8a80","\u59a7\u59ac\u59ad\u59b0\u59b1\u59b3",5,"\u59ba\u59bc\u59bd\u59bf",6,"\u59c7\u59c8\u59c9\u59cc\u59cd\u59ce\u59cf\u59d5\u59d6\u59d9\u59db\u59de",4,"\u59e4\u59e6\u59e7\u59e9\u59ea\u59eb\u59ed",11,"\u59fa\u59fc\u59fd\u59fe\u5a00\u5a02\u5a0a\u5a0b\u5a0d\u5a0e\u5a0f\u5a10\u5a12\u5a14\u5a15\u5a16\u5a17\u5a19\u5a1a\u5a1b\u5a1d\u5a1e\u5a21\u5a22\u5a24\u5a26\u5a27\u5a28\u5a2a",6,"\u5a33\u5a35\u5a37",4,"\u5a3d\u5a3e\u5a3f\u5a41",4,"\u5a47\u5a48\u5a4b",9,"\u5a56\u5a57\u5a58\u5a59\u5a5b",5],["8b40","\u5a61\u5a63\u5a64\u5a65\u5a66\u5a68\u5a69\u5a6b",8,"\u5a78\u5a79\u5a7b\u5a7c\u5a7d\u5a7e\u5a80",17,"\u5a93",6,"\u5a9c",13,"\u5aab\u5aac"],["8b80","\u5aad",4,"\u5ab4\u5ab6\u5ab7\u5ab9",4,"\u5abf\u5ac0\u5ac3",5,"\u5aca\u5acb\u5acd",4,"\u5ad3\u5ad5\u5ad7\u5ad9\u5ada\u5adb\u5add\u5ade\u5adf\u5ae2\u5ae4\u5ae5\u5ae7\u5ae8\u5aea\u5aec",4,"\u5af2",22,"\u5b0a",11,"\u5b18",25,"\u5b33\u5b35\u5b36\u5b38",7,"\u5b41",6],["8c40","\u5b48",7,"\u5b52\u5b56\u5b5e\u5b60\u5b61\u5b67\u5b68\u5b6b\u5b6d\u5b6e\u5b6f\u5b72\u5b74\u5b76\u5b77\u5b78\u5b79\u5b7b\u5b7c\u5b7e\u5b7f\u5b82\u5b86\u5b8a\u5b8d\u5b8e\u5b90\u5b91\u5b92\u5b94\u5b96\u5b9f\u5ba7\u5ba8\u5ba9\u5bac\u5bad\u5bae\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbb\u5bbc\u5bc0\u5bc1\u5bc3\u5bc8\u5bc9\u5bca\u5bcb\u5bcd\u5bce\u5bcf"],["8c80","\u5bd1\u5bd4",8,"\u5be0\u5be2\u5be3\u5be6\u5be7\u5be9",4,"\u5bef\u5bf1",6,"\u5bfd\u5bfe\u5c00\u5c02\u5c03\u5c05\u5c07\u5c08\u5c0b\u5c0c\u5c0d\u5c0e\u5c10\u5c12\u5c13\u5c17\u5c19\u5c1b\u5c1e\u5c1f\u5c20\u5c21\u5c23\u5c26\u5c28\u5c29\u5c2a\u5c2b\u5c2d\u5c2e\u5c2f\u5c30\u5c32\u5c33\u5c35\u5c36\u5c37\u5c43\u5c44\u5c46\u5c47\u5c4c\u5c4d\u5c52\u5c53\u5c54\u5c56\u5c57\u5c58\u5c5a\u5c5b\u5c5c\u5c5d\u5c5f\u5c62\u5c64\u5c67",6,"\u5c70\u5c72",6,"\u5c7b\u5c7c\u5c7d\u5c7e\u5c80\u5c83",4,"\u5c89\u5c8a\u5c8b\u5c8e\u5c8f\u5c92\u5c93\u5c95\u5c9d",4,"\u5ca4",4],["8d40","\u5caa\u5cae\u5caf\u5cb0\u5cb2\u5cb4\u5cb6\u5cb9\u5cba\u5cbb\u5cbc\u5cbe\u5cc0\u5cc2\u5cc3\u5cc5",5,"\u5ccc",5,"\u5cd3",5,"\u5cda",6,"\u5ce2\u5ce3\u5ce7\u5ce9\u5ceb\u5cec\u5cee\u5cef\u5cf1",9,"\u5cfc",4],["8d80","\u5d01\u5d04\u5d05\u5d08",5,"\u5d0f",4,"\u5d15\u5d17\u5d18\u5d19\u5d1a\u5d1c\u5d1d\u5d1f",4,"\u5d25\u5d28\u5d2a\u5d2b\u5d2c\u5d2f",4,"\u5d35",7,"\u5d3f",7,"\u5d48\u5d49\u5d4d",10,"\u5d59\u5d5a\u5d5c\u5d5e",10,"\u5d6a\u5d6d\u5d6e\u5d70\u5d71\u5d72\u5d73\u5d75",12,"\u5d83",21,"\u5d9a\u5d9b\u5d9c\u5d9e\u5d9f\u5da0"],["8e40","\u5da1",21,"\u5db8",12,"\u5dc6",6,"\u5dce",12,"\u5ddc\u5ddf\u5de0\u5de3\u5de4\u5dea\u5dec\u5ded"],["8e80","\u5df0\u5df5\u5df6\u5df8",4,"\u5dff\u5e00\u5e04\u5e07\u5e09\u5e0a\u5e0b\u5e0d\u5e0e\u5e12\u5e13\u5e17\u5e1e",7,"\u5e28",4,"\u5e2f\u5e30\u5e32",4,"\u5e39\u5e3a\u5e3e\u5e3f\u5e40\u5e41\u5e43\u5e46",5,"\u5e4d",6,"\u5e56",4,"\u5e5c\u5e5d\u5e5f\u5e60\u5e63",14,"\u5e75\u5e77\u5e79\u5e7e\u5e81\u5e82\u5e83\u5e85\u5e88\u5e89\u5e8c\u5e8d\u5e8e\u5e92\u5e98\u5e9b\u5e9d\u5ea1\u5ea2\u5ea3\u5ea4\u5ea8",4,"\u5eae",4,"\u5eb4\u5eba\u5ebb\u5ebc\u5ebd\u5ebf",6],["8f40","\u5ec6\u5ec7\u5ec8\u5ecb",5,"\u5ed4\u5ed5\u5ed7\u5ed8\u5ed9\u5eda\u5edc",11,"\u5ee9\u5eeb",8,"\u5ef5\u5ef8\u5ef9\u5efb\u5efc\u5efd\u5f05\u5f06\u5f07\u5f09\u5f0c\u5f0d\u5f0e\u5f10\u5f12\u5f14\u5f16\u5f19\u5f1a\u5f1c\u5f1d\u5f1e\u5f21\u5f22\u5f23\u5f24"],["8f80","\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f32",6,"\u5f3b\u5f3d\u5f3e\u5f3f\u5f41",14,"\u5f51\u5f54\u5f59\u5f5a\u5f5b\u5f5c\u5f5e\u5f5f\u5f60\u5f63\u5f65\u5f67\u5f68\u5f6b\u5f6e\u5f6f\u5f72\u5f74\u5f75\u5f76\u5f78\u5f7a\u5f7d\u5f7e\u5f7f\u5f83\u5f86\u5f8d\u5f8e\u5f8f\u5f91\u5f93\u5f94\u5f96\u5f9a\u5f9b\u5f9d\u5f9e\u5f9f\u5fa0\u5fa2",5,"\u5fa9\u5fab\u5fac\u5faf",5,"\u5fb6\u5fb8\u5fb9\u5fba\u5fbb\u5fbe",4,"\u5fc7\u5fc8\u5fca\u5fcb\u5fce\u5fd3\u5fd4\u5fd5\u5fda\u5fdb\u5fdc\u5fde\u5fdf\u5fe2\u5fe3\u5fe5\u5fe6\u5fe8\u5fe9\u5fec\u5fef\u5ff0\u5ff2\u5ff3\u5ff4\u5ff6\u5ff7\u5ff9\u5ffa\u5ffc\u6007"],["9040","\u6008\u6009\u600b\u600c\u6010\u6011\u6013\u6017\u6018\u601a\u601e\u601f\u6022\u6023\u6024\u602c\u602d\u602e\u6030",4,"\u6036",4,"\u603d\u603e\u6040\u6044",6,"\u604c\u604e\u604f\u6051\u6053\u6054\u6056\u6057\u6058\u605b\u605c\u605e\u605f\u6060\u6061\u6065\u6066\u606e\u6071\u6072\u6074\u6075\u6077\u607e\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608a\u608b\u608e\u608f\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609c\u609e\u60a1\u60a2\u60a4\u60a5\u60a7\u60a9\u60aa\u60ae\u60b0\u60b3\u60b5\u60b6\u60b7\u60b9\u60ba\u60bd",7,"\u60c7\u60c8\u60c9\u60cc",4,"\u60d2\u60d3\u60d4\u60d6\u60d7\u60d9\u60db\u60de\u60e1",4,"\u60ea\u60f1\u60f2\u60f5\u60f7\u60f8\u60fb",4,"\u6102\u6103\u6104\u6105\u6107\u610a\u610b\u610c\u6110",4,"\u6116\u6117\u6118\u6119\u611b\u611c\u611d\u611e\u6121\u6122\u6125\u6128\u6129\u612a\u612c",18,"\u6140",6],["9140","\u6147\u6149\u614b\u614d\u614f\u6150\u6152\u6153\u6154\u6156",6,"\u615e\u615f\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618c\u618d\u618f",4,"\u6195"],["9180","\u6196",6,"\u619e",8,"\u61aa\u61ab\u61ad",9,"\u61b8",5,"\u61bf\u61c0\u61c1\u61c3",4,"\u61c9\u61cc",4,"\u61d3\u61d5",16,"\u61e7",13,"\u61f6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621c\u621d\u621e\u6220\u6223\u6226\u6227\u6228\u6229\u622b\u622d\u622f\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624a"],["9240","\u624f\u6250\u6255\u6256\u6257\u6259\u625a\u625c",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627a\u627b\u627d\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628b",5,"\u6294\u6299\u629c\u629d\u629e\u62a3\u62a6\u62a7\u62a9\u62aa\u62ad\u62ae\u62af\u62b0\u62b2\u62b3\u62b4\u62b6\u62b7\u62b8\u62ba\u62be\u62c0\u62c1"],["9280","\u62c3\u62cb\u62cf\u62d1\u62d5\u62dd\u62de\u62e0\u62e1\u62e4\u62ea\u62eb\u62f0\u62f2\u62f5\u62f8\u62f9\u62fa\u62fb\u6300\u6303\u6304\u6305\u6306\u630a\u630b\u630c\u630d\u630f\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631c\u6326\u6327\u6329\u632c\u632d\u632e\u6330\u6331\u6333",5,"\u633b\u633c\u633e\u633f\u6340\u6341\u6344\u6347\u6348\u634a\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636a\u636b\u636c\u636f\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637c\u637d\u637e\u637f\u6381\u6383\u6384\u6385\u6386\u638b\u638d\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63a1\u63a4\u63a6\u63ab\u63af\u63b1\u63b2\u63b5\u63b6\u63b9\u63bb\u63bd\u63bf\u63c0"],["9340","\u63c1\u63c2\u63c3\u63c5\u63c7\u63c8\u63ca\u63cb\u63cc\u63d1\u63d3\u63d4\u63d5\u63d7",6,"\u63df\u63e2\u63e4",4,"\u63eb\u63ec\u63ee\u63ef\u63f0\u63f1\u63f3\u63f5\u63f7\u63f9\u63fa\u63fb\u63fc\u63fe\u6403\u6404\u6406",4,"\u640d\u640e\u6411\u6412\u6415",5,"\u641d\u641f\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642b\u642e",5,"\u6435",4,"\u643b\u643c\u643e\u6440\u6442\u6443\u6449\u644b",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645f",7,"\u6468\u646a\u646b\u646c\u646e",9,"\u647b",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649a\u649b\u649c\u649d\u649f",4,"\u64a5\u64a6\u64a7\u64a8\u64aa\u64ab\u64af\u64b1\u64b2\u64b3\u64b4\u64b6\u64b9\u64bb\u64bd\u64be\u64bf\u64c1\u64c3\u64c4\u64c6",6,"\u64cf\u64d1\u64d3\u64d4\u64d5\u64d6\u64d9\u64da"],["9440","\u64db\u64dc\u64dd\u64df\u64e0\u64e1\u64e3\u64e5\u64e7",24,"\u6501",7,"\u650a",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652c\u652d\u6530\u6531\u6532\u6533\u6537\u653a\u653c\u653d\u6540",4,"\u6546\u6547\u654a\u654b\u654d\u654e\u6550\u6552\u6553\u6554\u6557\u6558\u655a\u655c\u655f\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656a\u656d\u656e\u656f\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658a\u658d\u658e\u658f\u6592\u6594\u6595\u6596\u6598\u659a\u659d\u659e\u65a0\u65a2\u65a3\u65a6\u65a8\u65aa\u65ac\u65ae\u65b1",7,"\u65ba\u65bb\u65be\u65bf\u65c0\u65c2\u65c7\u65c8\u65c9\u65ca\u65cd\u65d0\u65d1\u65d3\u65d4\u65d5\u65d8",7,"\u65e1\u65e3\u65e4\u65ea\u65eb"],["9540","\u65f2\u65f3\u65f4\u65f5\u65f8\u65f9\u65fb",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660b\u660d\u6610\u6611\u6612\u6616\u6617\u6618\u661a\u661b\u661c\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6632\u6633\u6637",4,"\u663d\u663f\u6640\u6642\u6644",6,"\u664d\u664e\u6650\u6651\u6658"],["9580","\u6659\u665b\u665c\u665d\u665e\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667b\u667c\u667d\u667f\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668a\u668b\u668d\u668e\u668f\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669e",8,"\u66a9",4,"\u66af",4,"\u66b5\u66b6\u66b7\u66b8\u66ba\u66bb\u66bc\u66bd\u66bf",25,"\u66da\u66de",7,"\u66e7\u66e8\u66ea",5,"\u66f1\u66f5\u66f6\u66f8\u66fa\u66fb\u66fd\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670c\u670e\u670f\u6711\u6712\u6713\u6716\u6718\u6719\u671a\u671c\u671e\u6720",5,"\u6727\u6729\u672e\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673b\u673c\u673e\u673f\u6741\u6744\u6745\u6747\u674a\u674b\u674d\u6752\u6754\u6755\u6757",4,"\u675d\u6762\u6763\u6764\u6766\u6767\u676b\u676c\u676e\u6771\u6774\u6776"],["9680","\u6778\u6779\u677a\u677b\u677d\u6780\u6782\u6783\u6785\u6786\u6788\u678a\u678c\u678d\u678e\u678f\u6791\u6792\u6793\u6794\u6796\u6799\u679b\u679f\u67a0\u67a1\u67a4\u67a6\u67a9\u67ac\u67ae\u67b1\u67b2\u67b4\u67b9",7,"\u67c2\u67c5",9,"\u67d5\u67d6\u67d7\u67db\u67df\u67e1\u67e3\u67e4\u67e6\u67e7\u67e8\u67ea\u67eb\u67ed\u67ee\u67f2\u67f5",7,"\u67fe\u6801\u6802\u6803\u6804\u6806\u680d\u6810\u6812\u6814\u6815\u6818",4,"\u681e\u681f\u6820\u6822",6,"\u682b",6,"\u6834\u6835\u6836\u683a\u683b\u683f\u6847\u684b\u684d\u684f\u6852\u6856",5],["9740","\u685c\u685d\u685e\u685f\u686a\u686c",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68a3\u68a4\u68a5\u68a9\u68aa\u68ab\u68ac\u68ae\u68b1\u68b2\u68b4\u68b6\u68b7\u68b8"],["9780","\u68b9",6,"\u68c1\u68c3",5,"\u68ca\u68cc\u68ce\u68cf\u68d0\u68d1\u68d3\u68d4\u68d6\u68d7\u68d9\u68db",4,"\u68e1\u68e2\u68e4",9,"\u68ef\u68f2\u68f3\u68f4\u68f6\u68f7\u68f8\u68fb\u68fd\u68fe\u68ff\u6900\u6902\u6903\u6904\u6906",4,"\u690c\u690f\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692e\u692f\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693a\u693b\u693c\u693e\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695b\u695c\u695f"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696a\u696c\u696d\u696f\u6970\u6972",4,"\u697a\u697b\u697d\u697e\u697f\u6981\u6983\u6985\u698a\u698b\u698c\u698e",5,"\u6996\u6997\u6999\u699a\u699d",9,"\u69a9\u69aa\u69ac\u69ae\u69af\u69b0\u69b2\u69b3\u69b5\u69b6\u69b8\u69b9\u69ba\u69bc\u69bd"],["9880","\u69be\u69bf\u69c0\u69c2",7,"\u69cb\u69cd\u69cf\u69d1\u69d2\u69d3\u69d5",5,"\u69dc\u69dd\u69de\u69e1",11,"\u69ee\u69ef\u69f0\u69f1\u69f3",9,"\u69fe\u6a00",9,"\u6a0b",11,"\u6a19",5,"\u6a20\u6a22",5,"\u6a29\u6a2b\u6a2c\u6a2d\u6a2e\u6a30\u6a32\u6a33\u6a34\u6a36",6,"\u6a3f",4,"\u6a45\u6a46\u6a48",7,"\u6a51",6,"\u6a5a"],["9940","\u6a5c",4,"\u6a62\u6a63\u6a64\u6a66",10,"\u6a72",6,"\u6a7a\u6a7b\u6a7d\u6a7e\u6a7f\u6a81\u6a82\u6a83\u6a85",8,"\u6a8f\u6a92",4,"\u6a98",7,"\u6aa1",5],["9980","\u6aa7\u6aa8\u6aaa\u6aad",114,"\u6b25\u6b26\u6b28",6],["9a40","\u6b2f\u6b30\u6b31\u6b33\u6b34\u6b35\u6b36\u6b38\u6b3b\u6b3c\u6b3d\u6b3f\u6b40\u6b41\u6b42\u6b44\u6b45\u6b48\u6b4a\u6b4b\u6b4d",11,"\u6b5a",7,"\u6b68\u6b69\u6b6b",13,"\u6b7a\u6b7d\u6b7e\u6b7f\u6b80\u6b85\u6b88"],["9a80","\u6b8c\u6b8e\u6b8f\u6b90\u6b91\u6b94\u6b95\u6b97\u6b98\u6b99\u6b9c",4,"\u6ba2",7,"\u6bab",7,"\u6bb6\u6bb8",6,"\u6bc0\u6bc3\u6bc4\u6bc6",4,"\u6bcc\u6bce\u6bd0\u6bd1\u6bd8\u6bda\u6bdc",4,"\u6be2",7,"\u6bec\u6bed\u6bee\u6bf0\u6bf1\u6bf2\u6bf4\u6bf6\u6bf7\u6bf8\u6bfa\u6bfb\u6bfc\u6bfe",6,"\u6c08",4,"\u6c0e\u6c12\u6c17\u6c1c\u6c1d\u6c1e\u6c20\u6c23\u6c25\u6c2b\u6c2c\u6c2d\u6c31\u6c33\u6c36\u6c37\u6c39\u6c3a\u6c3b\u6c3c\u6c3e\u6c3f\u6c43\u6c44\u6c45\u6c48\u6c4b",4,"\u6c51\u6c52\u6c53\u6c56\u6c58"],["9b40","\u6c59\u6c5a\u6c62\u6c63\u6c65\u6c66\u6c67\u6c6b",4,"\u6c71\u6c73\u6c75\u6c77\u6c78\u6c7a\u6c7b\u6c7c\u6c7f\u6c80\u6c84\u6c87\u6c8a\u6c8b\u6c8d\u6c8e\u6c91\u6c92\u6c95\u6c96\u6c97\u6c98\u6c9a\u6c9c\u6c9d\u6c9e\u6ca0\u6ca2\u6ca8\u6cac\u6caf\u6cb0\u6cb4\u6cb5\u6cb6\u6cb7\u6cba\u6cc0\u6cc1\u6cc2\u6cc3\u6cc6\u6cc7\u6cc8\u6ccb\u6ccd\u6cce\u6ccf\u6cd1\u6cd2\u6cd8"],["9b80","\u6cd9\u6cda\u6cdc\u6cdd\u6cdf\u6ce4\u6ce6\u6ce7\u6ce9\u6cec\u6ced\u6cf2\u6cf4\u6cf9\u6cff\u6d00\u6d02\u6d03\u6d05\u6d06\u6d08\u6d09\u6d0a\u6d0d\u6d0f\u6d10\u6d11\u6d13\u6d14\u6d15\u6d16\u6d18\u6d1c\u6d1d\u6d1f",5,"\u6d26\u6d28\u6d29\u6d2c\u6d2d\u6d2f\u6d30\u6d34\u6d36\u6d37\u6d38\u6d3a\u6d3f\u6d40\u6d42\u6d44\u6d49\u6d4c\u6d50\u6d55\u6d56\u6d57\u6d58\u6d5b\u6d5d\u6d5f\u6d61\u6d62\u6d64\u6d65\u6d67\u6d68\u6d6b\u6d6c\u6d6d\u6d70\u6d71\u6d72\u6d73\u6d75\u6d76\u6d79\u6d7a\u6d7b\u6d7d",4,"\u6d83\u6d84\u6d86\u6d87\u6d8a\u6d8b\u6d8d\u6d8f\u6d90\u6d92\u6d96",4,"\u6d9c\u6da2\u6da5\u6dac\u6dad\u6db0\u6db1\u6db3\u6db4\u6db6\u6db7\u6db9",5,"\u6dc1\u6dc2\u6dc3\u6dc8\u6dc9\u6dca"],["9c40","\u6dcd\u6dce\u6dcf\u6dd0\u6dd2\u6dd3\u6dd4\u6dd5\u6dd7\u6dda\u6ddb\u6ddc\u6ddf\u6de2\u6de3\u6de5\u6de7\u6de8\u6de9\u6dea\u6ded\u6def\u6df0\u6df2\u6df4\u6df5\u6df6\u6df8\u6dfa\u6dfd",7,"\u6e06\u6e07\u6e08\u6e09\u6e0b\u6e0f\u6e12\u6e13\u6e15\u6e18\u6e19\u6e1b\u6e1c\u6e1e\u6e1f\u6e22\u6e26\u6e27\u6e28\u6e2a\u6e2c\u6e2e\u6e30\u6e31\u6e33\u6e35"],["9c80","\u6e36\u6e37\u6e39\u6e3b",7,"\u6e45",7,"\u6e4f\u6e50\u6e51\u6e52\u6e55\u6e57\u6e59\u6e5a\u6e5c\u6e5d\u6e5e\u6e60",10,"\u6e6c\u6e6d\u6e6f",14,"\u6e80\u6e81\u6e82\u6e84\u6e87\u6e88\u6e8a",4,"\u6e91",6,"\u6e99\u6e9a\u6e9b\u6e9d\u6e9e\u6ea0\u6ea1\u6ea3\u6ea4\u6ea6\u6ea8\u6ea9\u6eab\u6eac\u6ead\u6eae\u6eb0\u6eb3\u6eb5\u6eb8\u6eb9\u6ebc\u6ebe\u6ebf\u6ec0\u6ec3\u6ec4\u6ec5\u6ec6\u6ec8\u6ec9\u6eca\u6ecc\u6ecd\u6ece\u6ed0\u6ed2\u6ed6\u6ed8\u6ed9\u6edb\u6edc\u6edd\u6ee3\u6ee7\u6eea",5],["9d40","\u6ef0\u6ef1\u6ef2\u6ef3\u6ef5\u6ef6\u6ef7\u6ef8\u6efa",7,"\u6f03\u6f04\u6f05\u6f07\u6f08\u6f0a",4,"\u6f10\u6f11\u6f12\u6f16",9,"\u6f21\u6f22\u6f23\u6f25\u6f26\u6f27\u6f28\u6f2c\u6f2e\u6f30\u6f32\u6f34\u6f35\u6f37",6,"\u6f3f\u6f40\u6f41\u6f42"],["9d80","\u6f43\u6f44\u6f45\u6f48\u6f49\u6f4a\u6f4c\u6f4e",9,"\u6f59\u6f5a\u6f5b\u6f5d\u6f5f\u6f60\u6f61\u6f63\u6f64\u6f65\u6f67",5,"\u6f6f\u6f70\u6f71\u6f73\u6f75\u6f76\u6f77\u6f79\u6f7b\u6f7d",6,"\u6f85\u6f86\u6f87\u6f8a\u6f8b\u6f8f",12,"\u6f9d\u6f9e\u6f9f\u6fa0\u6fa2",4,"\u6fa8",10,"\u6fb4\u6fb5\u6fb7\u6fb8\u6fba",5,"\u6fc1\u6fc3",5,"\u6fca",6,"\u6fd3",10,"\u6fdf\u6fe2\u6fe3\u6fe4\u6fe5"],["9e40","\u6fe6",7,"\u6ff0",32,"\u7012",7,"\u701c",6,"\u7024",6],["9e80","\u702b",9,"\u7036\u7037\u7038\u703a",17,"\u704d\u704e\u7050",13,"\u705f",11,"\u706e\u7071\u7072\u7073\u7074\u7077\u7079\u707a\u707b\u707d\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708b\u708c\u708d\u708f\u7090\u7091\u7093\u7097\u7098\u709a\u709b\u709e",12,"\u70b0\u70b2\u70b4\u70b5\u70b6\u70ba\u70be\u70bf\u70c4\u70c5\u70c6\u70c7\u70c9\u70cb",12,"\u70da"],["9f40","\u70dc\u70dd\u70de\u70e0\u70e1\u70e2\u70e3\u70e5\u70ea\u70ee\u70f0",6,"\u70f8\u70fa\u70fb\u70fc\u70fe",10,"\u710b",4,"\u7111\u7112\u7114\u7117\u711b",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714b\u714d\u714f",12,"\u715d\u715f",4,"\u7165\u7169",4,"\u716f\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717b\u717c\u717e",5,"\u7185",4,"\u718b\u718c\u718d\u718e\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719a",4,"\u71a1",6,"\u71a9\u71aa\u71ab\u71ad",5,"\u71b4\u71b6\u71b7\u71b8\u71ba",8,"\u71c4",9,"\u71cf",4],["a040","\u71d6",9,"\u71e1\u71e2\u71e3\u71e4\u71e6\u71e8",5,"\u71ef",9,"\u71fa",11,"\u7207",19],["a080","\u721b\u721c\u721e",9,"\u7229\u722b\u722d\u722e\u722f\u7232\u7233\u7234\u723a\u723c\u723e\u7240",6,"\u7249\u724a\u724b\u724e\u724f\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725a\u725c\u725e\u7260\u7263\u7264\u7265\u7268\u726a\u726b\u726c\u726d\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727b\u727c\u727d\u7282\u7283\u7285",4,"\u728c\u728e\u7290\u7291\u7293",11,"\u72a0",11,"\u72ae\u72b1\u72b2\u72b3\u72b5\u72ba",6,"\u72c5\u72c6\u72c7\u72c9\u72ca\u72cb\u72cc\u72cf\u72d1\u72d3\u72d4\u72d5\u72d6\u72d8\u72da\u72db"],["a1a1","\u3000\u3001\u3002\xb7\u02c9\u02c7\xa8\u3003\u3005\u2014\uff5e\u2016\u2026\u2018\u2019\u201c\u201d\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xb1\xd7\xf7\u2236\u2227\u2228\u2211\u220f\u222a\u2229\u2208\u2237\u221a\u22a5\u2225\u2220\u2312\u2299\u222b\u222e\u2261\u224c\u2248\u223d\u221d\u2260\u226e\u226f\u2264\u2265\u221e\u2235\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uff04\xa4\uffe0\uffe1\u2030\xa7\u2116\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u203b\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uff01\uff02\uff03\uffe5\uff05",88,"\uffe3"],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a6e0","\ufe35\ufe36\ufe39\ufe3a\ufe3f\ufe40\ufe3d\ufe3e\ufe41\ufe42\ufe43\ufe44"],["a6ee","\ufe3b\ufe3c\ufe37\ufe38\ufe31"],["a6f4","\ufe33\ufe34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02ca\u02cb\u02d9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221f\u2223\u2252\u2266\u2267\u22bf\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25bc\u25bd\u25e2\u25e3\u25e4\u25e5\u2609\u2295\u3012\u301d\u301e"],["a8a1","\u0101\xe1\u01ce\xe0\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da\u01dc\xfc\xea\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32a3\u338e\u338f\u339c\u339d\u339e\u33a1\u33c4\u33ce\u33d1\u33d2\u33d5\ufe30\uffe2\uffe4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30fc\u309b\u309c\u30fd\u30fe\u3006\u309d\u309e\ufe49",9,"\ufe54\ufe55\ufe56\ufe57\ufe59",8],["a980","\ufe62",4,"\ufe68\ufe69\ufe6a\ufe6b"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72dc\u72dd\u72df\u72e2",5,"\u72ea\u72eb\u72f5\u72f6\u72f9\u72fd\u72fe\u72ff\u7300\u7302\u7304",5,"\u730b\u730c\u730d\u730f\u7310\u7311\u7312\u7314\u7318\u7319\u731a\u731f\u7320\u7323\u7324\u7326\u7327\u7328\u732d\u732f\u7330\u7332\u7333\u7335\u7336\u733a\u733b\u733c\u733d\u7340",8],["aa80","\u7349\u734a\u734b\u734c\u734e\u734f\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736e\u7370\u7371"],["ab40","\u7372",11,"\u737f",4,"\u7385\u7386\u7388\u738a\u738c\u738d\u738f\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739a\u739c\u739d\u739e\u73a0\u73a1\u73a3",5,"\u73aa\u73ac\u73ad\u73b1\u73b4\u73b5\u73b6\u73b8\u73b9\u73bc\u73bd\u73be\u73bf\u73c1\u73c3",4],["ab80","\u73cb\u73cc\u73ce\u73d2",6,"\u73da\u73db\u73dc\u73dd\u73df\u73e1\u73e2\u73e3\u73e4\u73e6\u73e8\u73ea\u73eb\u73ec\u73ee\u73ef\u73f0\u73f1\u73f3",4],["ac40","\u73f8",10,"\u7404\u7407\u7408\u740b\u740c\u740d\u740e\u7411",8,"\u741c",5,"\u7423\u7424\u7427\u7429\u742b\u742d\u742f\u7431\u7432\u7437",4,"\u743d\u743e\u743f\u7440\u7442",11],["ac80","\u744e",6,"\u7456\u7458\u745d\u7460",12,"\u746e\u746f\u7471",4,"\u7478\u7479\u747a"],["ad40","\u747b\u747c\u747d\u747f\u7482\u7484\u7485\u7486\u7488\u7489\u748a\u748c\u748d\u748f\u7491",10,"\u749d\u749f",7,"\u74aa",15,"\u74bb",12],["ad80","\u74c8",9,"\u74d3",8,"\u74dd\u74df\u74e1\u74e5\u74e7",6,"\u74f0\u74f1\u74f2"],["ae40","\u74f3\u74f5\u74f8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750e\u7510\u7512\u7514\u7515\u7516\u7517\u751b\u751d\u751e\u7520",4,"\u7526\u7527\u752a\u752e\u7534\u7536\u7539\u753c\u753d\u753f\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754a\u754d\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755d",7,"\u7567\u7568\u7569\u756b",6,"\u7573\u7575\u7576\u7577\u757a",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758a\u758c\u758d\u758e\u7590\u7593\u7595\u7598\u759b\u759c\u759e\u75a2\u75a6",4,"\u75ad\u75b6\u75b7\u75ba\u75bb\u75bf\u75c0\u75c1\u75c6\u75cb\u75cc\u75ce\u75cf\u75d0\u75d1\u75d3\u75d7\u75d9\u75da\u75dc\u75dd\u75df\u75e0\u75e1\u75e5\u75e9\u75ec\u75ed\u75ee\u75ef\u75f2\u75f3\u75f5\u75f6\u75f7\u75f8\u75fa\u75fb\u75fd\u75fe\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760b\u760d\u760e\u760f\u7611\u7612\u7613\u7614\u7616\u761a\u761c\u761d\u761e\u7621\u7623\u7627\u7628\u762c\u762e\u762f\u7631\u7632\u7636\u7637\u7639\u763a\u763b\u763d\u7641\u7642\u7644"],["b040","\u7645",6,"\u764e",5,"\u7655\u7657",4,"\u765d\u765f\u7660\u7661\u7662\u7664",6,"\u766c\u766d\u766e\u7670",7,"\u7679\u767a\u767c\u767f\u7680\u7681\u7683\u7685\u7689\u768a\u768c\u768d\u768f\u7690\u7692\u7694\u7695\u7697\u7698\u769a\u769b"],["b080","\u769c",7,"\u76a5",8,"\u76af\u76b0\u76b3\u76b5",9,"\u76c0\u76c1\u76c3\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u80ae\u6602\u76ce\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u82de\u80de\u5305\u8912\u5265"],["b140","\u76c4\u76c7\u76c9\u76cb\u76cc\u76d3\u76d5\u76d9\u76da\u76dc\u76dd\u76de\u76e0",4,"\u76e6",7,"\u76f0\u76f3\u76f5\u76f6\u76f7\u76fa\u76fb\u76fd\u76ff\u7700\u7702\u7703\u7705\u7706\u770a\u770c\u770e",10,"\u771b\u771c\u771d\u771e\u7721\u7723\u7724\u7725\u7727\u772a\u772b"],["b180","\u772c\u772e\u7730",4,"\u7739\u773b\u773d\u773e\u773f\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775c\u8584\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u6807\u5f6a\u8198\u8868\u9cd6\u618b\u522b\u762a\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3"],["b240","\u775d\u775e\u775f\u7760\u7764\u7767\u7769\u776a\u776d",11,"\u777a\u777b\u777c\u7781\u7782\u7783\u7786",5,"\u778f\u7790\u7793",11,"\u77a1\u77a3\u77a4\u77a6\u77a8\u77ab\u77ad\u77ae\u77af\u77b1\u77b2\u77b4\u77b6",4],["b280","\u77bc\u77be\u77c0",12,"\u77ce",8,"\u77d8\u77d9\u77da\u77dd",4,"\u77e4\u75c5\u5e76\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u82cd\u8231\u4ed3\u6ca7\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5395\u7b56\u4fa7\u518c\u6d4b\u5c42\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u62c6\u67f4\u8c7a\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u660c\u7316"],["b340","\u77e6\u77e8\u77ea\u77ef\u77f0\u77f1\u77f2\u77f4\u77f5\u77f7\u77f9\u77fa\u77fb\u77fc\u7803",5,"\u780a\u780b\u780e\u780f\u7810\u7813\u7815\u7819\u781b\u781e\u7820\u7821\u7822\u7824\u7828\u782a\u782b\u782e\u782f\u7831\u7832\u7833\u7835\u7836\u783d\u783f\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784a\u784b\u784d\u784f\u7851\u7853\u7854\u7858\u7859\u785a"],["b380","\u785b\u785c\u785e",11,"\u786f",7,"\u7878\u7879\u787a\u787b\u787d",6,"\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u6491\u79f0\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u5145\u51b2\u866b\u5d07\u5ba0\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a"],["b440","\u7884\u7885\u7886\u7888\u788a\u788b\u788f\u7890\u7892\u7894\u7895\u7896\u7899\u789d\u789e\u78a0\u78a2\u78a4\u78a6\u78a8",7,"\u78b5\u78b6\u78b7\u78b8\u78ba\u78bb\u78bc\u78bd\u78bf\u78c0\u78c2\u78c3\u78c4\u78c6\u78c7\u78c8\u78cc\u78cd\u78ce\u78cf\u78d1\u78d2\u78d3\u78d6\u78d7\u78d8\u78da",9],["b480","\u78e4\u78e5\u78e6\u78e7\u78e9\u78ea\u78eb\u78ed",4,"\u78f3\u78f5\u78f6\u78f8\u78f9\u78fb",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50a8\u77d7\u6410\u89e6\u5904\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u5439\u708a\u6376\u9524\u5782\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u6233\u7ef0\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u51d1\u7c97\u918b\u7c07\u4fc3\u8e7f\u7be1\u7a9c\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u9519\u642d\u8fbe\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e"],["b540","\u790d",5,"\u7914",9,"\u791f",4,"\u7925",14,"\u7935",4,"\u793d\u793f\u7942\u7943\u7944\u7945\u7947\u794a",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796a\u796b\u796c\u796e\u7970",6,"\u7979\u797b",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798b\u798c\u798d\u798e\u7990\u7991\u7992\u6020\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u5f53\u6321\u515a\u8361\u6863\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u5fb7\u5f97\u7684\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0"],["b640","\u7993",6,"\u799b",11,"\u79a8",10,"\u79b4",4,"\u79bc\u79bf\u79c2\u79c4\u79c5\u79c7\u79c8\u79ca\u79cc\u79ce\u79cf\u79d0\u79d3\u79d4\u79d6\u79d7\u79d9",5,"\u79e0\u79e1\u79e2\u79e5\u79e8\u79ea"],["b680","\u79ec\u79ee\u79f1",6,"\u79f9\u79fa\u79fc\u79fe\u79ff\u7a01\u7a04\u7a05\u7a07\u7a08\u7a09\u7a0a\u7a0c\u7a0f",4,"\u7a15\u7a16\u7a18\u7a19\u7a1b\u7a1c\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5806\u5151\u961f\u5bf9\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u6069\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c"],["b740","\u7a1d\u7a1f\u7a21\u7a22\u7a24",14,"\u7a34\u7a35\u7a36\u7a38\u7a3a\u7a3e\u7a40",5,"\u7a47",9,"\u7a52",4,"\u7a58",16],["b780","\u7a69",6,"\u7a71\u7a72\u7a73\u7a75\u7a7b\u7a7c\u7a7d\u7a7e\u7a82\u7a85\u7a87\u7a89\u7a8a\u7a8b\u7a8c\u7a8e\u7a8f\u7a90\u7a93\u7a94\u7a99\u7a9a\u7a9b\u7a9e\u7aa1\u7aa2\u8d30\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d"],["b840","\u7aa3\u7aa4\u7aa7\u7aa9\u7aaa\u7aab\u7aae",4,"\u7ab4",10,"\u7ac0",10,"\u7acc",9,"\u7ad7\u7ad8\u7ada\u7adb\u7adc\u7add\u7ae1\u7ae2\u7ae4\u7ae7",5,"\u7aee\u7af0\u7af1\u7af2\u7af3"],["b880","\u7af4",4,"\u7afb\u7afc\u7afe\u7b00\u7b01\u7b02\u7b05\u7b07\u7b09\u7b0c\u7b0d\u7b0e\u7b10\u7b12\u7b13\u7b16\u7b17\u7b18\u7b1a\u7b1c\u7b1d\u7b1f\u7b21\u7b22\u7b23\u7b27\u7b29\u7b2d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5676\u560e\u8be5\u6539\u6982\u9499\u76d6\u6e89\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6760\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u9601\u9694\u94ec\u4e2a\u5404\u7ed9\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9"],["b940","\u7b2f\u7b30\u7b32\u7b34\u7b35\u7b36\u7b37\u7b39\u7b3b\u7b3d\u7b3f",5,"\u7b46\u7b48\u7b4a\u7b4d\u7b4e\u7b53\u7b55\u7b57\u7b59\u7b5c\u7b5e\u7b5f\u7b61\u7b63",10,"\u7b6f\u7b70\u7b73\u7b74\u7b76\u7b78\u7b7a\u7b7c\u7b7d\u7b7f\u7b81\u7b82\u7b83\u7b84\u7b86",6,"\u7b8e\u7b8f"],["b980","\u7b91\u7b92\u7b93\u7b96\u7b98\u7b99\u7b9a\u7b9b\u7b9e\u7b9f\u7ba0\u7ba3\u7ba4\u7ba5\u7bae\u7baf\u7bb0\u7bb2\u7bb3\u7bb5\u7bb6\u7bb7\u7bb9",7,"\u7bc2\u7bc3\u7bc4\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u522e\u74dc\u5250\u5be1\u6302\u8902\u4e56\u62d0\u602a\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u5149\u5e7f\u901b\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u8f8a\u6eda\u68cd\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u54c8"],["ba40","\u7bc5\u7bc8\u7bc9\u7bca\u7bcb\u7bcd\u7bce\u7bcf\u7bd0\u7bd2\u7bd4",4,"\u7bdb\u7bdc\u7bde\u7bdf\u7be0\u7be2\u7be3\u7be4\u7be7\u7be8\u7be9\u7beb\u7bec\u7bed\u7bef\u7bf0\u7bf2",4,"\u7bf8\u7bf9\u7bfa\u7bfb\u7bfd\u7bff",7,"\u7c08\u7c09\u7c0a\u7c0d\u7c0e\u7c10",5,"\u7c17\u7c18\u7c19"],["ba80","\u7c1a",4,"\u7c20",5,"\u7c28\u7c29\u7c2b",12,"\u7c39",5,"\u7c42\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a2a\u8861\u6052\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56"],["bb40","\u7c43",9,"\u7c4e",36,"\u7c75",5,"\u7c7e",9],["bb80","\u7c88\u7c8a",6,"\u7c93\u7c94\u7c96\u7c99\u7c9a\u7c9b\u7ca0\u7ca1\u7ca3\u7ca6\u7ca7\u7ca8\u7ca9\u7cab\u7cac\u7cad\u7caf\u7cb0\u7cb4",4,"\u7cba\u7cbb\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u69d0\u5f8a\u6000\u6dee\u574f\u6b22\u73af\u6853\u8fd8\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95"],["bc40","\u7cbf\u7cc0\u7cc2\u7cc3\u7cc4\u7cc6\u7cc9\u7ccb\u7cce",6,"\u7cd8\u7cda\u7cdb\u7cdd\u7cde\u7ce1",6,"\u7ce9",5,"\u7cf0",7,"\u7cf9\u7cfa\u7cfc",13,"\u7d0b",5],["bc80","\u7d11",14,"\u7d21\u7d23\u7d24\u7d25\u7d26\u7d28\u7d29\u7d2a\u7d2c\u7d2d\u7d2e\u7d30",6,"\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u5993\u7ee7\u7eaa\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6"],["bd40","\u7d37",54,"\u7d6f",7],["bd80","\u7d78",32,"\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78"],["be40","\u7d99",12,"\u7da7",6,"\u7daf",42],["be80","\u7dda",32,"\u5c3d\u52b2\u8346\u5162\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u70af\u7a98\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u6485\u652b\u6289\u6398\u5014\u7235\u89c9\u51b3\u8bc0\u7edd\u5747\u83cc\u94a7\u519b\u541b\u5cfb"],["bf40","\u7dfb",62],["bf80","\u7e3a\u7e3c",4,"\u7e42",4,"\u7e48",21,"\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u5580\u5496\u5361\u54af\u5f00\u63e9\u6977\u51ef\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u80af\u5543\u57a6\u6073\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u62a0\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5938\u57ae\u630e\u8de8\u80ef\u5757\u7b77\u4fa9\u5feb\u5bbd\u6b3e\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080"],["c040","\u7e5e",35,"\u7e83",23,"\u7e9c\u7e9d\u7e9e"],["c080","\u7eae\u7eb4\u7ebb\u7ebc\u7ed6\u7ee4\u7eec\u7ef9\u7f0a\u7f10\u7f1e\u7f37\u7f39\u7f3b",6,"\u7f43\u7f46",9,"\u7f52\u7f53\u9988\u6127\u6e83\u5764\u6606\u6346\u56f0\u62ec\u6269\u5ed3\u9614\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u83b1\u6765\u8d56\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u52d2\u4e50\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u808b\u7c7b\u6cea\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0"],["c140","\u7f56\u7f59\u7f5b\u7f5c\u7f5d\u7f5e\u7f60\u7f63",4,"\u7f6b\u7f6c\u7f6d\u7f6f\u7f70\u7f73\u7f75\u7f76\u7f77\u7f78\u7f7a\u7f7b\u7f7c\u7f7d\u7f7f\u7f80\u7f82",7,"\u7f8b\u7f8d\u7f8f",4,"\u7f95",4,"\u7f9b\u7f9c\u7fa0\u7fa2\u7fa3\u7fa5\u7fa6\u7fa8",6,"\u7fb1"],["c180","\u7fb3",4,"\u7fba\u7fbb\u7fbe\u7fc0\u7fc2\u7fc3\u7fc4\u7fc6\u7fc7\u7fc8\u7fc9\u7fcb\u7fcd\u7fcf",4,"\u7fd6\u7fd7\u7fd9",5,"\u7fe2\u7fe3\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u730e\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u9f99\u804b\u5499\u7b3c\u7abf"],["c240","\u7fe4\u7fe7\u7fe8\u7fea\u7feb\u7fec\u7fed\u7fef\u7ff2\u7ff4",6,"\u7ffd\u7ffe\u7fff\u8002\u8007\u8008\u8009\u800a\u800e\u800f\u8011\u8013\u801a\u801b\u801d\u801e\u801f\u8021\u8023\u8024\u802b",5,"\u8032\u8034\u8039\u803a\u803c\u803e\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804e\u804f\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805b",13,"\u806b",5,"\u8072",11,"\u9686\u5784\u62e2\u9647\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u5ce6\u631b\u5b6a\u6ee6\u5375\u4e71\u63a0\u7565\u62a1\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b"],["c340","\u807e\u8081\u8082\u8085\u8088\u808a\u808d",5,"\u8094\u8095\u8097\u8099\u809e\u80a3\u80a6\u80a7\u80a8\u80ac\u80b0\u80b3\u80b5\u80b6\u80b8\u80b9\u80bb\u80c5\u80c7",4,"\u80cf",6,"\u80d8\u80df\u80e0\u80e2\u80e3\u80e6\u80ee\u80f5\u80f7\u80f9\u80fb\u80fe\u80ff\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810b"],["c380","\u810c\u8115\u8117\u8119\u811b\u811c\u811d\u811f",12,"\u812d\u812e\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813f\u8c29\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u732b\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4e48\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u95e8\u95f7\u4eec\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u8511\u706d\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u660e\u879f\u9e23\u94ed\u540d\u547d\u8c2c\u6478"],["c440","\u8140",5,"\u8147\u8149\u814d\u814e\u814f\u8152\u8156\u8157\u8158\u815b",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816a\u816b\u816c\u816f\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818b\u818c\u818d\u818e\u8190\u8192",5,"\u8199\u819a\u819e",4,"\u81a4\u81a5"],["c480","\u81a7\u81a9\u81ab",7,"\u81b4",5,"\u81bc\u81bd\u81be\u81bf\u81c4\u81c5\u81c7\u81c8\u81c9\u81cb\u81cd",6,"\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c0b\u725f\u67d0\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96be\u56ca\u6320\u8111\u607c\u95f9\u6dd6\u5462\u9981\u5185\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5a18\u917f\u9e1f\u5c3f\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u60a8\u67e0\u72de\u51dd\u5b81"],["c540","\u81d4",14,"\u81e4\u81e5\u81e6\u81e8\u81e9\u81eb\u81ee",4,"\u81f5",5,"\u81fd\u81ff\u8203\u8207",4,"\u820e\u820f\u8211\u8213\u8215",5,"\u821d\u8220\u8224\u8225\u8226\u8227\u8229\u822e\u8232\u823a\u823c\u823d\u823f"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824a\u824c\u824d\u824e\u8250",7,"\u8259\u825b\u825c\u825d\u825e\u8260",7,"\u8269\u62e7\u6cde\u725b\u626d\u94ae\u7ebd\u8113\u6d53\u519c\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u759f\u632a\u61e6\u7cef\u8bfa\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u4e53\u5e9e\u65c1\u802a\u80d6\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u55b7\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7"],["c640","\u826a\u826b\u826c\u826d\u8271\u8275\u8276\u8277\u8278\u827b\u827c\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828c\u8290\u8293\u8294\u8295\u8296\u829a\u829b\u829e\u82a0\u82a2\u82a3\u82a7\u82b2\u82b5\u82b6\u82ba\u82bb\u82bc\u82bf\u82c0\u82c2\u82c3\u82c5\u82c6\u82c9\u82d0\u82d6\u82d9\u82da\u82dd\u82e2\u82e7\u82e8\u82e9\u82ea\u82ec\u82ed\u82ee\u82f0\u82f2\u82f3\u82f5\u82f6\u82f8"],["c680","\u82fa\u82fc",4,"\u830a\u830b\u830d\u8310\u8312\u8313\u8316\u8318\u8319\u831d",9,"\u8329\u832a\u832e\u8330\u8332\u8337\u833b\u833d\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a97\u98d8\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u9891\u8d2b\u54c1\u8058\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u6390"],["c740","\u833e\u833f\u8341\u8342\u8344\u8345\u8348\u834a",4,"\u8353\u8355",4,"\u835d\u8362\u8370",6,"\u8379\u837a\u837e",6,"\u8387\u8388\u838a\u838b\u838c\u838d\u838f\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839a\u839d\u839f\u83a1",6,"\u83ac\u83ad\u83ae"],["c780","\u83af\u83b5\u83bb\u83be\u83bf\u83c2\u83c3\u83c4\u83c6\u83c8\u83c9\u83cb\u83cd\u83ce\u83d0\u83d1\u83d2\u83d3\u83d5\u83d7\u83d9\u83da\u83db\u83de\u83e2\u83e3\u83e4\u83e6\u83e7\u83e8\u83eb\u83ec\u83ed\u6070\u6d3d\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5207\u8304\u4e14\u602f\u7a83\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u743c\u7a77\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20"],["c840","\u83ee\u83ef\u83f3",4,"\u83fa\u83fb\u83fc\u83fe\u83ff\u8400\u8402\u8405\u8407\u8408\u8409\u840a\u8410\u8412",5,"\u8419\u841a\u841b\u841e",5,"\u8429",7,"\u8432",5,"\u8439\u843a\u843b\u843e",7,"\u8447\u8448\u8449"],["c880","\u844a",6,"\u8452",4,"\u8458\u845d\u845e\u845f\u8460\u8462\u8464",4,"\u846a\u846e\u846f\u8470\u8472\u8474\u8477\u8479\u847b\u847c\u53d6\u5a36\u9f8b\u8da3\u53bb\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8ba9\u9976\u6270\u7ed5\u60f9\u70ed\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8f6f\u962e\u854a\u745e\u9510\u95f0\u6da6\u82e5\u5f31\u6492\u6d12\u8428\u816e\u9cc3\u585e\u8d5b\u4e09\u53c1"],["c940","\u847d",4,"\u8483\u8484\u8485\u8486\u848a\u848d\u848f",7,"\u8498\u849a\u849b\u849d\u849e\u849f\u84a0\u84a2",12,"\u84b0\u84b1\u84b3\u84b5\u84b6\u84b7\u84bb\u84bc\u84be\u84c0\u84c2\u84c3\u84c5\u84c6\u84c7\u84c8\u84cb\u84cc\u84ce\u84cf\u84d2\u84d4\u84d5\u84d7"],["c980","\u84d8",4,"\u84de\u84e1\u84e2\u84e4\u84e7",4,"\u84ed\u84ee\u84ef\u84f1",10,"\u84fd\u84fe\u8500\u8501\u8502\u4f1e\u6563\u6851\u55d3\u4e27\u6414\u9a9a\u626b\u5ac2\u745f\u8272\u6da9\u68ee\u50e7\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u7b5b\u6652\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u58f0\u751f\u7525\u7272\u5347\u7ef3"],["ca40","\u8503",8,"\u850d\u850e\u850f\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851b\u851c\u851d\u851e\u8520\u8522",8,"\u852d",9,"\u853e",4,"\u8544\u8545\u8546\u8547\u854b",10],["ca80","\u8557\u8558\u855a\u855b\u855c\u855d\u855f",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857c\u857d\u857f\u8580\u8581\u7701\u76db\u5269\u80dc\u5723\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859d",6,"\u85a5\u85a6\u85a7\u85a9\u85ab\u85ac\u85ad\u85b1",5,"\u85b8\u85ba",6,"\u85c2",6,"\u85ca",4,"\u85d1\u85d2"],["cb80","\u85d4\u85d6",5,"\u85dd",6,"\u85e5\u85e6\u85e7\u85e8\u85ea",14,"\u6055\u5237\u800d\u6454\u8870\u7529\u5e05\u6813\u62f4\u971c\u53cc\u723d\u8c01\u6c34\u7761\u7a0e\u542e\u77ac\u987a\u821c\u8bf4\u7855\u6714\u70c1\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u641c\u8258\u64de\u55fd\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u9178\u849c\u7b97\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u5b59\u635f\u7b0b\u84d1\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u584c\u4ed6\u5b83\u5979\u5854"],["cc40","\u85f9\u85fa\u85fc\u85fd\u85fe\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862a",13,"\u8639\u863a\u863b\u863d\u863e\u863f\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865b\u865c\u865d\u865f\u8660\u8661\u8663",7,"\u736d\u631e\u8e4b\u8e0f\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u70eb\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u7279\u85e4\u817e\u75bc\u8a8a\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u6761\u8fe2\u773a\u8df3\u8d34\u94c1\u5e16\u5385\u542c\u70c3"],["cd40","\u866d\u866f\u8670\u8672",6,"\u8683",6,"\u868e",4,"\u8694\u8696",5,"\u869e",4,"\u86a5\u86a6\u86ab\u86ad\u86ae\u86b2\u86b3\u86b7\u86b8\u86b9\u86bb",4,"\u86c1\u86c2\u86c3\u86c5\u86c8\u86cc\u86cd\u86d2\u86d3\u86d5\u86d6\u86d7\u86da\u86dc"],["cd80","\u86dd\u86e0\u86e1\u86e2\u86e3\u86e5\u86e6\u86e7\u86e8\u86ea\u86eb\u86ec\u86ef\u86f5\u86f6\u86f7\u86fa\u86fb\u86fc\u86fd\u86ff\u8701\u8704\u8705\u8706\u870b\u870c\u870e\u870f\u8710\u8711\u8714\u8716\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u5077\u6295\u5934\u900f\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u6e4d\u56e2\u63a8\u9893\u817f\u8715\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u6b6a\u5916\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u5a01"],["ce40","\u8719\u871b\u871d\u871f\u8720\u8724\u8726\u8727\u8728\u872a\u872b\u872c\u872d\u872f\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873a\u873c\u873d\u8740",6,"\u874a\u874b\u874d\u874f\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875a",5,"\u8761\u8762\u8766",7,"\u876f\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877a\u877f\u8780\u8781\u8784\u8786\u8787\u8789\u878a\u878c\u878e",4,"\u8794\u8795\u8796\u8798",6,"\u87a0",4,"\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u55e1\u7fc1\u74ee\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a"],["cf40","\u87a5\u87a6\u87a7\u87a9\u87aa\u87ae\u87b0\u87b1\u87b2\u87b4\u87b6\u87b7\u87b8\u87b9\u87bb\u87bc\u87be\u87bf\u87c1",4,"\u87c7\u87c8\u87c9\u87cc",4,"\u87d4",6,"\u87dc\u87dd\u87de\u87df\u87e1\u87e2\u87e3\u87e4\u87e6\u87e7\u87e8\u87e9\u87eb\u87ec\u87ed\u87ef",9],["cf80","\u87fa\u87fb\u87fc\u87fd\u87ff\u8800\u8801\u8802\u8804",5,"\u880b",7,"\u8814\u8817\u8818\u8819\u881a\u881c",4,"\u8823\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883a\u883b\u883d\u883e\u883f\u8841\u8842\u8843\u8846",5,"\u884e",5,"\u8855\u8856\u8858\u885a",6,"\u8866\u8867\u886a\u886d\u886f\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887a"],["d080","\u887b\u887c\u8880\u8883\u8886\u8887\u8889\u888a\u888c\u888e\u888f\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889d",4,"\u88a3\u88a5",5,"\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384"],["d140","\u88ac\u88ae\u88af\u88b0\u88b2",4,"\u88b8\u88b9\u88ba\u88bb\u88bd\u88be\u88bf\u88c0\u88c3\u88c4\u88c7\u88c8\u88ca\u88cb\u88cc\u88cd\u88cf\u88d0\u88d1\u88d3\u88d6\u88d7\u88da",4,"\u88e0\u88e1\u88e6\u88e7\u88e9",6,"\u88f2\u88f5\u88f6\u88f7\u88fa\u88fb\u88fd\u88ff\u8900\u8901\u8903",5],["d180","\u8909\u890b",4,"\u8911\u8914",4,"\u891c",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892c\u892d\u892e\u892f\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7eda\u9774\u859b\u5b66\u7a74\u96ea\u8840\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897c"],["d280","\u897d\u897e\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690"],["d340","\u89a2",30,"\u89c3\u89cd\u89d3\u89d4\u89d5\u89d7\u89d8\u89d9\u89db\u89dd\u89df\u89e0\u89e1\u89e2\u89e4\u89e7\u89e8\u89e9\u89ea\u89ec\u89ed\u89ee\u89f0\u89f1\u89f2\u89f4",6],["d380","\u89fb",4,"\u8a01",5,"\u8a08",21,"\u5370\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u54df\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89"],["d440","\u8a1e",31,"\u8a3f",8,"\u8a49",21],["d480","\u8a5f",25,"\u8a7a",6,"\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u531d\u7838\u6742\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u6512\u6682\u8d5e\u8d43\u810f\u846c\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u8d23\u62e9\u5219\u6cfd\u8d3c\u600e\u589e\u618e\u66fe\u8d60\u624e\u55b3\u6e23\u672d\u8f67"],["d540","\u8a81",7,"\u8a8b",7,"\u8a94",46],["d580","\u8ac3",32,"\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u6458\u658b\u5b85\u7a84\u503a\u5be8\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f"],["d640","\u8ae4",34,"\u8b08",27],["d680","\u8b24\u8b25\u8b27",30,"\u5e27\u75c7\u90d1\u8bc1\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51"],["d740","\u8b46",31,"\u8b67",4,"\u8b6d",25],["d780","\u8b87",24,"\u8bac\u8bb1\u8bbb\u8bc7\u8bd0\u8bea\u8c09\u8c1e\u4f4f\u6ce8\u795d\u9a7b\u6293\u722a\u62fd\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8c06\u51c6\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u7740\u707c\u6d4a\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u90b9\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u94bb\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7"],["d840","\u8c38",8,"\u8c42\u8c43\u8c44\u8c45\u8c48\u8c4a\u8c4b\u8c4d",7,"\u8c56\u8c57\u8c58\u8c59\u8c5b",5,"\u8c63",6,"\u8c6c",6,"\u8c74\u8c75\u8c76\u8c77\u8c7b",6,"\u8c83\u8c84\u8c86\u8c87"],["d880","\u8c88\u8c8b\u8c8d",6,"\u8c95\u8c96\u8c97\u8c99",20,"\u4e8d\u4e0c\u5140\u4e10\u5eff\u5345\u4e15\u4e98\u4e1e\u9b32\u5b6c\u5669\u4e28\u79ba\u4e3f\u5315\u4e47\u592d\u723b\u536e\u6c10\u56df\u80e4\u9997\u6bd3\u777e\u9f17\u4e36\u4e9f\u9f10\u4e5c\u4e69\u4e93\u8288\u5b5b\u556c\u560f\u4ec4\u538d\u539d\u53a3\u53a5\u53ae\u9765\u8d5d\u531a\u53f5\u5326\u532e\u533e\u8d5c\u5366\u5363\u5202\u5208\u520e\u522d\u5233\u523f\u5240\u524c\u525e\u5261\u525c\u84af\u527d\u5282\u5281\u5290\u5293\u5182\u7f54\u4ebb\u4ec3\u4ec9\u4ec2\u4ee8\u4ee1\u4eeb\u4ede\u4f1b\u4ef3\u4f22\u4f64\u4ef5\u4f25\u4f27\u4f09\u4f2b\u4f5e\u4f67\u6538\u4f5a\u4f5d"],["d940","\u8cae",62],["d980","\u8ced",32,"\u4f5f\u4f57\u4f32\u4f3d\u4f76\u4f74\u4f91\u4f89\u4f83\u4f8f\u4f7e\u4f7b\u4faa\u4f7c\u4fac\u4f94\u4fe6\u4fe8\u4fea\u4fc5\u4fda\u4fe3\u4fdc\u4fd1\u4fdf\u4ff8\u5029\u504c\u4ff3\u502c\u500f\u502e\u502d\u4ffe\u501c\u500c\u5025\u5028\u507e\u5043\u5055\u5048\u504e\u506c\u507b\u50a5\u50a7\u50a9\u50ba\u50d6\u5106\u50ed\u50ec\u50e6\u50ee\u5107\u510b\u4edd\u6c3d\u4f58\u4f65\u4fce\u9fa0\u6c46\u7c74\u516e\u5dfd\u9ec9\u9998\u5181\u5914\u52f9\u530d\u8a07\u5310\u51eb\u5919\u5155\u4ea0\u5156\u4eb3\u886e\u88a4\u4eb5\u8114\u88d2\u7980\u5b34\u8803\u7fb8\u51ab\u51b1\u51bd\u51bc"],["da40","\u8d0e",14,"\u8d20\u8d51\u8d52\u8d57\u8d5f\u8d65\u8d68\u8d69\u8d6a\u8d6c\u8d6e\u8d6f\u8d71\u8d72\u8d78",8,"\u8d82\u8d83\u8d86\u8d87\u8d88\u8d89\u8d8c",4,"\u8d92\u8d93\u8d95",9,"\u8da0\u8da1"],["da80","\u8da2\u8da4",12,"\u8db2\u8db6\u8db7\u8db9\u8dbb\u8dbd\u8dc0\u8dc1\u8dc2\u8dc5\u8dc7\u8dc8\u8dc9\u8dca\u8dcd\u8dd0\u8dd2\u8dd3\u8dd4\u51c7\u5196\u51a2\u51a5\u8ba0\u8ba6\u8ba7\u8baa\u8bb4\u8bb5\u8bb7\u8bc2\u8bc3\u8bcb\u8bcf\u8bce\u8bd2\u8bd3\u8bd4\u8bd6\u8bd8\u8bd9\u8bdc\u8bdf\u8be0\u8be4\u8be8\u8be9\u8bee\u8bf0\u8bf3\u8bf6\u8bf9\u8bfc\u8bff\u8c00\u8c02\u8c04\u8c07\u8c0c\u8c0f\u8c11\u8c12\u8c14\u8c15\u8c16\u8c19\u8c1b\u8c18\u8c1d\u8c1f\u8c20\u8c21\u8c25\u8c27\u8c2a\u8c2b\u8c2e\u8c2f\u8c32\u8c33\u8c35\u8c36\u5369\u537a\u961d\u9622\u9621\u9631\u962a\u963d\u963c\u9642\u9649\u9654\u965f\u9667\u966c\u9672\u9674\u9688\u968d\u9697\u96b0\u9097\u909b\u909d\u9099\u90ac\u90a1\u90b4\u90b3\u90b6\u90ba"],["db40","\u8dd5\u8dd8\u8dd9\u8ddc\u8de0\u8de1\u8de2\u8de5\u8de6\u8de7\u8de9\u8ded\u8dee\u8df0\u8df1\u8df2\u8df4\u8df6\u8dfc\u8dfe",6,"\u8e06\u8e07\u8e08\u8e0b\u8e0d\u8e0e\u8e10\u8e11\u8e12\u8e13\u8e15",7,"\u8e20\u8e21\u8e24",4,"\u8e2b\u8e2d\u8e30\u8e32\u8e33\u8e34\u8e36\u8e37\u8e38\u8e3b\u8e3c\u8e3e"],["db80","\u8e3f\u8e43\u8e45\u8e46\u8e4c",4,"\u8e53",5,"\u8e5a",11,"\u8e67\u8e68\u8e6a\u8e6b\u8e6e\u8e71\u90b8\u90b0\u90cf\u90c5\u90be\u90d0\u90c4\u90c7\u90d3\u90e6\u90e2\u90dc\u90d7\u90db\u90eb\u90ef\u90fe\u9104\u9122\u911e\u9123\u9131\u912f\u9139\u9143\u9146\u520d\u5942\u52a2\u52ac\u52ad\u52be\u54ff\u52d0\u52d6\u52f0\u53df\u71ee\u77cd\u5ef4\u51f5\u51fc\u9b2f\u53b6\u5f01\u755a\u5def\u574c\u57a9\u57a1\u587e\u58bc\u58c5\u58d1\u5729\u572c\u572a\u5733\u5739\u572e\u572f\u575c\u573b\u5742\u5769\u5785\u576b\u5786\u577c\u577b\u5768\u576d\u5776\u5773\u57ad\u57a4\u578c\u57b2\u57cf\u57a7\u57b4\u5793\u57a0\u57d5\u57d8\u57da\u57d9\u57d2\u57b8\u57f4\u57ef\u57f8\u57e4\u57dd"],["dc40","\u8e73\u8e75\u8e77",4,"\u8e7d\u8e7e\u8e80\u8e82\u8e83\u8e84\u8e86\u8e88",6,"\u8e91\u8e92\u8e93\u8e95",6,"\u8e9d\u8e9f",11,"\u8ead\u8eae\u8eb0\u8eb1\u8eb3",6,"\u8ebb",7],["dc80","\u8ec3",10,"\u8ecf",21,"\u580b\u580d\u57fd\u57ed\u5800\u581e\u5819\u5844\u5820\u5865\u586c\u5881\u5889\u589a\u5880\u99a8\u9f19\u61ff\u8279\u827d\u827f\u828f\u828a\u82a8\u8284\u828e\u8291\u8297\u8299\u82ab\u82b8\u82be\u82b0\u82c8\u82ca\u82e3\u8298\u82b7\u82ae\u82cb\u82cc\u82c1\u82a9\u82b4\u82a1\u82aa\u829f\u82c4\u82ce\u82a4\u82e1\u8309\u82f7\u82e4\u830f\u8307\u82dc\u82f4\u82d2\u82d8\u830c\u82fb\u82d3\u8311\u831a\u8306\u8314\u8315\u82e0\u82d5\u831c\u8351\u835b\u835c\u8308\u8392\u833c\u8334\u8331\u839b\u835e\u832f\u834f\u8347\u8343\u835f\u8340\u8317\u8360\u832d\u833a\u8333\u8366\u8365"],["dd40","\u8ee5",62],["dd80","\u8f24",32,"\u8368\u831b\u8369\u836c\u836a\u836d\u836e\u83b0\u8378\u83b3\u83b4\u83a0\u83aa\u8393\u839c\u8385\u837c\u83b6\u83a9\u837d\u83b8\u837b\u8398\u839e\u83a8\u83ba\u83bc\u83c1\u8401\u83e5\u83d8\u5807\u8418\u840b\u83dd\u83fd\u83d6\u841c\u8438\u8411\u8406\u83d4\u83df\u840f\u8403\u83f8\u83f9\u83ea\u83c5\u83c0\u8426\u83f0\u83e1\u845c\u8451\u845a\u8459\u8473\u8487\u8488\u847a\u8489\u8478\u843c\u8446\u8469\u8476\u848c\u848e\u8431\u846d\u84c1\u84cd\u84d0\u84e6\u84bd\u84d3\u84ca\u84bf\u84ba\u84e0\u84a1\u84b9\u84b4\u8497\u84e5\u84e3\u850c\u750d\u8538\u84f0\u8539\u851f\u853a"],["de40","\u8f45",32,"\u8f6a\u8f80\u8f8c\u8f92\u8f9d\u8fa0\u8fa1\u8fa2\u8fa4\u8fa5\u8fa6\u8fa7\u8faa\u8fac\u8fad\u8fae\u8faf\u8fb2\u8fb3\u8fb4\u8fb5\u8fb7\u8fb8\u8fba\u8fbb\u8fbc\u8fbf\u8fc0\u8fc3\u8fc6"],["de80","\u8fc9",4,"\u8fcf\u8fd2\u8fd6\u8fd7\u8fda\u8fe0\u8fe1\u8fe3\u8fe7\u8fec\u8fef\u8ff1\u8ff2\u8ff4\u8ff5\u8ff6\u8ffa\u8ffb\u8ffc\u8ffe\u8fff\u9007\u9008\u900c\u900e\u9013\u9015\u9018\u8556\u853b\u84ff\u84fc\u8559\u8548\u8568\u8564\u855e\u857a\u77a2\u8543\u8572\u857b\u85a4\u85a8\u8587\u858f\u8579\u85ae\u859c\u8585\u85b9\u85b7\u85b0\u85d3\u85c1\u85dc\u85ff\u8627\u8605\u8629\u8616\u863c\u5efe\u5f08\u593c\u5941\u8037\u5955\u595a\u5958\u530f\u5c22\u5c25\u5c2c\u5c34\u624c\u626a\u629f\u62bb\u62ca\u62da\u62d7\u62ee\u6322\u62f6\u6339\u634b\u6343\u63ad\u63f6\u6371\u637a\u638e\u63b4\u636d\u63ac\u638a\u6369\u63ae\u63bc\u63f2\u63f8\u63e0\u63ff\u63c4\u63de\u63ce\u6452\u63c6\u63be\u6445\u6441\u640b\u641b\u6420\u640c\u6426\u6421\u645e\u6484\u646d\u6496"],["df40","\u9019\u901c\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903a\u903d\u903f\u9040\u9043\u9045\u9046\u9048",4,"\u904e\u9054\u9055\u9056\u9059\u905a\u905c",5,"\u9064\u9066\u9067\u9069\u906a\u906b\u906c\u906f",4,"\u9076",6,"\u907e\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908a\u908c",4,"\u9092\u9094\u9096\u9098\u909a\u909c\u909e\u909f\u90a0\u90a4\u90a5\u90a7\u90a8\u90a9\u90ab\u90ad\u90b2\u90b7\u90bc\u90bd\u90bf\u90c0\u647a\u64b7\u64b8\u6499\u64ba\u64c0\u64d0\u64d7\u64e4\u64e2\u6509\u6525\u652e\u5f0b\u5fd2\u7519\u5f11\u535f\u53f1\u53fd\u53e9\u53e8\u53fb\u5412\u5416\u5406\u544b\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549a\u549b\u5484\u5476\u5466\u549d\u54d0\u54ad\u54c2\u54b4\u54d2\u54a7\u54a6\u54d3\u54d4\u5472\u54a3\u54d5\u54bb\u54bf\u54cc\u54d9\u54da\u54dc\u54a9\u54aa\u54a4\u54dd\u54cf\u54de\u551b\u54e7\u5520\u54fd\u5514\u54f3\u5522\u5523\u550f\u5511\u5527\u552a\u5567\u558f\u55b5\u5549\u556d\u5541\u5555\u553f\u5550\u553c"],["e040","\u90c2\u90c3\u90c6\u90c8\u90c9\u90cb\u90cc\u90cd\u90d2\u90d4\u90d5\u90d6\u90d8\u90d9\u90da\u90de\u90df\u90e0\u90e3\u90e4\u90e5\u90e9\u90ea\u90ec\u90ee\u90f0\u90f1\u90f2\u90f3\u90f5\u90f6\u90f7\u90f9\u90fa\u90fb\u90fc\u90ff\u9100\u9101\u9103\u9105",19,"\u911a\u911b\u911c"],["e080","\u911d\u911f\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913a",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555c\u558b\u55d2\u5583\u55b1\u55b9\u5588\u5581\u559f\u557e\u55d6\u5591\u557b\u55df\u55bd\u55be\u5594\u5599\u55ea\u55f7\u55c9\u561f\u55d1\u55eb\u55ec\u55d4\u55e6\u55dd\u55c4\u55ef\u55e5\u55f2\u55f3\u55cc\u55cd\u55e8\u55f5\u55e4\u8f94\u561e\u5608\u560c\u5601\u5624\u5623\u55fe\u5600\u5627\u562d\u5658\u5639\u5657\u562c\u564d\u5662\u5659\u565c\u564c\u5654\u5686\u5664\u5671\u566b\u567b\u567c\u5685\u5693\u56af\u56d4\u56d7\u56dd\u56e1\u56f5\u56eb\u56f9\u56ff\u5704\u570a\u5709\u571c\u5e0f\u5e19\u5e14\u5e11\u5e31\u5e3b\u5e3c"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915b\u915c\u915f\u9160\u9166\u9167\u9168\u916b\u916d\u9173\u917a\u917b\u917c\u9180",4,"\u9186\u9188\u918a\u918e\u918f\u9193",6,"\u919c",5,"\u91a4",5,"\u91ab\u91ac\u91b0\u91b1\u91b2\u91b3\u91b6\u91b7\u91b8\u91b9\u91bb"],["e180","\u91bc",10,"\u91c8\u91cb\u91d0\u91d2",9,"\u91dd",8,"\u5e37\u5e44\u5e54\u5e5b\u5e5e\u5e61\u5c8c\u5c7a\u5c8d\u5c90\u5c96\u5c88\u5c98\u5c99\u5c91\u5c9a\u5c9c\u5cb5\u5ca2\u5cbd\u5cac\u5cab\u5cb1\u5ca3\u5cc1\u5cb7\u5cc4\u5cd2\u5ce4\u5ccb\u5ce5\u5d02\u5d03\u5d27\u5d26\u5d2e\u5d24\u5d1e\u5d06\u5d1b\u5d58\u5d3e\u5d34\u5d3d\u5d6c\u5d5b\u5d6f\u5d5d\u5d6b\u5d4b\u5d4a\u5d69\u5d74\u5d82\u5d99\u5d9d\u8c73\u5db7\u5dc5\u5f73\u5f77\u5f82\u5f87\u5f89\u5f8c\u5f95\u5f99\u5f9c\u5fa8\u5fad\u5fb5\u5fbc\u8862\u5f61\u72ad\u72b0\u72b4\u72b7\u72b8\u72c3\u72c1\u72ce\u72cd\u72d2\u72e8\u72ef\u72e9\u72f2\u72f4\u72f7\u7301\u72f3\u7303\u72fa"],["e240","\u91e6",62],["e280","\u9225",32,"\u72fb\u7317\u7313\u7321\u730a\u731e\u731d\u7315\u7322\u7339\u7325\u732c\u7338\u7331\u7350\u734d\u7357\u7360\u736c\u736f\u737e\u821b\u5925\u98e7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997d\u9980\u9984\u9987\u998a\u998d\u9990\u9991\u9993\u9994\u9995\u5e80\u5e91\u5e8b\u5e96\u5ea5\u5ea0\u5eb9\u5eb5\u5ebe\u5eb3\u8d53\u5ed2\u5ed1\u5edb\u5ee8\u5eea\u81ba\u5fc4\u5fc9\u5fd6\u5fcf\u6003\u5fee\u6004\u5fe1\u5fe4\u5ffe\u6005\u6006\u5fea\u5fed\u5ff8\u6019\u6035\u6026\u601b\u600f\u600d\u6029\u602b\u600a\u603f\u6021\u6078\u6079\u607b\u607a\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928f",24,"\u606a\u607d\u6096\u609a\u60ad\u609d\u6083\u6092\u608c\u609b\u60ec\u60bb\u60b1\u60dd\u60d8\u60c6\u60da\u60b4\u6120\u6126\u6115\u6123\u60f4\u6100\u610e\u612b\u614a\u6175\u61ac\u6194\u61a7\u61b7\u61d4\u61f5\u5fdd\u96b3\u95e9\u95eb\u95f1\u95f3\u95f5\u95f6\u95fc\u95fe\u9603\u9604\u9606\u9608\u960a\u960b\u960c\u960d\u960f\u9612\u9615\u9616\u9617\u9619\u961a\u4e2c\u723f\u6215\u6c35\u6c54\u6c5c\u6c4a\u6ca3\u6c85\u6c90\u6c94\u6c8c\u6c68\u6c69\u6c74\u6c76\u6c86\u6ca9\u6cd0\u6cd4\u6cad\u6cf7\u6cf8\u6cf1\u6cd7\u6cb2\u6ce0\u6cd6\u6cfa\u6ceb\u6cee\u6cb1\u6cd3\u6cef\u6cfe"],["e440","\u92a8",5,"\u92af",24,"\u92c9",31],["e480","\u92e9",32,"\u6d39\u6d27\u6d0c\u6d43\u6d48\u6d07\u6d04\u6d19\u6d0e\u6d2b\u6d4d\u6d2e\u6d35\u6d1a\u6d4f\u6d52\u6d54\u6d33\u6d91\u6d6f\u6d9e\u6da0\u6d5e\u6d93\u6d94\u6d5c\u6d60\u6d7c\u6d63\u6e1a\u6dc7\u6dc5\u6dde\u6e0e\u6dbf\u6de0\u6e11\u6de6\u6ddd\u6dd9\u6e16\u6dab\u6e0c\u6dae\u6e2b\u6e6e\u6e4e\u6e6b\u6eb2\u6e5f\u6e86\u6e53\u6e54\u6e32\u6e25\u6e44\u6edf\u6eb1\u6e98\u6ee0\u6f2d\u6ee2\u6ea5\u6ea7\u6ebd\u6ebb\u6eb7\u6ed7\u6eb4\u6ecf\u6e8f\u6ec2\u6e9f\u6f62\u6f46\u6f47\u6f24\u6f15\u6ef9\u6f2f\u6f36\u6f4b\u6f74\u6f2a\u6f09\u6f29\u6f89\u6f8d\u6f8c\u6f78\u6f72\u6f7c\u6f7a\u6fd1"],["e540","\u930a",51,"\u933f",10],["e580","\u934a",31,"\u936b\u6fc9\u6fa7\u6fb9\u6fb6\u6fc2\u6fe1\u6fee\u6fde\u6fe0\u6fef\u701a\u7023\u701b\u7039\u7035\u704f\u705e\u5b80\u5b84\u5b95\u5b93\u5ba5\u5bb8\u752f\u9a9e\u6434\u5be4\u5bee\u8930\u5bf0\u8e47\u8b07\u8fb6\u8fd3\u8fd5\u8fe5\u8fee\u8fe4\u8fe9\u8fe6\u8ff3\u8fe8\u9005\u9004\u900b\u9026\u9011\u900d\u9016\u9021\u9035\u9036\u902d\u902f\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905b\u66b9\u9074\u907d\u9082\u9088\u9083\u908b\u5f50\u5f57\u5f56\u5f58\u5c3b\u54ab\u5c50\u5c59\u5b71\u5c63\u5c66\u7fbc\u5f2a\u5f29\u5f2d\u8274\u5f3c\u9b3b\u5c6e\u5981\u5983\u598d\u59a9\u59aa\u59a3"],["e640","\u936c",34,"\u9390",27],["e680","\u93ac",29,"\u93cb\u93cc\u93cd\u5997\u59ca\u59ab\u599e\u59a4\u59d2\u59b2\u59af\u59d7\u59be\u5a05\u5a06\u59dd\u5a08\u59e3\u59d8\u59f9\u5a0c\u5a09\u5a32\u5a34\u5a11\u5a23\u5a13\u5a40\u5a67\u5a4a\u5a55\u5a3c\u5a62\u5a75\u80ec\u5aaa\u5a9b\u5a77\u5a7a\u5abe\u5aeb\u5ab2\u5ad2\u5ad4\u5ab8\u5ae0\u5ae3\u5af1\u5ad6\u5ae6\u5ad8\u5adc\u5b09\u5b17\u5b16\u5b32\u5b37\u5b40\u5c15\u5c1c\u5b5a\u5b65\u5b73\u5b51\u5b53\u5b62\u9a75\u9a77\u9a78\u9a7a\u9a7f\u9a7d\u9a80\u9a81\u9a85\u9a88\u9a8a\u9a90\u9a92\u9a93\u9a96\u9a98\u9a9b\u9a9c\u9a9d\u9a9f\u9aa0\u9aa2\u9aa3\u9aa5\u9aa7\u7e9f\u7ea1\u7ea3\u7ea5\u7ea8\u7ea9"],["e740","\u93ce",7,"\u93d7",54],["e780","\u940e",32,"\u7ead\u7eb0\u7ebe\u7ec0\u7ec1\u7ec2\u7ec9\u7ecb\u7ecc\u7ed0\u7ed4\u7ed7\u7edb\u7ee0\u7ee1\u7ee8\u7eeb\u7eee\u7eef\u7ef1\u7ef2\u7f0d\u7ef6\u7efa\u7efb\u7efe\u7f01\u7f02\u7f03\u7f07\u7f08\u7f0b\u7f0c\u7f0f\u7f11\u7f12\u7f17\u7f19\u7f1c\u7f1b\u7f1f\u7f21",6,"\u7f2a\u7f2b\u7f2c\u7f2d\u7f2f",4,"\u7f35\u5e7a\u757f\u5ddb\u753e\u9095\u738e\u7391\u73ae\u73a2\u739f\u73cf\u73c2\u73d1\u73b7\u73b3\u73c0\u73c9\u73c8\u73e5\u73d9\u987c\u740a\u73e9\u73e7\u73de\u73ba\u73f2\u740f\u742a\u745b\u7426\u7425\u7428\u7430\u742e\u742c"],["e840","\u942f",14,"\u943f",43,"\u946c\u946d\u946e\u946f"],["e880","\u9470",20,"\u9491\u9496\u9498\u94c7\u94cf\u94d3\u94d4\u94da\u94e6\u94fb\u951c\u9520\u741b\u741a\u7441\u745c\u7457\u7455\u7459\u7477\u746d\u747e\u749c\u748e\u7480\u7481\u7487\u748b\u749e\u74a8\u74a9\u7490\u74a7\u74d2\u74ba\u97ea\u97eb\u97ec\u674c\u6753\u675e\u6748\u6769\u67a5\u6787\u676a\u6773\u6798\u67a7\u6775\u67a8\u679e\u67ad\u678b\u6777\u677c\u67f0\u6809\u67d8\u680a\u67e9\u67b0\u680c\u67d9\u67b5\u67da\u67b3\u67dd\u6800\u67c3\u67b8\u67e2\u680e\u67c1\u67fd\u6832\u6833\u6860\u6861\u684e\u6862\u6844\u6864\u6883\u681d\u6855\u6866\u6841\u6867\u6840\u683e\u684a\u6849\u6829\u68b5\u688f\u6874\u6877\u6893\u686b\u68c2\u696e\u68fc\u691f\u6920\u68f9"],["e940","\u9527\u9533\u953d\u9543\u9548\u954b\u9555\u955a\u9560\u956e\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95ab",32,"\u6924\u68f0\u690b\u6901\u6957\u68e3\u6910\u6971\u6939\u6960\u6942\u695d\u6984\u696b\u6980\u6998\u6978\u6934\u69cc\u6987\u6988\u69ce\u6989\u6966\u6963\u6979\u699b\u69a7\u69bb\u69ab\u69ad\u69d4\u69b1\u69c1\u69ca\u69df\u6995\u69e0\u698d\u69ff\u6a2f\u69ed\u6a17\u6a18\u6a65\u69f2\u6a44\u6a3e\u6aa0\u6a50\u6a5b\u6a35\u6a8e\u6a79\u6a3d\u6a28\u6a58\u6a7c\u6a91\u6a90\u6aa9\u6a97\u6aab\u7337\u7352\u6b81\u6b82\u6b87\u6b84\u6b92\u6b93\u6b8d\u6b9a\u6b9b\u6ba1\u6baa\u8f6b\u8f6d\u8f71\u8f72\u8f73\u8f75\u8f76\u8f78\u8f77\u8f79\u8f7a\u8f7c\u8f7e\u8f81\u8f82\u8f84\u8f87\u8f8b"],["ea40","\u95cc",27,"\u95ec\u95ff\u9607\u9613\u9618\u961b\u961e\u9620\u9623",6,"\u962b\u962c\u962d\u962f\u9630\u9637\u9638\u9639\u963a\u963e\u9641\u9643\u964a\u964e\u964f\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965a\u965c\u965d\u965e\u9660\u9663\u9665\u9666\u966b\u966d",4,"\u9673\u9678",12,"\u9687\u9689\u968a\u8f8d\u8f8e\u8f8f\u8f98\u8f9a\u8ece\u620b\u6217\u621b\u621f\u6222\u6221\u6225\u6224\u622c\u81e7\u74ef\u74f4\u74ff\u750f\u7511\u7513\u6534\u65ee\u65ef\u65f0\u660a\u6619\u6772\u6603\u6615\u6600\u7085\u66f7\u661d\u6634\u6631\u6636\u6635\u8006\u665f\u6654\u6641\u664f\u6656\u6661\u6657\u6677\u6684\u668c\u66a7\u669d\u66be\u66db\u66dc\u66e6\u66e9\u8d32\u8d33\u8d36\u8d3b\u8d3d\u8d40\u8d45\u8d46\u8d48\u8d49\u8d47\u8d4d\u8d55\u8d59\u89c7\u89ca\u89cb\u89cc\u89ce\u89cf\u89d0\u89d1\u726e\u729f\u725d\u7266\u726f\u727e\u727f\u7284\u728b\u728d\u728f\u7292\u6308\u6332\u63b0"],["eb40","\u968c\u968e\u9691\u9692\u9693\u9695\u9696\u969a\u969b\u969d",9,"\u96a8",7,"\u96b1\u96b2\u96b4\u96b5\u96b7\u96b8\u96ba\u96bb\u96bf\u96c2\u96c3\u96c8\u96ca\u96cb\u96d0\u96d1\u96d3\u96d4\u96d6",9,"\u96e1",6,"\u96eb"],["eb80","\u96ec\u96ed\u96ee\u96f0\u96f1\u96f2\u96f4\u96f5\u96f8\u96fa\u96fb\u96fc\u96fd\u96ff\u9702\u9703\u9705\u970a\u970b\u970c\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971d\u971f\u9720\u643f\u64d8\u8004\u6bea\u6bf3\u6bfd\u6bf5\u6bf9\u6c05\u6c07\u6c06\u6c0d\u6c15\u6c18\u6c19\u6c1a\u6c21\u6c29\u6c24\u6c2a\u6c32\u6535\u6555\u656b\u724d\u7252\u7256\u7230\u8662\u5216\u809f\u809c\u8093\u80bc\u670a\u80bd\u80b1\u80ab\u80ad\u80b4\u80b7\u80e7\u80e8\u80e9\u80ea\u80db\u80c2\u80c4\u80d9\u80cd\u80d7\u6710\u80dd\u80eb\u80f1\u80f4\u80ed\u810d\u810e\u80f2\u80fc\u6715\u8112\u8c5a\u8136\u811e\u812c\u8118\u8132\u8148\u814c\u8153\u8174\u8159\u815a\u8171\u8160\u8169\u817c\u817d\u816d\u8167\u584d\u5ab5\u8188\u8182\u8191\u6ed5\u81a3\u81aa\u81cc\u6726\u81ca\u81bb"],["ec40","\u9721",8,"\u972b\u972c\u972e\u972f\u9731\u9733",4,"\u973a\u973b\u973c\u973d\u973f",18,"\u9754\u9755\u9757\u9758\u975a\u975c\u975d\u975f\u9763\u9764\u9766\u9767\u9768\u976a",7],["ec80","\u9772\u9775\u9777",4,"\u977d",7,"\u9786",4,"\u978c\u978e\u978f\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81c1\u81a6\u6b24\u6b37\u6b39\u6b43\u6b46\u6b59\u98d1\u98d2\u98d3\u98d5\u98d9\u98da\u6bb3\u5f40\u6bc2\u89f3\u6590\u9f51\u6593\u65bc\u65c6\u65c4\u65c3\u65cc\u65ce\u65d2\u65d6\u7080\u709c\u7096\u709d\u70bb\u70c0\u70b7\u70ab\u70b1\u70e8\u70ca\u7110\u7113\u7116\u712f\u7131\u7173\u715c\u7168\u7145\u7172\u714a\u7178\u717a\u7198\u71b3\u71b5\u71a8\u71a0\u71e0\u71d4\u71e7\u71f9\u721d\u7228\u706c\u7118\u7166\u71b9\u623e\u623d\u6243\u6248\u6249\u793b\u7940\u7946\u7949\u795b\u795c\u7953\u795a\u7962\u7957\u7960\u796f\u7967\u797a\u7985\u798a\u799a\u79a7\u79b3\u5fd1\u5fd0"],["ed40","\u979e\u979f\u97a1\u97a2\u97a4",6,"\u97ac\u97ae\u97b0\u97b1\u97b3\u97b5",46],["ed80","\u97e4\u97e5\u97e8\u97ee",4,"\u97f4\u97f7",23,"\u603c\u605d\u605a\u6067\u6041\u6059\u6063\u60ab\u6106\u610d\u615d\u61a9\u619d\u61cb\u61d1\u6206\u8080\u807f\u6c93\u6cf6\u6dfc\u77f6\u77f8\u7800\u7809\u7817\u7818\u7811\u65ab\u782d\u781c\u781d\u7839\u783a\u783b\u781f\u783c\u7825\u782c\u7823\u7829\u784e\u786d\u7856\u7857\u7826\u7850\u7847\u784c\u786a\u789b\u7893\u789a\u7887\u789c\u78a1\u78a3\u78b2\u78b9\u78a5\u78d4\u78d9\u78c9\u78ec\u78f2\u7905\u78f4\u7913\u7924\u791e\u7934\u9f9b\u9ef9\u9efb\u9efc\u76f1\u7704\u770d\u76f9\u7707\u7708\u771a\u7722\u7719\u772d\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775a\u7768"],["ee40","\u980f",62],["ee80","\u984e",32,"\u7762\u7765\u777f\u778d\u777d\u7780\u778c\u7791\u779f\u77a0\u77b0\u77b5\u77bd\u753a\u7540\u754e\u754b\u7548\u755b\u7572\u7579\u7583\u7f58\u7f61\u7f5f\u8a48\u7f68\u7f74\u7f71\u7f79\u7f81\u7f7e\u76cd\u76e5\u8832\u9485\u9486\u9487\u948b\u948a\u948c\u948d\u948f\u9490\u9494\u9497\u9495\u949a\u949b\u949c\u94a3\u94a4\u94ab\u94aa\u94ad\u94ac\u94af\u94b0\u94b2\u94b4\u94b6",4,"\u94bc\u94bd\u94bf\u94c4\u94c8",6,"\u94d0\u94d1\u94d2\u94d5\u94d6\u94d7\u94d9\u94d8\u94db\u94de\u94df\u94e0\u94e2\u94e4\u94e5\u94e7\u94e8\u94ea"],["ef40","\u986f",5,"\u988b\u988e\u9892\u9895\u9899\u98a3\u98a8",37,"\u98cf\u98d0\u98d4\u98d6\u98d7\u98db\u98dc\u98dd\u98e0",4],["ef80","\u98e5\u98e6\u98e9",30,"\u94e9\u94eb\u94ee\u94ef\u94f3\u94f4\u94f5\u94f7\u94f9\u94fc\u94fd\u94ff\u9503\u9502\u9506\u9507\u9509\u950a\u950d\u950e\u950f\u9512",4,"\u9518\u951b\u951d\u951e\u951f\u9522\u952a\u952b\u9529\u952c\u9531\u9532\u9534\u9536\u9537\u9538\u953c\u953e\u953f\u9542\u9535\u9544\u9545\u9546\u9549\u954c\u954e\u954f\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955b\u955e\u955f\u955d\u9561\u9562\u9564",8,"\u956f\u9571\u9572\u9573\u953a\u77e7\u77ec\u96c9\u79d5\u79ed\u79e3\u79eb\u7a06\u5d47\u7a03\u7a02\u7a1e\u7a14"],["f040","\u9908",4,"\u990e\u990f\u9911",28,"\u992f",26],["f080","\u994a",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997b\u997e\u9982\u9983\u9989\u7a39\u7a37\u7a51\u9ecf\u99a5\u7a70\u7688\u768e\u7693\u7699\u76a4\u74de\u74e0\u752c\u9e20\u9e22\u9e28",4,"\u9e32\u9e31\u9e36\u9e38\u9e37\u9e39\u9e3a\u9e3e\u9e41\u9e42\u9e44\u9e46\u9e47\u9e48\u9e49\u9e4b\u9e4c\u9e4e\u9e51\u9e55\u9e57\u9e5a\u9e5b\u9e5c\u9e5e\u9e63\u9e66",6,"\u9e71\u9e6d\u9e73\u7592\u7594\u7596\u75a0\u759d\u75ac\u75a3\u75b3\u75b4\u75b8\u75c4\u75b1\u75b0\u75c3\u75c2\u75d6\u75cd\u75e3\u75e8\u75e6\u75e4\u75eb\u75e7\u7603\u75f1\u75fc\u75ff\u7610\u7600\u7605\u760c\u7617\u760a\u7625\u7618\u7615\u7619"],["f140","\u998c\u998e\u999a",10,"\u99a6\u99a7\u99a9",47],["f180","\u99d9",32,"\u761b\u763c\u7622\u7620\u7640\u762d\u7630\u763f\u7635\u7643\u763e\u7633\u764d\u765e\u7654\u765c\u7656\u766b\u766f\u7fca\u7ae6\u7a78\u7a79\u7a80\u7a86\u7a88\u7a95\u7aa6\u7aa0\u7aac\u7aa8\u7aad\u7ab3\u8864\u8869\u8872\u887d\u887f\u8882\u88a2\u88c6\u88b7\u88bc\u88c9\u88e2\u88ce\u88e3\u88e5\u88f1\u891a\u88fc\u88e8\u88fe\u88f0\u8921\u8919\u8913\u891b\u890a\u8934\u892b\u8936\u8941\u8966\u897b\u758b\u80e5\u76b2\u76b4\u77dc\u8012\u8014\u8016\u801c\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800b\u8035\u8043\u8046\u804d\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99fa",62],["f280","\u9a39",32,"\u9889\u988c\u988d\u988f\u9894\u989a\u989b\u989e\u989f\u98a1\u98a2\u98a5\u98a6\u864d\u8654\u866c\u866e\u867f\u867a\u867c\u867b\u86a8\u868d\u868b\u86ac\u869d\u86a7\u86a3\u86aa\u8693\u86a9\u86b6\u86c4\u86b5\u86ce\u86b0\u86ba\u86b1\u86af\u86c9\u86cf\u86b4\u86e9\u86f1\u86f2\u86ed\u86f3\u86d0\u8713\u86de\u86f4\u86df\u86d8\u86d1\u8703\u8707\u86f8\u8708\u870a\u870d\u8709\u8723\u873b\u871e\u8725\u872e\u871a\u873e\u8748\u8734\u8731\u8729\u8737\u873f\u8782\u8722\u877d\u877e\u877b\u8760\u8770\u874c\u876e\u878b\u8753\u8763\u877c\u8764\u8759\u8765\u8793\u87af\u87a8\u87d2"],["f340","\u9a5a",17,"\u9a72\u9a83\u9a89\u9a8d\u9a8e\u9a94\u9a95\u9a99\u9aa6\u9aa9",6,"\u9ab2\u9ab3\u9ab4\u9ab5\u9ab9\u9abb\u9abd\u9abe\u9abf\u9ac3\u9ac4\u9ac6",4,"\u9acd\u9ace\u9acf\u9ad0\u9ad2\u9ad4\u9ad5\u9ad6\u9ad7\u9ad9\u9ada\u9adb\u9adc"],["f380","\u9add\u9ade\u9ae0\u9ae2\u9ae3\u9ae4\u9ae5\u9ae7\u9ae8\u9ae9\u9aea\u9aec\u9aee\u9af0",8,"\u9afa\u9afc",6,"\u9b04\u9b05\u9b06\u87c6\u8788\u8785\u87ad\u8797\u8783\u87ab\u87e5\u87ac\u87b5\u87b3\u87cb\u87d3\u87bd\u87d1\u87c0\u87ca\u87db\u87ea\u87e0\u87ee\u8816\u8813\u87fe\u880a\u881b\u8821\u8839\u883c\u7f36\u7f42\u7f44\u7f45\u8210\u7afa\u7afd\u7b08\u7b03\u7b04\u7b15\u7b0a\u7b2b\u7b0f\u7b47\u7b38\u7b2a\u7b19\u7b2e\u7b31\u7b20\u7b25\u7b24\u7b33\u7b3e\u7b1e\u7b58\u7b5a\u7b45\u7b75\u7b4c\u7b5d\u7b60\u7b6e\u7b7b\u7b62\u7b72\u7b71\u7b90\u7ba6\u7ba7\u7bb8\u7bac\u7b9d\u7ba8\u7b85\u7baa\u7b9c\u7ba2\u7bab\u7bb4\u7bd1\u7bc1\u7bcc\u7bdd\u7bda\u7be5\u7be6\u7bea\u7c0c\u7bfe\u7bfc\u7c0f\u7c16\u7c0b"],["f440","\u9b07\u9b09",5,"\u9b10\u9b11\u9b12\u9b14",10,"\u9b20\u9b21\u9b22\u9b24",10,"\u9b30\u9b31\u9b33",7,"\u9b3d\u9b3e\u9b3f\u9b40\u9b46\u9b4a\u9b4b\u9b4c\u9b4e\u9b50\u9b52\u9b53\u9b55",5],["f480","\u9b5b",32,"\u7c1f\u7c2a\u7c26\u7c38\u7c41\u7c40\u81fe\u8201\u8202\u8204\u81ec\u8844\u8221\u8222\u8223\u822d\u822f\u8228\u822b\u8238\u823b\u8233\u8234\u823e\u8244\u8249\u824b\u824f\u825a\u825f\u8268\u887e\u8885\u8888\u88d8\u88df\u895e\u7f9d\u7f9f\u7fa7\u7faf\u7fb0\u7fb2\u7c7c\u6549\u7c91\u7c9d\u7c9c\u7c9e\u7ca2\u7cb2\u7cbc\u7cbd\u7cc1\u7cc7\u7ccc\u7ccd\u7cc8\u7cc5\u7cd7\u7ce8\u826e\u66a8\u7fbf\u7fce\u7fd5\u7fe5\u7fe1\u7fe6\u7fe9\u7fee\u7ff3\u7cf8\u7d77\u7da6\u7dae\u7e47\u7e9b\u9eb8\u9eb4\u8d73\u8d84\u8d94\u8d91\u8db1\u8d67\u8d6d\u8c47\u8c49\u914a\u9150\u914e\u914f\u9164"],["f540","\u9b7c",62],["f580","\u9bbb",32,"\u9162\u9161\u9170\u9169\u916f\u917d\u917e\u9172\u9174\u9179\u918c\u9185\u9190\u918d\u9191\u91a2\u91a3\u91aa\u91ad\u91ae\u91af\u91b5\u91b4\u91ba\u8c55\u9e7e\u8db8\u8deb\u8e05\u8e59\u8e69\u8db5\u8dbf\u8dbc\u8dba\u8dc4\u8dd6\u8dd7\u8dda\u8dde\u8dce\u8dcf\u8ddb\u8dc6\u8dec\u8df7\u8df8\u8de3\u8df9\u8dfb\u8de4\u8e09\u8dfd\u8e14\u8e1d\u8e1f\u8e2c\u8e2e\u8e23\u8e2f\u8e3a\u8e40\u8e39\u8e35\u8e3d\u8e31\u8e49\u8e41\u8e42\u8e51\u8e52\u8e4a\u8e70\u8e76\u8e7c\u8e6f\u8e74\u8e85\u8e8f\u8e94\u8e90\u8e9c\u8e9e\u8c78\u8c82\u8c8a\u8c85\u8c98\u8c94\u659b\u89d6\u89de\u89da\u89dc"],["f640","\u9bdc",62],["f680","\u9c1b",32,"\u89e5\u89eb\u89ef\u8a3e\u8b26\u9753\u96e9\u96f3\u96ef\u9706\u9701\u9708\u970f\u970e\u972a\u972d\u9730\u973e\u9f80\u9f83\u9f85",5,"\u9f8c\u9efe\u9f0b\u9f0d\u96b9\u96bc\u96bd\u96ce\u96d2\u77bf\u96e0\u928e\u92ae\u92c8\u933e\u936a\u93ca\u938f\u943e\u946b\u9c7f\u9c82\u9c85\u9c86\u9c87\u9c88\u7a23\u9c8b\u9c8e\u9c90\u9c91\u9c92\u9c94\u9c95\u9c9a\u9c9b\u9c9e",5,"\u9ca5",4,"\u9cab\u9cad\u9cae\u9cb0",7,"\u9cba\u9cbb\u9cbc\u9cbd\u9cc4\u9cc5\u9cc6\u9cc7\u9cca\u9ccb"],["f740","\u9c3c",62],["f780","\u9c7b\u9c7d\u9c7e\u9c80\u9c83\u9c84\u9c89\u9c8a\u9c8c\u9c8f\u9c93\u9c96\u9c97\u9c98\u9c99\u9c9d\u9caa\u9cac\u9caf\u9cb9\u9cbe",4,"\u9cc8\u9cc9\u9cd1\u9cd2\u9cda\u9cdb\u9ce0\u9ce1\u9ccc",4,"\u9cd3\u9cd4\u9cd5\u9cd7\u9cd8\u9cd9\u9cdc\u9cdd\u9cdf\u9ce2\u977c\u9785\u9791\u9792\u9794\u97af\u97ab\u97a3\u97b2\u97b4\u9ab1\u9ab0\u9ab7\u9e58\u9ab6\u9aba\u9abc\u9ac1\u9ac0\u9ac5\u9ac2\u9acb\u9acc\u9ad1\u9b45\u9b43\u9b47\u9b49\u9b48\u9b4d\u9b51\u98e8\u990d\u992e\u9955\u9954\u9adf\u9ae1\u9ae6\u9aef\u9aeb\u9afb\u9aed\u9af9\u9b08\u9b0f\u9b13\u9b1f\u9b23\u9ebd\u9ebe\u7e3b\u9e82\u9e87\u9e88\u9e8b\u9e92\u93d6\u9e9d\u9e9f\u9edb\u9edc\u9edd\u9ee0\u9edf\u9ee2\u9ee9\u9ee7\u9ee5\u9eea\u9eef\u9f22\u9f2c\u9f2f\u9f39\u9f37\u9f3d\u9f3e\u9f44"],["f840","\u9ce3",62],["f880","\u9d22",32],["f940","\u9d43",62],["f980","\u9d82",32],["fa40","\u9da3",62],["fa80","\u9de2",32],["fb40","\u9e03",27,"\u9e24\u9e27\u9e2e\u9e30\u9e34\u9e3b\u9e3c\u9e40\u9e4d\u9e50\u9e52\u9e53\u9e54\u9e56\u9e59\u9e5d\u9e5f\u9e60\u9e61\u9e62\u9e65\u9e6e\u9e6f\u9e72\u9e74",9,"\u9e80"],["fb80","\u9e81\u9e83\u9e84\u9e85\u9e86\u9e89\u9e8a\u9e8c",5,"\u9e94",8,"\u9e9e\u9ea0",5,"\u9ea7\u9ea8\u9ea9\u9eaa"],["fc40","\u9eab",8,"\u9eb5\u9eb6\u9eb7\u9eb9\u9eba\u9ebc\u9ebf",4,"\u9ec5\u9ec6\u9ec7\u9ec8\u9eca\u9ecb\u9ecc\u9ed0\u9ed2\u9ed3\u9ed5\u9ed6\u9ed7\u9ed9\u9eda\u9ede\u9ee1\u9ee3\u9ee4\u9ee6\u9ee8\u9eeb\u9eec\u9eed\u9eee\u9ef0",8,"\u9efa\u9efd\u9eff",6],["fc80","\u9f06",4,"\u9f0c\u9f0f\u9f11\u9f12\u9f14\u9f15\u9f16\u9f18\u9f1a",5,"\u9f21\u9f23",8,"\u9f2d\u9f2e\u9f30\u9f31"],["fd40","\u9f32",4,"\u9f38\u9f3a\u9f3c\u9f3f",4,"\u9f45",10,"\u9f52",38],["fd80","\u9f79",5,"\u9f81\u9f82\u9f8d",11,"\u9f9c\u9f9d\u9f9e\u9fa1",4,"\uf92c\uf979\uf995\uf9e7\uf9f1"],["fe40","\ufa0c\ufa0d\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa18\ufa1f\ufa20\ufa21\ufa23\ufa24\ufa27\ufa28\ufa29"]]},{}],14:[function(require,module,exports){module.exports=[["0","\0",127],["8141","\uac02\uac03\uac05\uac06\uac0b",4,"\uac18\uac1e\uac1f\uac21\uac22\uac23\uac25",6,"\uac2e\uac32\uac33\uac34"],["8161","\uac35\uac36\uac37\uac3a\uac3b\uac3d\uac3e\uac3f\uac41",9,"\uac4c\uac4e",5,"\uac55"],["8181","\uac56\uac57\uac59\uac5a\uac5b\uac5d",18,"\uac72\uac73\uac75\uac76\uac79\uac7b",4,"\uac82\uac87\uac88\uac8d\uac8e\uac8f\uac91\uac92\uac93\uac95",6,"\uac9e\uaca2",5,"\uacab\uacad\uacae\uacb1",6,"\uacba\uacbe\uacbf\uacc0\uacc2\uacc3\uacc5\uacc6\uacc7\uacc9\uacca\uaccb\uaccd",7,"\uacd6\uacd8",7,"\uace2\uace3\uace5\uace6\uace9\uaceb\uaced\uacee\uacf2\uacf4\uacf7",4,"\uacfe\uacff\uad01\uad02\uad03\uad05\uad07",4,"\uad0e\uad10\uad12\uad13"],["8241","\uad14\uad15\uad16\uad17\uad19\uad1a\uad1b\uad1d\uad1e\uad1f\uad21",7,"\uad2a\uad2b\uad2e",5],["8261","\uad36\uad37\uad39\uad3a\uad3b\uad3d",6,"\uad46\uad48\uad4a",5,"\uad51\uad52\uad53\uad55\uad56\uad57"],["8281","\uad59",7,"\uad62\uad64",7,"\uad6e\uad6f\uad71\uad72\uad77\uad78\uad79\uad7a\uad7e\uad80\uad83",4,"\uad8a\uad8b\uad8d\uad8e\uad8f\uad91",10,"\uad9e",5,"\uada5",17,"\uadb8",7,"\uadc2\uadc3\uadc5\uadc6\uadc7\uadc9",6,"\uadd2\uadd4",7,"\uaddd\uadde\uaddf\uade1\uade2\uade3\uade5",18],["8341","\uadfa\uadfb\uadfd\uadfe\uae02",5,"\uae0a\uae0c\uae0e",5,"\uae15",7],["8361","\uae1d",18,"\uae32\uae33\uae35\uae36\uae39\uae3b\uae3c"],["8381","\uae3d\uae3e\uae3f\uae42\uae44\uae47\uae48\uae49\uae4b\uae4f\uae51\uae52\uae53\uae55\uae57",4,"\uae5e\uae62\uae63\uae64\uae66\uae67\uae6a\uae6b\uae6d\uae6e\uae6f\uae71",6,"\uae7a\uae7e",5,"\uae86",5,"\uae8d",46,"\uaebf\uaec1\uaec2\uaec3\uaec5",6,"\uaece\uaed2",5,"\uaeda\uaedb\uaedd",8],["8441","\uaee6\uaee7\uaee9\uaeea\uaeec\uaeee",5,"\uaef5\uaef6\uaef7\uaef9\uaefa\uaefb\uaefd",8],["8461","\uaf06\uaf09\uaf0a\uaf0b\uaf0c\uaf0e\uaf0f\uaf11",18],["8481","\uaf24",7,"\uaf2e\uaf2f\uaf31\uaf33\uaf35",6,"\uaf3e\uaf40\uaf44\uaf45\uaf46\uaf47\uaf4a",5,"\uaf51",10,"\uaf5e",5,"\uaf66",18,"\uaf7a",5,"\uaf81\uaf82\uaf83\uaf85\uaf86\uaf87\uaf89",6,"\uaf92\uaf93\uaf94\uaf96",5,"\uaf9d",26,"\uafba\uafbb\uafbd\uafbe"],["8541","\uafbf\uafc1",5,"\uafca\uafcc\uafcf",4,"\uafd5",6,"\uafdd",4],["8561","\uafe2",5,"\uafea",5,"\uaff2\uaff3\uaff5\uaff6\uaff7\uaff9",6,"\ub002\ub003"],["8581","\ub005",6,"\ub00d\ub00e\ub00f\ub011\ub012\ub013\ub015",6,"\ub01e",9,"\ub029",26,"\ub046\ub047\ub049\ub04b\ub04d\ub04f\ub050\ub051\ub052\ub056\ub058\ub05a\ub05b\ub05c\ub05e",29,"\ub07e\ub07f\ub081\ub082\ub083\ub085",6,"\ub08e\ub090\ub092",5,"\ub09b\ub09d\ub09e\ub0a3\ub0a4"],["8641","\ub0a5\ub0a6\ub0a7\ub0aa\ub0b0\ub0b2\ub0b6\ub0b7\ub0b9\ub0ba\ub0bb\ub0bd",6,"\ub0c6\ub0ca",5,"\ub0d2"],["8661","\ub0d3\ub0d5\ub0d6\ub0d7\ub0d9",6,"\ub0e1\ub0e2\ub0e3\ub0e4\ub0e6",10],["8681","\ub0f1",22,"\ub10a\ub10d\ub10e\ub10f\ub111\ub114\ub115\ub116\ub117\ub11a\ub11e",4,"\ub126\ub127\ub129\ub12a\ub12b\ub12d",6,"\ub136\ub13a",5,"\ub142\ub143\ub145\ub146\ub147\ub149",6,"\ub152\ub153\ub156\ub157\ub159\ub15a\ub15b\ub15d\ub15e\ub15f\ub161",22,"\ub17a\ub17b\ub17d\ub17e\ub17f\ub181\ub183",4,"\ub18a\ub18c\ub18e\ub18f\ub190\ub191\ub195\ub196\ub197\ub199\ub19a\ub19b\ub19d"],["8741","\ub19e",9,"\ub1a9",15],["8761","\ub1b9",18,"\ub1cd\ub1ce\ub1cf\ub1d1\ub1d2\ub1d3\ub1d5"],["8781","\ub1d6",5,"\ub1de\ub1e0",7,"\ub1ea\ub1eb\ub1ed\ub1ee\ub1ef\ub1f1",7,"\ub1fa\ub1fc\ub1fe",5,"\ub206\ub207\ub209\ub20a\ub20d",6,"\ub216\ub218\ub21a",5,"\ub221",18,"\ub235",6,"\ub23d",26,"\ub259\ub25a\ub25b\ub25d\ub25e\ub25f\ub261",6,"\ub26a",4],["8841","\ub26f",4,"\ub276",5,"\ub27d",6,"\ub286\ub287\ub288\ub28a",4],["8861","\ub28f\ub292\ub293\ub295\ub296\ub297\ub29b",4,"\ub2a2\ub2a4\ub2a7\ub2a8\ub2a9\ub2ab\ub2ad\ub2ae\ub2af\ub2b1\ub2b2\ub2b3\ub2b5\ub2b6\ub2b7"],["8881","\ub2b8",15,"\ub2ca\ub2cb\ub2cd\ub2ce\ub2cf\ub2d1\ub2d3",4,"\ub2da\ub2dc\ub2de\ub2df\ub2e0\ub2e1\ub2e3\ub2e7\ub2e9\ub2ea\ub2f0\ub2f1\ub2f2\ub2f6\ub2fc\ub2fd\ub2fe\ub302\ub303\ub305\ub306\ub307\ub309",6,"\ub312\ub316",5,"\ub31d",54,"\ub357\ub359\ub35a\ub35d\ub360\ub361\ub362\ub363"],["8941","\ub366\ub368\ub36a\ub36c\ub36d\ub36f\ub372\ub373\ub375\ub376\ub377\ub379",6,"\ub382\ub386",5,"\ub38d"],["8961","\ub38e\ub38f\ub391\ub392\ub393\ub395",10,"\ub3a2",5,"\ub3a9\ub3aa\ub3ab\ub3ad"],["8981","\ub3ae",21,"\ub3c6\ub3c7\ub3c9\ub3ca\ub3cd\ub3cf\ub3d1\ub3d2\ub3d3\ub3d6\ub3d8\ub3da\ub3dc\ub3de\ub3df\ub3e1\ub3e2\ub3e3\ub3e5\ub3e6\ub3e7\ub3e9",18,"\ub3fd",18,"\ub411",6,"\ub419\ub41a\ub41b\ub41d\ub41e\ub41f\ub421",6,"\ub42a\ub42c",7,"\ub435",15],["8a41","\ub445",10,"\ub452\ub453\ub455\ub456\ub457\ub459",6,"\ub462\ub464\ub466"],["8a61","\ub467",4,"\ub46d",18,"\ub481\ub482"],["8a81","\ub483",4,"\ub489",19,"\ub49e",5,"\ub4a5\ub4a6\ub4a7\ub4a9\ub4aa\ub4ab\ub4ad",7,"\ub4b6\ub4b8\ub4ba",5,"\ub4c1\ub4c2\ub4c3\ub4c5\ub4c6\ub4c7\ub4c9",6,"\ub4d1\ub4d2\ub4d3\ub4d4\ub4d6",5,"\ub4de\ub4df\ub4e1\ub4e2\ub4e5\ub4e7",4,"\ub4ee\ub4f0\ub4f2",5,"\ub4f9",26,"\ub516\ub517\ub519\ub51a\ub51d"],["8b41","\ub51e",5,"\ub526\ub52b",4,"\ub532\ub533\ub535\ub536\ub537\ub539",6,"\ub542\ub546"],["8b61","\ub547\ub548\ub549\ub54a\ub54e\ub54f\ub551\ub552\ub553\ub555",6,"\ub55e\ub562",8],["8b81","\ub56b",52,"\ub5a2\ub5a3\ub5a5\ub5a6\ub5a7\ub5a9\ub5ac\ub5ad\ub5ae\ub5af\ub5b2\ub5b6",4,"\ub5be\ub5bf\ub5c1\ub5c2\ub5c3\ub5c5",6,"\ub5ce\ub5d2",5,"\ub5d9",18,"\ub5ed",18],["8c41","\ub600",15,"\ub612\ub613\ub615\ub616\ub617\ub619",4],["8c61","\ub61e",6,"\ub626",5,"\ub62d",6,"\ub635",5],["8c81","\ub63b",12,"\ub649",26,"\ub665\ub666\ub667\ub669",50,"\ub69e\ub69f\ub6a1\ub6a2\ub6a3\ub6a5",5,"\ub6ad\ub6ae\ub6af\ub6b0\ub6b2",16],["8d41","\ub6c3",16,"\ub6d5",8],["8d61","\ub6de",17,"\ub6f1\ub6f2\ub6f3\ub6f5\ub6f6\ub6f7\ub6f9\ub6fa"],["8d81","\ub6fb",4,"\ub702\ub703\ub704\ub706",33,"\ub72a\ub72b\ub72d\ub72e\ub731",6,"\ub73a\ub73c",7,"\ub745\ub746\ub747\ub749\ub74a\ub74b\ub74d",6,"\ub756",9,"\ub761\ub762\ub763\ub765\ub766\ub767\ub769",6,"\ub772\ub774\ub776",5,"\ub77e\ub77f\ub781\ub782\ub783\ub785",6,"\ub78e\ub793\ub794\ub795\ub79a\ub79b\ub79d\ub79e"],["8e41","\ub79f\ub7a1",6,"\ub7aa\ub7ae",5,"\ub7b6\ub7b7\ub7b9",8],["8e61","\ub7c2",4,"\ub7c8\ub7ca",19],["8e81","\ub7de",13,"\ub7ee\ub7ef\ub7f1\ub7f2\ub7f3\ub7f5",6,"\ub7fe\ub802",4,"\ub80a\ub80b\ub80d\ub80e\ub80f\ub811",6,"\ub81a\ub81c\ub81e",5,"\ub826\ub827\ub829\ub82a\ub82b\ub82d",6,"\ub836\ub83a",5,"\ub841\ub842\ub843\ub845",11,"\ub852\ub854",7,"\ub85e\ub85f\ub861\ub862\ub863\ub865",6,"\ub86e\ub870\ub872",5,"\ub879\ub87a\ub87b\ub87d",7],["8f41","\ub885",7,"\ub88e",17],["8f61","\ub8a0",7,"\ub8a9",6,"\ub8b1\ub8b2\ub8b3\ub8b5\ub8b6\ub8b7\ub8b9",4],["8f81","\ub8be\ub8bf\ub8c2\ub8c4\ub8c6",5,"\ub8cd\ub8ce\ub8cf\ub8d1\ub8d2\ub8d3\ub8d5",7,"\ub8de\ub8e0\ub8e2",5,"\ub8ea\ub8eb\ub8ed\ub8ee\ub8ef\ub8f1",6,"\ub8fa\ub8fc\ub8fe",5,"\ub905",18,"\ub919",6,"\ub921",26,"\ub93e\ub93f\ub941\ub942\ub943\ub945",6,"\ub94d\ub94e\ub950\ub952",5],["9041","\ub95a\ub95b\ub95d\ub95e\ub95f\ub961",6,"\ub96a\ub96c\ub96e",5,"\ub976\ub977\ub979\ub97a\ub97b\ub97d"],["9061","\ub97e",5,"\ub986\ub988\ub98b\ub98c\ub98f",15],["9081","\ub99f",12,"\ub9ae\ub9af\ub9b1\ub9b2\ub9b3\ub9b5",6,"\ub9be\ub9c0\ub9c2",5,"\ub9ca\ub9cb\ub9cd\ub9d3",4,"\ub9da\ub9dc\ub9df\ub9e0\ub9e2\ub9e6\ub9e7\ub9e9\ub9ea\ub9eb\ub9ed",6,"\ub9f6\ub9fb",4,"\uba02",5,"\uba09",11,"\uba16",33,"\uba3a\uba3b\uba3d\uba3e\uba3f\uba41\uba43\uba44\uba45\uba46"],["9141","\uba47\uba4a\uba4c\uba4f\uba50\uba51\uba52\uba56\uba57\uba59\uba5a\uba5b\uba5d",6,"\uba66\uba6a",5],["9161","\uba72\uba73\uba75\uba76\uba77\uba79",9,"\uba86\uba88\uba89\uba8a\uba8b\uba8d",5],["9181","\uba93",20,"\ubaaa\ubaad\ubaae\ubaaf\ubab1\ubab3",4,"\ubaba\ubabc\ubabe",5,"\ubac5\ubac6\ubac7\ubac9",14,"\ubada",33,"\ubafd\ubafe\ubaff\ubb01\ubb02\ubb03\ubb05",7,"\ubb0e\ubb10\ubb12",5,"\ubb19\ubb1a\ubb1b\ubb1d\ubb1e\ubb1f\ubb21",6],["9241","\ubb28\ubb2a\ubb2c",7,"\ubb37\ubb39\ubb3a\ubb3f",4,"\ubb46\ubb48\ubb4a\ubb4b\ubb4c\ubb4e\ubb51\ubb52"],["9261","\ubb53\ubb55\ubb56\ubb57\ubb59",7,"\ubb62\ubb64",7,"\ubb6d",4],["9281","\ubb72",21,"\ubb89\ubb8a\ubb8b\ubb8d\ubb8e\ubb8f\ubb91",18,"\ubba5\ubba6\ubba7\ubba9\ubbaa\ubbab\ubbad",6,"\ubbb5\ubbb6\ubbb8",7,"\ubbc1\ubbc2\ubbc3\ubbc5\ubbc6\ubbc7\ubbc9",6,"\ubbd1\ubbd2\ubbd4",35,"\ubbfa\ubbfb\ubbfd\ubbfe\ubc01"],["9341","\ubc03",4,"\ubc0a\ubc0e\ubc10\ubc12\ubc13\ubc19\ubc1a\ubc20\ubc21\ubc22\ubc23\ubc26\ubc28\ubc2a\ubc2b\ubc2c\ubc2e\ubc2f\ubc32\ubc33\ubc35"],["9361","\ubc36\ubc37\ubc39",6,"\ubc42\ubc46\ubc47\ubc48\ubc4a\ubc4b\ubc4e\ubc4f\ubc51",8],["9381","\ubc5a\ubc5b\ubc5c\ubc5e",37,"\ubc86\ubc87\ubc89\ubc8a\ubc8d\ubc8f",4,"\ubc96\ubc98\ubc9b",4,"\ubca2\ubca3\ubca5\ubca6\ubca9",6,"\ubcb2\ubcb6",5,"\ubcbe\ubcbf\ubcc1\ubcc2\ubcc3\ubcc5",7,"\ubcce\ubcd2\ubcd3\ubcd4\ubcd6\ubcd7\ubcd9\ubcda\ubcdb\ubcdd",22,"\ubcf7\ubcf9\ubcfa\ubcfb\ubcfd"],["9441","\ubcfe",5,"\ubd06\ubd08\ubd0a",5,"\ubd11\ubd12\ubd13\ubd15",8],["9461","\ubd1e",5,"\ubd25",6,"\ubd2d",12],["9481","\ubd3a",5,"\ubd41",6,"\ubd4a\ubd4b\ubd4d\ubd4e\ubd4f\ubd51",6,"\ubd5a",9,"\ubd65\ubd66\ubd67\ubd69",22,"\ubd82\ubd83\ubd85\ubd86\ubd8b",4,"\ubd92\ubd94\ubd96\ubd97\ubd98\ubd9b\ubd9d",6,"\ubda5",10,"\ubdb1",6,"\ubdb9",24],["9541","\ubdd2\ubdd3\ubdd6\ubdd7\ubdd9\ubdda\ubddb\ubddd",11,"\ubdea",5,"\ubdf1"],["9561","\ubdf2\ubdf3\ubdf5\ubdf6\ubdf7\ubdf9",6,"\ube01\ube02\ube04\ube06",5,"\ube0e\ube0f\ube11\ube12\ube13"],["9581","\ube15",6,"\ube1e\ube20",35,"\ube46\ube47\ube49\ube4a\ube4b\ube4d\ube4f",4,"\ube56\ube58\ube5c\ube5d\ube5e\ube5f\ube62\ube63\ube65\ube66\ube67\ube69\ube6b",4,"\ube72\ube76",4,"\ube7e\ube7f\ube81\ube82\ube83\ube85",6,"\ube8e\ube92",5,"\ube9a",13,"\ubea9",14],["9641","\ubeb8",23,"\ubed2\ubed3"],["9661","\ubed5\ubed6\ubed9",6,"\ubee1\ubee2\ubee6",5,"\ubeed",8],["9681","\ubef6",10,"\ubf02",5,"\ubf0a",13,"\ubf1a\ubf1e",33,"\ubf42\ubf43\ubf45\ubf46\ubf47\ubf49",6,"\ubf52\ubf53\ubf54\ubf56",44],["9741","\ubf83",16,"\ubf95",8],["9761","\ubf9e",17,"\ubfb1",7],["9781","\ubfb9",11,"\ubfc6",5,"\ubfce\ubfcf\ubfd1\ubfd2\ubfd3\ubfd5",6,"\ubfdd\ubfde\ubfe0\ubfe2",89,"\uc03d\uc03e\uc03f"],["9841","\uc040",16,"\uc052",5,"\uc059\uc05a\uc05b"],["9861","\uc05d\uc05e\uc05f\uc061",6,"\uc06a",15],["9881","\uc07a",21,"\uc092\uc093\uc095\uc096\uc097\uc099",6,"\uc0a2\uc0a4\uc0a6",5,"\uc0ae\uc0b1\uc0b2\uc0b7",4,"\uc0be\uc0c2\uc0c3\uc0c4\uc0c6\uc0c7\uc0ca\uc0cb\uc0cd\uc0ce\uc0cf\uc0d1",6,"\uc0da\uc0de",5,"\uc0e6\uc0e7\uc0e9\uc0ea\uc0eb\uc0ed",6,"\uc0f6\uc0f8\uc0fa",5,"\uc101\uc102\uc103\uc105\uc106\uc107\uc109",6,"\uc111\uc112\uc113\uc114\uc116",5,"\uc121\uc122\uc125\uc128\uc129\uc12a\uc12b\uc12e"],["9941","\uc132\uc133\uc134\uc135\uc137\uc13a\uc13b\uc13d\uc13e\uc13f\uc141",6,"\uc14a\uc14e",5,"\uc156\uc157"],["9961","\uc159\uc15a\uc15b\uc15d",6,"\uc166\uc16a",5,"\uc171\uc172\uc173\uc175\uc176\uc177\uc179\uc17a\uc17b"],["9981","\uc17c",8,"\uc186",5,"\uc18f\uc191\uc192\uc193\uc195\uc197",4,"\uc19e\uc1a0\uc1a2\uc1a3\uc1a4\uc1a6\uc1a7\uc1aa\uc1ab\uc1ad\uc1ae\uc1af\uc1b1",11,"\uc1be",5,"\uc1c5\uc1c6\uc1c7\uc1c9\uc1ca\uc1cb\uc1cd",6,"\uc1d5\uc1d6\uc1d9",6,"\uc1e1\uc1e2\uc1e3\uc1e5\uc1e6\uc1e7\uc1e9",6,"\uc1f2\uc1f4",7,"\uc1fe\uc1ff\uc201\uc202\uc203\uc205",6,"\uc20e\uc210\uc212",5,"\uc21a\uc21b\uc21d\uc21e\uc221\uc222\uc223"],["9a41","\uc224\uc225\uc226\uc227\uc22a\uc22c\uc22e\uc230\uc233\uc235",16],["9a61","\uc246\uc247\uc249",6,"\uc252\uc253\uc255\uc256\uc257\uc259",6,"\uc261\uc262\uc263\uc264\uc266"],["9a81","\uc267",4,"\uc26e\uc26f\uc271\uc272\uc273\uc275",6,"\uc27e\uc280\uc282",5,"\uc28a",5,"\uc291",6,"\uc299\uc29a\uc29c\uc29e",5,"\uc2a6\uc2a7\uc2a9\uc2aa\uc2ab\uc2ae",5,"\uc2b6\uc2b8\uc2ba",33,"\uc2de\uc2df\uc2e1\uc2e2\uc2e5",5,"\uc2ee\uc2f0\uc2f2\uc2f3\uc2f4\uc2f5\uc2f7\uc2fa\uc2fd\uc2fe\uc2ff\uc301",6,"\uc30a\uc30b\uc30e\uc30f"],["9b41","\uc310\uc311\uc312\uc316\uc317\uc319\uc31a\uc31b\uc31d",6,"\uc326\uc327\uc32a",8],["9b61","\uc333",17,"\uc346",7],["9b81","\uc34e",25,"\uc36a\uc36b\uc36d\uc36e\uc36f\uc371\uc373",4,"\uc37a\uc37b\uc37e",5,"\uc385\uc386\uc387\uc389\uc38a\uc38b\uc38d",50,"\uc3c1",22,"\uc3da"],["9c41","\uc3db\uc3dd\uc3de\uc3e1\uc3e3",4,"\uc3ea\uc3eb\uc3ec\uc3ee",5,"\uc3f6\uc3f7\uc3f9",5],["9c61","\uc3ff",8,"\uc409",6,"\uc411",9],["9c81","\uc41b",8,"\uc425",6,"\uc42d\uc42e\uc42f\uc431\uc432\uc433\uc435",6,"\uc43e",9,"\uc449",26,"\uc466\uc467\uc469\uc46a\uc46b\uc46d",6,"\uc476\uc477\uc478\uc47a",5,"\uc481",18,"\uc495",6,"\uc49d",12],["9d41","\uc4aa",13,"\uc4b9\uc4ba\uc4bb\uc4bd",8],["9d61","\uc4c6",25],["9d81","\uc4e0",8,"\uc4ea",5,"\uc4f2\uc4f3\uc4f5\uc4f6\uc4f7\uc4f9\uc4fb\uc4fc\uc4fd\uc4fe\uc502",9,"\uc50d\uc50e\uc50f\uc511\uc512\uc513\uc515",6,"\uc51d",10,"\uc52a\uc52b\uc52d\uc52e\uc52f\uc531",6,"\uc53a\uc53c\uc53e",5,"\uc546\uc547\uc54b\uc54f\uc550\uc551\uc552\uc556\uc55a\uc55b\uc55c\uc55f\uc562\uc563\uc565\uc566\uc567\uc569",6,"\uc572\uc576",5,"\uc57e\uc57f\uc581\uc582\uc583\uc585\uc586\uc588\uc589\uc58a\uc58b\uc58e\uc590\uc592\uc593\uc594"],["9e41","\uc596\uc599\uc59a\uc59b\uc59d\uc59e\uc59f\uc5a1",7,"\uc5aa",9,"\uc5b6"],["9e61","\uc5b7\uc5ba\uc5bf",4,"\uc5cb\uc5cd\uc5cf\uc5d2\uc5d3\uc5d5\uc5d6\uc5d7\uc5d9",6,"\uc5e2\uc5e4\uc5e6\uc5e7"],["9e81","\uc5e8\uc5e9\uc5ea\uc5eb\uc5ef\uc5f1\uc5f2\uc5f3\uc5f5\uc5f8\uc5f9\uc5fa\uc5fb\uc602\uc603\uc604\uc609\uc60a\uc60b\uc60d\uc60e\uc60f\uc611",6,"\uc61a\uc61d",6,"\uc626\uc627\uc629\uc62a\uc62b\uc62f\uc631\uc632\uc636\uc638\uc63a\uc63c\uc63d\uc63e\uc63f\uc642\uc643\uc645\uc646\uc647\uc649",6,"\uc652\uc656",5,"\uc65e\uc65f\uc661",10,"\uc66d\uc66e\uc670\uc672",5,"\uc67a\uc67b\uc67d\uc67e\uc67f\uc681",6,"\uc68a\uc68c\uc68e",5,"\uc696\uc697\uc699\uc69a\uc69b\uc69d",6,"\uc6a6"],["9f41","\uc6a8\uc6aa",5,"\uc6b2\uc6b3\uc6b5\uc6b6\uc6b7\uc6bb",4,"\uc6c2\uc6c4\uc6c6",5,"\uc6ce"],["9f61","\uc6cf\uc6d1\uc6d2\uc6d3\uc6d5",6,"\uc6de\uc6df\uc6e2",5,"\uc6ea\uc6eb\uc6ed\uc6ee\uc6ef\uc6f1\uc6f2"],["9f81","\uc6f3",4,"\uc6fa\uc6fb\uc6fc\uc6fe",5,"\uc706\uc707\uc709\uc70a\uc70b\uc70d",6,"\uc716\uc718\uc71a",5,"\uc722\uc723\uc725\uc726\uc727\uc729",6,"\uc732\uc734\uc736\uc738\uc739\uc73a\uc73b\uc73e\uc73f\uc741\uc742\uc743\uc745",4,"\uc74b\uc74e\uc750\uc759\uc75a\uc75b\uc75d\uc75e\uc75f\uc761",6,"\uc769\uc76a\uc76c",7,"\uc776\uc777\uc779\uc77a\uc77b\uc77f\uc780\uc781\uc782\uc786\uc78b\uc78c\uc78d\uc78f\uc792\uc793\uc795\uc799\uc79b",4,"\uc7a2\uc7a7",4,"\uc7ae\uc7af\uc7b1\uc7b2\uc7b3\uc7b5\uc7b6\uc7b7"],["a041","\uc7b8\uc7b9\uc7ba\uc7bb\uc7be\uc7c2",5,"\uc7ca\uc7cb\uc7cd\uc7cf\uc7d1",6,"\uc7d9\uc7da\uc7db\uc7dc"],["a061","\uc7de",5,"\uc7e5\uc7e6\uc7e7\uc7e9\uc7ea\uc7eb\uc7ed",13],["a081","\uc7fb",4,"\uc802\uc803\uc805\uc806\uc807\uc809\uc80b",4,"\uc812\uc814\uc817",4,"\uc81e\uc81f\uc821\uc822\uc823\uc825",6,"\uc82e\uc830\uc832",5,"\uc839\uc83a\uc83b\uc83d\uc83e\uc83f\uc841",6,"\uc84a\uc84b\uc84e",5,"\uc855",26,"\uc872\uc873\uc875\uc876\uc877\uc879\uc87b",4,"\uc882\uc884\uc888\uc889\uc88a\uc88e",5,"\uc895",7,"\uc89e\uc8a0\uc8a2\uc8a3\uc8a4"],["a141","\uc8a5\uc8a6\uc8a7\uc8a9",18,"\uc8be\uc8bf\uc8c0\uc8c1"],["a161","\uc8c2\uc8c3\uc8c5\uc8c6\uc8c7\uc8c9\uc8ca\uc8cb\uc8cd",6,"\uc8d6\uc8d8\uc8da",5,"\uc8e2\uc8e3\uc8e5"],["a181","\uc8e6",14,"\uc8f6",5,"\uc8fe\uc8ff\uc901\uc902\uc903\uc907",4,"\uc90e\u3000\u3001\u3002\xb7\u2025\u2026\xa8\u3003\xad\u2015\u2225\uff3c\u223c\u2018\u2019\u201c\u201d\u3014\u3015\u3008",9,"\xb1\xd7\xf7\u2260\u2264\u2265\u221e\u2234\xb0\u2032\u2033\u2103\u212b\uffe0\uffe1\uffe5\u2642\u2640\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\xa7\u203b\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u2192\u2190\u2191\u2193\u2194\u3013\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229\u2227\u2228\uffe2"],["a241","\uc910\uc912",5,"\uc919",18],["a261","\uc92d",6,"\uc935",18],["a281","\uc948",7,"\uc952\uc953\uc955\uc956\uc957\uc959",6,"\uc962\uc964",7,"\uc96d\uc96e\uc96f\u21d2\u21d4\u2200\u2203\xb4\uff5e\u02c7\u02d8\u02dd\u02da\u02d9\xb8\u02db\xa1\xbf\u02d0\u222e\u2211\u220f\xa4\u2109\u2030\u25c1\u25c0\u25b7\u25b6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25c8\u25a3\u25d0\u25d1\u2592\u25a4\u25a5\u25a8\u25a7\u25a6\u25a9\u2668\u260f\u260e\u261c\u261e\xb6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266d\u2669\u266a\u266c\u327f\u321c\u2116\u33c7\u2122\u33c2\u33d8\u2121\u20ac\xae"],["a341","\uc971\uc972\uc973\uc975",6,"\uc97d",10,"\uc98a\uc98b\uc98d\uc98e\uc98f"],["a361","\uc991",6,"\uc99a\uc99c\uc99e",16],["a381","\uc9af",16,"\uc9c2\uc9c3\uc9c5\uc9c6\uc9c9\uc9cb",4,"\uc9d2\uc9d4\uc9d7\uc9d8\uc9db\uff01",58,"\uffe6\uff3d",32,"\uffe3"],["a441","\uc9de\uc9df\uc9e1\uc9e3\uc9e5\uc9e6\uc9e8\uc9e9\uc9ea\uc9eb\uc9ee\uc9f2",5,"\uc9fa\uc9fb\uc9fd\uc9fe\uc9ff\uca01\uca02\uca03\uca04"],["a461","\uca05\uca06\uca07\uca0a\uca0e",5,"\uca15\uca16\uca17\uca19",12],["a481","\uca26\uca27\uca28\uca2a",28,"\u3131",93],["a541","\uca47",4,"\uca4e\uca4f\uca51\uca52\uca53\uca55",6,"\uca5e\uca62",5,"\uca69\uca6a"],["a561","\uca6b",17,"\uca7e",5,"\uca85\uca86"],["a581","\uca87",16,"\uca99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03a3",6],["a5e1","\u03b1",16,"\u03c3",6],["a641","\ucaa8",19,"\ucabe\ucabf\ucac1\ucac2\ucac3\ucac5"],["a661","\ucac6",5,"\ucace\ucad0\ucad2\ucad4\ucad5\ucad6\ucad7\ucada",5,"\ucae1",6],["a681","\ucae8\ucae9\ucaea\ucaeb\ucaed",6,"\ucaf5",18,"\ucb09\ucb0a\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542\u2512\u2511\u251a\u2519\u2516\u2515\u250e\u250d\u251e\u251f\u2521\u2522\u2526\u2527\u2529\u252a\u252d\u252e\u2531\u2532\u2535\u2536\u2539\u253a\u253d\u253e\u2540\u2541\u2543",7],["a741","\ucb0b",4,"\ucb11\ucb12\ucb13\ucb15\ucb16\ucb17\ucb19",6,"\ucb22",7],["a761","\ucb2a",22,"\ucb42\ucb43\ucb44"],["a781","\ucb45\ucb46\ucb47\ucb4a\ucb4b\ucb4d\ucb4e\ucb4f\ucb51",6,"\ucb5a\ucb5b\ucb5c\ucb5e",5,"\ucb65",7,"\u3395\u3396\u3397\u2113\u3398\u33c4\u33a3\u33a4\u33a5\u33a6\u3399",9,"\u33ca\u338d\u338e\u338f\u33cf\u3388\u3389\u33c8\u33a7\u33a8\u33b0",9,"\u3380",4,"\u33ba",5,"\u3390",4,"\u2126\u33c0\u33c1\u338a\u338b\u338c\u33d6\u33c5\u33ad\u33ae\u33af\u33db\u33a9\u33aa\u33ab\u33ac\u33dd\u33d0\u33d3\u33c3\u33c9\u33dc\u33c6"],["a841","\ucb6d",10,"\ucb7a",14],["a861","\ucb89",18,"\ucb9d",6],["a881","\ucba4",19,"\ucbb9",11,"\xc6\xd0\xaa\u0126"],["a8a6","\u0132"],["a8a8","\u013f\u0141\xd8\u0152\xba\xde\u0166\u014a"],["a8b1","\u3260",27,"\u24d0",25,"\u2460",14,"\xbd\u2153\u2154\xbc\xbe\u215b\u215c\u215d\u215e"],["a941","\ucbc5",14,"\ucbd5",10],["a961","\ucbe0\ucbe1\ucbe2\ucbe3\ucbe5\ucbe6\ucbe8\ucbea",18],["a981","\ucbfd",14,"\ucc0e\ucc0f\ucc11\ucc12\ucc13\ucc15",6,"\ucc1e\ucc1f\ucc20\ucc23\ucc24\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0140\u0142\xf8\u0153\xdf\xfe\u0167\u014b\u0149\u3200",27,"\u249c",25,"\u2474",14,"\xb9\xb2\xb3\u2074\u207f\u2081\u2082\u2083\u2084"],["aa41","\ucc25\ucc26\ucc2a\ucc2b\ucc2d\ucc2f\ucc31",6,"\ucc3a\ucc3f",4,"\ucc46\ucc47\ucc49\ucc4a\ucc4b\ucc4d\ucc4e"],["aa61","\ucc4f",4,"\ucc56\ucc5a",5,"\ucc61\ucc62\ucc63\ucc65\ucc67\ucc69",6,"\ucc71\ucc72"],["aa81","\ucc73\ucc74\ucc76",29,"\u3041",82],["ab41","\ucc94\ucc95\ucc96\ucc97\ucc9a\ucc9b\ucc9d\ucc9e\ucc9f\ucca1",6,"\uccaa\uccae",5,"\uccb6\uccb7\uccb9"],["ab61","\uccba\uccbb\uccbd",6,"\uccc6\uccc8\uccca",5,"\uccd1\uccd2\uccd3\uccd5",5],["ab81","\uccdb",8,"\ucce5",6,"\ucced\uccee\uccef\uccf1",12,"\u30a1",85],["ac41","\uccfe\uccff\ucd00\ucd02",5,"\ucd0a\ucd0b\ucd0d\ucd0e\ucd0f\ucd11",6,"\ucd1a\ucd1c\ucd1e\ucd1f\ucd20"],["ac61","\ucd21\ucd22\ucd23\ucd25\ucd26\ucd27\ucd29\ucd2a\ucd2b\ucd2d",11,"\ucd3a",4],["ac81","\ucd3f",28,"\ucd5d\ucd5e\ucd5f\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\ucd61\ucd62\ucd63\ucd65",6,"\ucd6e\ucd70\ucd72",5,"\ucd79",7],["ad61","\ucd81",6,"\ucd89",10,"\ucd96\ucd97\ucd99\ucd9a\ucd9b\ucd9d\ucd9e\ucd9f"],["ad81","\ucda0\ucda1\ucda2\ucda3\ucda6\ucda8\ucdaa",5,"\ucdb1",18,"\ucdc5"],["ae41","\ucdc6",5,"\ucdcd\ucdce\ucdcf\ucdd1",16],["ae61","\ucde2",5,"\ucde9\ucdea\ucdeb\ucded\ucdee\ucdef\ucdf1",6,"\ucdfa\ucdfc\ucdfe",4],["ae81","\uce03\uce05\uce06\uce07\uce09\uce0a\uce0b\uce0d",6,"\uce15\uce16\uce17\uce18\uce1a",5,"\uce22\uce23\uce25\uce26\uce27\uce29\uce2a\uce2b"],["af41","\uce2c\uce2d\uce2e\uce2f\uce32\uce34\uce36",19],["af61","\uce4a",13,"\uce5a\uce5b\uce5d\uce5e\uce62",5,"\uce6a\uce6c"],["af81","\uce6e",5,"\uce76\uce77\uce79\uce7a\uce7b\uce7d",6,"\uce86\uce88\uce8a",5,"\uce92\uce93\uce95\uce96\uce97\uce99"],["b041","\uce9a",5,"\ucea2\ucea6",5,"\uceae",12],["b061","\ucebb",5,"\ucec2",19],["b081","\uced6",13,"\ucee6\ucee7\ucee9\uceea\uceed",6,"\ucef6\ucefa",5,"\uac00\uac01\uac04\uac07\uac08\uac09\uac0a\uac10",7,"\uac19",4,"\uac20\uac24\uac2c\uac2d\uac2f\uac30\uac31\uac38\uac39\uac3c\uac40\uac4b\uac4d\uac54\uac58\uac5c\uac70\uac71\uac74\uac77\uac78\uac7a\uac80\uac81\uac83\uac84\uac85\uac86\uac89\uac8a\uac8b\uac8c\uac90\uac94\uac9c\uac9d\uac9f\uaca0\uaca1\uaca8\uaca9\uacaa\uacac\uacaf\uacb0\uacb8\uacb9\uacbb\uacbc\uacbd\uacc1\uacc4\uacc8\uaccc\uacd5\uacd7\uace0\uace1\uace4\uace7\uace8\uacea\uacec\uacef\uacf0\uacf1\uacf3\uacf5\uacf6\uacfc\uacfd\uad00\uad04\uad06"],["b141","\ucf02\ucf03\ucf05\ucf06\ucf07\ucf09",6,"\ucf12\ucf14\ucf16",5,"\ucf1d\ucf1e\ucf1f\ucf21\ucf22\ucf23"],["b161","\ucf25",6,"\ucf2e\ucf32",5,"\ucf39",11],["b181","\ucf45",14,"\ucf56\ucf57\ucf59\ucf5a\ucf5b\ucf5d",6,"\ucf66\ucf68\ucf6a\ucf6b\ucf6c\uad0c\uad0d\uad0f\uad11\uad18\uad1c\uad20\uad29\uad2c\uad2d\uad34\uad35\uad38\uad3c\uad44\uad45\uad47\uad49\uad50\uad54\uad58\uad61\uad63\uad6c\uad6d\uad70\uad73\uad74\uad75\uad76\uad7b\uad7c\uad7d\uad7f\uad81\uad82\uad88\uad89\uad8c\uad90\uad9c\uad9d\uada4\uadb7\uadc0\uadc1\uadc4\uadc8\uadd0\uadd1\uadd3\uaddc\uade0\uade4\uadf8\uadf9\uadfc\uadff\uae00\uae01\uae08\uae09\uae0b\uae0d\uae14\uae30\uae31\uae34\uae37\uae38\uae3a\uae40\uae41\uae43\uae45\uae46\uae4a\uae4c\uae4d\uae4e\uae50\uae54\uae56\uae5c\uae5d\uae5f\uae60\uae61\uae65\uae68\uae69\uae6c\uae70\uae78"],["b241","\ucf6d\ucf6e\ucf6f\ucf72\ucf73\ucf75\ucf76\ucf77\ucf79",6,"\ucf81\ucf82\ucf83\ucf84\ucf86",5,"\ucf8d"],["b261","\ucf8e",18,"\ucfa2",5,"\ucfa9"],["b281","\ucfaa",5,"\ucfb1",18,"\ucfc5",6,"\uae79\uae7b\uae7c\uae7d\uae84\uae85\uae8c\uaebc\uaebd\uaebe\uaec0\uaec4\uaecc\uaecd\uaecf\uaed0\uaed1\uaed8\uaed9\uaedc\uaee8\uaeeb\uaeed\uaef4\uaef8\uaefc\uaf07\uaf08\uaf0d\uaf10\uaf2c\uaf2d\uaf30\uaf32\uaf34\uaf3c\uaf3d\uaf3f\uaf41\uaf42\uaf43\uaf48\uaf49\uaf50\uaf5c\uaf5d\uaf64\uaf65\uaf79\uaf80\uaf84\uaf88\uaf90\uaf91\uaf95\uaf9c\uafb8\uafb9\uafbc\uafc0\uafc7\uafc8\uafc9\uafcb\uafcd\uafce\uafd4\uafdc\uafe8\uafe9\uaff0\uaff1\uaff4\uaff8\ub000\ub001\ub004\ub00c\ub010\ub014\ub01c\ub01d\ub028\ub044\ub045\ub048\ub04a\ub04c\ub04e\ub053\ub054\ub055\ub057\ub059"],["b341","\ucfcc",19,"\ucfe2\ucfe3\ucfe5\ucfe6\ucfe7\ucfe9"],["b361","\ucfea",5,"\ucff2\ucff4\ucff6",5,"\ucffd\ucffe\ucfff\ud001\ud002\ud003\ud005",5],["b381","\ud00b",5,"\ud012",5,"\ud019",19,"\ub05d\ub07c\ub07d\ub080\ub084\ub08c\ub08d\ub08f\ub091\ub098\ub099\ub09a\ub09c\ub09f\ub0a0\ub0a1\ub0a2\ub0a8\ub0a9\ub0ab",4,"\ub0b1\ub0b3\ub0b4\ub0b5\ub0b8\ub0bc\ub0c4\ub0c5\ub0c7\ub0c8\ub0c9\ub0d0\ub0d1\ub0d4\ub0d8\ub0e0\ub0e5\ub108\ub109\ub10b\ub10c\ub110\ub112\ub113\ub118\ub119\ub11b\ub11c\ub11d\ub123\ub124\ub125\ub128\ub12c\ub134\ub135\ub137\ub138\ub139\ub140\ub141\ub144\ub148\ub150\ub151\ub154\ub155\ub158\ub15c\ub160\ub178\ub179\ub17c\ub180\ub182\ub188\ub189\ub18b\ub18d\ub192\ub193\ub194\ub198\ub19c\ub1a8\ub1cc\ub1d0\ub1d4\ub1dc\ub1dd"],["b441","\ud02e",5,"\ud036\ud037\ud039\ud03a\ud03b\ud03d",6,"\ud046\ud048\ud04a",5],["b461","\ud051\ud052\ud053\ud055\ud056\ud057\ud059",6,"\ud061",10,"\ud06e\ud06f"],["b481","\ud071\ud072\ud073\ud075",6,"\ud07e\ud07f\ud080\ud082",18,"\ub1df\ub1e8\ub1e9\ub1ec\ub1f0\ub1f9\ub1fb\ub1fd\ub204\ub205\ub208\ub20b\ub20c\ub214\ub215\ub217\ub219\ub220\ub234\ub23c\ub258\ub25c\ub260\ub268\ub269\ub274\ub275\ub27c\ub284\ub285\ub289\ub290\ub291\ub294\ub298\ub299\ub29a\ub2a0\ub2a1\ub2a3\ub2a5\ub2a6\ub2aa\ub2ac\ub2b0\ub2b4\ub2c8\ub2c9\ub2cc\ub2d0\ub2d2\ub2d8\ub2d9\ub2db\ub2dd\ub2e2\ub2e4\ub2e5\ub2e6\ub2e8\ub2eb",4,"\ub2f3\ub2f4\ub2f5\ub2f7",4,"\ub2ff\ub300\ub301\ub304\ub308\ub310\ub311\ub313\ub314\ub315\ub31c\ub354\ub355\ub356\ub358\ub35b\ub35c\ub35e\ub35f\ub364\ub365"],["b541","\ud095",14,"\ud0a6\ud0a7\ud0a9\ud0aa\ud0ab\ud0ad",5],["b561","\ud0b3\ud0b6\ud0b8\ud0ba",5,"\ud0c2\ud0c3\ud0c5\ud0c6\ud0c7\ud0ca",5,"\ud0d2\ud0d6",4],["b581","\ud0db\ud0de\ud0df\ud0e1\ud0e2\ud0e3\ud0e5",6,"\ud0ee\ud0f2",5,"\ud0f9",11,"\ub367\ub369\ub36b\ub36e\ub370\ub371\ub374\ub378\ub380\ub381\ub383\ub384\ub385\ub38c\ub390\ub394\ub3a0\ub3a1\ub3a8\ub3ac\ub3c4\ub3c5\ub3c8\ub3cb\ub3cc\ub3ce\ub3d0\ub3d4\ub3d5\ub3d7\ub3d9\ub3db\ub3dd\ub3e0\ub3e4\ub3e8\ub3fc\ub410\ub418\ub41c\ub420\ub428\ub429\ub42b\ub434\ub450\ub451\ub454\ub458\ub460\ub461\ub463\ub465\ub46c\ub480\ub488\ub49d\ub4a4\ub4a8\ub4ac\ub4b5\ub4b7\ub4b9\ub4c0\ub4c4\ub4c8\ub4d0\ub4d5\ub4dc\ub4dd\ub4e0\ub4e3\ub4e4\ub4e6\ub4ec\ub4ed\ub4ef\ub4f1\ub4f8\ub514\ub515\ub518\ub51b\ub51c\ub524\ub525\ub527\ub528\ub529\ub52a\ub530\ub531\ub534\ub538"],["b641","\ud105",7,"\ud10e",17],["b661","\ud120",15,"\ud132\ud133\ud135\ud136\ud137\ud139\ud13b\ud13c\ud13d\ud13e"],["b681","\ud13f\ud142\ud146",5,"\ud14e\ud14f\ud151\ud152\ud153\ud155",6,"\ud15e\ud160\ud162",5,"\ud169\ud16a\ud16b\ud16d\ub540\ub541\ub543\ub544\ub545\ub54b\ub54c\ub54d\ub550\ub554\ub55c\ub55d\ub55f\ub560\ub561\ub5a0\ub5a1\ub5a4\ub5a8\ub5aa\ub5ab\ub5b0\ub5b1\ub5b3\ub5b4\ub5b5\ub5bb\ub5bc\ub5bd\ub5c0\ub5c4\ub5cc\ub5cd\ub5cf\ub5d0\ub5d1\ub5d8\ub5ec\ub610\ub611\ub614\ub618\ub625\ub62c\ub634\ub648\ub664\ub668\ub69c\ub69d\ub6a0\ub6a4\ub6ab\ub6ac\ub6b1\ub6d4\ub6f0\ub6f4\ub6f8\ub700\ub701\ub705\ub728\ub729\ub72c\ub72f\ub730\ub738\ub739\ub73b\ub744\ub748\ub74c\ub754\ub755\ub760\ub764\ub768\ub770\ub771\ub773\ub775\ub77c\ub77d\ub780\ub784\ub78c\ub78d\ub78f\ub790\ub791\ub792\ub796\ub797"],["b741","\ud16e",13,"\ud17d",6,"\ud185\ud186\ud187\ud189\ud18a"],["b761","\ud18b",20,"\ud1a2\ud1a3\ud1a5\ud1a6\ud1a7"],["b781","\ud1a9",6,"\ud1b2\ud1b4\ud1b6\ud1b7\ud1b8\ud1b9\ud1bb\ud1bd\ud1be\ud1bf\ud1c1",14,"\ub798\ub799\ub79c\ub7a0\ub7a8\ub7a9\ub7ab\ub7ac\ub7ad\ub7b4\ub7b5\ub7b8\ub7c7\ub7c9\ub7ec\ub7ed\ub7f0\ub7f4\ub7fc\ub7fd\ub7ff\ub800\ub801\ub807\ub808\ub809\ub80c\ub810\ub818\ub819\ub81b\ub81d\ub824\ub825\ub828\ub82c\ub834\ub835\ub837\ub838\ub839\ub840\ub844\ub851\ub853\ub85c\ub85d\ub860\ub864\ub86c\ub86d\ub86f\ub871\ub878\ub87c\ub88d\ub8a8\ub8b0\ub8b4\ub8b8\ub8c0\ub8c1\ub8c3\ub8c5\ub8cc\ub8d0\ub8d4\ub8dd\ub8df\ub8e1\ub8e8\ub8e9\ub8ec\ub8f0\ub8f8\ub8f9\ub8fb\ub8fd\ub904\ub918\ub920\ub93c\ub93d\ub940\ub944\ub94c\ub94f\ub951\ub958\ub959\ub95c\ub960\ub968\ub969"],["b841","\ud1d0",7,"\ud1d9",17],["b861","\ud1eb",8,"\ud1f5\ud1f6\ud1f7\ud1f9",13],["b881","\ud208\ud20a",5,"\ud211",24,"\ub96b\ub96d\ub974\ub975\ub978\ub97c\ub984\ub985\ub987\ub989\ub98a\ub98d\ub98e\ub9ac\ub9ad\ub9b0\ub9b4\ub9bc\ub9bd\ub9bf\ub9c1\ub9c8\ub9c9\ub9cc\ub9ce",4,"\ub9d8\ub9d9\ub9db\ub9dd\ub9de\ub9e1\ub9e3\ub9e4\ub9e5\ub9e8\ub9ec\ub9f4\ub9f5\ub9f7\ub9f8\ub9f9\ub9fa\uba00\uba01\uba08\uba15\uba38\uba39\uba3c\uba40\uba42\uba48\uba49\uba4b\uba4d\uba4e\uba53\uba54\uba55\uba58\uba5c\uba64\uba65\uba67\uba68\uba69\uba70\uba71\uba74\uba78\uba83\uba84\uba85\uba87\uba8c\ubaa8\ubaa9\ubaab\ubaac\ubab0\ubab2\ubab8\ubab9\ubabb\ubabd\ubac4\ubac8\ubad8\ubad9\ubafc"],["b941","\ud22a\ud22b\ud22e\ud22f\ud231\ud232\ud233\ud235",6,"\ud23e\ud240\ud242",5,"\ud249\ud24a\ud24b\ud24c"],["b961","\ud24d",14,"\ud25d",6,"\ud265\ud266\ud267\ud268"],["b981","\ud269",22,"\ud282\ud283\ud285\ud286\ud287\ud289\ud28a\ud28b\ud28c\ubb00\ubb04\ubb0d\ubb0f\ubb11\ubb18\ubb1c\ubb20\ubb29\ubb2b\ubb34\ubb35\ubb36\ubb38\ubb3b\ubb3c\ubb3d\ubb3e\ubb44\ubb45\ubb47\ubb49\ubb4d\ubb4f\ubb50\ubb54\ubb58\ubb61\ubb63\ubb6c\ubb88\ubb8c\ubb90\ubba4\ubba8\ubbac\ubbb4\ubbb7\ubbc0\ubbc4\ubbc8\ubbd0\ubbd3\ubbf8\ubbf9\ubbfc\ubbff\ubc00\ubc02\ubc08\ubc09\ubc0b\ubc0c\ubc0d\ubc0f\ubc11\ubc14",4,"\ubc1b",4,"\ubc24\ubc25\ubc27\ubc29\ubc2d\ubc30\ubc31\ubc34\ubc38\ubc40\ubc41\ubc43\ubc44\ubc45\ubc49\ubc4c\ubc4d\ubc50\ubc5d\ubc84\ubc85\ubc88\ubc8b\ubc8c\ubc8e\ubc94\ubc95\ubc97"],["ba41","\ud28d\ud28e\ud28f\ud292\ud293\ud294\ud296",5,"\ud29d\ud29e\ud29f\ud2a1\ud2a2\ud2a3\ud2a5",6,"\ud2ad"],["ba61","\ud2ae\ud2af\ud2b0\ud2b2",5,"\ud2ba\ud2bb\ud2bd\ud2be\ud2c1\ud2c3",4,"\ud2ca\ud2cc",5],["ba81","\ud2d2\ud2d3\ud2d5\ud2d6\ud2d7\ud2d9\ud2da\ud2db\ud2dd",6,"\ud2e6",9,"\ud2f2\ud2f3\ud2f5\ud2f6\ud2f7\ud2f9\ud2fa\ubc99\ubc9a\ubca0\ubca1\ubca4\ubca7\ubca8\ubcb0\ubcb1\ubcb3\ubcb4\ubcb5\ubcbc\ubcbd\ubcc0\ubcc4\ubccd\ubccf\ubcd0\ubcd1\ubcd5\ubcd8\ubcdc\ubcf4\ubcf5\ubcf6\ubcf8\ubcfc\ubd04\ubd05\ubd07\ubd09\ubd10\ubd14\ubd24\ubd2c\ubd40\ubd48\ubd49\ubd4c\ubd50\ubd58\ubd59\ubd64\ubd68\ubd80\ubd81\ubd84\ubd87\ubd88\ubd89\ubd8a\ubd90\ubd91\ubd93\ubd95\ubd99\ubd9a\ubd9c\ubda4\ubdb0\ubdb8\ubdd4\ubdd5\ubdd8\ubddc\ubde9\ubdf0\ubdf4\ubdf8\ube00\ube03\ube05\ube0c\ube0d\ube10\ube14\ube1c\ube1d\ube1f\ube44\ube45\ube48\ube4c\ube4e\ube54\ube55\ube57\ube59\ube5a\ube5b\ube60\ube61\ube64"],["bb41","\ud2fb",4,"\ud302\ud304\ud306",5,"\ud30f\ud311\ud312\ud313\ud315\ud317",4,"\ud31e\ud322\ud323"],["bb61","\ud324\ud326\ud327\ud32a\ud32b\ud32d\ud32e\ud32f\ud331",6,"\ud33a\ud33e",5,"\ud346\ud347\ud348\ud349"],["bb81","\ud34a",31,"\ube68\ube6a\ube70\ube71\ube73\ube74\ube75\ube7b\ube7c\ube7d\ube80\ube84\ube8c\ube8d\ube8f\ube90\ube91\ube98\ube99\ubea8\ubed0\ubed1\ubed4\ubed7\ubed8\ubee0\ubee3\ubee4\ubee5\ubeec\ubf01\ubf08\ubf09\ubf18\ubf19\ubf1b\ubf1c\ubf1d\ubf40\ubf41\ubf44\ubf48\ubf50\ubf51\ubf55\ubf94\ubfb0\ubfc5\ubfcc\ubfcd\ubfd0\ubfd4\ubfdc\ubfdf\ubfe1\uc03c\uc051\uc058\uc05c\uc060\uc068\uc069\uc090\uc091\uc094\uc098\uc0a0\uc0a1\uc0a3\uc0a5\uc0ac\uc0ad\uc0af\uc0b0\uc0b3\uc0b4\uc0b5\uc0b6\uc0bc\uc0bd\uc0bf\uc0c0\uc0c1\uc0c5\uc0c8\uc0c9\uc0cc\uc0d0\uc0d8\uc0d9\uc0db\uc0dc\uc0dd\uc0e4"],["bc41","\ud36a",17,"\ud37e\ud37f\ud381\ud382\ud383\ud385\ud386\ud387"],["bc61","\ud388\ud389\ud38a\ud38b\ud38e\ud392",5,"\ud39a\ud39b\ud39d\ud39e\ud39f\ud3a1",6,"\ud3aa\ud3ac\ud3ae"],["bc81","\ud3af",4,"\ud3b5\ud3b6\ud3b7\ud3b9\ud3ba\ud3bb\ud3bd",6,"\ud3c6\ud3c7\ud3ca",5,"\ud3d1",5,"\uc0e5\uc0e8\uc0ec\uc0f4\uc0f5\uc0f7\uc0f9\uc100\uc104\uc108\uc110\uc115\uc11c",4,"\uc123\uc124\uc126\uc127\uc12c\uc12d\uc12f\uc130\uc131\uc136\uc138\uc139\uc13c\uc140\uc148\uc149\uc14b\uc14c\uc14d\uc154\uc155\uc158\uc15c\uc164\uc165\uc167\uc168\uc169\uc170\uc174\uc178\uc185\uc18c\uc18d\uc18e\uc190\uc194\uc196\uc19c\uc19d\uc19f\uc1a1\uc1a5\uc1a8\uc1a9\uc1ac\uc1b0\uc1bd\uc1c4\uc1c8\uc1cc\uc1d4\uc1d7\uc1d8\uc1e0\uc1e4\uc1e8\uc1f0\uc1f1\uc1f3\uc1fc\uc1fd\uc200\uc204\uc20c\uc20d\uc20f\uc211\uc218\uc219\uc21c\uc21f\uc220\uc228\uc229\uc22b\uc22d"],["bd41","\ud3d7\ud3d9",7,"\ud3e2\ud3e4",7,"\ud3ee\ud3ef\ud3f1\ud3f2\ud3f3\ud3f5\ud3f6\ud3f7"],["bd61","\ud3f8\ud3f9\ud3fa\ud3fb\ud3fe\ud400\ud402",5,"\ud409",13],["bd81","\ud417",5,"\ud41e",25,"\uc22f\uc231\uc232\uc234\uc248\uc250\uc251\uc254\uc258\uc260\uc265\uc26c\uc26d\uc270\uc274\uc27c\uc27d\uc27f\uc281\uc288\uc289\uc290\uc298\uc29b\uc29d\uc2a4\uc2a5\uc2a8\uc2ac\uc2ad\uc2b4\uc2b5\uc2b7\uc2b9\uc2dc\uc2dd\uc2e0\uc2e3\uc2e4\uc2eb\uc2ec\uc2ed\uc2ef\uc2f1\uc2f6\uc2f8\uc2f9\uc2fb\uc2fc\uc300\uc308\uc309\uc30c\uc30d\uc313\uc314\uc315\uc318\uc31c\uc324\uc325\uc328\uc329\uc345\uc368\uc369\uc36c\uc370\uc372\uc378\uc379\uc37c\uc37d\uc384\uc388\uc38c\uc3c0\uc3d8\uc3d9\uc3dc\uc3df\uc3e0\uc3e2\uc3e8\uc3e9\uc3ed\uc3f4\uc3f5\uc3f8\uc408\uc410\uc424\uc42c\uc430"],["be41","\ud438",7,"\ud441\ud442\ud443\ud445",14],["be61","\ud454",7,"\ud45d\ud45e\ud45f\ud461\ud462\ud463\ud465",7,"\ud46e\ud470\ud471\ud472"],["be81","\ud473",4,"\ud47a\ud47b\ud47d\ud47e\ud481\ud483",4,"\ud48a\ud48c\ud48e",5,"\ud495",8,"\uc434\uc43c\uc43d\uc448\uc464\uc465\uc468\uc46c\uc474\uc475\uc479\uc480\uc494\uc49c\uc4b8\uc4bc\uc4e9\uc4f0\uc4f1\uc4f4\uc4f8\uc4fa\uc4ff\uc500\uc501\uc50c\uc510\uc514\uc51c\uc528\uc529\uc52c\uc530\uc538\uc539\uc53b\uc53d\uc544\uc545\uc548\uc549\uc54a\uc54c\uc54d\uc54e\uc553\uc554\uc555\uc557\uc558\uc559\uc55d\uc55e\uc560\uc561\uc564\uc568\uc570\uc571\uc573\uc574\uc575\uc57c\uc57d\uc580\uc584\uc587\uc58c\uc58d\uc58f\uc591\uc595\uc597\uc598\uc59c\uc5a0\uc5a9\uc5b4\uc5b5\uc5b8\uc5b9\uc5bb\uc5bc\uc5bd\uc5be\uc5c4",6,"\uc5cc\uc5ce"],["bf41","\ud49e",10,"\ud4aa",14],["bf61","\ud4b9",18,"\ud4cd\ud4ce\ud4cf\ud4d1\ud4d2\ud4d3\ud4d5"],["bf81","\ud4d6",5,"\ud4dd\ud4de\ud4e0",7,"\ud4e9\ud4ea\ud4eb\ud4ed\ud4ee\ud4ef\ud4f1",6,"\ud4f9\ud4fa\ud4fc\uc5d0\uc5d1\uc5d4\uc5d8\uc5e0\uc5e1\uc5e3\uc5e5\uc5ec\uc5ed\uc5ee\uc5f0\uc5f4\uc5f6\uc5f7\uc5fc",5,"\uc605\uc606\uc607\uc608\uc60c\uc610\uc618\uc619\uc61b\uc61c\uc624\uc625\uc628\uc62c\uc62d\uc62e\uc630\uc633\uc634\uc635\uc637\uc639\uc63b\uc640\uc641\uc644\uc648\uc650\uc651\uc653\uc654\uc655\uc65c\uc65d\uc660\uc66c\uc66f\uc671\uc678\uc679\uc67c\uc680\uc688\uc689\uc68b\uc68d\uc694\uc695\uc698\uc69c\uc6a4\uc6a5\uc6a7\uc6a9\uc6b0\uc6b1\uc6b4\uc6b8\uc6b9\uc6ba\uc6c0\uc6c1\uc6c3\uc6c5\uc6cc\uc6cd\uc6d0\uc6d4\uc6dc\uc6dd\uc6e0\uc6e1\uc6e8"],["c041","\ud4fe",5,"\ud505\ud506\ud507\ud509\ud50a\ud50b\ud50d",6,"\ud516\ud518",5],["c061","\ud51e",25],["c081","\ud538\ud539\ud53a\ud53b\ud53e\ud53f\ud541\ud542\ud543\ud545",6,"\ud54e\ud550\ud552",5,"\ud55a\ud55b\ud55d\ud55e\ud55f\ud561\ud562\ud563\uc6e9\uc6ec\uc6f0\uc6f8\uc6f9\uc6fd\uc704\uc705\uc708\uc70c\uc714\uc715\uc717\uc719\uc720\uc721\uc724\uc728\uc730\uc731\uc733\uc735\uc737\uc73c\uc73d\uc740\uc744\uc74a\uc74c\uc74d\uc74f\uc751",7,"\uc75c\uc760\uc768\uc76b\uc774\uc775\uc778\uc77c\uc77d\uc77e\uc783\uc784\uc785\uc787\uc788\uc789\uc78a\uc78e\uc790\uc791\uc794\uc796\uc797\uc798\uc79a\uc7a0\uc7a1\uc7a3\uc7a4\uc7a5\uc7a6\uc7ac\uc7ad\uc7b0\uc7b4\uc7bc\uc7bd\uc7bf\uc7c0\uc7c1\uc7c8\uc7c9\uc7cc\uc7ce\uc7d0\uc7d8\uc7dd\uc7e4\uc7e8\uc7ec\uc800\uc801\uc804\uc808\uc80a"],["c141","\ud564\ud566\ud567\ud56a\ud56c\ud56e",5,"\ud576\ud577\ud579\ud57a\ud57b\ud57d",6,"\ud586\ud58a\ud58b"],["c161","\ud58c\ud58d\ud58e\ud58f\ud591",19,"\ud5a6\ud5a7"],["c181","\ud5a8",31,"\uc810\uc811\uc813\uc815\uc816\uc81c\uc81d\uc820\uc824\uc82c\uc82d\uc82f\uc831\uc838\uc83c\uc840\uc848\uc849\uc84c\uc84d\uc854\uc870\uc871\uc874\uc878\uc87a\uc880\uc881\uc883\uc885\uc886\uc887\uc88b\uc88c\uc88d\uc894\uc89d\uc89f\uc8a1\uc8a8\uc8bc\uc8bd\uc8c4\uc8c8\uc8cc\uc8d4\uc8d5\uc8d7\uc8d9\uc8e0\uc8e1\uc8e4\uc8f5\uc8fc\uc8fd\uc900\uc904\uc905\uc906\uc90c\uc90d\uc90f\uc911\uc918\uc92c\uc934\uc950\uc951\uc954\uc958\uc960\uc961\uc963\uc96c\uc970\uc974\uc97c\uc988\uc989\uc98c\uc990\uc998\uc999\uc99b\uc99d\uc9c0\uc9c1\uc9c4\uc9c7\uc9c8\uc9ca\uc9d0\uc9d1\uc9d3"],["c241","\ud5ca\ud5cb\ud5cd\ud5ce\ud5cf\ud5d1\ud5d3",4,"\ud5da\ud5dc\ud5de",5,"\ud5e6\ud5e7\ud5e9\ud5ea\ud5eb\ud5ed\ud5ee"],["c261","\ud5ef",4,"\ud5f6\ud5f8\ud5fa",5,"\ud602\ud603\ud605\ud606\ud607\ud609",6,"\ud612"],["c281","\ud616",5,"\ud61d\ud61e\ud61f\ud621\ud622\ud623\ud625",7,"\ud62e",9,"\ud63a\ud63b\uc9d5\uc9d6\uc9d9\uc9da\uc9dc\uc9dd\uc9e0\uc9e2\uc9e4\uc9e7\uc9ec\uc9ed\uc9ef\uc9f0\uc9f1\uc9f8\uc9f9\uc9fc\uca00\uca08\uca09\uca0b\uca0c\uca0d\uca14\uca18\uca29\uca4c\uca4d\uca50\uca54\uca5c\uca5d\uca5f\uca60\uca61\uca68\uca7d\uca84\uca98\ucabc\ucabd\ucac0\ucac4\ucacc\ucacd\ucacf\ucad1\ucad3\ucad8\ucad9\ucae0\ucaec\ucaf4\ucb08\ucb10\ucb14\ucb18\ucb20\ucb21\ucb41\ucb48\ucb49\ucb4c\ucb50\ucb58\ucb59\ucb5d\ucb64\ucb78\ucb79\ucb9c\ucbb8\ucbd4\ucbe4\ucbe7\ucbe9\ucc0c\ucc0d\ucc10\ucc14\ucc1c\ucc1d\ucc21\ucc22\ucc27\ucc28\ucc29\ucc2c\ucc2e\ucc30\ucc38\ucc39\ucc3b"],["c341","\ud63d\ud63e\ud63f\ud641\ud642\ud643\ud644\ud646\ud647\ud64a\ud64c\ud64e\ud64f\ud650\ud652\ud653\ud656\ud657\ud659\ud65a\ud65b\ud65d",4],["c361","\ud662",4,"\ud668\ud66a",5,"\ud672\ud673\ud675",11],["c381","\ud681\ud682\ud684\ud686",5,"\ud68e\ud68f\ud691\ud692\ud693\ud695",7,"\ud69e\ud6a0\ud6a2",5,"\ud6a9\ud6aa\ucc3c\ucc3d\ucc3e\ucc44\ucc45\ucc48\ucc4c\ucc54\ucc55\ucc57\ucc58\ucc59\ucc60\ucc64\ucc66\ucc68\ucc70\ucc75\ucc98\ucc99\ucc9c\ucca0\ucca8\ucca9\uccab\uccac\uccad\uccb4\uccb5\uccb8\uccbc\uccc4\uccc5\uccc7\uccc9\uccd0\uccd4\ucce4\uccec\uccf0\ucd01\ucd08\ucd09\ucd0c\ucd10\ucd18\ucd19\ucd1b\ucd1d\ucd24\ucd28\ucd2c\ucd39\ucd5c\ucd60\ucd64\ucd6c\ucd6d\ucd6f\ucd71\ucd78\ucd88\ucd94\ucd95\ucd98\ucd9c\ucda4\ucda5\ucda7\ucda9\ucdb0\ucdc4\ucdcc\ucdd0\ucde8\ucdec\ucdf0\ucdf8\ucdf9\ucdfb\ucdfd\uce04\uce08\uce0c\uce14\uce19\uce20\uce21\uce24\uce28\uce30\uce31\uce33\uce35"],["c441","\ud6ab\ud6ad\ud6ae\ud6af\ud6b1",7,"\ud6ba\ud6bc",7,"\ud6c6\ud6c7\ud6c9\ud6ca\ud6cb"],["c461","\ud6cd\ud6ce\ud6cf\ud6d0\ud6d2\ud6d3\ud6d5\ud6d6\ud6d8\ud6da",5,"\ud6e1\ud6e2\ud6e3\ud6e5\ud6e6\ud6e7\ud6e9",4],["c481","\ud6ee\ud6ef\ud6f1\ud6f2\ud6f3\ud6f4\ud6f6",5,"\ud6fe\ud6ff\ud701\ud702\ud703\ud705",11,"\ud712\ud713\ud714\uce58\uce59\uce5c\uce5f\uce60\uce61\uce68\uce69\uce6b\uce6d\uce74\uce75\uce78\uce7c\uce84\uce85\uce87\uce89\uce90\uce91\uce94\uce98\ucea0\ucea1\ucea3\ucea4\ucea5\uceac\ucead\ucec1\ucee4\ucee5\ucee8\uceeb\uceec\ucef4\ucef5\ucef7\ucef8\ucef9\ucf00\ucf01\ucf04\ucf08\ucf10\ucf11\ucf13\ucf15\ucf1c\ucf20\ucf24\ucf2c\ucf2d\ucf2f\ucf30\ucf31\ucf38\ucf54\ucf55\ucf58\ucf5c\ucf64\ucf65\ucf67\ucf69\ucf70\ucf71\ucf74\ucf78\ucf80\ucf85\ucf8c\ucfa1\ucfa8\ucfb0\ucfc4\ucfe0\ucfe1\ucfe4\ucfe8\ucff0\ucff1\ucff3\ucff5\ucffc\ud000\ud004\ud011\ud018\ud02d\ud034\ud035\ud038\ud03c"],["c541","\ud715\ud716\ud717\ud71a\ud71b\ud71d\ud71e\ud71f\ud721",6,"\ud72a\ud72c\ud72e",5,"\ud736\ud737\ud739"],["c561","\ud73a\ud73b\ud73d",6,"\ud745\ud746\ud748\ud74a",5,"\ud752\ud753\ud755\ud75a",4],["c581","\ud75f\ud762\ud764\ud766\ud767\ud768\ud76a\ud76b\ud76d\ud76e\ud76f\ud771\ud772\ud773\ud775",6,"\ud77e\ud77f\ud780\ud782",5,"\ud78a\ud78b\ud044\ud045\ud047\ud049\ud050\ud054\ud058\ud060\ud06c\ud06d\ud070\ud074\ud07c\ud07d\ud081\ud0a4\ud0a5\ud0a8\ud0ac\ud0b4\ud0b5\ud0b7\ud0b9\ud0c0\ud0c1\ud0c4\ud0c8\ud0c9\ud0d0\ud0d1\ud0d3\ud0d4\ud0d5\ud0dc\ud0dd\ud0e0\ud0e4\ud0ec\ud0ed\ud0ef\ud0f0\ud0f1\ud0f8\ud10d\ud130\ud131\ud134\ud138\ud13a\ud140\ud141\ud143\ud144\ud145\ud14c\ud14d\ud150\ud154\ud15c\ud15d\ud15f\ud161\ud168\ud16c\ud17c\ud184\ud188\ud1a0\ud1a1\ud1a4\ud1a8\ud1b0\ud1b1\ud1b3\ud1b5\ud1ba\ud1bc\ud1c0\ud1d8\ud1f4\ud1f8\ud207\ud209\ud210\ud22c\ud22d\ud230\ud234\ud23c\ud23d\ud23f\ud241\ud248\ud25c"],["c641","\ud78d\ud78e\ud78f\ud791",6,"\ud79a\ud79c\ud79e",5],["c6a1","\ud264\ud280\ud281\ud284\ud288\ud290\ud291\ud295\ud29c\ud2a0\ud2a4\ud2ac\ud2b1\ud2b8\ud2b9\ud2bc\ud2bf\ud2c0\ud2c2\ud2c8\ud2c9\ud2cb\ud2d4\ud2d8\ud2dc\ud2e4\ud2e5\ud2f0\ud2f1\ud2f4\ud2f8\ud300\ud301\ud303\ud305\ud30c\ud30d\ud30e\ud310\ud314\ud316\ud31c\ud31d\ud31f\ud320\ud321\ud325\ud328\ud329\ud32c\ud330\ud338\ud339\ud33b\ud33c\ud33d\ud344\ud345\ud37c\ud37d\ud380\ud384\ud38c\ud38d\ud38f\ud390\ud391\ud398\ud399\ud39c\ud3a0\ud3a8\ud3a9\ud3ab\ud3ad\ud3b4\ud3b8\ud3bc\ud3c4\ud3c5\ud3c8\ud3c9\ud3d0\ud3d8\ud3e1\ud3e3\ud3ec\ud3ed\ud3f0\ud3f4\ud3fc\ud3fd\ud3ff\ud401"],["c7a1","\ud408\ud41d\ud440\ud444\ud45c\ud460\ud464\ud46d\ud46f\ud478\ud479\ud47c\ud47f\ud480\ud482\ud488\ud489\ud48b\ud48d\ud494\ud4a9\ud4cc\ud4d0\ud4d4\ud4dc\ud4df\ud4e8\ud4ec\ud4f0\ud4f8\ud4fb\ud4fd\ud504\ud508\ud50c\ud514\ud515\ud517\ud53c\ud53d\ud540\ud544\ud54c\ud54d\ud54f\ud551\ud558\ud559\ud55c\ud560\ud565\ud568\ud569\ud56b\ud56d\ud574\ud575\ud578\ud57c\ud584\ud585\ud587\ud588\ud589\ud590\ud5a5\ud5c8\ud5c9\ud5cc\ud5d0\ud5d2\ud5d8\ud5d9\ud5db\ud5dd\ud5e4\ud5e5\ud5e8\ud5ec\ud5f4\ud5f5\ud5f7\ud5f9\ud600\ud601\ud604\ud608\ud610\ud611\ud613\ud614\ud615\ud61c\ud620"],["c8a1","\ud624\ud62d\ud638\ud639\ud63c\ud640\ud645\ud648\ud649\ud64b\ud64d\ud651\ud654\ud655\ud658\ud65c\ud667\ud669\ud670\ud671\ud674\ud683\ud685\ud68c\ud68d\ud690\ud694\ud69d\ud69f\ud6a1\ud6a8\ud6ac\ud6b0\ud6b9\ud6bb\ud6c4\ud6c5\ud6c8\ud6cc\ud6d1\ud6d4\ud6d7\ud6d9\ud6e0\ud6e4\ud6e8\ud6f0\ud6f5\ud6fc\ud6fd\ud700\ud704\ud711\ud718\ud719\ud71c\ud720\ud728\ud729\ud72b\ud72d\ud734\ud735\ud738\ud73c\ud744\ud747\ud749\ud750\ud751\ud754\ud756\ud757\ud758\ud759\ud760\ud761\ud763\ud765\ud769\ud76c\ud770\ud774\ud77c\ud77d\ud781\ud788\ud789\ud78c\ud790\ud798\ud799\ud79b\ud79d"],["caa1","\u4f3d\u4f73\u5047\u50f9\u52a0\u53ef\u5475\u54e5\u5609\u5ac1\u5bb6\u6687\u67b6\u67b7\u67ef\u6b4c\u73c2\u75c2\u7a3c\u82db\u8304\u8857\u8888\u8a36\u8cc8\u8dcf\u8efb\u8fe6\u99d5\u523b\u5374\u5404\u606a\u6164\u6bbc\u73cf\u811a\u89ba\u89d2\u95a3\u4f83\u520a\u58be\u5978\u59e6\u5e72\u5e79\u61c7\u63c0\u6746\u67ec\u687f\u6f97\u764e\u770b\u78f5\u7a08\u7aff\u7c21\u809d\u826e\u8271\u8aeb\u9593\u4e6b\u559d\u66f7\u6e34\u78a3\u7aed\u845b\u8910\u874e\u97a8\u52d8\u574e\u582a\u5d4c\u611f\u61be\u6221\u6562\u67d1\u6a44\u6e1b\u7518\u75b3\u76e3\u77b0\u7d3a\u90af\u9451\u9452\u9f95"],["cba1","\u5323\u5cac\u7532\u80db\u9240\u9598\u525b\u5808\u59dc\u5ca1\u5d17\u5eb7\u5f3a\u5f4a\u6177\u6c5f\u757a\u7586\u7ce0\u7d73\u7db1\u7f8c\u8154\u8221\u8591\u8941\u8b1b\u92fc\u964d\u9c47\u4ecb\u4ef7\u500b\u51f1\u584f\u6137\u613e\u6168\u6539\u69ea\u6f11\u75a5\u7686\u76d6\u7b87\u82a5\u84cb\uf900\u93a7\u958b\u5580\u5ba2\u5751\uf901\u7cb3\u7fb9\u91b5\u5028\u53bb\u5c45\u5de8\u62d2\u636e\u64da\u64e7\u6e20\u70ac\u795b\u8ddd\u8e1e\uf902\u907d\u9245\u92f8\u4e7e\u4ef6\u5065\u5dfe\u5efa\u6106\u6957\u8171\u8654\u8e47\u9375\u9a2b\u4e5e\u5091\u6770\u6840\u5109\u528d\u5292\u6aa2"],["cca1","\u77bc\u9210\u9ed4\u52ab\u602f\u8ff2\u5048\u61a9\u63ed\u64ca\u683c\u6a84\u6fc0\u8188\u89a1\u9694\u5805\u727d\u72ac\u7504\u7d79\u7e6d\u80a9\u898b\u8b74\u9063\u9d51\u6289\u6c7a\u6f54\u7d50\u7f3a\u8a23\u517c\u614a\u7b9d\u8b19\u9257\u938c\u4eac\u4fd3\u501e\u50be\u5106\u52c1\u52cd\u537f\u5770\u5883\u5e9a\u5f91\u6176\u61ac\u64ce\u656c\u666f\u66bb\u66f4\u6897\u6d87\u7085\u70f1\u749f\u74a5\u74ca\u75d9\u786c\u78ec\u7adf\u7af6\u7d45\u7d93\u8015\u803f\u811b\u8396\u8b66\u8f15\u9015\u93e1\u9803\u9838\u9a5a\u9be8\u4fc2\u5553\u583a\u5951\u5b63\u5c46\u60b8\u6212\u6842\u68b0"],["cda1","\u68e8\u6eaa\u754c\u7678\u78ce\u7a3d\u7cfb\u7e6b\u7e7c\u8a08\u8aa1\u8c3f\u968e\u9dc4\u53e4\u53e9\u544a\u5471\u56fa\u59d1\u5b64\u5c3b\u5eab\u62f7\u6537\u6545\u6572\u66a0\u67af\u69c1\u6cbd\u75fc\u7690\u777e\u7a3f\u7f94\u8003\u80a1\u818f\u82e6\u82fd\u83f0\u85c1\u8831\u88b4\u8aa5\uf903\u8f9c\u932e\u96c7\u9867\u9ad8\u9f13\u54ed\u659b\u66f2\u688f\u7a40\u8c37\u9d60\u56f0\u5764\u5d11\u6606\u68b1\u68cd\u6efe\u7428\u889e\u9be4\u6c68\uf904\u9aa8\u4f9b\u516c\u5171\u529f\u5b54\u5de5\u6050\u606d\u62f1\u63a7\u653b\u73d9\u7a7a\u86a3\u8ca2\u978f\u4e32\u5be1\u6208\u679c\u74dc"],["cea1","\u79d1\u83d3\u8a87\u8ab2\u8de8\u904e\u934b\u9846\u5ed3\u69e8\u85ff\u90ed\uf905\u51a0\u5b98\u5bec\u6163\u68fa\u6b3e\u704c\u742f\u74d8\u7ba1\u7f50\u83c5\u89c0\u8cab\u95dc\u9928\u522e\u605d\u62ec\u9002\u4f8a\u5149\u5321\u58d9\u5ee3\u66e0\u6d38\u709a\u72c2\u73d6\u7b50\u80f1\u945b\u5366\u639b\u7f6b\u4e56\u5080\u584a\u58de\u602a\u6127\u62d0\u69d0\u9b41\u5b8f\u7d18\u80b1\u8f5f\u4ea4\u50d1\u54ac\u55ac\u5b0c\u5da0\u5de7\u652a\u654e\u6821\u6a4b\u72e1\u768e\u77ef\u7d5e\u7ff9\u81a0\u854e\u86df\u8f03\u8f4e\u90ca\u9903\u9a55\u9bab\u4e18\u4e45\u4e5d\u4ec7\u4ff1\u5177\u52fe"],["cfa1","\u5340\u53e3\u53e5\u548e\u5614\u5775\u57a2\u5bc7\u5d87\u5ed0\u61fc\u62d8\u6551\u67b8\u67e9\u69cb\u6b50\u6bc6\u6bec\u6c42\u6e9d\u7078\u72d7\u7396\u7403\u77bf\u77e9\u7a76\u7d7f\u8009\u81fc\u8205\u820a\u82df\u8862\u8b33\u8cfc\u8ec0\u9011\u90b1\u9264\u92b6\u99d2\u9a45\u9ce9\u9dd7\u9f9c\u570b\u5c40\u83ca\u97a0\u97ab\u9eb4\u541b\u7a98\u7fa4\u88d9\u8ecd\u90e1\u5800\u5c48\u6398\u7a9f\u5bae\u5f13\u7a79\u7aae\u828e\u8eac\u5026\u5238\u52f8\u5377\u5708\u62f3\u6372\u6b0a\u6dc3\u7737\u53a5\u7357\u8568\u8e76\u95d5\u673a\u6ac3\u6f70\u8a6d\u8ecc\u994b\uf906\u6677\u6b78\u8cb4"],["d0a1","\u9b3c\uf907\u53eb\u572d\u594e\u63c6\u69fb\u73ea\u7845\u7aba\u7ac5\u7cfe\u8475\u898f\u8d73\u9035\u95a8\u52fb\u5747\u7547\u7b60\u83cc\u921e\uf908\u6a58\u514b\u524b\u5287\u621f\u68d8\u6975\u9699\u50c5\u52a4\u52e4\u61c3\u65a4\u6839\u69ff\u747e\u7b4b\u82b9\u83eb\u89b2\u8b39\u8fd1\u9949\uf909\u4eca\u5997\u64d2\u6611\u6a8e\u7434\u7981\u79bd\u82a9\u887e\u887f\u895f\uf90a\u9326\u4f0b\u53ca\u6025\u6271\u6c72\u7d1a\u7d66\u4e98\u5162\u77dc\u80af\u4f01\u4f0e\u5176\u5180\u55dc\u5668\u573b\u57fa\u57fc\u5914\u5947\u5993\u5bc4\u5c90\u5d0e\u5df1\u5e7e\u5fcc\u6280\u65d7\u65e3"],["d1a1","\u671e\u671f\u675e\u68cb\u68c4\u6a5f\u6b3a\u6c23\u6c7d\u6c82\u6dc7\u7398\u7426\u742a\u7482\u74a3\u7578\u757f\u7881\u78ef\u7941\u7947\u7948\u797a\u7b95\u7d00\u7dba\u7f88\u8006\u802d\u808c\u8a18\u8b4f\u8c48\u8d77\u9321\u9324\u98e2\u9951\u9a0e\u9a0f\u9a65\u9e92\u7dca\u4f76\u5409\u62ee\u6854\u91d1\u55ab\u513a\uf90b\uf90c\u5a1c\u61e6\uf90d\u62cf\u62ff\uf90e",5,"\u90a3\uf914",4,"\u8afe\uf919\uf91a\uf91b\uf91c\u6696\uf91d\u7156\uf91e\uf91f\u96e3\uf920\u634f\u637a\u5357\uf921\u678f\u6960\u6e73\uf922\u7537\uf923\uf924\uf925"],["d2a1","\u7d0d\uf926\uf927\u8872\u56ca\u5a18\uf928",4,"\u4e43\uf92d\u5167\u5948\u67f0\u8010\uf92e\u5973\u5e74\u649a\u79ca\u5ff5\u606c\u62c8\u637b\u5be7\u5bd7\u52aa\uf92f\u5974\u5f29\u6012\uf930\uf931\uf932\u7459\uf933",5,"\u99d1\uf939",10,"\u6fc3\uf944\uf945\u81bf\u8fb2\u60f1\uf946\uf947\u8166\uf948\uf949\u5c3f\uf94a",7,"\u5ae9\u8a25\u677b\u7d10\uf952",5,"\u80fd\uf958\uf959\u5c3c\u6ce5\u533f\u6eba\u591a\u8336"],["d3a1","\u4e39\u4eb6\u4f46\u55ae\u5718\u58c7\u5f56\u65b7\u65e6\u6a80\u6bb5\u6e4d\u77ed\u7aef\u7c1e\u7dde\u86cb\u8892\u9132\u935b\u64bb\u6fbe\u737a\u75b8\u9054\u5556\u574d\u61ba\u64d4\u66c7\u6de1\u6e5b\u6f6d\u6fb9\u75f0\u8043\u81bd\u8541\u8983\u8ac7\u8b5a\u931f\u6c93\u7553\u7b54\u8e0f\u905d\u5510\u5802\u5858\u5e62\u6207\u649e\u68e0\u7576\u7cd6\u87b3\u9ee8\u4ee3\u5788\u576e\u5927\u5c0d\u5cb1\u5e36\u5f85\u6234\u64e1\u73b3\u81fa\u888b\u8cb8\u968a\u9edb\u5b85\u5fb7\u60b3\u5012\u5200\u5230\u5716\u5835\u5857\u5c0e\u5c60\u5cf6\u5d8b\u5ea6\u5f92\u60bc\u6311\u6389\u6417\u6843"],["d4a1","\u68f9\u6ac2\u6dd8\u6e21\u6ed4\u6fe4\u71fe\u76dc\u7779\u79b1\u7a3b\u8404\u89a9\u8ced\u8df3\u8e48\u9003\u9014\u9053\u90fd\u934d\u9676\u97dc\u6bd2\u7006\u7258\u72a2\u7368\u7763\u79bf\u7be4\u7e9b\u8b80\u58a9\u60c7\u6566\u65fd\u66be\u6c8c\u711e\u71c9\u8c5a\u9813\u4e6d\u7a81\u4edd\u51ac\u51cd\u52d5\u540c\u61a7\u6771\u6850\u68df\u6d1e\u6f7c\u75bc\u77b3\u7ae5\u80f4\u8463\u9285\u515c\u6597\u675c\u6793\u75d8\u7ac7\u8373\uf95a\u8c46\u9017\u982d\u5c6f\u81c0\u829a\u9041\u906f\u920d\u5f97\u5d9d\u6a59\u71c8\u767b\u7b49\u85e4\u8b04\u9127\u9a30\u5587\u61f6\uf95b\u7669\u7f85"],["d5a1","\u863f\u87ba\u88f8\u908f\uf95c\u6d1b\u70d9\u73de\u7d61\u843d\uf95d\u916a\u99f1\uf95e\u4e82\u5375\u6b04\u6b12\u703e\u721b\u862d\u9e1e\u524c\u8fa3\u5d50\u64e5\u652c\u6b16\u6feb\u7c43\u7e9c\u85cd\u8964\u89bd\u62c9\u81d8\u881f\u5eca\u6717\u6d6a\u72fc\u7405\u746f\u8782\u90de\u4f86\u5d0d\u5fa0\u840a\u51b7\u63a0\u7565\u4eae\u5006\u5169\u51c9\u6881\u6a11\u7cae\u7cb1\u7ce7\u826f\u8ad2\u8f1b\u91cf\u4fb6\u5137\u52f5\u5442\u5eec\u616e\u623e\u65c5\u6ada\u6ffe\u792a\u85dc\u8823\u95ad\u9a62\u9a6a\u9e97\u9ece\u529b\u66c6\u6b77\u701d\u792b\u8f62\u9742\u6190\u6200\u6523\u6f23"],["d6a1","\u7149\u7489\u7df4\u806f\u84ee\u8f26\u9023\u934a\u51bd\u5217\u52a3\u6d0c\u70c8\u88c2\u5ec9\u6582\u6bae\u6fc2\u7c3e\u7375\u4ee4\u4f36\u56f9\uf95f\u5cba\u5dba\u601c\u73b2\u7b2d\u7f9a\u7fce\u8046\u901e\u9234\u96f6\u9748\u9818\u9f61\u4f8b\u6fa7\u79ae\u91b4\u96b7\u52de\uf960\u6488\u64c4\u6ad3\u6f5e\u7018\u7210\u76e7\u8001\u8606\u865c\u8def\u8f05\u9732\u9b6f\u9dfa\u9e75\u788c\u797f\u7da0\u83c9\u9304\u9e7f\u9e93\u8ad6\u58df\u5f04\u6727\u7027\u74cf\u7c60\u807e\u5121\u7028\u7262\u78ca\u8cc2\u8cda\u8cf4\u96f7\u4e86\u50da\u5bee\u5ed6\u6599\u71ce\u7642\u77ad\u804a\u84fc"],["d7a1","\u907c\u9b27\u9f8d\u58d8\u5a41\u5c62\u6a13\u6dda\u6f0f\u763b\u7d2f\u7e37\u851e\u8938\u93e4\u964b\u5289\u65d2\u67f3\u69b4\u6d41\u6e9c\u700f\u7409\u7460\u7559\u7624\u786b\u8b2c\u985e\u516d\u622e\u9678\u4f96\u502b\u5d19\u6dea\u7db8\u8f2a\u5f8b\u6144\u6817\uf961\u9686\u52d2\u808b\u51dc\u51cc\u695e\u7a1c\u7dbe\u83f1\u9675\u4fda\u5229\u5398\u540f\u550e\u5c65\u60a7\u674e\u68a8\u6d6c\u7281\u72f8\u7406\u7483\uf962\u75e2\u7c6c\u7f79\u7fb8\u8389\u88cf\u88e1\u91cc\u91d0\u96e2\u9bc9\u541d\u6f7e\u71d0\u7498\u85fa\u8eaa\u96a3\u9c57\u9e9f\u6797\u6dcb\u7433\u81e8\u9716\u782c"],["d8a1","\u7acb\u7b20\u7c92\u6469\u746a\u75f2\u78bc\u78e8\u99ac\u9b54\u9ebb\u5bde\u5e55\u6f20\u819c\u83ab\u9088\u4e07\u534d\u5a29\u5dd2\u5f4e\u6162\u633d\u6669\u66fc\u6eff\u6f2b\u7063\u779e\u842c\u8513\u883b\u8f13\u9945\u9c3b\u551c\u62b9\u672b\u6cab\u8309\u896a\u977a\u4ea1\u5984\u5fd8\u5fd9\u671b\u7db2\u7f54\u8292\u832b\u83bd\u8f1e\u9099\u57cb\u59b9\u5a92\u5bd0\u6627\u679a\u6885\u6bcf\u7164\u7f75\u8cb7\u8ce3\u9081\u9b45\u8108\u8c8a\u964c\u9a40\u9ea5\u5b5f\u6c13\u731b\u76f2\u76df\u840c\u51aa\u8993\u514d\u5195\u52c9\u68c9\u6c94\u7704\u7720\u7dbf\u7dec\u9762\u9eb5\u6ec5"],["d9a1","\u8511\u51a5\u540d\u547d\u660e\u669d\u6927\u6e9f\u76bf\u7791\u8317\u84c2\u879f\u9169\u9298\u9cf4\u8882\u4fae\u5192\u52df\u59c6\u5e3d\u6155\u6478\u6479\u66ae\u67d0\u6a21\u6bcd\u6bdb\u725f\u7261\u7441\u7738\u77db\u8017\u82bc\u8305\u8b00\u8b28\u8c8c\u6728\u6c90\u7267\u76ee\u7766\u7a46\u9da9\u6b7f\u6c92\u5922\u6726\u8499\u536f\u5893\u5999\u5edf\u63cf\u6634\u6773\u6e3a\u732b\u7ad7\u82d7\u9328\u52d9\u5deb\u61ae\u61cb\u620a\u62c7\u64ab\u65e0\u6959\u6b66\u6bcb\u7121\u73f7\u755d\u7e46\u821e\u8302\u856a\u8aa3\u8cbf\u9727\u9d61\u58a8\u9ed8\u5011\u520e\u543b\u554f\u6587"],["daa1","\u6c76\u7d0a\u7d0b\u805e\u868a\u9580\u96ef\u52ff\u6c95\u7269\u5473\u5a9a\u5c3e\u5d4b\u5f4c\u5fae\u672a\u68b6\u6963\u6e3c\u6e44\u7709\u7c73\u7f8e\u8587\u8b0e\u8ff7\u9761\u9ef4\u5cb7\u60b6\u610d\u61ab\u654f\u65fb\u65fc\u6c11\u6cef\u739f\u73c9\u7de1\u9594\u5bc6\u871c\u8b10\u525d\u535a\u62cd\u640f\u64b2\u6734\u6a38\u6cca\u73c0\u749e\u7b94\u7c95\u7e1b\u818a\u8236\u8584\u8feb\u96f9\u99c1\u4f34\u534a\u53cd\u53db\u62cc\u642c\u6500\u6591\u69c3\u6cee\u6f58\u73ed\u7554\u7622\u76e4\u76fc\u78d0\u78fb\u792c\u7d46\u822c\u87e0\u8fd4\u9812\u98ef\u52c3\u62d4\u64a5\u6e24\u6f51"],["dba1","\u767c\u8dcb\u91b1\u9262\u9aee\u9b43\u5023\u508d\u574a\u59a8\u5c28\u5e47\u5f77\u623f\u653e\u65b9\u65c1\u6609\u678b\u699c\u6ec2\u78c5\u7d21\u80aa\u8180\u822b\u82b3\u84a1\u868c\u8a2a\u8b17\u90a6\u9632\u9f90\u500d\u4ff3\uf963\u57f9\u5f98\u62dc\u6392\u676f\u6e43\u7119\u76c3\u80cc\u80da\u88f4\u88f5\u8919\u8ce0\u8f29\u914d\u966a\u4f2f\u4f70\u5e1b\u67cf\u6822\u767d\u767e\u9b44\u5e61\u6a0a\u7169\u71d4\u756a\uf964\u7e41\u8543\u85e9\u98dc\u4f10\u7b4f\u7f70\u95a5\u51e1\u5e06\u68b5\u6c3e\u6c4e\u6cdb\u72af\u7bc4\u8303\u6cd5\u743a\u50fb\u5288\u58c1\u64d8\u6a97\u74a7\u7656"],["dca1","\u78a7\u8617\u95e2\u9739\uf965\u535e\u5f01\u8b8a\u8fa8\u8faf\u908a\u5225\u77a5\u9c49\u9f08\u4e19\u5002\u5175\u5c5b\u5e77\u661e\u663a\u67c4\u68c5\u70b3\u7501\u75c5\u79c9\u7add\u8f27\u9920\u9a08\u4fdd\u5821\u5831\u5bf6\u666e\u6b65\u6d11\u6e7a\u6f7d\u73e4\u752b\u83e9\u88dc\u8913\u8b5c\u8f14\u4f0f\u50d5\u5310\u535c\u5b93\u5fa9\u670d\u798f\u8179\u832f\u8514\u8907\u8986\u8f39\u8f3b\u99a5\u9c12\u672c\u4e76\u4ff8\u5949\u5c01\u5cef\u5cf0\u6367\u68d2\u70fd\u71a2\u742b\u7e2b\u84ec\u8702\u9022\u92d2\u9cf3\u4e0d\u4ed8\u4fef\u5085\u5256\u526f\u5426\u5490\u57e0\u592b\u5a66"],["dda1","\u5b5a\u5b75\u5bcc\u5e9c\uf966\u6276\u6577\u65a7\u6d6e\u6ea5\u7236\u7b26\u7c3f\u7f36\u8150\u8151\u819a\u8240\u8299\u83a9\u8a03\u8ca0\u8ce6\u8cfb\u8d74\u8dba\u90e8\u91dc\u961c\u9644\u99d9\u9ce7\u5317\u5206\u5429\u5674\u58b3\u5954\u596e\u5fff\u61a4\u626e\u6610\u6c7e\u711a\u76c6\u7c89\u7cde\u7d1b\u82ac\u8cc1\u96f0\uf967\u4f5b\u5f17\u5f7f\u62c2\u5d29\u670b\u68da\u787c\u7e43\u9d6c\u4e15\u5099\u5315\u532a\u5351\u5983\u5a62\u5e87\u60b2\u618a\u6249\u6279\u6590\u6787\u69a7\u6bd4\u6bd6\u6bd7\u6bd8\u6cb8\uf968\u7435\u75fa\u7812\u7891\u79d5\u79d8\u7c83\u7dcb\u7fe1\u80a5"],["dea1","\u813e\u81c2\u83f2\u871a\u88e8\u8ab9\u8b6c\u8cbb\u9119\u975e\u98db\u9f3b\u56ac\u5b2a\u5f6c\u658c\u6ab3\u6baf\u6d5c\u6ff1\u7015\u725d\u73ad\u8ca7\u8cd3\u983b\u6191\u6c37\u8058\u9a01\u4e4d\u4e8b\u4e9b\u4ed5\u4f3a\u4f3c\u4f7f\u4fdf\u50ff\u53f2\u53f8\u5506\u55e3\u56db\u58eb\u5962\u5a11\u5beb\u5bfa\u5c04\u5df3\u5e2b\u5f99\u601d\u6368\u659c\u65af\u67f6\u67fb\u68ad\u6b7b\u6c99\u6cd7\u6e23\u7009\u7345\u7802\u793e\u7940\u7960\u79c1\u7be9\u7d17\u7d72\u8086\u820d\u838e\u84d1\u86c7\u88df\u8a50\u8a5e\u8b1d\u8cdc\u8d66\u8fad\u90aa\u98fc\u99df\u9e9d\u524a\uf969\u6714\uf96a"],["dfa1","\u5098\u522a\u5c71\u6563\u6c55\u73ca\u7523\u759d\u7b97\u849c\u9178\u9730\u4e77\u6492\u6bba\u715e\u85a9\u4e09\uf96b\u6749\u68ee\u6e17\u829f\u8518\u886b\u63f7\u6f81\u9212\u98af\u4e0a\u50b7\u50cf\u511f\u5546\u55aa\u5617\u5b40\u5c19\u5ce0\u5e38\u5e8a\u5ea0\u5ec2\u60f3\u6851\u6a61\u6e58\u723d\u7240\u72c0\u76f8\u7965\u7bb1\u7fd4\u88f3\u89f4\u8a73\u8c61\u8cde\u971c\u585e\u74bd\u8cfd\u55c7\uf96c\u7a61\u7d22\u8272\u7272\u751f\u7525\uf96d\u7b19\u5885\u58fb\u5dbc\u5e8f\u5eb6\u5f90\u6055\u6292\u637f\u654d\u6691\u66d9\u66f8\u6816\u68f2\u7280\u745e\u7b6e\u7d6e\u7dd6\u7f72"],["e0a1","\u80e5\u8212\u85af\u897f\u8a93\u901d\u92e4\u9ecd\u9f20\u5915\u596d\u5e2d\u60dc\u6614\u6673\u6790\u6c50\u6dc5\u6f5f\u77f3\u78a9\u84c6\u91cb\u932b\u4ed9\u50ca\u5148\u5584\u5b0b\u5ba3\u6247\u657e\u65cb\u6e32\u717d\u7401\u7444\u7487\u74bf\u766c\u79aa\u7dda\u7e55\u7fa8\u817a\u81b3\u8239\u861a\u87ec\u8a75\u8de3\u9078\u9291\u9425\u994d\u9bae\u5368\u5c51\u6954\u6cc4\u6d29\u6e2b\u820c\u859b\u893b\u8a2d\u8aaa\u96ea\u9f67\u5261\u66b9\u6bb2\u7e96\u87fe\u8d0d\u9583\u965d\u651d\u6d89\u71ee\uf96e\u57ce\u59d3\u5bac\u6027\u60fa\u6210\u661f\u665f\u7329\u73f9\u76db\u7701\u7b6c"],["e1a1","\u8056\u8072\u8165\u8aa0\u9192\u4e16\u52e2\u6b72\u6d17\u7a05\u7b39\u7d30\uf96f\u8cb0\u53ec\u562f\u5851\u5bb5\u5c0f\u5c11\u5de2\u6240\u6383\u6414\u662d\u68b3\u6cbc\u6d88\u6eaf\u701f\u70a4\u71d2\u7526\u758f\u758e\u7619\u7b11\u7be0\u7c2b\u7d20\u7d39\u852c\u856d\u8607\u8a34\u900d\u9061\u90b5\u92b7\u97f6\u9a37\u4fd7\u5c6c\u675f\u6d91\u7c9f\u7e8c\u8b16\u8d16\u901f\u5b6b\u5dfd\u640d\u84c0\u905c\u98e1\u7387\u5b8b\u609a\u677e\u6dde\u8a1f\u8aa6\u9001\u980c\u5237\uf970\u7051\u788e\u9396\u8870\u91d7\u4fee\u53d7\u55fd\u56da\u5782\u58fd\u5ac2\u5b88\u5cab\u5cc0\u5e25\u6101"],["e2a1","\u620d\u624b\u6388\u641c\u6536\u6578\u6a39\u6b8a\u6c34\u6d19\u6f31\u71e7\u72e9\u7378\u7407\u74b2\u7626\u7761\u79c0\u7a57\u7aea\u7cb9\u7d8f\u7dac\u7e61\u7f9e\u8129\u8331\u8490\u84da\u85ea\u8896\u8ab0\u8b90\u8f38\u9042\u9083\u916c\u9296\u92b9\u968b\u96a7\u96a8\u96d6\u9700\u9808\u9996\u9ad3\u9b1a\u53d4\u587e\u5919\u5b70\u5bbf\u6dd1\u6f5a\u719f\u7421\u74b9\u8085\u83fd\u5de1\u5f87\u5faa\u6042\u65ec\u6812\u696f\u6a53\u6b89\u6d35\u6df3\u73e3\u76fe\u77ac\u7b4d\u7d14\u8123\u821c\u8340\u84f4\u8563\u8a62\u8ac4\u9187\u931e\u9806\u99b4\u620c\u8853\u8ff0\u9265\u5d07\u5d27"],["e3a1","\u5d69\u745f\u819d\u8768\u6fd5\u62fe\u7fd2\u8936\u8972\u4e1e\u4e58\u50e7\u52dd\u5347\u627f\u6607\u7e69\u8805\u965e\u4f8d\u5319\u5636\u59cb\u5aa4\u5c38\u5c4e\u5c4d\u5e02\u5f11\u6043\u65bd\u662f\u6642\u67be\u67f4\u731c\u77e2\u793a\u7fc5\u8494\u84cd\u8996\u8a66\u8a69\u8ae1\u8c55\u8c7a\u57f4\u5bd4\u5f0f\u606f\u62ed\u690d\u6b96\u6e5c\u7184\u7bd2\u8755\u8b58\u8efe\u98df\u98fe\u4f38\u4f81\u4fe1\u547b\u5a20\u5bb8\u613c\u65b0\u6668\u71fc\u7533\u795e\u7d33\u814e\u81e3\u8398\u85aa\u85ce\u8703\u8a0a\u8eab\u8f9b\uf971\u8fc5\u5931\u5ba4\u5be6\u6089\u5be9\u5c0b\u5fc3\u6c81"],["e4a1","\uf972\u6df1\u700b\u751a\u82af\u8af6\u4ec0\u5341\uf973\u96d9\u6c0f\u4e9e\u4fc4\u5152\u555e\u5a25\u5ce8\u6211\u7259\u82bd\u83aa\u86fe\u8859\u8a1d\u963f\u96c5\u9913\u9d09\u9d5d\u580a\u5cb3\u5dbd\u5e44\u60e1\u6115\u63e1\u6a02\u6e25\u9102\u9354\u984e\u9c10\u9f77\u5b89\u5cb8\u6309\u664f\u6848\u773c\u96c1\u978d\u9854\u9b9f\u65a1\u8b01\u8ecb\u95bc\u5535\u5ca9\u5dd6\u5eb5\u6697\u764c\u83f4\u95c7\u58d3\u62bc\u72ce\u9d28\u4ef0\u592e\u600f\u663b\u6b83\u79e7\u9d26\u5393\u54c0\u57c3\u5d16\u611b\u66d6\u6daf\u788d\u827e\u9698\u9744\u5384\u627c\u6396\u6db2\u7e0a\u814b\u984d"],["e5a1","\u6afb\u7f4c\u9daf\u9e1a\u4e5f\u503b\u51b6\u591c\u60f9\u63f6\u6930\u723a\u8036\uf974\u91ce\u5f31\uf975\uf976\u7d04\u82e5\u846f\u84bb\u85e5\u8e8d\uf977\u4f6f\uf978\uf979\u58e4\u5b43\u6059\u63da\u6518\u656d\u6698\uf97a\u694a\u6a23\u6d0b\u7001\u716c\u75d2\u760d\u79b3\u7a70\uf97b\u7f8a\uf97c\u8944\uf97d\u8b93\u91c0\u967d\uf97e\u990a\u5704\u5fa1\u65bc\u6f01\u7600\u79a6\u8a9e\u99ad\u9b5a\u9f6c\u5104\u61b6\u6291\u6a8d\u81c6\u5043\u5830\u5f66\u7109\u8a00\u8afa\u5b7c\u8616\u4ffa\u513c\u56b4\u5944\u63a9\u6df9\u5daa\u696d\u5186\u4e88\u4f59\uf97f\uf980\uf981\u5982\uf982"],["e6a1","\uf983\u6b5f\u6c5d\uf984\u74b5\u7916\uf985\u8207\u8245\u8339\u8f3f\u8f5d\uf986\u9918\uf987\uf988\uf989\u4ea6\uf98a\u57df\u5f79\u6613\uf98b\uf98c\u75ab\u7e79\u8b6f\uf98d\u9006\u9a5b\u56a5\u5827\u59f8\u5a1f\u5bb4\uf98e\u5ef6\uf98f\uf990\u6350\u633b\uf991\u693d\u6c87\u6cbf\u6d8e\u6d93\u6df5\u6f14\uf992\u70df\u7136\u7159\uf993\u71c3\u71d5\uf994\u784f\u786f\uf995\u7b75\u7de3\uf996\u7e2f\uf997\u884d\u8edf\uf998\uf999\uf99a\u925b\uf99b\u9cf6\uf99c\uf99d\uf99e\u6085\u6d85\uf99f\u71b1\uf9a0\uf9a1\u95b1\u53ad\uf9a2\uf9a3\uf9a4\u67d3\uf9a5\u708e\u7130\u7430\u8276\u82d2"],["e7a1","\uf9a6\u95bb\u9ae5\u9e7d\u66c4\uf9a7\u71c1\u8449\uf9a8\uf9a9\u584b\uf9aa\uf9ab\u5db8\u5f71\uf9ac\u6620\u668e\u6979\u69ae\u6c38\u6cf3\u6e36\u6f41\u6fda\u701b\u702f\u7150\u71df\u7370\uf9ad\u745b\uf9ae\u74d4\u76c8\u7a4e\u7e93\uf9af\uf9b0\u82f1\u8a60\u8fce\uf9b1\u9348\uf9b2\u9719\uf9b3\uf9b4\u4e42\u502a\uf9b5\u5208\u53e1\u66f3\u6c6d\u6fca\u730a\u777f\u7a62\u82ae\u85dd\u8602\uf9b6\u88d4\u8a63\u8b7d\u8c6b\uf9b7\u92b3\uf9b8\u9713\u9810\u4e94\u4f0d\u4fc9\u50b2\u5348\u543e\u5433\u55da\u5862\u58ba\u5967\u5a1b\u5be4\u609f\uf9b9\u61ca\u6556\u65ff\u6664\u68a7\u6c5a\u6fb3"],["e8a1","\u70cf\u71ac\u7352\u7b7d\u8708\u8aa4\u9c32\u9f07\u5c4b\u6c83\u7344\u7389\u923a\u6eab\u7465\u761f\u7a69\u7e15\u860a\u5140\u58c5\u64c1\u74ee\u7515\u7670\u7fc1\u9095\u96cd\u9954\u6e26\u74e6\u7aa9\u7aaa\u81e5\u86d9\u8778\u8a1b\u5a49\u5b8c\u5b9b\u68a1\u6900\u6d63\u73a9\u7413\u742c\u7897\u7de9\u7feb\u8118\u8155\u839e\u8c4c\u962e\u9811\u66f0\u5f80\u65fa\u6789\u6c6a\u738b\u502d\u5a03\u6b6a\u77ee\u5916\u5d6c\u5dcd\u7325\u754f\uf9ba\uf9bb\u50e5\u51f9\u582f\u592d\u5996\u59da\u5be5\uf9bc\uf9bd\u5da2\u62d7\u6416\u6493\u64fe\uf9be\u66dc\uf9bf\u6a48\uf9c0\u71ff\u7464\uf9c1"],["e9a1","\u7a88\u7aaf\u7e47\u7e5e\u8000\u8170\uf9c2\u87ef\u8981\u8b20\u9059\uf9c3\u9080\u9952\u617e\u6b32\u6d74\u7e1f\u8925\u8fb1\u4fd1\u50ad\u5197\u52c7\u57c7\u5889\u5bb9\u5eb8\u6142\u6995\u6d8c\u6e67\u6eb6\u7194\u7462\u7528\u752c\u8073\u8338\u84c9\u8e0a\u9394\u93de\uf9c4\u4e8e\u4f51\u5076\u512a\u53c8\u53cb\u53f3\u5b87\u5bd3\u5c24\u611a\u6182\u65f4\u725b\u7397\u7440\u76c2\u7950\u7991\u79b9\u7d06\u7fbd\u828b\u85d5\u865e\u8fc2\u9047\u90f5\u91ea\u9685\u96e8\u96e9\u52d6\u5f67\u65ed\u6631\u682f\u715c\u7a36\u90c1\u980a\u4e91\uf9c5\u6a52\u6b9e\u6f90\u7189\u8018\u82b8\u8553"],["eaa1","\u904b\u9695\u96f2\u97fb\u851a\u9b31\u4e90\u718a\u96c4\u5143\u539f\u54e1\u5713\u5712\u57a3\u5a9b\u5ac4\u5bc3\u6028\u613f\u63f4\u6c85\u6d39\u6e72\u6e90\u7230\u733f\u7457\u82d1\u8881\u8f45\u9060\uf9c6\u9662\u9858\u9d1b\u6708\u8d8a\u925e\u4f4d\u5049\u50de\u5371\u570d\u59d4\u5a01\u5c09\u6170\u6690\u6e2d\u7232\u744b\u7def\u80c3\u840e\u8466\u853f\u875f\u885b\u8918\u8b02\u9055\u97cb\u9b4f\u4e73\u4f91\u5112\u516a\uf9c7\u552f\u55a9\u5b7a\u5ba5\u5e7c\u5e7d\u5ebe\u60a0\u60df\u6108\u6109\u63c4\u6538\u6709\uf9c8\u67d4\u67da\uf9c9\u6961\u6962\u6cb9\u6d27\uf9ca\u6e38\uf9cb"],["eba1","\u6fe1\u7336\u7337\uf9cc\u745c\u7531\uf9cd\u7652\uf9ce\uf9cf\u7dad\u81fe\u8438\u88d5\u8a98\u8adb\u8aed\u8e30\u8e42\u904a\u903e\u907a\u9149\u91c9\u936e\uf9d0\uf9d1\u5809\uf9d2\u6bd3\u8089\u80b2\uf9d3\uf9d4\u5141\u596b\u5c39\uf9d5\uf9d6\u6f64\u73a7\u80e4\u8d07\uf9d7\u9217\u958f\uf9d8\uf9d9\uf9da\uf9db\u807f\u620e\u701c\u7d68\u878d\uf9dc\u57a0\u6069\u6147\u6bb7\u8abe\u9280\u96b1\u4e59\u541f\u6deb\u852d\u9670\u97f3\u98ee\u63d6\u6ce3\u9091\u51dd\u61c9\u81ba\u9df9\u4f9d\u501a\u5100\u5b9c\u610f\u61ff\u64ec\u6905\u6bc5\u7591\u77e3\u7fa9\u8264\u858f\u87fb\u8863\u8abc"],["eca1","\u8b70\u91ab\u4e8c\u4ee5\u4f0a\uf9dd\uf9de\u5937\u59e8\uf9df\u5df2\u5f1b\u5f5b\u6021\uf9e0\uf9e1\uf9e2\uf9e3\u723e\u73e5\uf9e4\u7570\u75cd\uf9e5\u79fb\uf9e6\u800c\u8033\u8084\u82e1\u8351\uf9e7\uf9e8\u8cbd\u8cb3\u9087\uf9e9\uf9ea\u98f4\u990c\uf9eb\uf9ec\u7037\u76ca\u7fca\u7fcc\u7ffc\u8b1a\u4eba\u4ec1\u5203\u5370\uf9ed\u54bd\u56e0\u59fb\u5bc5\u5f15\u5fcd\u6e6e\uf9ee\uf9ef\u7d6a\u8335\uf9f0\u8693\u8a8d\uf9f1\u976d\u9777\uf9f2\uf9f3\u4e00\u4f5a\u4f7e\u58f9\u65e5\u6ea2\u9038\u93b0\u99b9\u4efb\u58ec\u598a\u59d9\u6041\uf9f4\uf9f5\u7a14\uf9f6\u834f\u8cc3\u5165\u5344"],["eda1","\uf9f7\uf9f8\uf9f9\u4ecd\u5269\u5b55\u82bf\u4ed4\u523a\u54a8\u59c9\u59ff\u5b50\u5b57\u5b5c\u6063\u6148\u6ecb\u7099\u716e\u7386\u74f7\u75b5\u78c1\u7d2b\u8005\u81ea\u8328\u8517\u85c9\u8aee\u8cc7\u96cc\u4f5c\u52fa\u56bc\u65ab\u6628\u707c\u70b8\u7235\u7dbd\u828d\u914c\u96c0\u9d72\u5b71\u68e7\u6b98\u6f7a\u76de\u5c91\u66ab\u6f5b\u7bb4\u7c2a\u8836\u96dc\u4e08\u4ed7\u5320\u5834\u58bb\u58ef\u596c\u5c07\u5e33\u5e84\u5f35\u638c\u66b2\u6756\u6a1f\u6aa3\u6b0c\u6f3f\u7246\uf9fa\u7350\u748b\u7ae0\u7ca7\u8178\u81df\u81e7\u838a\u846c\u8523\u8594\u85cf\u88dd\u8d13\u91ac\u9577"],["eea1","\u969c\u518d\u54c9\u5728\u5bb0\u624d\u6750\u683d\u6893\u6e3d\u6ed3\u707d\u7e21\u88c1\u8ca1\u8f09\u9f4b\u9f4e\u722d\u7b8f\u8acd\u931a\u4f47\u4f4e\u5132\u5480\u59d0\u5e95\u62b5\u6775\u696e\u6a17\u6cae\u6e1a\u72d9\u732a\u75bd\u7bb8\u7d35\u82e7\u83f9\u8457\u85f7\u8a5b\u8caf\u8e87\u9019\u90b8\u96ce\u9f5f\u52e3\u540a\u5ae1\u5bc2\u6458\u6575\u6ef4\u72c4\uf9fb\u7684\u7a4d\u7b1b\u7c4d\u7e3e\u7fdf\u837b\u8b2b\u8cca\u8d64\u8de1\u8e5f\u8fea\u8ff9\u9069\u93d1\u4f43\u4f7a\u50b3\u5168\u5178\u524d\u526a\u5861\u587c\u5960\u5c08\u5c55\u5edb\u609b\u6230\u6813\u6bbf\u6c08\u6fb1"],["efa1","\u714e\u7420\u7530\u7538\u7551\u7672\u7b4c\u7b8b\u7bad\u7bc6\u7e8f\u8a6e\u8f3e\u8f49\u923f\u9293\u9322\u942b\u96fb\u985a\u986b\u991e\u5207\u622a\u6298\u6d59\u7664\u7aca\u7bc0\u7d76\u5360\u5cbe\u5e97\u6f38\u70b9\u7c98\u9711\u9b8e\u9ede\u63a5\u647a\u8776\u4e01\u4e95\u4ead\u505c\u5075\u5448\u59c3\u5b9a\u5e40\u5ead\u5ef7\u5f81\u60c5\u633a\u653f\u6574\u65cc\u6676\u6678\u67fe\u6968\u6a89\u6b63\u6c40\u6dc0\u6de8\u6e1f\u6e5e\u701e\u70a1\u738e\u73fd\u753a\u775b\u7887\u798e\u7a0b\u7a7d\u7cbe\u7d8e\u8247\u8a02\u8aea\u8c9e\u912d\u914a\u91d8\u9266\u92cc\u9320\u9706\u9756"],["f0a1","\u975c\u9802\u9f0e\u5236\u5291\u557c\u5824\u5e1d\u5f1f\u608c\u63d0\u68af\u6fdf\u796d\u7b2c\u81cd\u85ba\u88fd\u8af8\u8e44\u918d\u9664\u969b\u973d\u984c\u9f4a\u4fce\u5146\u51cb\u52a9\u5632\u5f14\u5f6b\u63aa\u64cd\u65e9\u6641\u66fa\u66f9\u671d\u689d\u68d7\u69fd\u6f15\u6f6e\u7167\u71e5\u722a\u74aa\u773a\u7956\u795a\u79df\u7a20\u7a95\u7c97\u7cdf\u7d44\u7e70\u8087\u85fb\u86a4\u8a54\u8abf\u8d99\u8e81\u9020\u906d\u91e3\u963b\u96d5\u9ce5\u65cf\u7c07\u8db3\u93c3\u5b58\u5c0a\u5352\u62d9\u731d\u5027\u5b97\u5f9e\u60b0\u616b\u68d5\u6dd9\u742e\u7a2e\u7d42\u7d9c\u7e31\u816b"],["f1a1","\u8e2a\u8e35\u937e\u9418\u4f50\u5750\u5de6\u5ea7\u632b\u7f6a\u4e3b\u4f4f\u4f8f\u505a\u59dd\u80c4\u546a\u5468\u55fe\u594f\u5b99\u5dde\u5eda\u665d\u6731\u67f1\u682a\u6ce8\u6d32\u6e4a\u6f8d\u70b7\u73e0\u7587\u7c4c\u7d02\u7d2c\u7da2\u821f\u86db\u8a3b\u8a85\u8d70\u8e8a\u8f33\u9031\u914e\u9152\u9444\u99d0\u7af9\u7ca5\u4fca\u5101\u51c6\u57c8\u5bef\u5cfb\u6659\u6a3d\u6d5a\u6e96\u6fec\u710c\u756f\u7ae3\u8822\u9021\u9075\u96cb\u99ff\u8301\u4e2d\u4ef2\u8846\u91cd\u537d\u6adb\u696b\u6c41\u847a\u589e\u618e\u66fe\u62ef\u70dd\u7511\u75c7\u7e52\u84b8\u8b49\u8d08\u4e4b\u53ea"],["f2a1","\u54ab\u5730\u5740\u5fd7\u6301\u6307\u646f\u652f\u65e8\u667a\u679d\u67b3\u6b62\u6c60\u6c9a\u6f2c\u77e5\u7825\u7949\u7957\u7d19\u80a2\u8102\u81f3\u829d\u82b7\u8718\u8a8c\uf9fc\u8d04\u8dbe\u9072\u76f4\u7a19\u7a37\u7e54\u8077\u5507\u55d4\u5875\u632f\u6422\u6649\u664b\u686d\u699b\u6b84\u6d25\u6eb1\u73cd\u7468\u74a1\u755b\u75b9\u76e1\u771e\u778b\u79e6\u7e09\u7e1d\u81fb\u852f\u8897\u8a3a\u8cd1\u8eeb\u8fb0\u9032\u93ad\u9663\u9673\u9707\u4f84\u53f1\u59ea\u5ac9\u5e19\u684e\u74c6\u75be\u79e9\u7a92\u81a3\u86ed\u8cea\u8dcc\u8fed\u659f\u6715\uf9fd\u57f7\u6f57\u7ddd\u8f2f"],["f3a1","\u93f6\u96c6\u5fb5\u61f2\u6f84\u4e14\u4f98\u501f\u53c9\u55df\u5d6f\u5dee\u6b21\u6b64\u78cb\u7b9a\uf9fe\u8e49\u8eca\u906e\u6349\u643e\u7740\u7a84\u932f\u947f\u9f6a\u64b0\u6faf\u71e6\u74a8\u74da\u7ac4\u7c12\u7e82\u7cb2\u7e98\u8b9a\u8d0a\u947d\u9910\u994c\u5239\u5bdf\u64e6\u672d\u7d2e\u50ed\u53c3\u5879\u6158\u6159\u61fa\u65ac\u7ad9\u8b92\u8b96\u5009\u5021\u5275\u5531\u5a3c\u5ee0\u5f70\u6134\u655e\u660c\u6636\u66a2\u69cd\u6ec4\u6f32\u7316\u7621\u7a93\u8139\u8259\u83d6\u84bc\u50b5\u57f0\u5bc0\u5be8\u5f69\u63a1\u7826\u7db5\u83dc\u8521\u91c7\u91f5\u518a\u67f5\u7b56"],["f4a1","\u8cac\u51c4\u59bb\u60bd\u8655\u501c\uf9ff\u5254\u5c3a\u617d\u621a\u62d3\u64f2\u65a5\u6ecc\u7620\u810a\u8e60\u965f\u96bb\u4edf\u5343\u5598\u5929\u5ddd\u64c5\u6cc9\u6dfa\u7394\u7a7f\u821b\u85a6\u8ce4\u8e10\u9077\u91e7\u95e1\u9621\u97c6\u51f8\u54f2\u5586\u5fb9\u64a4\u6f88\u7db4\u8f1f\u8f4d\u9435\u50c9\u5c16\u6cbe\u6dfb\u751b\u77bb\u7c3d\u7c64\u8a79\u8ac2\u581e\u59be\u5e16\u6377\u7252\u758a\u776b\u8adc\u8cbc\u8f12\u5ef3\u6674\u6df8\u807d\u83c1\u8acb\u9751\u9bd6\ufa00\u5243\u66ff\u6d95\u6eef\u7de0\u8ae6\u902e\u905e\u9ad4\u521d\u527f\u54e8\u6194\u6284\u62db\u68a2"],["f5a1","\u6912\u695a\u6a35\u7092\u7126\u785d\u7901\u790e\u79d2\u7a0d\u8096\u8278\u82d5\u8349\u8549\u8c82\u8d85\u9162\u918b\u91ae\u4fc3\u56d1\u71ed\u77d7\u8700\u89f8\u5bf8\u5fd6\u6751\u90a8\u53e2\u585a\u5bf5\u60a4\u6181\u6460\u7e3d\u8070\u8525\u9283\u64ae\u50ac\u5d14\u6700\u589c\u62bd\u63a8\u690e\u6978\u6a1e\u6e6b\u76ba\u79cb\u82bb\u8429\u8acf\u8da8\u8ffd\u9112\u914b\u919c\u9310\u9318\u939a\u96db\u9a36\u9c0d\u4e11\u755c\u795d\u7afa\u7b51\u7bc9\u7e2e\u84c4\u8e59\u8e74\u8ef8\u9010\u6625\u693f\u7443\u51fa\u672e\u9edc\u5145\u5fe0\u6c96\u87f2\u885d\u8877\u60b4\u81b5\u8403"],["f6a1","\u8d05\u53d6\u5439\u5634\u5a36\u5c31\u708a\u7fe0\u805a\u8106\u81ed\u8da3\u9189\u9a5f\u9df2\u5074\u4ec4\u53a0\u60fb\u6e2c\u5c64\u4f88\u5024\u55e4\u5cd9\u5e5f\u6065\u6894\u6cbb\u6dc4\u71be\u75d4\u75f4\u7661\u7a1a\u7a49\u7dc7\u7dfb\u7f6e\u81f4\u86a9\u8f1c\u96c9\u99b3\u9f52\u5247\u52c5\u98ed\u89aa\u4e03\u67d2\u6f06\u4fb5\u5be2\u6795\u6c88\u6d78\u741b\u7827\u91dd\u937c\u87c4\u79e4\u7a31\u5feb\u4ed6\u54a4\u553e\u58ae\u59a5\u60f0\u6253\u62d6\u6736\u6955\u8235\u9640\u99b1\u99dd\u502c\u5353\u5544\u577c\ufa01\u6258\ufa02\u64e2\u666b\u67dd\u6fc1\u6fef\u7422\u7438\u8a17"],["f7a1","\u9438\u5451\u5606\u5766\u5f48\u619a\u6b4e\u7058\u70ad\u7dbb\u8a95\u596a\u812b\u63a2\u7708\u803d\u8caa\u5854\u642d\u69bb\u5b95\u5e11\u6e6f\ufa03\u8569\u514c\u53f0\u592a\u6020\u614b\u6b86\u6c70\u6cf0\u7b1e\u80ce\u82d4\u8dc6\u90b0\u98b1\ufa04\u64c7\u6fa4\u6491\u6504\u514e\u5410\u571f\u8a0e\u615f\u6876\ufa05\u75db\u7b52\u7d71\u901a\u5806\u69cc\u817f\u892a\u9000\u9839\u5078\u5957\u59ac\u6295\u900f\u9b2a\u615d\u7279\u95d6\u5761\u5a46\u5df4\u628a\u64ad\u64fa\u6777\u6ce2\u6d3e\u722c\u7436\u7834\u7f77\u82ad\u8ddb\u9817\u5224\u5742\u677f\u7248\u74e3\u8ca9\u8fa6\u9211"],["f8a1","\u962a\u516b\u53ed\u634c\u4f69\u5504\u6096\u6557\u6c9b\u6d7f\u724c\u72fd\u7a17\u8987\u8c9d\u5f6d\u6f8e\u70f9\u81a8\u610e\u4fbf\u504f\u6241\u7247\u7bc7\u7de8\u7fe9\u904d\u97ad\u9a19\u8cb6\u576a\u5e73\u67b0\u840d\u8a55\u5420\u5b16\u5e63\u5ee2\u5f0a\u6583\u80ba\u853d\u9589\u965b\u4f48\u5305\u530d\u530f\u5486\u54fa\u5703\u5e03\u6016\u629b\u62b1\u6355\ufa06\u6ce1\u6d66\u75b1\u7832\u80de\u812f\u82de\u8461\u84b2\u888d\u8912\u900b\u92ea\u98fd\u9b91\u5e45\u66b4\u66dd\u7011\u7206\ufa07\u4ff5\u527d\u5f6a\u6153\u6753\u6a19\u6f02\u74e2\u7968\u8868\u8c79\u98c7\u98c4\u9a43"],["f9a1","\u54c1\u7a1f\u6953\u8af7\u8c4a\u98a8\u99ae\u5f7c\u62ab\u75b2\u76ae\u88ab\u907f\u9642\u5339\u5f3c\u5fc5\u6ccc\u73cc\u7562\u758b\u7b46\u82fe\u999d\u4e4f\u903c\u4e0b\u4f55\u53a6\u590f\u5ec8\u6630\u6cb3\u7455\u8377\u8766\u8cc0\u9050\u971e\u9c15\u58d1\u5b78\u8650\u8b14\u9db4\u5bd2\u6068\u608d\u65f1\u6c57\u6f22\u6fa3\u701a\u7f55\u7ff0\u9591\u9592\u9650\u97d3\u5272\u8f44\u51fd\u542b\u54b8\u5563\u558a\u6abb\u6db5\u7dd8\u8266\u929c\u9677\u9e79\u5408\u54c8\u76d2\u86e4\u95a4\u95d4\u965c\u4ea2\u4f09\u59ee\u5ae6\u5df7\u6052\u6297\u676d\u6841\u6c86\u6e2f\u7f38\u809b\u822a"],["faa1","\ufa08\ufa09\u9805\u4ea5\u5055\u54b3\u5793\u595a\u5b69\u5bb3\u61c8\u6977\u6d77\u7023\u87f9\u89e3\u8a72\u8ae7\u9082\u99ed\u9ab8\u52be\u6838\u5016\u5e78\u674f\u8347\u884c\u4eab\u5411\u56ae\u73e6\u9115\u97ff\u9909\u9957\u9999\u5653\u589f\u865b\u8a31\u61b2\u6af6\u737b\u8ed2\u6b47\u96aa\u9a57\u5955\u7200\u8d6b\u9769\u4fd4\u5cf4\u5f26\u61f8\u665b\u6ceb\u70ab\u7384\u73b9\u73fe\u7729\u774d\u7d43\u7d62\u7e23\u8237\u8852\ufa0a\u8ce2\u9249\u986f\u5b51\u7a74\u8840\u9801\u5acc\u4fe0\u5354\u593e\u5cfd\u633e\u6d79\u72f9\u8105\u8107\u83a2\u92cf\u9830\u4ea8\u5144\u5211\u578b"],["fba1","\u5f62\u6cc2\u6ece\u7005\u7050\u70af\u7192\u73e9\u7469\u834a\u87a2\u8861\u9008\u90a2\u93a3\u99a8\u516e\u5f57\u60e0\u6167\u66b3\u8559\u8e4a\u91af\u978b\u4e4e\u4e92\u547c\u58d5\u58fa\u597d\u5cb5\u5f27\u6236\u6248\u660a\u6667\u6beb\u6d69\u6dcf\u6e56\u6ef8\u6f94\u6fe0\u6fe9\u705d\u72d0\u7425\u745a\u74e0\u7693\u795c\u7cca\u7e1e\u80e1\u82a6\u846b\u84bf\u864e\u865f\u8774\u8b77\u8c6a\u93ac\u9800\u9865\u60d1\u6216\u9177\u5a5a\u660f\u6df7\u6e3e\u743f\u9b42\u5ffd\u60da\u7b0f\u54c4\u5f18\u6c5e\u6cd3\u6d2a\u70d8\u7d05\u8679\u8a0c\u9d3b\u5316\u548c\u5b05\u6a3a\u706b\u7575"],["fca1","\u798d\u79be\u82b1\u83ef\u8a71\u8b41\u8ca8\u9774\ufa0b\u64f4\u652b\u78ba\u78bb\u7a6b\u4e38\u559a\u5950\u5ba6\u5e7b\u60a3\u63db\u6b61\u6665\u6853\u6e19\u7165\u74b0\u7d08\u9084\u9a69\u9c25\u6d3b\u6ed1\u733e\u8c41\u95ca\u51f0\u5e4c\u5fa8\u604d\u60f6\u6130\u614c\u6643\u6644\u69a5\u6cc1\u6e5f\u6ec9\u6f62\u714c\u749c\u7687\u7bc1\u7c27\u8352\u8757\u9051\u968d\u9ec3\u532f\u56de\u5efb\u5f8a\u6062\u6094\u61f7\u6666\u6703\u6a9c\u6dee\u6fae\u7070\u736a\u7e6a\u81be\u8334\u86d4\u8aa8\u8cc4\u5283\u7372\u5b96\u6a6b\u9404\u54ee\u5686\u5b5d\u6548\u6585\u66c9\u689f\u6d8d\u6dc6"],["fda1","\u723b\u80b4\u9175\u9a4d\u4faf\u5019\u539a\u540e\u543c\u5589\u55c5\u5e3f\u5f8c\u673d\u7166\u73dd\u9005\u52db\u52f3\u5864\u58ce\u7104\u718f\u71fb\u85b0\u8a13\u6688\u85a8\u55a7\u6684\u714a\u8431\u5349\u5599\u6bc1\u5f59\u5fbd\u63ee\u6689\u7147\u8af1\u8f1d\u9ebe\u4f11\u643a\u70cb\u7566\u8667\u6064\u8b4e\u9df8\u5147\u51f6\u5308\u6d36\u80f8\u9ed1\u6615\u6b23\u7098\u75d5\u5403\u5c79\u7d07\u8a16\u6b20\u6b3d\u6b46\u5438\u6070\u6d3d\u7fd5\u8208\u50d6\u51de\u559c\u566b\u56cd\u59ec\u5b09\u5e0c\u6199\u6198\u6231\u665e\u66e6\u7199\u71b9\u71ba\u72a7\u79a7\u7a00\u7fb2\u8a70"]]},{}],15:[function(require,module,exports){module.exports=[["0","\0",127],["a140","\u3000\uff0c\u3001\u3002\uff0e\u2027\uff1b\uff1a\uff1f\uff01\ufe30\u2026\u2025\ufe50\ufe51\ufe52\xb7\ufe54\ufe55\ufe56\ufe57\uff5c\u2013\ufe31\u2014\ufe33\u2574\ufe34\ufe4f\uff08\uff09\ufe35\ufe36\uff5b\uff5d\ufe37\ufe38\u3014\u3015\ufe39\ufe3a\u3010\u3011\ufe3b\ufe3c\u300a\u300b\ufe3d\ufe3e\u3008\u3009\ufe3f\ufe40\u300c\u300d\ufe41\ufe42\u300e\u300f\ufe43\ufe44\ufe59\ufe5a"],["a1a1","\ufe5b\ufe5c\ufe5d\ufe5e\u2018\u2019\u201c\u201d\u301d\u301e\u2035\u2032\uff03\uff06\uff0a\u203b\xa7\u3003\u25cb\u25cf\u25b3\u25b2\u25ce\u2606\u2605\u25c7\u25c6\u25a1\u25a0\u25bd\u25bc\u32a3\u2105\xaf\uffe3\uff3f\u02cd\ufe49\ufe4a\ufe4d\ufe4e\ufe4b\ufe4c\ufe5f\ufe60\ufe61\uff0b\uff0d\xd7\xf7\xb1\u221a\uff1c\uff1e\uff1d\u2266\u2267\u2260\u221e\u2252\u2261\ufe62",4,"\uff5e\u2229\u222a\u22a5\u2220\u221f\u22bf\u33d2\u33d1\u222b\u222e\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uff0f"],["a240","\uff3c\u2215\ufe68\uff04\uffe5\u3012\uffe0\uffe1\uff05\uff20\u2103\u2109\ufe69\ufe6a\ufe6b\u33d5\u339c\u339d\u339e\u33ce\u33a1\u338e\u338f\u33c4\xb0\u5159\u515b\u515e\u515d\u5161\u5163\u55e7\u74e9\u7cce\u2581",7,"\u258f\u258e\u258d\u258c\u258b\u258a\u2589\u253c\u2534\u252c\u2524\u251c\u2594\u2500\u2502\u2595\u250c\u2510\u2514\u2518\u256d"],["a2a1","\u256e\u2570\u256f\u2550\u255e\u256a\u2561\u25e2\u25e3\u25e5\u25e4\u2571\u2572\u2573\uff10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uff21",25,"\uff41",21],["a340","\uff57\uff58\uff59\uff5a\u0391",16,"\u03a3",6,"\u03b1",16,"\u03c3",6,"\u3105",10],["a3a1","\u3110",25,"\u02d9\u02c9\u02ca\u02c7\u02cb"],["a3e1","\u20ac"],["a440","\u4e00\u4e59\u4e01\u4e03\u4e43\u4e5d\u4e86\u4e8c\u4eba\u513f\u5165\u516b\u51e0\u5200\u5201\u529b\u5315\u5341\u535c\u53c8\u4e09\u4e0b\u4e08\u4e0a\u4e2b\u4e38\u51e1\u4e45\u4e48\u4e5f\u4e5e\u4e8e\u4ea1\u5140\u5203\u52fa\u5343\u53c9\u53e3\u571f\u58eb\u5915\u5927\u5973\u5b50\u5b51\u5b53\u5bf8\u5c0f\u5c22\u5c38\u5c71\u5ddd\u5de5\u5df1\u5df2\u5df3\u5dfe\u5e72\u5efe\u5f0b\u5f13\u624d"],["a4a1","\u4e11\u4e10\u4e0d\u4e2d\u4e30\u4e39\u4e4b\u5c39\u4e88\u4e91\u4e95\u4e92\u4e94\u4ea2\u4ec1\u4ec0\u4ec3\u4ec6\u4ec7\u4ecd\u4eca\u4ecb\u4ec4\u5143\u5141\u5167\u516d\u516e\u516c\u5197\u51f6\u5206\u5207\u5208\u52fb\u52fe\u52ff\u5316\u5339\u5348\u5347\u5345\u535e\u5384\u53cb\u53ca\u53cd\u58ec\u5929\u592b\u592a\u592d\u5b54\u5c11\u5c24\u5c3a\u5c6f\u5df4\u5e7b\u5eff\u5f14\u5f15\u5fc3\u6208\u6236\u624b\u624e\u652f\u6587\u6597\u65a4\u65b9\u65e5\u66f0\u6708\u6728\u6b20\u6b62\u6b79\u6bcb\u6bd4\u6bdb\u6c0f\u6c34\u706b\u722a\u7236\u723b\u7247\u7259\u725b\u72ac\u738b\u4e19"],["a540","\u4e16\u4e15\u4e14\u4e18\u4e3b\u4e4d\u4e4f\u4e4e\u4ee5\u4ed8\u4ed4\u4ed5\u4ed6\u4ed7\u4ee3\u4ee4\u4ed9\u4ede\u5145\u5144\u5189\u518a\u51ac\u51f9\u51fa\u51f8\u520a\u52a0\u529f\u5305\u5306\u5317\u531d\u4edf\u534a\u5349\u5361\u5360\u536f\u536e\u53bb\u53ef\u53e4\u53f3\u53ec\u53ee\u53e9\u53e8\u53fc\u53f8\u53f5\u53eb\u53e6\u53ea\u53f2\u53f1\u53f0\u53e5\u53ed\u53fb\u56db\u56da\u5916"],["a5a1","\u592e\u5931\u5974\u5976\u5b55\u5b83\u5c3c\u5de8\u5de7\u5de6\u5e02\u5e03\u5e73\u5e7c\u5f01\u5f18\u5f17\u5fc5\u620a\u6253\u6254\u6252\u6251\u65a5\u65e6\u672e\u672c\u672a\u672b\u672d\u6b63\u6bcd\u6c11\u6c10\u6c38\u6c41\u6c40\u6c3e\u72af\u7384\u7389\u74dc\u74e6\u7518\u751f\u7528\u7529\u7530\u7531\u7532\u7533\u758b\u767d\u76ae\u76bf\u76ee\u77db\u77e2\u77f3\u793a\u79be\u7a74\u7acb\u4e1e\u4e1f\u4e52\u4e53\u4e69\u4e99\u4ea4\u4ea6\u4ea5\u4eff\u4f09\u4f19\u4f0a\u4f15\u4f0d\u4f10\u4f11\u4f0f\u4ef2\u4ef6\u4efb\u4ef0\u4ef3\u4efd\u4f01\u4f0b\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518d\u51b0\u5217\u5211\u5212\u520e\u5216\u52a3\u5308\u5321\u5320\u5370\u5371\u5409\u540f\u540c\u540a\u5410\u5401\u540b\u5404\u5411\u540d\u5408\u5403\u540e\u5406\u5412\u56e0\u56de\u56dd\u5733\u5730\u5728\u572d\u572c\u572f\u5729\u5919\u591a\u5937\u5938\u5984\u5978\u5983\u597d\u5979\u5982\u5981\u5b57\u5b58\u5b87\u5b88\u5b85\u5b89\u5bfa\u5c16\u5c79\u5dde\u5e06\u5e76\u5e74"],["a6a1","\u5f0f\u5f1b\u5fd9\u5fd6\u620e\u620c\u620d\u6210\u6263\u625b\u6258\u6536\u65e9\u65e8\u65ec\u65ed\u66f2\u66f3\u6709\u673d\u6734\u6731\u6735\u6b21\u6b64\u6b7b\u6c16\u6c5d\u6c57\u6c59\u6c5f\u6c60\u6c50\u6c55\u6c61\u6c5b\u6c4d\u6c4e\u7070\u725f\u725d\u767e\u7af9\u7c73\u7cf8\u7f36\u7f8a\u7fbd\u8001\u8003\u800c\u8012\u8033\u807f\u8089\u808b\u808c\u81e3\u81ea\u81f3\u81fc\u820c\u821b\u821f\u826e\u8272\u827e\u866b\u8840\u884c\u8863\u897f\u9621\u4e32\u4ea8\u4f4d\u4f4f\u4f47\u4f57\u4f5e\u4f34\u4f5b\u4f55\u4f30\u4f50\u4f51\u4f3d\u4f3a\u4f38\u4f43\u4f54\u4f3c\u4f46\u4f63"],["a740","\u4f5c\u4f60\u4f2f\u4f4e\u4f36\u4f59\u4f5d\u4f48\u4f5a\u514c\u514b\u514d\u5175\u51b6\u51b7\u5225\u5224\u5229\u522a\u5228\u52ab\u52a9\u52aa\u52ac\u5323\u5373\u5375\u541d\u542d\u541e\u543e\u5426\u544e\u5427\u5446\u5443\u5433\u5448\u5442\u541b\u5429\u544a\u5439\u543b\u5438\u542e\u5435\u5436\u5420\u543c\u5440\u5431\u542b\u541f\u542c\u56ea\u56f0\u56e4\u56eb\u574a\u5751\u5740\u574d"],["a7a1","\u5747\u574e\u573e\u5750\u574f\u573b\u58ef\u593e\u599d\u5992\u59a8\u599e\u59a3\u5999\u5996\u598d\u59a4\u5993\u598a\u59a5\u5b5d\u5b5c\u5b5a\u5b5b\u5b8c\u5b8b\u5b8f\u5c2c\u5c40\u5c41\u5c3f\u5c3e\u5c90\u5c91\u5c94\u5c8c\u5deb\u5e0c\u5e8f\u5e87\u5e8a\u5ef7\u5f04\u5f1f\u5f64\u5f62\u5f77\u5f79\u5fd8\u5fcc\u5fd7\u5fcd\u5ff1\u5feb\u5ff8\u5fea\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626d\u628a\u627c\u627e\u6279\u6273\u6292\u626f\u6298\u626e\u6295\u6293\u6291\u6286\u6539\u653b\u6538\u65f1\u66f4\u675f\u674e\u674f\u6750\u6751\u675c\u6756\u675e\u6749\u6746\u6760"],["a840","\u6753\u6757\u6b65\u6bcf\u6c42\u6c5e\u6c99\u6c81\u6c88\u6c89\u6c85\u6c9b\u6c6a\u6c7a\u6c90\u6c70\u6c8c\u6c68\u6c96\u6c92\u6c7d\u6c83\u6c72\u6c7e\u6c74\u6c86\u6c76\u6c8d\u6c94\u6c98\u6c82\u7076\u707c\u707d\u7078\u7262\u7261\u7260\u72c4\u72c2\u7396\u752c\u752b\u7537\u7538\u7682\u76ef\u77e3\u79c1\u79c0\u79bf\u7a76\u7cfb\u7f55\u8096\u8093\u809d\u8098\u809b\u809a\u80b2\u826f\u8292"],["a8a1","\u828b\u828d\u898b\u89d2\u8a00\u8c37\u8c46\u8c55\u8c9d\u8d64\u8d70\u8db3\u8eab\u8eca\u8f9b\u8fb0\u8fc2\u8fc6\u8fc5\u8fc4\u5de1\u9091\u90a2\u90aa\u90a6\u90a3\u9149\u91c6\u91cc\u9632\u962e\u9631\u962a\u962c\u4e26\u4e56\u4e73\u4e8b\u4e9b\u4e9e\u4eab\u4eac\u4f6f\u4f9d\u4f8d\u4f73\u4f7f\u4f6c\u4f9b\u4f8b\u4f86\u4f83\u4f70\u4f75\u4f88\u4f69\u4f7b\u4f96\u4f7e\u4f8f\u4f91\u4f7a\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51bd\u51fd\u523b\u5238\u5237\u523a\u5230\u522e\u5236\u5241\u52be\u52bb\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53d6\u53d4\u53d7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547b\u5477\u5484\u5492\u5486\u547c\u5490\u5471\u5476\u548c\u549a\u5462\u5468\u548b\u547d\u548e\u56fa\u5783\u5777\u576a\u5769\u5761\u5766\u5764\u577c\u591c\u5949\u5947\u5948\u5944\u5954\u59be\u59bb\u59d4\u59b9\u59ae\u59d1\u59c6\u59d0\u59cd\u59cb\u59d3\u59ca\u59af\u59b3\u59d2\u59c5\u5b5f\u5b64\u5b63\u5b97\u5b9a\u5b98\u5b9c\u5b99\u5b9b\u5c1a\u5c48\u5c45"],["a9a1","\u5c46\u5cb7\u5ca1\u5cb8\u5ca9\u5cab\u5cb1\u5cb3\u5e18\u5e1a\u5e16\u5e15\u5e1b\u5e11\u5e78\u5e9a\u5e97\u5e9c\u5e95\u5e96\u5ef6\u5f26\u5f27\u5f29\u5f80\u5f81\u5f7f\u5f7c\u5fdd\u5fe0\u5ffd\u5ff5\u5fff\u600f\u6014\u602f\u6035\u6016\u602a\u6015\u6021\u6027\u6029\u602b\u601b\u6216\u6215\u623f\u623e\u6240\u627f\u62c9\u62cc\u62c4\u62bf\u62c2\u62b9\u62d2\u62db\u62ab\u62d3\u62d4\u62cb\u62c8\u62a8\u62bd\u62bc\u62d0\u62d9\u62c7\u62cd\u62b5\u62da\u62b1\u62d8\u62d6\u62d7\u62c6\u62ac\u62ce\u653e\u65a7\u65bc\u65fa\u6614\u6613\u660c\u6606\u6602\u660e\u6600\u660f\u6615\u660a"],["aa40","\u6607\u670d\u670b\u676d\u678b\u6795\u6771\u679c\u6773\u6777\u6787\u679d\u6797\u676f\u6770\u677f\u6789\u677e\u6790\u6775\u679a\u6793\u677c\u676a\u6772\u6b23\u6b66\u6b67\u6b7f\u6c13\u6c1b\u6ce3\u6ce8\u6cf3\u6cb1\u6ccc\u6ce5\u6cb3\u6cbd\u6cbe\u6cbc\u6ce2\u6cab\u6cd5\u6cd3\u6cb8\u6cc4\u6cb9\u6cc1\u6cae\u6cd7\u6cc5\u6cf1\u6cbf\u6cbb\u6ce1\u6cdb\u6cca\u6cac\u6cef\u6cdc\u6cd6\u6ce0"],["aaa1","\u7095\u708e\u7092\u708a\u7099\u722c\u722d\u7238\u7248\u7267\u7269\u72c0\u72ce\u72d9\u72d7\u72d0\u73a9\u73a8\u739f\u73ab\u73a5\u753d\u759d\u7599\u759a\u7684\u76c2\u76f2\u76f4\u77e5\u77fd\u793e\u7940\u7941\u79c9\u79c8\u7a7a\u7a79\u7afa\u7cfe\u7f54\u7f8c\u7f8b\u8005\u80ba\u80a5\u80a2\u80b1\u80a1\u80ab\u80a9\u80b4\u80aa\u80af\u81e5\u81fe\u820d\u82b3\u829d\u8299\u82ad\u82bd\u829f\u82b9\u82b1\u82ac\u82a5\u82af\u82b8\u82a3\u82b0\u82be\u82b7\u864e\u8671\u521d\u8868\u8ecb\u8fce\u8fd4\u8fd1\u90b5\u90b8\u90b1\u90b6\u91c7\u91d1\u9577\u9580\u961c\u9640\u963f\u963b\u9644"],["ab40","\u9642\u96b9\u96e8\u9752\u975e\u4e9f\u4ead\u4eae\u4fe1\u4fb5\u4faf\u4fbf\u4fe0\u4fd1\u4fcf\u4fdd\u4fc3\u4fb6\u4fd8\u4fdf\u4fca\u4fd7\u4fae\u4fd0\u4fc4\u4fc2\u4fda\u4fce\u4fde\u4fb7\u5157\u5192\u5191\u51a0\u524e\u5243\u524a\u524d\u524c\u524b\u5247\u52c7\u52c9\u52c3\u52c1\u530d\u5357\u537b\u539a\u53db\u54ac\u54c0\u54a8\u54ce\u54c9\u54b8\u54a6\u54b3\u54c7\u54c2\u54bd\u54aa\u54c1"],["aba1","\u54c4\u54c8\u54af\u54ab\u54b1\u54bb\u54a9\u54a7\u54bf\u56ff\u5782\u578b\u57a0\u57a3\u57a2\u57ce\u57ae\u5793\u5955\u5951\u594f\u594e\u5950\u59dc\u59d8\u59ff\u59e3\u59e8\u5a03\u59e5\u59ea\u59da\u59e6\u5a01\u59fb\u5b69\u5ba3\u5ba6\u5ba4\u5ba2\u5ba5\u5c01\u5c4e\u5c4f\u5c4d\u5c4b\u5cd9\u5cd2\u5df7\u5e1d\u5e25\u5e1f\u5e7d\u5ea0\u5ea6\u5efa\u5f08\u5f2d\u5f65\u5f88\u5f85\u5f8a\u5f8b\u5f87\u5f8c\u5f89\u6012\u601d\u6020\u6025\u600e\u6028\u604d\u6070\u6068\u6062\u6046\u6043\u606c\u606b\u606a\u6064\u6241\u62dc\u6316\u6309\u62fc\u62ed\u6301\u62ee\u62fd\u6307\u62f1\u62f7"],["ac40","\u62ef\u62ec\u62fe\u62f4\u6311\u6302\u653f\u6545\u65ab\u65bd\u65e2\u6625\u662d\u6620\u6627\u662f\u661f\u6628\u6631\u6624\u66f7\u67ff\u67d3\u67f1\u67d4\u67d0\u67ec\u67b6\u67af\u67f5\u67e9\u67ef\u67c4\u67d1\u67b4\u67da\u67e5\u67b8\u67cf\u67de\u67f3\u67b0\u67d9\u67e2\u67dd\u67d2\u6b6a\u6b83\u6b86\u6bb5\u6bd2\u6bd7\u6c1f\u6cc9\u6d0b\u6d32\u6d2a\u6d41\u6d25\u6d0c\u6d31\u6d1e\u6d17"],["aca1","\u6d3b\u6d3d\u6d3e\u6d36\u6d1b\u6cf5\u6d39\u6d27\u6d38\u6d29\u6d2e\u6d35\u6d0e\u6d2b\u70ab\u70ba\u70b3\u70ac\u70af\u70ad\u70b8\u70ae\u70a4\u7230\u7272\u726f\u7274\u72e9\u72e0\u72e1\u73b7\u73ca\u73bb\u73b2\u73cd\u73c0\u73b3\u751a\u752d\u754f\u754c\u754e\u754b\u75ab\u75a4\u75a5\u75a2\u75a3\u7678\u7686\u7687\u7688\u76c8\u76c6\u76c3\u76c5\u7701\u76f9\u76f8\u7709\u770b\u76fe\u76fc\u7707\u77dc\u7802\u7814\u780c\u780d\u7946\u7949\u7948\u7947\u79b9\u79ba\u79d1\u79d2\u79cb\u7a7f\u7a81\u7aff\u7afd\u7c7d\u7d02\u7d05\u7d00\u7d09\u7d07\u7d04\u7d06\u7f38\u7f8e\u7fbf\u8004"],["ad40","\u8010\u800d\u8011\u8036\u80d6\u80e5\u80da\u80c3\u80c4\u80cc\u80e1\u80db\u80ce\u80de\u80e4\u80dd\u81f4\u8222\u82e7\u8303\u8305\u82e3\u82db\u82e6\u8304\u82e5\u8302\u8309\u82d2\u82d7\u82f1\u8301\u82dc\u82d4\u82d1\u82de\u82d3\u82df\u82ef\u8306\u8650\u8679\u867b\u867a\u884d\u886b\u8981\u89d4\u8a08\u8a02\u8a03\u8c9e\u8ca0\u8d74\u8d73\u8db4\u8ecd\u8ecc\u8ff0\u8fe6\u8fe2\u8fea\u8fe5"],["ada1","\u8fed\u8feb\u8fe4\u8fe8\u90ca\u90ce\u90c1\u90c3\u914b\u914a\u91cd\u9582\u9650\u964b\u964c\u964d\u9762\u9769\u97cb\u97ed\u97f3\u9801\u98a8\u98db\u98df\u9996\u9999\u4e58\u4eb3\u500c\u500d\u5023\u4fef\u5026\u5025\u4ff8\u5029\u5016\u5006\u503c\u501f\u501a\u5012\u5011\u4ffa\u5000\u5014\u5028\u4ff1\u5021\u500b\u5019\u5018\u4ff3\u4fee\u502d\u502a\u4ffe\u502b\u5009\u517c\u51a4\u51a5\u51a2\u51cd\u51cc\u51c6\u51cb\u5256\u525c\u5254\u525b\u525d\u532a\u537f\u539f\u539d\u53df\u54e8\u5510\u5501\u5537\u54fc\u54e5\u54f2\u5506\u54fa\u5514\u54e9\u54ed\u54e1\u5509\u54ee\u54ea"],["ae40","\u54e6\u5527\u5507\u54fd\u550f\u5703\u5704\u57c2\u57d4\u57cb\u57c3\u5809\u590f\u5957\u5958\u595a\u5a11\u5a18\u5a1c\u5a1f\u5a1b\u5a13\u59ec\u5a20\u5a23\u5a29\u5a25\u5a0c\u5a09\u5b6b\u5c58\u5bb0\u5bb3\u5bb6\u5bb4\u5bae\u5bb5\u5bb9\u5bb8\u5c04\u5c51\u5c55\u5c50\u5ced\u5cfd\u5cfb\u5cea\u5ce8\u5cf0\u5cf6\u5d01\u5cf4\u5dee\u5e2d\u5e2b\u5eab\u5ead\u5ea7\u5f31\u5f92\u5f91\u5f90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606d\u6069\u606f\u6084\u609f\u609a\u608d\u6094\u608c\u6085\u6096\u6247\u62f3\u6308\u62ff\u634e\u633e\u632f\u6355\u6342\u6346\u634f\u6349\u633a\u6350\u633d\u632a\u632b\u6328\u634d\u634c\u6548\u6549\u6599\u65c1\u65c5\u6642\u6649\u664f\u6643\u6652\u664c\u6645\u6641\u66f8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68b3\u6817\u684c\u6851\u683d\u67f4\u6850\u6840\u683c\u6843\u682a\u6845\u6813\u6818\u6841\u6b8a\u6b89\u6bb7\u6c23\u6c27\u6c28\u6c26\u6c24\u6cf0\u6d6a\u6d95\u6d88\u6d87\u6d66\u6d78\u6d77\u6d59\u6d93"],["af40","\u6d6c\u6d89\u6d6e\u6d5a\u6d74\u6d69\u6d8c\u6d8a\u6d79\u6d85\u6d65\u6d94\u70ca\u70d8\u70e4\u70d9\u70c8\u70cf\u7239\u7279\u72fc\u72f9\u72fd\u72f8\u72f7\u7386\u73ed\u7409\u73ee\u73e0\u73ea\u73de\u7554\u755d\u755c\u755a\u7559\u75be\u75c5\u75c7\u75b2\u75b3\u75bd\u75bc\u75b9\u75c2\u75b8\u768b\u76b0\u76ca\u76cd\u76ce\u7729\u771f\u7720\u7728\u77e9\u7830\u7827\u7838\u781d\u7834\u7837"],["afa1","\u7825\u782d\u7820\u781f\u7832\u7955\u7950\u7960\u795f\u7956\u795e\u795d\u7957\u795a\u79e4\u79e3\u79e7\u79df\u79e6\u79e9\u79d8\u7a84\u7a88\u7ad9\u7b06\u7b11\u7c89\u7d21\u7d17\u7d0b\u7d0a\u7d20\u7d22\u7d14\u7d10\u7d15\u7d1a\u7d1c\u7d0d\u7d19\u7d1b\u7f3a\u7f5f\u7f94\u7fc5\u7fc1\u8006\u8018\u8015\u8019\u8017\u803d\u803f\u80f1\u8102\u80f0\u8105\u80ed\u80f4\u8106\u80f8\u80f3\u8108\u80fd\u810a\u80fc\u80ef\u81ed\u81ec\u8200\u8210\u822a\u822b\u8228\u822c\u82bb\u832b\u8352\u8354\u834a\u8338\u8350\u8349\u8335\u8334\u834f\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868a\u86aa\u8693\u86a4\u86a9\u868c\u86a3\u869c\u8870\u8877\u8881\u8882\u887d\u8879\u8a18\u8a10\u8a0e\u8a0c\u8a15\u8a0a\u8a17\u8a13\u8a16\u8a0f\u8a11\u8c48\u8c7a\u8c79\u8ca1\u8ca2\u8d77\u8eac\u8ed2\u8ed4\u8ecf\u8fb1\u9001\u9006\u8ff7\u9000\u8ffa\u8ff4\u9003\u8ffd\u9005\u8ff8\u9095\u90e1\u90dd\u90e2\u9152\u914d\u914c\u91d8\u91dd\u91d7\u91dc\u91d9\u9583\u9662\u9663\u9661"],["b0a1","\u965b\u965d\u9664\u9658\u965e\u96bb\u98e2\u99ac\u9aa8\u9ad8\u9b25\u9b32\u9b3c\u4e7e\u507a\u507d\u505c\u5047\u5043\u504c\u505a\u5049\u5065\u5076\u504e\u5055\u5075\u5074\u5077\u504f\u500f\u506f\u506d\u515c\u5195\u51f0\u526a\u526f\u52d2\u52d9\u52d8\u52d5\u5310\u530f\u5319\u533f\u5340\u533e\u53c3\u66fc\u5546\u556a\u5566\u5544\u555e\u5561\u5543\u554a\u5531\u5556\u554f\u5555\u552f\u5564\u5538\u552e\u555c\u552c\u5563\u5533\u5541\u5557\u5708\u570b\u5709\u57df\u5805\u580a\u5806\u57e0\u57e4\u57fa\u5802\u5835\u57f7\u57f9\u5920\u5962\u5a36\u5a41\u5a49\u5a66\u5a6a\u5a40"],["b140","\u5a3c\u5a62\u5a5a\u5a46\u5a4a\u5b70\u5bc7\u5bc5\u5bc4\u5bc2\u5bbf\u5bc6\u5c09\u5c08\u5c07\u5c60\u5c5c\u5c5d\u5d07\u5d06\u5d0e\u5d1b\u5d16\u5d22\u5d11\u5d29\u5d14\u5d19\u5d24\u5d27\u5d17\u5de2\u5e38\u5e36\u5e33\u5e37\u5eb7\u5eb8\u5eb6\u5eb5\u5ebe\u5f35\u5f37\u5f57\u5f6c\u5f69\u5f6b\u5f97\u5f99\u5f9e\u5f98\u5fa1\u5fa0\u5f9c\u607f\u60a3\u6089\u60a0\u60a8\u60cb\u60b4\u60e6\u60bd"],["b1a1","\u60c5\u60bb\u60b5\u60dc\u60bc\u60d8\u60d5\u60c6\u60df\u60b8\u60da\u60c7\u621a\u621b\u6248\u63a0\u63a7\u6372\u6396\u63a2\u63a5\u6377\u6367\u6398\u63aa\u6371\u63a9\u6389\u6383\u639b\u636b\u63a8\u6384\u6388\u6399\u63a1\u63ac\u6392\u638f\u6380\u637b\u6369\u6368\u637a\u655d\u6556\u6551\u6559\u6557\u555f\u654f\u6558\u6555\u6554\u659c\u659b\u65ac\u65cf\u65cb\u65cc\u65ce\u665d\u665a\u6664\u6668\u6666\u665e\u66f9\u52d7\u671b\u6881\u68af\u68a2\u6893\u68b5\u687f\u6876\u68b1\u68a7\u6897\u68b0\u6883\u68c4\u68ad\u6886\u6885\u6894\u689d\u68a8\u689f\u68a1\u6882\u6b32\u6bba"],["b240","\u6beb\u6bec\u6c2b\u6d8e\u6dbc\u6df3\u6dd9\u6db2\u6de1\u6dcc\u6de4\u6dfb\u6dfa\u6e05\u6dc7\u6dcb\u6daf\u6dd1\u6dae\u6dde\u6df9\u6db8\u6df7\u6df5\u6dc5\u6dd2\u6e1a\u6db5\u6dda\u6deb\u6dd8\u6dea\u6df1\u6dee\u6de8\u6dc6\u6dc4\u6daa\u6dec\u6dbf\u6de6\u70f9\u7109\u710a\u70fd\u70ef\u723d\u727d\u7281\u731c\u731b\u7316\u7313\u7319\u7387\u7405\u740a\u7403\u7406\u73fe\u740d\u74e0\u74f6"],["b2a1","\u74f7\u751c\u7522\u7565\u7566\u7562\u7570\u758f\u75d4\u75d5\u75b5\u75ca\u75cd\u768e\u76d4\u76d2\u76db\u7737\u773e\u773c\u7736\u7738\u773a\u786b\u7843\u784e\u7965\u7968\u796d\u79fb\u7a92\u7a95\u7b20\u7b28\u7b1b\u7b2c\u7b26\u7b19\u7b1e\u7b2e\u7c92\u7c97\u7c95\u7d46\u7d43\u7d71\u7d2e\u7d39\u7d3c\u7d40\u7d30\u7d33\u7d44\u7d2f\u7d42\u7d32\u7d31\u7f3d\u7f9e\u7f9a\u7fcc\u7fce\u7fd2\u801c\u804a\u8046\u812f\u8116\u8123\u812b\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838e\u839e\u8398\u8378\u83a2\u8396\u83bd\u83ab\u8392\u838a\u8393\u8389\u83a0\u8377\u837b\u837c"],["b340","\u8386\u83a7\u8655\u5f6a\u86c7\u86c0\u86b6\u86c4\u86b5\u86c6\u86cb\u86b1\u86af\u86c9\u8853\u889e\u8888\u88ab\u8892\u8896\u888d\u888b\u8993\u898f\u8a2a\u8a1d\u8a23\u8a25\u8a31\u8a2d\u8a1f\u8a1b\u8a22\u8c49\u8c5a\u8ca9\u8cac\u8cab\u8ca8\u8caa\u8ca7\u8d67\u8d66\u8dbe\u8dba\u8edb\u8edf\u9019\u900d\u901a\u9017\u9023\u901f\u901d\u9010\u9015\u901e\u9020\u900f\u9022\u9016\u901b\u9014"],["b3a1","\u90e8\u90ed\u90fd\u9157\u91ce\u91f5\u91e6\u91e3\u91e7\u91ed\u91e9\u9589\u966a\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966c\u96c0\u96ea\u96e9\u7ae0\u7adf\u9802\u9803\u9b5a\u9ce5\u9e75\u9e7f\u9ea5\u9ebb\u50a2\u508d\u5085\u5099\u5091\u5080\u5096\u5098\u509a\u6700\u51f1\u5272\u5274\u5275\u5269\u52de\u52dd\u52db\u535a\u53a5\u557b\u5580\u55a7\u557c\u558a\u559d\u5598\u5582\u559c\u55aa\u5594\u5587\u558b\u5583\u55b3\u55ae\u559f\u553e\u55b2\u559a\u55bb\u55ac\u55b1\u557e\u5589\u55ab\u5599\u570d\u582f\u582a\u5834\u5824\u5830\u5831\u5821\u581d\u5820\u58f9\u58fa\u5960"],["b440","\u5a77\u5a9a\u5a7f\u5a92\u5a9b\u5aa7\u5b73\u5b71\u5bd2\u5bcc\u5bd3\u5bd0\u5c0a\u5c0b\u5c31\u5d4c\u5d50\u5d34\u5d47\u5dfd\u5e45\u5e3d\u5e40\u5e43\u5e7e\u5eca\u5ec1\u5ec2\u5ec4\u5f3c\u5f6d\u5fa9\u5faa\u5fa8\u60d1\u60e1\u60b2\u60b6\u60e0\u611c\u6123\u60fa\u6115\u60f0\u60fb\u60f4\u6168\u60f1\u610e\u60f6\u6109\u6100\u6112\u621f\u6249\u63a3\u638c\u63cf\u63c0\u63e9\u63c9\u63c6\u63cd"],["b4a1","\u63d2\u63e3\u63d0\u63e1\u63d6\u63ed\u63ee\u6376\u63f4\u63ea\u63db\u6452\u63da\u63f9\u655e\u6566\u6562\u6563\u6591\u6590\u65af\u666e\u6670\u6674\u6676\u666f\u6691\u667a\u667e\u6677\u66fe\u66ff\u671f\u671d\u68fa\u68d5\u68e0\u68d8\u68d7\u6905\u68df\u68f5\u68ee\u68e7\u68f9\u68d2\u68f2\u68e3\u68cb\u68cd\u690d\u6912\u690e\u68c9\u68da\u696e\u68fb\u6b3e\u6b3a\u6b3d\u6b98\u6b96\u6bbc\u6bef\u6c2e\u6c2f\u6c2c\u6e2f\u6e38\u6e54\u6e21\u6e32\u6e67\u6e4a\u6e20\u6e25\u6e23\u6e1b\u6e5b\u6e58\u6e24\u6e56\u6e6e\u6e2d\u6e26\u6e6f\u6e34\u6e4d\u6e3a\u6e2c\u6e43\u6e1d\u6e3e\u6ecb"],["b540","\u6e89\u6e19\u6e4e\u6e63\u6e44\u6e72\u6e69\u6e5f\u7119\u711a\u7126\u7130\u7121\u7136\u716e\u711c\u724c\u7284\u7280\u7336\u7325\u7334\u7329\u743a\u742a\u7433\u7422\u7425\u7435\u7436\u7434\u742f\u741b\u7426\u7428\u7525\u7526\u756b\u756a\u75e2\u75db\u75e3\u75d9\u75d8\u75de\u75e0\u767b\u767c\u7696\u7693\u76b4\u76dc\u774f\u77ed\u785d\u786c\u786f\u7a0d\u7a08\u7a0b\u7a05\u7a00\u7a98"],["b5a1","\u7a97\u7a96\u7ae5\u7ae3\u7b49\u7b56\u7b46\u7b50\u7b52\u7b54\u7b4d\u7b4b\u7b4f\u7b51\u7c9f\u7ca5\u7d5e\u7d50\u7d68\u7d55\u7d2b\u7d6e\u7d72\u7d61\u7d66\u7d62\u7d70\u7d73\u5584\u7fd4\u7fd5\u800b\u8052\u8085\u8155\u8154\u814b\u8151\u814e\u8139\u8146\u813e\u814c\u8153\u8174\u8212\u821c\u83e9\u8403\u83f8\u840d\u83e0\u83c5\u840b\u83c1\u83ef\u83f1\u83f4\u8457\u840a\u83f0\u840c\u83cc\u83fd\u83f2\u83ca\u8438\u840e\u8404\u83dc\u8407\u83d4\u83df\u865b\u86df\u86d9\u86ed\u86d4\u86db\u86e4\u86d0\u86de\u8857\u88c1\u88c2\u88b1\u8983\u8996\u8a3b\u8a60\u8a55\u8a5e\u8a3c\u8a41"],["b640","\u8a54\u8a5b\u8a50\u8a46\u8a34\u8a3a\u8a36\u8a56\u8c61\u8c82\u8caf\u8cbc\u8cb3\u8cbd\u8cc1\u8cbb\u8cc0\u8cb4\u8cb7\u8cb6\u8cbf\u8cb8\u8d8a\u8d85\u8d81\u8dce\u8ddd\u8dcb\u8dda\u8dd1\u8dcc\u8ddb\u8dc6\u8efb\u8ef8\u8efc\u8f9c\u902e\u9035\u9031\u9038\u9032\u9036\u9102\u90f5\u9109\u90fe\u9163\u9165\u91cf\u9214\u9215\u9223\u9209\u921e\u920d\u9210\u9207\u9211\u9594\u958f\u958b\u9591"],["b6a1","\u9593\u9592\u958e\u968a\u968e\u968b\u967d\u9685\u9686\u968d\u9672\u9684\u96c1\u96c5\u96c4\u96c6\u96c7\u96ef\u96f2\u97cc\u9805\u9806\u9808\u98e7\u98ea\u98ef\u98e9\u98f2\u98ed\u99ae\u99ad\u9ec3\u9ecd\u9ed1\u4e82\u50ad\u50b5\u50b2\u50b3\u50c5\u50be\u50ac\u50b7\u50bb\u50af\u50c7\u527f\u5277\u527d\u52df\u52e6\u52e4\u52e2\u52e3\u532f\u55df\u55e8\u55d3\u55e6\u55ce\u55dc\u55c7\u55d1\u55e3\u55e4\u55ef\u55da\u55e1\u55c5\u55c6\u55e5\u55c9\u5712\u5713\u585e\u5851\u5858\u5857\u585a\u5854\u586b\u584c\u586d\u584a\u5862\u5852\u584b\u5967\u5ac1\u5ac9\u5acc\u5abe\u5abd\u5abc"],["b740","\u5ab3\u5ac2\u5ab2\u5d69\u5d6f\u5e4c\u5e79\u5ec9\u5ec8\u5f12\u5f59\u5fac\u5fae\u611a\u610f\u6148\u611f\u60f3\u611b\u60f9\u6101\u6108\u614e\u614c\u6144\u614d\u613e\u6134\u6127\u610d\u6106\u6137\u6221\u6222\u6413\u643e\u641e\u642a\u642d\u643d\u642c\u640f\u641c\u6414\u640d\u6436\u6416\u6417\u6406\u656c\u659f\u65b0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668d\u6703\u6994\u696d"],["b7a1","\u695a\u6977\u6960\u6954\u6975\u6930\u6982\u694a\u6968\u696b\u695e\u6953\u6979\u6986\u695d\u6963\u695b\u6b47\u6b72\u6bc0\u6bbf\u6bd3\u6bfd\u6ea2\u6eaf\u6ed3\u6eb6\u6ec2\u6e90\u6e9d\u6ec7\u6ec5\u6ea5\u6e98\u6ebc\u6eba\u6eab\u6ed1\u6e96\u6e9c\u6ec4\u6ed4\u6eaa\u6ea7\u6eb4\u714e\u7159\u7169\u7164\u7149\u7167\u715c\u716c\u7166\u714c\u7165\u715e\u7146\u7168\u7156\u723a\u7252\u7337\u7345\u733f\u733e\u746f\u745a\u7455\u745f\u745e\u7441\u743f\u7459\u745b\u745c\u7576\u7578\u7600\u75f0\u7601\u75f2\u75f1\u75fa\u75ff\u75f4\u75f3\u76de\u76df\u775b\u776b\u7766\u775e\u7763"],["b840","\u7779\u776a\u776c\u775c\u7765\u7768\u7762\u77ee\u788e\u78b0\u7897\u7898\u788c\u7889\u787c\u7891\u7893\u787f\u797a\u797f\u7981\u842c\u79bd\u7a1c\u7a1a\u7a20\u7a14\u7a1f\u7a1e\u7a9f\u7aa0\u7b77\u7bc0\u7b60\u7b6e\u7b67\u7cb1\u7cb3\u7cb5\u7d93\u7d79\u7d91\u7d81\u7d8f\u7d5b\u7f6e\u7f69\u7f6a\u7f72\u7fa9\u7fa8\u7fa4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816e\u8173\u816b"],["b8a1","\u8179\u817a\u8166\u8205\u8247\u8482\u8477\u843d\u8431\u8475\u8466\u846b\u8449\u846c\u845b\u843c\u8435\u8461\u8463\u8469\u846d\u8446\u865e\u865c\u865f\u86f9\u8713\u8708\u8707\u8700\u86fe\u86fb\u8702\u8703\u8706\u870a\u8859\u88df\u88d4\u88d9\u88dc\u88d8\u88dd\u88e1\u88ca\u88d5\u88d2\u899c\u89e3\u8a6b\u8a72\u8a73\u8a66\u8a69\u8a70\u8a87\u8a7c\u8a63\u8aa0\u8a71\u8a85\u8a6d\u8a62\u8a6e\u8a6c\u8a79\u8a7b\u8a3e\u8a68\u8c62\u8c8a\u8c89\u8cca\u8cc7\u8cc8\u8cc4\u8cb2\u8cc3\u8cc2\u8cc5\u8de1\u8ddf\u8de8\u8def\u8df3\u8dfa\u8dea\u8de4\u8de6\u8eb2\u8f03\u8f09\u8efe\u8f0a"],["b940","\u8f9f\u8fb2\u904b\u904a\u9053\u9042\u9054\u903c\u9055\u9050\u9047\u904f\u904e\u904d\u9051\u903e\u9041\u9112\u9117\u916c\u916a\u9169\u91c9\u9237\u9257\u9238\u923d\u9240\u923e\u925b\u924b\u9264\u9251\u9234\u9249\u924d\u9245\u9239\u923f\u925a\u9598\u9698\u9694\u9695\u96cd\u96cb\u96c9\u96ca\u96f7\u96fb\u96f9\u96f6\u9756\u9774\u9776\u9810\u9811\u9813\u980a\u9812\u980c\u98fc\u98f4"],["b9a1","\u98fd\u98fe\u99b3\u99b1\u99b4\u9ae1\u9ce9\u9e82\u9f0e\u9f13\u9f20\u50e7\u50ee\u50e5\u50d6\u50ed\u50da\u50d5\u50cf\u50d1\u50f1\u50ce\u50e9\u5162\u51f3\u5283\u5282\u5331\u53ad\u55fe\u5600\u561b\u5617\u55fd\u5614\u5606\u5609\u560d\u560e\u55f7\u5616\u561f\u5608\u5610\u55f6\u5718\u5716\u5875\u587e\u5883\u5893\u588a\u5879\u5885\u587d\u58fd\u5925\u5922\u5924\u596a\u5969\u5ae1\u5ae6\u5ae9\u5ad7\u5ad6\u5ad8\u5ae3\u5b75\u5bde\u5be7\u5be1\u5be5\u5be6\u5be8\u5be2\u5be4\u5bdf\u5c0d\u5c62\u5d84\u5d87\u5e5b\u5e63\u5e55\u5e57\u5e54\u5ed3\u5ed6\u5f0a\u5f46\u5f70\u5fb9\u6147"],["ba40","\u613f\u614b\u6177\u6162\u6163\u615f\u615a\u6158\u6175\u622a\u6487\u6458\u6454\u64a4\u6478\u645f\u647a\u6451\u6467\u6434\u646d\u647b\u6572\u65a1\u65d7\u65d6\u66a2\u66a8\u669d\u699c\u69a8\u6995\u69c1\u69ae\u69d3\u69cb\u699b\u69b7\u69bb\u69ab\u69b4\u69d0\u69cd\u69ad\u69cc\u69a6\u69c3\u69a3\u6b49\u6b4c\u6c33\u6f33\u6f14\u6efe\u6f13\u6ef4\u6f29\u6f3e\u6f20\u6f2c\u6f0f\u6f02\u6f22"],["baa1","\u6eff\u6eef\u6f06\u6f31\u6f38\u6f32\u6f23\u6f15\u6f2b\u6f2f\u6f88\u6f2a\u6eec\u6f01\u6ef2\u6ecc\u6ef7\u7194\u7199\u717d\u718a\u7184\u7192\u723e\u7292\u7296\u7344\u7350\u7464\u7463\u746a\u7470\u746d\u7504\u7591\u7627\u760d\u760b\u7609\u7613\u76e1\u76e3\u7784\u777d\u777f\u7761\u78c1\u789f\u78a7\u78b3\u78a9\u78a3\u798e\u798f\u798d\u7a2e\u7a31\u7aaa\u7aa9\u7aed\u7aef\u7ba1\u7b95\u7b8b\u7b75\u7b97\u7b9d\u7b94\u7b8f\u7bb8\u7b87\u7b84\u7cb9\u7cbd\u7cbe\u7dbb\u7db0\u7d9c\u7dbd\u7dbe\u7da0\u7dca\u7db4\u7db2\u7db1\u7dba\u7da2\u7dbf\u7db5\u7db8\u7dad\u7dd2\u7dc7\u7dac"],["bb40","\u7f70\u7fe0\u7fe1\u7fdf\u805e\u805a\u8087\u8150\u8180\u818f\u8188\u818a\u817f\u8182\u81e7\u81fa\u8207\u8214\u821e\u824b\u84c9\u84bf\u84c6\u84c4\u8499\u849e\u84b2\u849c\u84cb\u84b8\u84c0\u84d3\u8490\u84bc\u84d1\u84ca\u873f\u871c\u873b\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88f3\u8902\u88f4\u88f9\u88f8\u88fd\u88e8\u891a\u88ef\u8aa6\u8a8c\u8a9e\u8aa3\u8a8d\u8aa1\u8a93\u8aa4"],["bba1","\u8aaa\u8aa5\u8aa8\u8a98\u8a91\u8a9a\u8aa7\u8c6a\u8c8d\u8c8c\u8cd3\u8cd1\u8cd2\u8d6b\u8d99\u8d95\u8dfc\u8f14\u8f12\u8f15\u8f13\u8fa3\u9060\u9058\u905c\u9063\u9059\u905e\u9062\u905d\u905b\u9119\u9118\u911e\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927b\u9293\u929c\u92a8\u927c\u9291\u95a1\u95a8\u95a9\u95a3\u95a5\u95a4\u9699\u969c\u969b\u96cc\u96d2\u9700\u977c\u9785\u97f6\u9817\u9818\u98af\u98b1\u9903\u9905\u990c\u9909\u99c1\u9aaf\u9ab0\u9ae6\u9b41\u9b42\u9cf4\u9cf6\u9cf3\u9ebc\u9f3b\u9f4a\u5104\u5100\u50fb\u50f5\u50f9\u5102\u5108\u5109\u5105\u51dc"],["bc40","\u5287\u5288\u5289\u528d\u528a\u52f0\u53b2\u562e\u563b\u5639\u5632\u563f\u5634\u5629\u5653\u564e\u5657\u5674\u5636\u562f\u5630\u5880\u589f\u589e\u58b3\u589c\u58ae\u58a9\u58a6\u596d\u5b09\u5afb\u5b0b\u5af5\u5b0c\u5b08\u5bee\u5bec\u5be9\u5beb\u5c64\u5c65\u5d9d\u5d94\u5e62\u5e5f\u5e61\u5ee2\u5eda\u5edf\u5edd\u5ee3\u5ee0\u5f48\u5f71\u5fb7\u5fb5\u6176\u6167\u616e\u615d\u6155\u6182"],["bca1","\u617c\u6170\u616b\u617e\u61a7\u6190\u61ab\u618e\u61ac\u619a\u61a4\u6194\u61ae\u622e\u6469\u646f\u6479\u649e\u64b2\u6488\u6490\u64b0\u64a5\u6493\u6495\u64a9\u6492\u64ae\u64ad\u64ab\u649a\u64ac\u6499\u64a2\u64b3\u6575\u6577\u6578\u66ae\u66ab\u66b4\u66b1\u6a23\u6a1f\u69e8\u6a01\u6a1e\u6a19\u69fd\u6a21\u6a13\u6a0a\u69f3\u6a02\u6a05\u69ed\u6a11\u6b50\u6b4e\u6ba4\u6bc5\u6bc6\u6f3f\u6f7c\u6f84\u6f51\u6f66\u6f54\u6f86\u6f6d\u6f5b\u6f78\u6f6e\u6f8e\u6f7a\u6f70\u6f64\u6f97\u6f58\u6ed5\u6f6f\u6f60\u6f5f\u719f\u71ac\u71b1\u71a8\u7256\u729b\u734e\u7357\u7469\u748b\u7483"],["bd40","\u747e\u7480\u757f\u7620\u7629\u761f\u7624\u7626\u7621\u7622\u769a\u76ba\u76e4\u778e\u7787\u778c\u7791\u778b\u78cb\u78c5\u78ba\u78ca\u78be\u78d5\u78bc\u78d0\u7a3f\u7a3c\u7a40\u7a3d\u7a37\u7a3b\u7aaf\u7aae\u7bad\u7bb1\u7bc4\u7bb4\u7bc6\u7bc7\u7bc1\u7ba0\u7bcc\u7cca\u7de0\u7df4\u7def\u7dfb\u7dd8\u7dec\u7ddd\u7de8\u7de3\u7dda\u7dde\u7de9\u7d9e\u7dd9\u7df2\u7df9\u7f75\u7f77\u7faf"],["bda1","\u7fe9\u8026\u819b\u819c\u819d\u81a0\u819a\u8198\u8517\u853d\u851a\u84ee\u852c\u852d\u8513\u8511\u8523\u8521\u8514\u84ec\u8525\u84ff\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874c\u8753\u885b\u885d\u8910\u8907\u8912\u8913\u8915\u890a\u8abc\u8ad2\u8ac7\u8ac4\u8a95\u8acb\u8af8\u8ab2\u8ac9\u8ac2\u8abf\u8ab0\u8ad6\u8acd\u8ab6\u8ab9\u8adb\u8c4c\u8c4e\u8c6c\u8ce0\u8cde\u8ce6\u8ce4\u8cec\u8ced\u8ce2\u8ce3\u8cdc\u8cea\u8ce1\u8d6d\u8d9f\u8da3\u8e2b\u8e10\u8e1d\u8e22\u8e0f\u8e29\u8e1f\u8e21\u8e1e\u8eba\u8f1d\u8f1b\u8f1f\u8f29\u8f26\u8f2a\u8f1c\u8f1e"],["be40","\u8f25\u9069\u906e\u9068\u906d\u9077\u9130\u912d\u9127\u9131\u9187\u9189\u918b\u9183\u92c5\u92bb\u92b7\u92ea\u92ac\u92e4\u92c1\u92b3\u92bc\u92d2\u92c7\u92f0\u92b2\u95ad\u95b1\u9704\u9706\u9707\u9709\u9760\u978d\u978b\u978f\u9821\u982b\u981c\u98b3\u990a\u9913\u9912\u9918\u99dd\u99d0\u99df\u99db\u99d1\u99d5\u99d2\u99d9\u9ab7\u9aee\u9aef\u9b27\u9b45\u9b44\u9b77\u9b6f\u9d06\u9d09"],["bea1","\u9d03\u9ea9\u9ebe\u9ece\u58a8\u9f52\u5112\u5118\u5114\u5110\u5115\u5180\u51aa\u51dd\u5291\u5293\u52f3\u5659\u566b\u5679\u5669\u5664\u5678\u566a\u5668\u5665\u5671\u566f\u566c\u5662\u5676\u58c1\u58be\u58c7\u58c5\u596e\u5b1d\u5b34\u5b78\u5bf0\u5c0e\u5f4a\u61b2\u6191\u61a9\u618a\u61cd\u61b6\u61be\u61ca\u61c8\u6230\u64c5\u64c1\u64cb\u64bb\u64bc\u64da\u64c4\u64c7\u64c2\u64cd\u64bf\u64d2\u64d4\u64be\u6574\u66c6\u66c9\u66b9\u66c4\u66c7\u66b8\u6a3d\u6a38\u6a3a\u6a59\u6a6b\u6a58\u6a39\u6a44\u6a62\u6a61\u6a4b\u6a47\u6a35\u6a5f\u6a48\u6b59\u6b77\u6c05\u6fc2\u6fb1\u6fa1"],["bf40","\u6fc3\u6fa4\u6fc1\u6fa7\u6fb3\u6fc0\u6fb9\u6fb6\u6fa6\u6fa0\u6fb4\u71be\u71c9\u71d0\u71d2\u71c8\u71d5\u71b9\u71ce\u71d9\u71dc\u71c3\u71c4\u7368\u749c\u74a3\u7498\u749f\u749e\u74e2\u750c\u750d\u7634\u7638\u763a\u76e7\u76e5\u77a0\u779e\u779f\u77a5\u78e8\u78da\u78ec\u78e7\u79a6\u7a4d\u7a4e\u7a46\u7a4c\u7a4b\u7aba\u7bd9\u7c11\u7bc9\u7be4\u7bdb\u7be1\u7be9\u7be6\u7cd5\u7cd6\u7e0a"],["bfa1","\u7e11\u7e08\u7e1b\u7e23\u7e1e\u7e1d\u7e09\u7e10\u7f79\u7fb2\u7ff0\u7ff1\u7fee\u8028\u81b3\u81a9\u81a8\u81fb\u8208\u8258\u8259\u854a\u8559\u8548\u8568\u8569\u8543\u8549\u856d\u856a\u855e\u8783\u879f\u879e\u87a2\u878d\u8861\u892a\u8932\u8925\u892b\u8921\u89aa\u89a6\u8ae6\u8afa\u8aeb\u8af1\u8b00\u8adc\u8ae7\u8aee\u8afe\u8b01\u8b02\u8af7\u8aed\u8af3\u8af6\u8afc\u8c6b\u8c6d\u8c93\u8cf4\u8e44\u8e31\u8e34\u8e42\u8e39\u8e35\u8f3b\u8f2f\u8f38\u8f33\u8fa8\u8fa6\u9075\u9074\u9078\u9072\u907c\u907a\u9134\u9192\u9320\u9336\u92f8\u9333\u932f\u9322\u92fc\u932b\u9304\u931a"],["c040","\u9310\u9326\u9321\u9315\u932e\u9319\u95bb\u96a7\u96a8\u96aa\u96d5\u970e\u9711\u9716\u970d\u9713\u970f\u975b\u975c\u9766\u9798\u9830\u9838\u983b\u9837\u982d\u9839\u9824\u9910\u9928\u991e\u991b\u9921\u991a\u99ed\u99e2\u99f1\u9ab8\u9abc\u9afb\u9aed\u9b28\u9b91\u9d15\u9d23\u9d26\u9d28\u9d12\u9d1b\u9ed8\u9ed4\u9f8d\u9f9c\u512a\u511f\u5121\u5132\u52f5\u568e\u5680\u5690\u5685\u5687"],["c0a1","\u568f\u58d5\u58d3\u58d1\u58ce\u5b30\u5b2a\u5b24\u5b7a\u5c37\u5c68\u5dbc\u5dba\u5dbd\u5db8\u5e6b\u5f4c\u5fbd\u61c9\u61c2\u61c7\u61e6\u61cb\u6232\u6234\u64ce\u64ca\u64d8\u64e0\u64f0\u64e6\u64ec\u64f1\u64e2\u64ed\u6582\u6583\u66d9\u66d6\u6a80\u6a94\u6a84\u6aa2\u6a9c\u6adb\u6aa3\u6a7e\u6a97\u6a90\u6aa0\u6b5c\u6bae\u6bda\u6c08\u6fd8\u6ff1\u6fdf\u6fe0\u6fdb\u6fe4\u6feb\u6fef\u6f80\u6fec\u6fe1\u6fe9\u6fd5\u6fee\u6ff0\u71e7\u71df\u71ee\u71e6\u71e5\u71ed\u71ec\u71f4\u71e0\u7235\u7246\u7370\u7372\u74a9\u74b0\u74a6\u74a8\u7646\u7642\u764c\u76ea\u77b3\u77aa\u77b0\u77ac"],["c140","\u77a7\u77ad\u77ef\u78f7\u78fa\u78f4\u78ef\u7901\u79a7\u79aa\u7a57\u7abf\u7c07\u7c0d\u7bfe\u7bf7\u7c0c\u7be0\u7ce0\u7cdc\u7cde\u7ce2\u7cdf\u7cd9\u7cdd\u7e2e\u7e3e\u7e46\u7e37\u7e32\u7e43\u7e2b\u7e3d\u7e31\u7e45\u7e41\u7e34\u7e39\u7e48\u7e35\u7e3f\u7e2f\u7f44\u7ff3\u7ffc\u8071\u8072\u8070\u806f\u8073\u81c6\u81c3\u81ba\u81c2\u81c0\u81bf\u81bd\u81c9\u81be\u81e8\u8209\u8271\u85aa"],["c1a1","\u8584\u857e\u859c\u8591\u8594\u85af\u859b\u8587\u85a8\u858a\u8667\u87c0\u87d1\u87b3\u87d2\u87c6\u87ab\u87bb\u87ba\u87c8\u87cb\u893b\u8936\u8944\u8938\u893d\u89ac\u8b0e\u8b17\u8b19\u8b1b\u8b0a\u8b20\u8b1d\u8b04\u8b10\u8c41\u8c3f\u8c73\u8cfa\u8cfd\u8cfc\u8cf8\u8cfb\u8da8\u8e49\u8e4b\u8e48\u8e4a\u8f44\u8f3e\u8f42\u8f45\u8f3f\u907f\u907d\u9084\u9081\u9082\u9080\u9139\u91a3\u919e\u919c\u934d\u9382\u9328\u9375\u934a\u9365\u934b\u9318\u937e\u936c\u935b\u9370\u935a\u9354\u95ca\u95cb\u95cc\u95c8\u95c6\u96b1\u96b8\u96d6\u971c\u971e\u97a0\u97d3\u9846\u98b6\u9935\u9a01"],["c240","\u99ff\u9bae\u9bab\u9baa\u9bad\u9d3b\u9d3f\u9e8b\u9ecf\u9ede\u9edc\u9edd\u9edb\u9f3e\u9f4b\u53e2\u5695\u56ae\u58d9\u58d8\u5b38\u5f5d\u61e3\u6233\u64f4\u64f2\u64fe\u6506\u64fa\u64fb\u64f7\u65b7\u66dc\u6726\u6ab3\u6aac\u6ac3\u6abb\u6ab8\u6ac2\u6aae\u6aaf\u6b5f\u6b78\u6baf\u7009\u700b\u6ffe\u7006\u6ffa\u7011\u700f\u71fb\u71fc\u71fe\u71f8\u7377\u7375\u74a7\u74bf\u7515\u7656\u7658"],["c2a1","\u7652\u77bd\u77bf\u77bb\u77bc\u790e\u79ae\u7a61\u7a62\u7a60\u7ac4\u7ac5\u7c2b\u7c27\u7c2a\u7c1e\u7c23\u7c21\u7ce7\u7e54\u7e55\u7e5e\u7e5a\u7e61\u7e52\u7e59\u7f48\u7ff9\u7ffb\u8077\u8076\u81cd\u81cf\u820a\u85cf\u85a9\u85cd\u85d0\u85c9\u85b0\u85ba\u85b9\u85a6\u87ef\u87ec\u87f2\u87e0\u8986\u89b2\u89f4\u8b28\u8b39\u8b2c\u8b2b\u8c50\u8d05\u8e59\u8e63\u8e66\u8e64\u8e5f\u8e55\u8ec0\u8f49\u8f4d\u9087\u9083\u9088\u91ab\u91ac\u91d0\u9394\u938a\u9396\u93a2\u93b3\u93ae\u93ac\u93b0\u9398\u939a\u9397\u95d4\u95d6\u95d0\u95d5\u96e2\u96dc\u96d9\u96db\u96de\u9724\u97a3\u97a6"],["c340","\u97ad\u97f9\u984d\u984f\u984c\u984e\u9853\u98ba\u993e\u993f\u993d\u992e\u99a5\u9a0e\u9ac1\u9b03\u9b06\u9b4f\u9b4e\u9b4d\u9bca\u9bc9\u9bfd\u9bc8\u9bc0\u9d51\u9d5d\u9d60\u9ee0\u9f15\u9f2c\u5133\u56a5\u58de\u58df\u58e2\u5bf5\u9f90\u5eec\u61f2\u61f7\u61f6\u61f5\u6500\u650f\u66e0\u66dd\u6ae5\u6add\u6ada\u6ad3\u701b\u701f\u7028\u701a\u701d\u7015\u7018\u7206\u720d\u7258\u72a2\u7378"],["c3a1","\u737a\u74bd\u74ca\u74e3\u7587\u7586\u765f\u7661\u77c7\u7919\u79b1\u7a6b\u7a69\u7c3e\u7c3f\u7c38\u7c3d\u7c37\u7c40\u7e6b\u7e6d\u7e79\u7e69\u7e6a\u7f85\u7e73\u7fb6\u7fb9\u7fb8\u81d8\u85e9\u85dd\u85ea\u85d5\u85e4\u85e5\u85f7\u87fb\u8805\u880d\u87f9\u87fe\u8960\u895f\u8956\u895e\u8b41\u8b5c\u8b58\u8b49\u8b5a\u8b4e\u8b4f\u8b46\u8b59\u8d08\u8d0a\u8e7c\u8e72\u8e87\u8e76\u8e6c\u8e7a\u8e74\u8f54\u8f4e\u8fad\u908a\u908b\u91b1\u91ae\u93e1\u93d1\u93df\u93c3\u93c8\u93dc\u93dd\u93d6\u93e2\u93cd\u93d8\u93e4\u93d7\u93e8\u95dc\u96b4\u96e3\u972a\u9727\u9761\u97dc\u97fb\u985e"],["c440","\u9858\u985b\u98bc\u9945\u9949\u9a16\u9a19\u9b0d\u9be8\u9be7\u9bd6\u9bdb\u9d89\u9d61\u9d72\u9d6a\u9d6c\u9e92\u9e97\u9e93\u9eb4\u52f8\u56a8\u56b7\u56b6\u56b4\u56bc\u58e4\u5b40\u5b43\u5b7d\u5bf6\u5dc9\u61f8\u61fa\u6518\u6514\u6519\u66e6\u6727\u6aec\u703e\u7030\u7032\u7210\u737b\u74cf\u7662\u7665\u7926\u792a\u792c\u792b\u7ac7\u7af6\u7c4c\u7c43\u7c4d\u7cef\u7cf0\u8fae\u7e7d\u7e7c"],["c4a1","\u7e82\u7f4c\u8000\u81da\u8266\u85fb\u85f9\u8611\u85fa\u8606\u860b\u8607\u860a\u8814\u8815\u8964\u89ba\u89f8\u8b70\u8b6c\u8b66\u8b6f\u8b5f\u8b6b\u8d0f\u8d0d\u8e89\u8e81\u8e85\u8e82\u91b4\u91cb\u9418\u9403\u93fd\u95e1\u9730\u98c4\u9952\u9951\u99a8\u9a2b\u9a30\u9a37\u9a35\u9c13\u9c0d\u9e79\u9eb5\u9ee8\u9f2f\u9f5f\u9f63\u9f61\u5137\u5138\u56c1\u56c0\u56c2\u5914\u5c6c\u5dcd\u61fc\u61fe\u651d\u651c\u6595\u66e9\u6afb\u6b04\u6afa\u6bb2\u704c\u721b\u72a7\u74d6\u74d4\u7669\u77d3\u7c50\u7e8f\u7e8c\u7fbc\u8617\u862d\u861a\u8823\u8822\u8821\u881f\u896a\u896c\u89bd\u8b74"],["c540","\u8b77\u8b7d\u8d13\u8e8a\u8e8d\u8e8b\u8f5f\u8faf\u91ba\u942e\u9433\u9435\u943a\u9438\u9432\u942b\u95e2\u9738\u9739\u9732\u97ff\u9867\u9865\u9957\u9a45\u9a43\u9a40\u9a3e\u9acf\u9b54\u9b51\u9c2d\u9c25\u9daf\u9db4\u9dc2\u9db8\u9e9d\u9eef\u9f19\u9f5c\u9f66\u9f67\u513c\u513b\u56c8\u56ca\u56c9\u5b7f\u5dd4\u5dd2\u5f4e\u61ff\u6524\u6b0a\u6b61\u7051\u7058\u7380\u74e4\u758a\u766e\u766c"],["c5a1","\u79b3\u7c60\u7c5f\u807e\u807d\u81df\u8972\u896f\u89fc\u8b80\u8d16\u8d17\u8e91\u8e93\u8f61\u9148\u9444\u9451\u9452\u973d\u973e\u97c3\u97c1\u986b\u9955\u9a55\u9a4d\u9ad2\u9b1a\u9c49\u9c31\u9c3e\u9c3b\u9dd3\u9dd7\u9f34\u9f6c\u9f6a\u9f94\u56cc\u5dd6\u6200\u6523\u652b\u652a\u66ec\u6b10\u74da\u7aca\u7c64\u7c63\u7c65\u7e93\u7e96\u7e94\u81e2\u8638\u863f\u8831\u8b8a\u9090\u908f\u9463\u9460\u9464\u9768\u986f\u995c\u9a5a\u9a5b\u9a57\u9ad3\u9ad4\u9ad1\u9c54\u9c57\u9c56\u9de5\u9e9f\u9ef4\u56d1\u58e9\u652c\u705e\u7671\u7672\u77d7\u7f50\u7f88\u8836\u8839\u8862\u8b93\u8b92"],["c640","\u8b96\u8277\u8d1b\u91c0\u946a\u9742\u9748\u9744\u97c6\u9870\u9a5f\u9b22\u9b58\u9c5f\u9df9\u9dfa\u9e7c\u9e7d\u9f07\u9f77\u9f72\u5ef3\u6b16\u7063\u7c6c\u7c6e\u883b\u89c0\u8ea1\u91c1\u9472\u9470\u9871\u995e\u9ad6\u9b23\u9ecc\u7064\u77da\u8b9a\u9477\u97c9\u9a62\u9a65\u7e9c\u8b9c\u8eaa\u91c5\u947d\u947e\u947c\u9c77\u9c78\u9ef7\u8c54\u947f\u9e1a\u7228\u9a6a\u9b31\u9e1b\u9e1e\u7c72"],["c940","\u4e42\u4e5c\u51f5\u531a\u5382\u4e07\u4e0c\u4e47\u4e8d\u56d7\ufa0c\u5c6e\u5f73\u4e0f\u5187\u4e0e\u4e2e\u4e93\u4ec2\u4ec9\u4ec8\u5198\u52fc\u536c\u53b9\u5720\u5903\u592c\u5c10\u5dff\u65e1\u6bb3\u6bcc\u6c14\u723f\u4e31\u4e3c\u4ee8\u4edc\u4ee9\u4ee1\u4edd\u4eda\u520c\u531c\u534c\u5722\u5723\u5917\u592f\u5b81\u5b84\u5c12\u5c3b\u5c74\u5c73\u5e04\u5e80\u5e82\u5fc9\u6209\u6250\u6c15"],["c9a1","\u6c36\u6c43\u6c3f\u6c3b\u72ae\u72b0\u738a\u79b8\u808a\u961e\u4f0e\u4f18\u4f2c\u4ef5\u4f14\u4ef1\u4f00\u4ef7\u4f08\u4f1d\u4f02\u4f05\u4f22\u4f13\u4f04\u4ef4\u4f12\u51b1\u5213\u5209\u5210\u52a6\u5322\u531f\u534d\u538a\u5407\u56e1\u56df\u572e\u572a\u5734\u593c\u5980\u597c\u5985\u597b\u597e\u5977\u597f\u5b56\u5c15\u5c25\u5c7c\u5c7a\u5c7b\u5c7e\u5ddf\u5e75\u5e84\u5f02\u5f1a\u5f74\u5fd5\u5fd4\u5fcf\u625c\u625e\u6264\u6261\u6266\u6262\u6259\u6260\u625a\u6265\u65ef\u65ee\u673e\u6739\u6738\u673b\u673a\u673f\u673c\u6733\u6c18\u6c46\u6c52\u6c5c\u6c4f\u6c4a\u6c54\u6c4b"],["ca40","\u6c4c\u7071\u725e\u72b4\u72b5\u738e\u752a\u767f\u7a75\u7f51\u8278\u827c\u8280\u827d\u827f\u864d\u897e\u9099\u9097\u9098\u909b\u9094\u9622\u9624\u9620\u9623\u4f56\u4f3b\u4f62\u4f49\u4f53\u4f64\u4f3e\u4f67\u4f52\u4f5f\u4f41\u4f58\u4f2d\u4f33\u4f3f\u4f61\u518f\u51b9\u521c\u521e\u5221\u52ad\u52ae\u5309\u5363\u5372\u538e\u538f\u5430\u5437\u542a\u5454\u5445\u5419\u541c\u5425\u5418"],["caa1","\u543d\u544f\u5441\u5428\u5424\u5447\u56ee\u56e7\u56e5\u5741\u5745\u574c\u5749\u574b\u5752\u5906\u5940\u59a6\u5998\u59a0\u5997\u598e\u59a2\u5990\u598f\u59a7\u59a1\u5b8e\u5b92\u5c28\u5c2a\u5c8d\u5c8f\u5c88\u5c8b\u5c89\u5c92\u5c8a\u5c86\u5c93\u5c95\u5de0\u5e0a\u5e0e\u5e8b\u5e89\u5e8c\u5e88\u5e8d\u5f05\u5f1d\u5f78\u5f76\u5fd2\u5fd1\u5fd0\u5fed\u5fe8\u5fee\u5ff3\u5fe1\u5fe4\u5fe3\u5ffa\u5fef\u5ff7\u5ffb\u6000\u5ff4\u623a\u6283\u628c\u628e\u628f\u6294\u6287\u6271\u627b\u627a\u6270\u6281\u6288\u6277\u627d\u6272\u6274\u6537\u65f0\u65f4\u65f3\u65f2\u65f5\u6745\u6747"],["cb40","\u6759\u6755\u674c\u6748\u675d\u674d\u675a\u674b\u6bd0\u6c19\u6c1a\u6c78\u6c67\u6c6b\u6c84\u6c8b\u6c8f\u6c71\u6c6f\u6c69\u6c9a\u6c6d\u6c87\u6c95\u6c9c\u6c66\u6c73\u6c65\u6c7b\u6c8e\u7074\u707a\u7263\u72bf\u72bd\u72c3\u72c6\u72c1\u72ba\u72c5\u7395\u7397\u7393\u7394\u7392\u753a\u7539\u7594\u7595\u7681\u793d\u8034\u8095\u8099\u8090\u8092\u809c\u8290\u828f\u8285\u828e\u8291\u8293"],["cba1","\u828a\u8283\u8284\u8c78\u8fc9\u8fbf\u909f\u90a1\u90a5\u909e\u90a7\u90a0\u9630\u9628\u962f\u962d\u4e33\u4f98\u4f7c\u4f85\u4f7d\u4f80\u4f87\u4f76\u4f74\u4f89\u4f84\u4f77\u4f4c\u4f97\u4f6a\u4f9a\u4f79\u4f81\u4f78\u4f90\u4f9c\u4f94\u4f9e\u4f92\u4f82\u4f95\u4f6b\u4f6e\u519e\u51bc\u51be\u5235\u5232\u5233\u5246\u5231\u52bc\u530a\u530b\u533c\u5392\u5394\u5487\u547f\u5481\u5491\u5482\u5488\u546b\u547a\u547e\u5465\u546c\u5474\u5466\u548d\u546f\u5461\u5460\u5498\u5463\u5467\u5464\u56f7\u56f9\u576f\u5772\u576d\u576b\u5771\u5770\u5776\u5780\u5775\u577b\u5773\u5774\u5762"],["cc40","\u5768\u577d\u590c\u5945\u59b5\u59ba\u59cf\u59ce\u59b2\u59cc\u59c1\u59b6\u59bc\u59c3\u59d6\u59b1\u59bd\u59c0\u59c8\u59b4\u59c7\u5b62\u5b65\u5b93\u5b95\u5c44\u5c47\u5cae\u5ca4\u5ca0\u5cb5\u5caf\u5ca8\u5cac\u5c9f\u5ca3\u5cad\u5ca2\u5caa\u5ca7\u5c9d\u5ca5\u5cb6\u5cb0\u5ca6\u5e17\u5e14\u5e19\u5f28\u5f22\u5f23\u5f24\u5f54\u5f82\u5f7e\u5f7d\u5fde\u5fe5\u602d\u6026\u6019\u6032\u600b"],["cca1","\u6034\u600a\u6017\u6033\u601a\u601e\u602c\u6022\u600d\u6010\u602e\u6013\u6011\u600c\u6009\u601c\u6214\u623d\u62ad\u62b4\u62d1\u62be\u62aa\u62b6\u62ca\u62ae\u62b3\u62af\u62bb\u62a9\u62b0\u62b8\u653d\u65a8\u65bb\u6609\u65fc\u6604\u6612\u6608\u65fb\u6603\u660b\u660d\u6605\u65fd\u6611\u6610\u66f6\u670a\u6785\u676c\u678e\u6792\u6776\u677b\u6798\u6786\u6784\u6774\u678d\u678c\u677a\u679f\u6791\u6799\u6783\u677d\u6781\u6778\u6779\u6794\u6b25\u6b80\u6b7e\u6bde\u6c1d\u6c93\u6cec\u6ceb\u6cee\u6cd9\u6cb6\u6cd4\u6cad\u6ce7\u6cb7\u6cd0\u6cc2\u6cba\u6cc3\u6cc6\u6ced\u6cf2"],["cd40","\u6cd2\u6cdd\u6cb4\u6c8a\u6c9d\u6c80\u6cde\u6cc0\u6d30\u6ccd\u6cc7\u6cb0\u6cf9\u6ccf\u6ce9\u6cd1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709a\u7083\u726a\u72d6\u72cb\u72d8\u72c9\u72dc\u72d2\u72d4\u72da\u72cc\u72d1\u73a4\u73a1\u73ad\u73a6\u73a2\u73a0\u73ac\u739d\u74dd\u74e8\u753f\u7540\u753e\u758c\u7598\u76af\u76f3\u76f1\u76f0\u76f5\u77f8\u77fc\u77f9\u77fb\u77fa"],["cda1","\u77f7\u7942\u793f\u79c5\u7a78\u7a7b\u7afb\u7c75\u7cfd\u8035\u808f\u80ae\u80a3\u80b8\u80b5\u80ad\u8220\u82a0\u82c0\u82ab\u829a\u8298\u829b\u82b5\u82a7\u82ae\u82bc\u829e\u82ba\u82b4\u82a8\u82a1\u82a9\u82c2\u82a4\u82c3\u82b6\u82a2\u8670\u866f\u866d\u866e\u8c56\u8fd2\u8fcb\u8fd3\u8fcd\u8fd6\u8fd5\u8fd7\u90b2\u90b4\u90af\u90b3\u90b0\u9639\u963d\u963c\u963a\u9643\u4fcd\u4fc5\u4fd3\u4fb2\u4fc9\u4fcb\u4fc1\u4fd4\u4fdc\u4fd9\u4fbb\u4fb3\u4fdb\u4fc7\u4fd6\u4fba\u4fc0\u4fb9\u4fec\u5244\u5249\u52c0\u52c2\u533d\u537c\u5397\u5396\u5399\u5398\u54ba\u54a1\u54ad\u54a5\u54cf"],["ce40","\u54c3\u830d\u54b7\u54ae\u54d6\u54b6\u54c5\u54c6\u54a0\u5470\u54bc\u54a2\u54be\u5472\u54de\u54b0\u57b5\u579e\u579f\u57a4\u578c\u5797\u579d\u579b\u5794\u5798\u578f\u5799\u57a5\u579a\u5795\u58f4\u590d\u5953\u59e1\u59de\u59ee\u5a00\u59f1\u59dd\u59fa\u59fd\u59fc\u59f6\u59e4\u59f2\u59f7\u59db\u59e9\u59f3\u59f5\u59e0\u59fe\u59f4\u59ed\u5ba8\u5c4c\u5cd0\u5cd8\u5ccc\u5cd7\u5ccb\u5cdb"],["cea1","\u5cde\u5cda\u5cc9\u5cc7\u5cca\u5cd6\u5cd3\u5cd4\u5ccf\u5cc8\u5cc6\u5cce\u5cdf\u5cf8\u5df9\u5e21\u5e22\u5e23\u5e20\u5e24\u5eb0\u5ea4\u5ea2\u5e9b\u5ea3\u5ea5\u5f07\u5f2e\u5f56\u5f86\u6037\u6039\u6054\u6072\u605e\u6045\u6053\u6047\u6049\u605b\u604c\u6040\u6042\u605f\u6024\u6044\u6058\u6066\u606e\u6242\u6243\u62cf\u630d\u630b\u62f5\u630e\u6303\u62eb\u62f9\u630f\u630c\u62f8\u62f6\u6300\u6313\u6314\u62fa\u6315\u62fb\u62f0\u6541\u6543\u65aa\u65bf\u6636\u6621\u6632\u6635\u661c\u6626\u6622\u6633\u662b\u663a\u661d\u6634\u6639\u662e\u670f\u6710\u67c1\u67f2\u67c8\u67ba"],["cf40","\u67dc\u67bb\u67f8\u67d8\u67c0\u67b7\u67c5\u67eb\u67e4\u67df\u67b5\u67cd\u67b3\u67f7\u67f6\u67ee\u67e3\u67c2\u67b9\u67ce\u67e7\u67f0\u67b2\u67fc\u67c6\u67ed\u67cc\u67ae\u67e6\u67db\u67fa\u67c9\u67ca\u67c3\u67ea\u67cb\u6b28\u6b82\u6b84\u6bb6\u6bd6\u6bd8\u6be0\u6c20\u6c21\u6d28\u6d34\u6d2d\u6d1f\u6d3c\u6d3f\u6d12\u6d0a\u6cda\u6d33\u6d04\u6d19\u6d3a\u6d1a\u6d11\u6d00\u6d1d\u6d42"],["cfa1","\u6d01\u6d18\u6d37\u6d03\u6d0f\u6d40\u6d07\u6d20\u6d2c\u6d08\u6d22\u6d09\u6d10\u70b7\u709f\u70be\u70b1\u70b0\u70a1\u70b4\u70b5\u70a9\u7241\u7249\u724a\u726c\u7270\u7273\u726e\u72ca\u72e4\u72e8\u72eb\u72df\u72ea\u72e6\u72e3\u7385\u73cc\u73c2\u73c8\u73c5\u73b9\u73b6\u73b5\u73b4\u73eb\u73bf\u73c7\u73be\u73c3\u73c6\u73b8\u73cb\u74ec\u74ee\u752e\u7547\u7548\u75a7\u75aa\u7679\u76c4\u7708\u7703\u7704\u7705\u770a\u76f7\u76fb\u76fa\u77e7\u77e8\u7806\u7811\u7812\u7805\u7810\u780f\u780e\u7809\u7803\u7813\u794a\u794c\u794b\u7945\u7944\u79d5\u79cd\u79cf\u79d6\u79ce\u7a80"],["d040","\u7a7e\u7ad1\u7b00\u7b01\u7c7a\u7c78\u7c79\u7c7f\u7c80\u7c81\u7d03\u7d08\u7d01\u7f58\u7f91\u7f8d\u7fbe\u8007\u800e\u800f\u8014\u8037\u80d8\u80c7\u80e0\u80d1\u80c8\u80c2\u80d0\u80c5\u80e3\u80d9\u80dc\u80ca\u80d5\u80c9\u80cf\u80d7\u80e6\u80cd\u81ff\u8221\u8294\u82d9\u82fe\u82f9\u8307\u82e8\u8300\u82d5\u833a\u82eb\u82d6\u82f4\u82ec\u82e1\u82f2\u82f5\u830c\u82fb\u82f6\u82f0\u82ea"],["d0a1","\u82e4\u82e0\u82fa\u82f3\u82ed\u8677\u8674\u867c\u8673\u8841\u884e\u8867\u886a\u8869\u89d3\u8a04\u8a07\u8d72\u8fe3\u8fe1\u8fee\u8fe0\u90f1\u90bd\u90bf\u90d5\u90c5\u90be\u90c7\u90cb\u90c8\u91d4\u91d3\u9654\u964f\u9651\u9653\u964a\u964e\u501e\u5005\u5007\u5013\u5022\u5030\u501b\u4ff5\u4ff4\u5033\u5037\u502c\u4ff6\u4ff7\u5017\u501c\u5020\u5027\u5035\u502f\u5031\u500e\u515a\u5194\u5193\u51ca\u51c4\u51c5\u51c8\u51ce\u5261\u525a\u5252\u525e\u525f\u5255\u5262\u52cd\u530e\u539e\u5526\u54e2\u5517\u5512\u54e7\u54f3\u54e4\u551a\u54ff\u5504\u5508\u54eb\u5511\u5505\u54f1"],["d140","\u550a\u54fb\u54f7\u54f8\u54e0\u550e\u5503\u550b\u5701\u5702\u57cc\u5832\u57d5\u57d2\u57ba\u57c6\u57bd\u57bc\u57b8\u57b6\u57bf\u57c7\u57d0\u57b9\u57c1\u590e\u594a\u5a19\u5a16\u5a2d\u5a2e\u5a15\u5a0f\u5a17\u5a0a\u5a1e\u5a33\u5b6c\u5ba7\u5bad\u5bac\u5c03\u5c56\u5c54\u5cec\u5cff\u5cee\u5cf1\u5cf7\u5d00\u5cf9\u5e29\u5e28\u5ea8\u5eae\u5eaa\u5eac\u5f33\u5f30\u5f67\u605d\u605a\u6067"],["d1a1","\u6041\u60a2\u6088\u6080\u6092\u6081\u609d\u6083\u6095\u609b\u6097\u6087\u609c\u608e\u6219\u6246\u62f2\u6310\u6356\u632c\u6344\u6345\u6336\u6343\u63e4\u6339\u634b\u634a\u633c\u6329\u6341\u6334\u6358\u6354\u6359\u632d\u6347\u6333\u635a\u6351\u6338\u6357\u6340\u6348\u654a\u6546\u65c6\u65c3\u65c4\u65c2\u664a\u665f\u6647\u6651\u6712\u6713\u681f\u681a\u6849\u6832\u6833\u683b\u684b\u684f\u6816\u6831\u681c\u6835\u682b\u682d\u682f\u684e\u6844\u6834\u681d\u6812\u6814\u6826\u6828\u682e\u684d\u683a\u6825\u6820\u6b2c\u6b2f\u6b2d\u6b31\u6b34\u6b6d\u8082\u6b88\u6be6\u6be4"],["d240","\u6be8\u6be3\u6be2\u6be7\u6c25\u6d7a\u6d63\u6d64\u6d76\u6d0d\u6d61\u6d92\u6d58\u6d62\u6d6d\u6d6f\u6d91\u6d8d\u6def\u6d7f\u6d86\u6d5e\u6d67\u6d60\u6d97\u6d70\u6d7c\u6d5f\u6d82\u6d98\u6d2f\u6d68\u6d8b\u6d7e\u6d80\u6d84\u6d16\u6d83\u6d7b\u6d7d\u6d75\u6d90\u70dc\u70d3\u70d1\u70dd\u70cb\u7f39\u70e2\u70d7\u70d2\u70de\u70e0\u70d4\u70cd\u70c5\u70c6\u70c7\u70da\u70ce\u70e1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72fa\u72f4\u72fe\u72f6\u72f3\u72fb\u7301\u73d3\u73d9\u73e5\u73d6\u73bc\u73e7\u73e3\u73e9\u73dc\u73d2\u73db\u73d4\u73dd\u73da\u73d7\u73d8\u73e8\u74de\u74df\u74f4\u74f5\u7521\u755b\u755f\u75b0\u75c1\u75bb\u75c4\u75c0\u75bf\u75b6\u75ba\u768a\u76c9\u771d\u771b\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771a\u7722\u7727\u7823\u782c\u7822\u7835\u782f\u7828\u782e\u782b\u7821\u7829\u7833\u782a\u7831\u7954\u795b\u794f\u795c\u7953\u7952\u7951\u79eb\u79ec\u79e0\u79ee\u79ed\u79ea\u79dc\u79de\u79dd\u7a86\u7a89\u7a85\u7a8b\u7a8c\u7a8a\u7a87\u7ad8\u7b10"],["d340","\u7b04\u7b13\u7b05\u7b0f\u7b08\u7b0a\u7b0e\u7b09\u7b12\u7c84\u7c91\u7c8a\u7c8c\u7c88\u7c8d\u7c85\u7d1e\u7d1d\u7d11\u7d0e\u7d18\u7d16\u7d13\u7d1f\u7d12\u7d0f\u7d0c\u7f5c\u7f61\u7f5e\u7f60\u7f5d\u7f5b\u7f96\u7f92\u7fc3\u7fc2\u7fc0\u8016\u803e\u8039\u80fa\u80f2\u80f9\u80f5\u8101\u80fb\u8100\u8201\u822f\u8225\u8333\u832d\u8344\u8319\u8351\u8325\u8356\u833f\u8341\u8326\u831c\u8322"],["d3a1","\u8342\u834e\u831b\u832a\u8308\u833c\u834d\u8316\u8324\u8320\u8337\u832f\u8329\u8347\u8345\u834c\u8353\u831e\u832c\u834b\u8327\u8348\u8653\u8652\u86a2\u86a8\u8696\u868d\u8691\u869e\u8687\u8697\u8686\u868b\u869a\u8685\u86a5\u8699\u86a1\u86a7\u8695\u8698\u868e\u869d\u8690\u8694\u8843\u8844\u886d\u8875\u8876\u8872\u8880\u8871\u887f\u886f\u8883\u887e\u8874\u887c\u8a12\u8c47\u8c57\u8c7b\u8ca4\u8ca3\u8d76\u8d78\u8db5\u8db7\u8db6\u8ed1\u8ed3\u8ffe\u8ff5\u9002\u8fff\u8ffb\u9004\u8ffc\u8ff6\u90d6\u90e0\u90d9\u90da\u90e3\u90df\u90e5\u90d8\u90db\u90d7\u90dc\u90e4\u9150"],["d440","\u914e\u914f\u91d5\u91e2\u91da\u965c\u965f\u96bc\u98e3\u9adf\u9b2f\u4e7f\u5070\u506a\u5061\u505e\u5060\u5053\u504b\u505d\u5072\u5048\u504d\u5041\u505b\u504a\u5062\u5015\u5045\u505f\u5069\u506b\u5063\u5064\u5046\u5040\u506e\u5073\u5057\u5051\u51d0\u526b\u526d\u526c\u526e\u52d6\u52d3\u532d\u539c\u5575\u5576\u553c\u554d\u5550\u5534\u552a\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550c\u5532\u5565\u554e\u5539\u5548\u552d\u553b\u5540\u554b\u570a\u5707\u57fb\u5814\u57e2\u57f6\u57dc\u57f4\u5800\u57ed\u57fd\u5808\u57f8\u580b\u57f3\u57cf\u5807\u57ee\u57e3\u57f2\u57e5\u57ec\u57e1\u580e\u57fc\u5810\u57e7\u5801\u580c\u57f1\u57e9\u57f0\u580d\u5804\u595c\u5a60\u5a58\u5a55\u5a67\u5a5e\u5a38\u5a35\u5a6d\u5a50\u5a5f\u5a65\u5a6c\u5a53\u5a64\u5a57\u5a43\u5a5d\u5a52\u5a44\u5a5b\u5a48\u5a8e\u5a3e\u5a4d\u5a39\u5a4c\u5a70\u5a69\u5a47\u5a51\u5a56\u5a42\u5a5c\u5b72\u5b6e\u5bc1\u5bc0\u5c59\u5d1e\u5d0b\u5d1d\u5d1a\u5d20\u5d0c\u5d28\u5d0d\u5d26\u5d25\u5d0f"],["d540","\u5d30\u5d12\u5d23\u5d1f\u5d2e\u5e3e\u5e34\u5eb1\u5eb4\u5eb9\u5eb2\u5eb3\u5f36\u5f38\u5f9b\u5f96\u5f9f\u608a\u6090\u6086\u60be\u60b0\u60ba\u60d3\u60d4\u60cf\u60e4\u60d9\u60dd\u60c8\u60b1\u60db\u60b7\u60ca\u60bf\u60c3\u60cd\u60c0\u6332\u6365\u638a\u6382\u637d\u63bd\u639e\u63ad\u639d\u6397\u63ab\u638e\u636f\u6387\u6390\u636e\u63af\u6375\u639c\u636d\u63ae\u637c\u63a4\u633b\u639f"],["d5a1","\u6378\u6385\u6381\u6391\u638d\u6370\u6553\u65cd\u6665\u6661\u665b\u6659\u665c\u6662\u6718\u6879\u6887\u6890\u689c\u686d\u686e\u68ae\u68ab\u6956\u686f\u68a3\u68ac\u68a9\u6875\u6874\u68b2\u688f\u6877\u6892\u687c\u686b\u6872\u68aa\u6880\u6871\u687e\u689b\u6896\u688b\u68a0\u6889\u68a4\u6878\u687b\u6891\u688c\u688a\u687d\u6b36\u6b33\u6b37\u6b38\u6b91\u6b8f\u6b8d\u6b8e\u6b8c\u6c2a\u6dc0\u6dab\u6db4\u6db3\u6e74\u6dac\u6de9\u6de2\u6db7\u6df6\u6dd4\u6e00\u6dc8\u6de0\u6ddf\u6dd6\u6dbe\u6de5\u6ddc\u6ddd\u6ddb\u6df4\u6dca\u6dbd\u6ded\u6df0\u6dba\u6dd5\u6dc2\u6dcf\u6dc9"],["d640","\u6dd0\u6df2\u6dd3\u6dfd\u6dd7\u6dcd\u6de3\u6dbb\u70fa\u710d\u70f7\u7117\u70f4\u710c\u70f0\u7104\u70f3\u7110\u70fc\u70ff\u7106\u7113\u7100\u70f8\u70f6\u710b\u7102\u710e\u727e\u727b\u727c\u727f\u731d\u7317\u7307\u7311\u7318\u730a\u7308\u72ff\u730f\u731e\u7388\u73f6\u73f8\u73f5\u7404\u7401\u73fd\u7407\u7400\u73fa\u73fc\u73ff\u740c\u740b\u73f4\u7408\u7564\u7563\u75ce\u75d2\u75cf"],["d6a1","\u75cb\u75cc\u75d1\u75d0\u768f\u7689\u76d3\u7739\u772f\u772d\u7731\u7732\u7734\u7733\u773d\u7725\u773b\u7735\u7848\u7852\u7849\u784d\u784a\u784c\u7826\u7845\u7850\u7964\u7967\u7969\u796a\u7963\u796b\u7961\u79bb\u79fa\u79f8\u79f6\u79f7\u7a8f\u7a94\u7a90\u7b35\u7b47\u7b34\u7b25\u7b30\u7b22\u7b24\u7b33\u7b18\u7b2a\u7b1d\u7b31\u7b2b\u7b2d\u7b2f\u7b32\u7b38\u7b1a\u7b23\u7c94\u7c98\u7c96\u7ca3\u7d35\u7d3d\u7d38\u7d36\u7d3a\u7d45\u7d2c\u7d29\u7d41\u7d47\u7d3e\u7d3f\u7d4a\u7d3b\u7d28\u7f63\u7f95\u7f9c\u7f9d\u7f9b\u7fca\u7fcb\u7fcd\u7fd0\u7fd1\u7fc7\u7fcf\u7fc9\u801f"],["d740","\u801e\u801b\u8047\u8043\u8048\u8118\u8125\u8119\u811b\u812d\u811f\u812c\u811e\u8121\u8115\u8127\u811d\u8122\u8211\u8238\u8233\u823a\u8234\u8232\u8274\u8390\u83a3\u83a8\u838d\u837a\u8373\u83a4\u8374\u838f\u8381\u8395\u8399\u8375\u8394\u83a9\u837d\u8383\u838c\u839d\u839b\u83aa\u838b\u837e\u83a5\u83af\u8388\u8397\u83b0\u837f\u83a6\u8387\u83ae\u8376\u839a\u8659\u8656\u86bf\u86b7"],["d7a1","\u86c2\u86c1\u86c5\u86ba\u86b0\u86c8\u86b9\u86b3\u86b8\u86cc\u86b4\u86bb\u86bc\u86c3\u86bd\u86be\u8852\u8889\u8895\u88a8\u88a2\u88aa\u889a\u8891\u88a1\u889f\u8898\u88a7\u8899\u889b\u8897\u88a4\u88ac\u888c\u8893\u888e\u8982\u89d6\u89d9\u89d5\u8a30\u8a27\u8a2c\u8a1e\u8c39\u8c3b\u8c5c\u8c5d\u8c7d\u8ca5\u8d7d\u8d7b\u8d79\u8dbc\u8dc2\u8db9\u8dbf\u8dc1\u8ed8\u8ede\u8edd\u8edc\u8ed7\u8ee0\u8ee1\u9024\u900b\u9011\u901c\u900c\u9021\u90ef\u90ea\u90f0\u90f4\u90f2\u90f3\u90d4\u90eb\u90ec\u90e9\u9156\u9158\u915a\u9153\u9155\u91ec\u91f4\u91f1\u91f3\u91f8\u91e4\u91f9\u91ea"],["d840","\u91eb\u91f7\u91e8\u91ee\u957a\u9586\u9588\u967c\u966d\u966b\u9671\u966f\u96bf\u976a\u9804\u98e5\u9997\u509b\u5095\u5094\u509e\u508b\u50a3\u5083\u508c\u508e\u509d\u5068\u509c\u5092\u5082\u5087\u515f\u51d4\u5312\u5311\u53a4\u53a7\u5591\u55a8\u55a5\u55ad\u5577\u5645\u55a2\u5593\u5588\u558f\u55b5\u5581\u55a3\u5592\u55a4\u557d\u558c\u55a6\u557f\u5595\u55a1\u558e\u570c\u5829\u5837"],["d8a1","\u5819\u581e\u5827\u5823\u5828\u57f5\u5848\u5825\u581c\u581b\u5833\u583f\u5836\u582e\u5839\u5838\u582d\u582c\u583b\u5961\u5aaf\u5a94\u5a9f\u5a7a\u5aa2\u5a9e\u5a78\u5aa6\u5a7c\u5aa5\u5aac\u5a95\u5aae\u5a37\u5a84\u5a8a\u5a97\u5a83\u5a8b\u5aa9\u5a7b\u5a7d\u5a8c\u5a9c\u5a8f\u5a93\u5a9d\u5bea\u5bcd\u5bcb\u5bd4\u5bd1\u5bca\u5bce\u5c0c\u5c30\u5d37\u5d43\u5d6b\u5d41\u5d4b\u5d3f\u5d35\u5d51\u5d4e\u5d55\u5d33\u5d3a\u5d52\u5d3d\u5d31\u5d59\u5d42\u5d39\u5d49\u5d38\u5d3c\u5d32\u5d36\u5d40\u5d45\u5e44\u5e41\u5f58\u5fa6\u5fa5\u5fab\u60c9\u60b9\u60cc\u60e2\u60ce\u60c4\u6114"],["d940","\u60f2\u610a\u6116\u6105\u60f5\u6113\u60f8\u60fc\u60fe\u60c1\u6103\u6118\u611d\u6110\u60ff\u6104\u610b\u624a\u6394\u63b1\u63b0\u63ce\u63e5\u63e8\u63ef\u63c3\u649d\u63f3\u63ca\u63e0\u63f6\u63d5\u63f2\u63f5\u6461\u63df\u63be\u63dd\u63dc\u63c4\u63d8\u63d3\u63c2\u63c7\u63cc\u63cb\u63c8\u63f0\u63d7\u63d9\u6532\u6567\u656a\u6564\u655c\u6568\u6565\u658c\u659d\u659e\u65ae\u65d0\u65d2"],["d9a1","\u667c\u666c\u667b\u6680\u6671\u6679\u666a\u6672\u6701\u690c\u68d3\u6904\u68dc\u692a\u68ec\u68ea\u68f1\u690f\u68d6\u68f7\u68eb\u68e4\u68f6\u6913\u6910\u68f3\u68e1\u6907\u68cc\u6908\u6970\u68b4\u6911\u68ef\u68c6\u6914\u68f8\u68d0\u68fd\u68fc\u68e8\u690b\u690a\u6917\u68ce\u68c8\u68dd\u68de\u68e6\u68f4\u68d1\u6906\u68d4\u68e9\u6915\u6925\u68c7\u6b39\u6b3b\u6b3f\u6b3c\u6b94\u6b97\u6b99\u6b95\u6bbd\u6bf0\u6bf2\u6bf3\u6c30\u6dfc\u6e46\u6e47\u6e1f\u6e49\u6e88\u6e3c\u6e3d\u6e45\u6e62\u6e2b\u6e3f\u6e41\u6e5d\u6e73\u6e1c\u6e33\u6e4b\u6e40\u6e51\u6e3b\u6e03\u6e2e\u6e5e"],["da40","\u6e68\u6e5c\u6e61\u6e31\u6e28\u6e60\u6e71\u6e6b\u6e39\u6e22\u6e30\u6e53\u6e65\u6e27\u6e78\u6e64\u6e77\u6e55\u6e79\u6e52\u6e66\u6e35\u6e36\u6e5a\u7120\u711e\u712f\u70fb\u712e\u7131\u7123\u7125\u7122\u7132\u711f\u7128\u713a\u711b\u724b\u725a\u7288\u7289\u7286\u7285\u728b\u7312\u730b\u7330\u7322\u7331\u7333\u7327\u7332\u732d\u7326\u7323\u7335\u730c\u742e\u742c\u7430\u742b\u7416"],["daa1","\u741a\u7421\u742d\u7431\u7424\u7423\u741d\u7429\u7420\u7432\u74fb\u752f\u756f\u756c\u75e7\u75da\u75e1\u75e6\u75dd\u75df\u75e4\u75d7\u7695\u7692\u76da\u7746\u7747\u7744\u774d\u7745\u774a\u774e\u774b\u774c\u77de\u77ec\u7860\u7864\u7865\u785c\u786d\u7871\u786a\u786e\u7870\u7869\u7868\u785e\u7862\u7974\u7973\u7972\u7970\u7a02\u7a0a\u7a03\u7a0c\u7a04\u7a99\u7ae6\u7ae4\u7b4a\u7b3b\u7b44\u7b48\u7b4c\u7b4e\u7b40\u7b58\u7b45\u7ca2\u7c9e\u7ca8\u7ca1\u7d58\u7d6f\u7d63\u7d53\u7d56\u7d67\u7d6a\u7d4f\u7d6d\u7d5c\u7d6b\u7d52\u7d54\u7d69\u7d51\u7d5f\u7d4e\u7f3e\u7f3f\u7f65"],["db40","\u7f66\u7fa2\u7fa0\u7fa1\u7fd7\u8051\u804f\u8050\u80fe\u80d4\u8143\u814a\u8152\u814f\u8147\u813d\u814d\u813a\u81e6\u81ee\u81f7\u81f8\u81f9\u8204\u823c\u823d\u823f\u8275\u833b\u83cf\u83f9\u8423\u83c0\u83e8\u8412\u83e7\u83e4\u83fc\u83f6\u8410\u83c6\u83c8\u83eb\u83e3\u83bf\u8401\u83dd\u83e5\u83d8\u83ff\u83e1\u83cb\u83ce\u83d6\u83f5\u83c9\u8409\u840f\u83de\u8411\u8406\u83c2\u83f3"],["dba1","\u83d5\u83fa\u83c7\u83d1\u83ea\u8413\u83c3\u83ec\u83ee\u83c4\u83fb\u83d7\u83e2\u841b\u83db\u83fe\u86d8\u86e2\u86e6\u86d3\u86e3\u86da\u86ea\u86dd\u86eb\u86dc\u86ec\u86e9\u86d7\u86e8\u86d1\u8848\u8856\u8855\u88ba\u88d7\u88b9\u88b8\u88c0\u88be\u88b6\u88bc\u88b7\u88bd\u88b2\u8901\u88c9\u8995\u8998\u8997\u89dd\u89da\u89db\u8a4e\u8a4d\u8a39\u8a59\u8a40\u8a57\u8a58\u8a44\u8a45\u8a52\u8a48\u8a51\u8a4a\u8a4c\u8a4f\u8c5f\u8c81\u8c80\u8cba\u8cbe\u8cb0\u8cb9\u8cb5\u8d84\u8d80\u8d89\u8dd8\u8dd3\u8dcd\u8dc7\u8dd6\u8ddc\u8dcf\u8dd5\u8dd9\u8dc8\u8dd7\u8dc5\u8eef\u8ef7\u8efa"],["dc40","\u8ef9\u8ee6\u8eee\u8ee5\u8ef5\u8ee7\u8ee8\u8ef6\u8eeb\u8ef1\u8eec\u8ef4\u8ee9\u902d\u9034\u902f\u9106\u912c\u9104\u90ff\u90fc\u9108\u90f9\u90fb\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915f\u9162\u9160\u9201\u920a\u9225\u9203\u921a\u9226\u920f\u920c\u9200\u9212\u91ff\u91fd\u9206\u9204\u9227\u9202\u921c\u9224\u9219\u9217\u9205\u9216\u957b\u958d\u958c\u9590\u9687\u967e\u9688"],["dca1","\u9689\u9683\u9680\u96c2\u96c8\u96c3\u96f1\u96f0\u976c\u9770\u976e\u9807\u98a9\u98eb\u9ce6\u9ef9\u4e83\u4e84\u4eb6\u50bd\u50bf\u50c6\u50ae\u50c4\u50ca\u50b4\u50c8\u50c2\u50b0\u50c1\u50ba\u50b1\u50cb\u50c9\u50b6\u50b8\u51d7\u527a\u5278\u527b\u527c\u55c3\u55db\u55cc\u55d0\u55cb\u55ca\u55dd\u55c0\u55d4\u55c4\u55e9\u55bf\u55d2\u558d\u55cf\u55d5\u55e2\u55d6\u55c8\u55f2\u55cd\u55d9\u55c2\u5714\u5853\u5868\u5864\u584f\u584d\u5849\u586f\u5855\u584e\u585d\u5859\u5865\u585b\u583d\u5863\u5871\u58fc\u5ac7\u5ac4\u5acb\u5aba\u5ab8\u5ab1\u5ab5\u5ab0\u5abf\u5ac8\u5abb\u5ac6"],["dd40","\u5ab7\u5ac0\u5aca\u5ab4\u5ab6\u5acd\u5ab9\u5a90\u5bd6\u5bd8\u5bd9\u5c1f\u5c33\u5d71\u5d63\u5d4a\u5d65\u5d72\u5d6c\u5d5e\u5d68\u5d67\u5d62\u5df0\u5e4f\u5e4e\u5e4a\u5e4d\u5e4b\u5ec5\u5ecc\u5ec6\u5ecb\u5ec7\u5f40\u5faf\u5fad\u60f7\u6149\u614a\u612b\u6145\u6136\u6132\u612e\u6146\u612f\u614f\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63c5\u63f1\u63eb\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641f\u6415\u6418\u6439\u6437\u6422\u6423\u640c\u6426\u6430\u6428\u6441\u6435\u642f\u640a\u641a\u6440\u6425\u6427\u640b\u63e7\u641b\u642e\u6421\u640e\u656f\u6592\u65d3\u6686\u668c\u6695\u6690\u668b\u668a\u6699\u6694\u6678\u6720\u6966\u695f\u6938\u694e\u6962\u6971\u693f\u6945\u696a\u6939\u6942\u6957\u6959\u697a\u6948\u6949\u6935\u696c\u6933\u693d\u6965\u68f0\u6978\u6934\u6969\u6940\u696f\u6944\u6976\u6958\u6941\u6974\u694c\u693b\u694b\u6937\u695c\u694f\u6951\u6932\u6952\u692f\u697b\u693c\u6b46\u6b45\u6b43\u6b42\u6b48\u6b41\u6b9b\ufa0d\u6bfb\u6bfc"],["de40","\u6bf9\u6bf7\u6bf8\u6e9b\u6ed6\u6ec8\u6e8f\u6ec0\u6e9f\u6e93\u6e94\u6ea0\u6eb1\u6eb9\u6ec6\u6ed2\u6ebd\u6ec1\u6e9e\u6ec9\u6eb7\u6eb0\u6ecd\u6ea6\u6ecf\u6eb2\u6ebe\u6ec3\u6edc\u6ed8\u6e99\u6e92\u6e8e\u6e8d\u6ea4\u6ea1\u6ebf\u6eb3\u6ed0\u6eca\u6e97\u6eae\u6ea3\u7147\u7154\u7152\u7163\u7160\u7141\u715d\u7162\u7172\u7178\u716a\u7161\u7142\u7158\u7143\u714b\u7170\u715f\u7150\u7153"],["dea1","\u7144\u714d\u715a\u724f\u728d\u728c\u7291\u7290\u728e\u733c\u7342\u733b\u733a\u7340\u734a\u7349\u7444\u744a\u744b\u7452\u7451\u7457\u7440\u744f\u7450\u744e\u7442\u7446\u744d\u7454\u74e1\u74ff\u74fe\u74fd\u751d\u7579\u7577\u6983\u75ef\u760f\u7603\u75f7\u75fe\u75fc\u75f9\u75f8\u7610\u75fb\u75f6\u75ed\u75f5\u75fd\u7699\u76b5\u76dd\u7755\u775f\u7760\u7752\u7756\u775a\u7769\u7767\u7754\u7759\u776d\u77e0\u7887\u789a\u7894\u788f\u7884\u7895\u7885\u7886\u78a1\u7883\u7879\u7899\u7880\u7896\u787b\u797c\u7982\u797d\u7979\u7a11\u7a18\u7a19\u7a12\u7a17\u7a15\u7a22\u7a13"],["df40","\u7a1b\u7a10\u7aa3\u7aa2\u7a9e\u7aeb\u7b66\u7b64\u7b6d\u7b74\u7b69\u7b72\u7b65\u7b73\u7b71\u7b70\u7b61\u7b78\u7b76\u7b63\u7cb2\u7cb4\u7caf\u7d88\u7d86\u7d80\u7d8d\u7d7f\u7d85\u7d7a\u7d8e\u7d7b\u7d83\u7d7c\u7d8c\u7d94\u7d84\u7d7d\u7d92\u7f6d\u7f6b\u7f67\u7f68\u7f6c\u7fa6\u7fa5\u7fa7\u7fdb\u7fdc\u8021\u8164\u8160\u8177\u815c\u8169\u815b\u8162\u8172\u6721\u815e\u8176\u8167\u816f"],["dfa1","\u8144\u8161\u821d\u8249\u8244\u8240\u8242\u8245\u84f1\u843f\u8456\u8476\u8479\u848f\u848d\u8465\u8451\u8440\u8486\u8467\u8430\u844d\u847d\u845a\u8459\u8474\u8473\u845d\u8507\u845e\u8437\u843a\u8434\u847a\u8443\u8478\u8432\u8445\u8429\u83d9\u844b\u842f\u8442\u842d\u845f\u8470\u8439\u844e\u844c\u8452\u846f\u84c5\u848e\u843b\u8447\u8436\u8433\u8468\u847e\u8444\u842b\u8460\u8454\u846e\u8450\u870b\u8704\u86f7\u870c\u86fa\u86d6\u86f5\u874d\u86f8\u870e\u8709\u8701\u86f6\u870d\u8705\u88d6\u88cb\u88cd\u88ce\u88de\u88db\u88da\u88cc\u88d0\u8985\u899b\u89df\u89e5\u89e4"],["e040","\u89e1\u89e0\u89e2\u89dc\u89e6\u8a76\u8a86\u8a7f\u8a61\u8a3f\u8a77\u8a82\u8a84\u8a75\u8a83\u8a81\u8a74\u8a7a\u8c3c\u8c4b\u8c4a\u8c65\u8c64\u8c66\u8c86\u8c84\u8c85\u8ccc\u8d68\u8d69\u8d91\u8d8c\u8d8e\u8d8f\u8d8d\u8d93\u8d94\u8d90\u8d92\u8df0\u8de0\u8dec\u8df1\u8dee\u8dd0\u8de9\u8de3\u8de2\u8de7\u8df2\u8deb\u8df4\u8f06\u8eff\u8f01\u8f00\u8f05\u8f07\u8f08\u8f02\u8f0b\u9052\u903f"],["e0a1","\u9044\u9049\u903d\u9110\u910d\u910f\u9111\u9116\u9114\u910b\u910e\u916e\u916f\u9248\u9252\u9230\u923a\u9266\u9233\u9265\u925e\u9283\u922e\u924a\u9246\u926d\u926c\u924f\u9260\u9267\u926f\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924e\u9253\u924c\u9256\u9232\u959f\u959c\u959e\u959b\u9692\u9693\u9691\u9697\u96ce\u96fa\u96fd\u96f8\u96f5\u9773\u9777\u9778\u9772\u980f\u980d\u980e\u98ac\u98f6\u98f9\u99af\u99b2\u99b0\u99b5\u9aad\u9aab\u9b5b\u9cea\u9ced\u9ce7\u9e80\u9efd\u50e6\u50d4\u50d7\u50e8\u50f3\u50db\u50ea\u50dd\u50e4\u50d3\u50ec\u50f0\u50ef\u50e3\u50e0"],["e140","\u51d8\u5280\u5281\u52e9\u52eb\u5330\u53ac\u5627\u5615\u560c\u5612\u55fc\u560f\u561c\u5601\u5613\u5602\u55fa\u561d\u5604\u55ff\u55f9\u5889\u587c\u5890\u5898\u5886\u5881\u587f\u5874\u588b\u587a\u5887\u5891\u588e\u5876\u5882\u5888\u587b\u5894\u588f\u58fe\u596b\u5adc\u5aee\u5ae5\u5ad5\u5aea\u5ada\u5aed\u5aeb\u5af3\u5ae2\u5ae0\u5adb\u5aec\u5ade\u5add\u5ad9\u5ae8\u5adf\u5b77\u5be0"],["e1a1","\u5be3\u5c63\u5d82\u5d80\u5d7d\u5d86\u5d7a\u5d81\u5d77\u5d8a\u5d89\u5d88\u5d7e\u5d7c\u5d8d\u5d79\u5d7f\u5e58\u5e59\u5e53\u5ed8\u5ed1\u5ed7\u5ece\u5edc\u5ed5\u5ed9\u5ed2\u5ed4\u5f44\u5f43\u5f6f\u5fb6\u612c\u6128\u6141\u615e\u6171\u6173\u6152\u6153\u6172\u616c\u6180\u6174\u6154\u617a\u615b\u6165\u613b\u616a\u6161\u6156\u6229\u6227\u622b\u642b\u644d\u645b\u645d\u6474\u6476\u6472\u6473\u647d\u6475\u6466\u64a6\u644e\u6482\u645e\u645c\u644b\u6453\u6460\u6450\u647f\u643f\u646c\u646b\u6459\u6465\u6477\u6573\u65a0\u66a1\u66a0\u669f\u6705\u6704\u6722\u69b1\u69b6\u69c9"],["e240","\u69a0\u69ce\u6996\u69b0\u69ac\u69bc\u6991\u6999\u698e\u69a7\u698d\u69a9\u69be\u69af\u69bf\u69c4\u69bd\u69a4\u69d4\u69b9\u69ca\u699a\u69cf\u69b3\u6993\u69aa\u69a1\u699e\u69d9\u6997\u6990\u69c2\u69b5\u69a5\u69c6\u6b4a\u6b4d\u6b4b\u6b9e\u6b9f\u6ba0\u6bc3\u6bc4\u6bfe\u6ece\u6ef5\u6ef1\u6f03\u6f25\u6ef8\u6f37\u6efb\u6f2e\u6f09\u6f4e\u6f19\u6f1a\u6f27\u6f18\u6f3b\u6f12\u6eed\u6f0a"],["e2a1","\u6f36\u6f73\u6ef9\u6eee\u6f2d\u6f40\u6f30\u6f3c\u6f35\u6eeb\u6f07\u6f0e\u6f43\u6f05\u6efd\u6ef6\u6f39\u6f1c\u6efc\u6f3a\u6f1f\u6f0d\u6f1e\u6f08\u6f21\u7187\u7190\u7189\u7180\u7185\u7182\u718f\u717b\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734d\u7351\u734c\u7462\u7473\u7471\u7475\u7472\u7467\u746e\u7500\u7502\u7503\u757d\u7590\u7616\u7608\u760c\u7615\u7611\u760a\u7614\u76b8\u7781\u777c\u7785\u7782\u776e\u7780\u776f\u777e\u7783\u78b2\u78aa\u78b4\u78ad\u78a8\u787e\u78ab\u789e\u78a5\u78a0\u78ac\u78a2\u78a4\u7998\u798a\u798b\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7a2b\u7a4a\u7a30\u7a2f\u7a28\u7a26\u7aa8\u7aab\u7aac\u7aee\u7b88\u7b9c\u7b8a\u7b91\u7b90\u7b96\u7b8d\u7b8c\u7b9b\u7b8e\u7b85\u7b98\u5284\u7b99\u7ba4\u7b82\u7cbb\u7cbf\u7cbc\u7cba\u7da7\u7db7\u7dc2\u7da3\u7daa\u7dc1\u7dc0\u7dc5\u7d9d\u7dce\u7dc4\u7dc6\u7dcb\u7dcc\u7daf\u7db9\u7d96\u7dbc\u7d9f\u7da6\u7dae\u7da9\u7da1\u7dc9\u7f73\u7fe2\u7fe3\u7fe5\u7fde"],["e3a1","\u8024\u805d\u805c\u8189\u8186\u8183\u8187\u818d\u818c\u818b\u8215\u8497\u84a4\u84a1\u849f\u84ba\u84ce\u84c2\u84ac\u84ae\u84ab\u84b9\u84b4\u84c1\u84cd\u84aa\u849a\u84b1\u84d0\u849d\u84a7\u84bb\u84a2\u8494\u84c7\u84cc\u849b\u84a9\u84af\u84a8\u84d6\u8498\u84b6\u84cf\u84a0\u84d7\u84d4\u84d2\u84db\u84b0\u8491\u8661\u8733\u8723\u8728\u876b\u8740\u872e\u871e\u8721\u8719\u871b\u8743\u872c\u8741\u873e\u8746\u8720\u8732\u872a\u872d\u873c\u8712\u873a\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871a\u8730\u8711\u88f7\u88e7\u88f1\u88f2\u88fa\u88fe\u88ee\u88fc\u88f6\u88fb"],["e440","\u88f0\u88ec\u88eb\u899d\u89a1\u899f\u899e\u89e9\u89eb\u89e8\u8aab\u8a99\u8a8b\u8a92\u8a8f\u8a96\u8c3d\u8c68\u8c69\u8cd5\u8ccf\u8cd7\u8d96\u8e09\u8e02\u8dff\u8e0d\u8dfd\u8e0a\u8e03\u8e07\u8e06\u8e05\u8dfe\u8e00\u8e04\u8f10\u8f11\u8f0e\u8f0d\u9123\u911c\u9120\u9122\u911f\u911d\u911a\u9124\u9121\u911b\u917a\u9172\u9179\u9173\u92a5\u92a4\u9276\u929b\u927a\u92a0\u9294\u92aa\u928d"],["e4a1","\u92a6\u929a\u92ab\u9279\u9297\u927f\u92a3\u92ee\u928e\u9282\u9295\u92a2\u927d\u9288\u92a1\u928a\u9286\u928c\u9299\u92a7\u927e\u9287\u92a9\u929d\u928b\u922d\u969e\u96a1\u96ff\u9758\u977d\u977a\u977e\u9783\u9780\u9782\u977b\u9784\u9781\u977f\u97ce\u97cd\u9816\u98ad\u98ae\u9902\u9900\u9907\u999d\u999c\u99c3\u99b9\u99bb\u99ba\u99c2\u99bd\u99c7\u9ab1\u9ae3\u9ae7\u9b3e\u9b3f\u9b60\u9b61\u9b5f\u9cf1\u9cf2\u9cf5\u9ea7\u50ff\u5103\u5130\u50f8\u5106\u5107\u50f6\u50fe\u510b\u510c\u50fd\u510a\u528b\u528c\u52f1\u52ef\u5648\u5642\u564c\u5635\u5641\u564a\u5649\u5646\u5658"],["e540","\u565a\u5640\u5633\u563d\u562c\u563e\u5638\u562a\u563a\u571a\u58ab\u589d\u58b1\u58a0\u58a3\u58af\u58ac\u58a5\u58a1\u58ff\u5aff\u5af4\u5afd\u5af7\u5af6\u5b03\u5af8\u5b02\u5af9\u5b01\u5b07\u5b05\u5b0f\u5c67\u5d99\u5d97\u5d9f\u5d92\u5da2\u5d93\u5d95\u5da0\u5d9c\u5da1\u5d9a\u5d9e\u5e69\u5e5d\u5e60\u5e5c\u7df3\u5edb\u5ede\u5ee1\u5f49\u5fb2\u618b\u6183\u6179\u61b1\u61b0\u61a2\u6189"],["e5a1","\u619b\u6193\u61af\u61ad\u619f\u6192\u61aa\u61a1\u618d\u6166\u61b3\u622d\u646e\u6470\u6496\u64a0\u6485\u6497\u649c\u648f\u648b\u648a\u648c\u64a3\u649f\u6468\u64b1\u6498\u6576\u657a\u6579\u657b\u65b2\u65b3\u66b5\u66b0\u66a9\u66b2\u66b7\u66aa\u66af\u6a00\u6a06\u6a17\u69e5\u69f8\u6a15\u69f1\u69e4\u6a20\u69ff\u69ec\u69e2\u6a1b\u6a1d\u69fe\u6a27\u69f2\u69ee\u6a14\u69f7\u69e7\u6a40\u6a08\u69e6\u69fb\u6a0d\u69fc\u69eb\u6a09\u6a04\u6a18\u6a25\u6a0f\u69f6\u6a26\u6a07\u69f4\u6a16\u6b51\u6ba5\u6ba3\u6ba2\u6ba6\u6c01\u6c00\u6bff\u6c02\u6f41\u6f26\u6f7e\u6f87\u6fc6\u6f92"],["e640","\u6f8d\u6f89\u6f8c\u6f62\u6f4f\u6f85\u6f5a\u6f96\u6f76\u6f6c\u6f82\u6f55\u6f72\u6f52\u6f50\u6f57\u6f94\u6f93\u6f5d\u6f00\u6f61\u6f6b\u6f7d\u6f67\u6f90\u6f53\u6f8b\u6f69\u6f7f\u6f95\u6f63\u6f77\u6f6a\u6f7b\u71b2\u71af\u719b\u71b0\u71a0\u719a\u71a9\u71b5\u719d\u71a5\u719e\u71a4\u71a1\u71aa\u719c\u71a7\u71b3\u7298\u729a\u7358\u7352\u735e\u735f\u7360\u735d\u735b\u7361\u735a\u7359"],["e6a1","\u7362\u7487\u7489\u748a\u7486\u7481\u747d\u7485\u7488\u747c\u7479\u7508\u7507\u757e\u7625\u761e\u7619\u761d\u761c\u7623\u761a\u7628\u761b\u769c\u769d\u769e\u769b\u778d\u778f\u7789\u7788\u78cd\u78bb\u78cf\u78cc\u78d1\u78ce\u78d4\u78c8\u78c3\u78c4\u78c9\u799a\u79a1\u79a0\u799c\u79a2\u799b\u6b76\u7a39\u7ab2\u7ab4\u7ab3\u7bb7\u7bcb\u7bbe\u7bac\u7bce\u7baf\u7bb9\u7bca\u7bb5\u7cc5\u7cc8\u7ccc\u7ccb\u7df7\u7ddb\u7dea\u7de7\u7dd7\u7de1\u7e03\u7dfa\u7de6\u7df6\u7df1\u7df0\u7dee\u7ddf\u7f76\u7fac\u7fb0\u7fad\u7fed\u7feb\u7fea\u7fec\u7fe6\u7fe8\u8064\u8067\u81a3\u819f"],["e740","\u819e\u8195\u81a2\u8199\u8197\u8216\u824f\u8253\u8252\u8250\u824e\u8251\u8524\u853b\u850f\u8500\u8529\u850e\u8509\u850d\u851f\u850a\u8527\u851c\u84fb\u852b\u84fa\u8508\u850c\u84f4\u852a\u84f2\u8515\u84f7\u84eb\u84f3\u84fc\u8512\u84ea\u84e9\u8516\u84fe\u8528\u851d\u852e\u8502\u84fd\u851e\u84f6\u8531\u8526\u84e7\u84e8\u84f0\u84ef\u84f9\u8518\u8520\u8530\u850b\u8519\u852f\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87e1\u8773\u8758\u8754\u875b\u8752\u8761\u875a\u8751\u875e\u876d\u876a\u8750\u874e\u875f\u875d\u876f\u876c\u877a\u876e\u875c\u8765\u874f\u877b\u8775\u8762\u8767\u8769\u885a\u8905\u890c\u8914\u890b\u8917\u8918\u8919\u8906\u8916\u8911\u890e\u8909\u89a2\u89a4\u89a3\u89ed\u89f0\u89ec\u8acf\u8ac6\u8ab8\u8ad3\u8ad1\u8ad4\u8ad5\u8abb\u8ad7\u8abe\u8ac0\u8ac5\u8ad8\u8ac3\u8aba\u8abd\u8ad9\u8c3e\u8c4d\u8c8f\u8ce5\u8cdf\u8cd9\u8ce8\u8cda\u8cdd\u8ce7\u8da0\u8d9c\u8da1\u8d9b\u8e20\u8e23\u8e25\u8e24\u8e2e\u8e15\u8e1b\u8e16\u8e11\u8e19\u8e26\u8e27"],["e840","\u8e14\u8e12\u8e18\u8e13\u8e1c\u8e17\u8e1a\u8f2c\u8f24\u8f18\u8f1a\u8f20\u8f23\u8f16\u8f17\u9073\u9070\u906f\u9067\u906b\u912f\u912b\u9129\u912a\u9132\u9126\u912e\u9185\u9186\u918a\u9181\u9182\u9184\u9180\u92d0\u92c3\u92c4\u92c0\u92d9\u92b6\u92cf\u92f1\u92df\u92d8\u92e9\u92d7\u92dd\u92cc\u92ef\u92c2\u92e8\u92ca\u92c8\u92ce\u92e6\u92cd\u92d5\u92c9\u92e0\u92de\u92e7\u92d1\u92d3"],["e8a1","\u92b5\u92e1\u92c6\u92b4\u957c\u95ac\u95ab\u95ae\u95b0\u96a4\u96a2\u96d3\u9705\u9708\u9702\u975a\u978a\u978e\u9788\u97d0\u97cf\u981e\u981d\u9826\u9829\u9828\u9820\u981b\u9827\u98b2\u9908\u98fa\u9911\u9914\u9916\u9917\u9915\u99dc\u99cd\u99cf\u99d3\u99d4\u99ce\u99c9\u99d6\u99d8\u99cb\u99d7\u99cc\u9ab3\u9aec\u9aeb\u9af3\u9af2\u9af1\u9b46\u9b43\u9b67\u9b74\u9b71\u9b66\u9b76\u9b75\u9b70\u9b68\u9b64\u9b6c\u9cfc\u9cfa\u9cfd\u9cff\u9cf7\u9d07\u9d00\u9cf9\u9cfb\u9d08\u9d05\u9d04\u9e83\u9ed3\u9f0f\u9f10\u511c\u5113\u5117\u511a\u5111\u51de\u5334\u53e1\u5670\u5660\u566e"],["e940","\u5673\u5666\u5663\u566d\u5672\u565e\u5677\u571c\u571b\u58c8\u58bd\u58c9\u58bf\u58ba\u58c2\u58bc\u58c6\u5b17\u5b19\u5b1b\u5b21\u5b14\u5b13\u5b10\u5b16\u5b28\u5b1a\u5b20\u5b1e\u5bef\u5dac\u5db1\u5da9\u5da7\u5db5\u5db0\u5dae\u5daa\u5da8\u5db2\u5dad\u5daf\u5db4\u5e67\u5e68\u5e66\u5e6f\u5ee9\u5ee7\u5ee6\u5ee8\u5ee5\u5f4b\u5fbc\u619d\u61a8\u6196\u61c5\u61b4\u61c6\u61c1\u61cc\u61ba"],["e9a1","\u61bf\u61b8\u618c\u64d7\u64d6\u64d0\u64cf\u64c9\u64bd\u6489\u64c3\u64db\u64f3\u64d9\u6533\u657f\u657c\u65a2\u66c8\u66be\u66c0\u66ca\u66cb\u66cf\u66bd\u66bb\u66ba\u66cc\u6723\u6a34\u6a66\u6a49\u6a67\u6a32\u6a68\u6a3e\u6a5d\u6a6d\u6a76\u6a5b\u6a51\u6a28\u6a5a\u6a3b\u6a3f\u6a41\u6a6a\u6a64\u6a50\u6a4f\u6a54\u6a6f\u6a69\u6a60\u6a3c\u6a5e\u6a56\u6a55\u6a4d\u6a4e\u6a46\u6b55\u6b54\u6b56\u6ba7\u6baa\u6bab\u6bc8\u6bc7\u6c04\u6c03\u6c06\u6fad\u6fcb\u6fa3\u6fc7\u6fbc\u6fce\u6fc8\u6f5e\u6fc4\u6fbd\u6f9e\u6fca\u6fa8\u7004\u6fa5\u6fae\u6fba\u6fac\u6faa\u6fcf\u6fbf\u6fb8"],["ea40","\u6fa2\u6fc9\u6fab\u6fcd\u6faf\u6fb2\u6fb0\u71c5\u71c2\u71bf\u71b8\u71d6\u71c0\u71c1\u71cb\u71d4\u71ca\u71c7\u71cf\u71bd\u71d8\u71bc\u71c6\u71da\u71db\u729d\u729e\u7369\u7366\u7367\u736c\u7365\u736b\u736a\u747f\u749a\u74a0\u7494\u7492\u7495\u74a1\u750b\u7580\u762f\u762d\u7631\u763d\u7633\u763c\u7635\u7632\u7630\u76bb\u76e6\u779a\u779d\u77a1\u779c\u779b\u77a2\u77a3\u7795\u7799"],["eaa1","\u7797\u78dd\u78e9\u78e5\u78ea\u78de\u78e3\u78db\u78e1\u78e2\u78ed\u78df\u78e0\u79a4\u7a44\u7a48\u7a47\u7ab6\u7ab8\u7ab5\u7ab1\u7ab7\u7bde\u7be3\u7be7\u7bdd\u7bd5\u7be5\u7bda\u7be8\u7bf9\u7bd4\u7bea\u7be2\u7bdc\u7beb\u7bd8\u7bdf\u7cd2\u7cd4\u7cd7\u7cd0\u7cd1\u7e12\u7e21\u7e17\u7e0c\u7e1f\u7e20\u7e13\u7e0e\u7e1c\u7e15\u7e1a\u7e22\u7e0b\u7e0f\u7e16\u7e0d\u7e14\u7e25\u7e24\u7f43\u7f7b\u7f7c\u7f7a\u7fb1\u7fef\u802a\u8029\u806c\u81b1\u81a6\u81ae\u81b9\u81b5\u81ab\u81b0\u81ac\u81b4\u81b2\u81b7\u81a7\u81f2\u8255\u8256\u8257\u8556\u8545\u856b\u854d\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853e\u855b\u8571\u854e\u856e\u8575\u8555\u8567\u8560\u858c\u8566\u855d\u8554\u8565\u856c\u8663\u8665\u8664\u879b\u878f\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87a3\u8785\u8790\u8791\u879d\u8784\u8794\u879c\u879a\u8789\u891e\u8926\u8930\u892d\u892e\u8927\u8931\u8922\u8929\u8923\u892f\u892c\u891f\u89f1\u8ae0"],["eba1","\u8ae2\u8af2\u8af4\u8af5\u8add\u8b14\u8ae4\u8adf\u8af0\u8ac8\u8ade\u8ae1\u8ae8\u8aff\u8aef\u8afb\u8c91\u8c92\u8c90\u8cf5\u8cee\u8cf1\u8cf0\u8cf3\u8d6c\u8d6e\u8da5\u8da7\u8e33\u8e3e\u8e38\u8e40\u8e45\u8e36\u8e3c\u8e3d\u8e41\u8e30\u8e3f\u8ebd\u8f36\u8f2e\u8f35\u8f32\u8f39\u8f37\u8f34\u9076\u9079\u907b\u9086\u90fa\u9133\u9135\u9136\u9193\u9190\u9191\u918d\u918f\u9327\u931e\u9308\u931f\u9306\u930f\u937a\u9338\u933c\u931b\u9323\u9312\u9301\u9346\u932d\u930e\u930d\u92cb\u931d\u92fa\u9325\u9313\u92f9\u92f7\u9334\u9302\u9324\u92ff\u9329\u9339\u9335\u932a\u9314\u930c"],["ec40","\u930b\u92fe\u9309\u9300\u92fb\u9316\u95bc\u95cd\u95be\u95b9\u95ba\u95b6\u95bf\u95b5\u95bd\u96a9\u96d4\u970b\u9712\u9710\u9799\u9797\u9794\u97f0\u97f8\u9835\u982f\u9832\u9924\u991f\u9927\u9929\u999e\u99ee\u99ec\u99e5\u99e4\u99f0\u99e3\u99ea\u99e9\u99e7\u9ab9\u9abf\u9ab4\u9abb\u9af6\u9afa\u9af9\u9af7\u9b33\u9b80\u9b85\u9b87\u9b7c\u9b7e\u9b7b\u9b82\u9b93\u9b92\u9b90\u9b7a\u9b95"],["eca1","\u9b7d\u9b88\u9d25\u9d17\u9d20\u9d1e\u9d14\u9d29\u9d1d\u9d18\u9d22\u9d10\u9d19\u9d1f\u9e88\u9e86\u9e87\u9eae\u9ead\u9ed5\u9ed6\u9efa\u9f12\u9f3d\u5126\u5125\u5122\u5124\u5120\u5129\u52f4\u5693\u568c\u568d\u5686\u5684\u5683\u567e\u5682\u567f\u5681\u58d6\u58d4\u58cf\u58d2\u5b2d\u5b25\u5b32\u5b23\u5b2c\u5b27\u5b26\u5b2f\u5b2e\u5b7b\u5bf1\u5bf2\u5db7\u5e6c\u5e6a\u5fbe\u5fbb\u61c3\u61b5\u61bc\u61e7\u61e0\u61e5\u61e4\u61e8\u61de\u64ef\u64e9\u64e3\u64eb\u64e4\u64e8\u6581\u6580\u65b6\u65da\u66d2\u6a8d\u6a96\u6a81\u6aa5\u6a89\u6a9f\u6a9b\u6aa1\u6a9e\u6a87\u6a93\u6a8e"],["ed40","\u6a95\u6a83\u6aa8\u6aa4\u6a91\u6a7f\u6aa6\u6a9a\u6a85\u6a8c\u6a92\u6b5b\u6bad\u6c09\u6fcc\u6fa9\u6ff4\u6fd4\u6fe3\u6fdc\u6fed\u6fe7\u6fe6\u6fde\u6ff2\u6fdd\u6fe2\u6fe8\u71e1\u71f1\u71e8\u71f2\u71e4\u71f0\u71e2\u7373\u736e\u736f\u7497\u74b2\u74ab\u7490\u74aa\u74ad\u74b1\u74a5\u74af\u7510\u7511\u7512\u750f\u7584\u7643\u7648\u7649\u7647\u76a4\u76e9\u77b5\u77ab\u77b2\u77b7\u77b6"],["eda1","\u77b4\u77b1\u77a8\u77f0\u78f3\u78fd\u7902\u78fb\u78fc\u78f2\u7905\u78f9\u78fe\u7904\u79ab\u79a8\u7a5c\u7a5b\u7a56\u7a58\u7a54\u7a5a\u7abe\u7ac0\u7ac1\u7c05\u7c0f\u7bf2\u7c00\u7bff\u7bfb\u7c0e\u7bf4\u7c0b\u7bf3\u7c02\u7c09\u7c03\u7c01\u7bf8\u7bfd\u7c06\u7bf0\u7bf1\u7c10\u7c0a\u7ce8\u7e2d\u7e3c\u7e42\u7e33\u9848\u7e38\u7e2a\u7e49\u7e40\u7e47\u7e29\u7e4c\u7e30\u7e3b\u7e36\u7e44\u7e3a\u7f45\u7f7f\u7f7e\u7f7d\u7ff4\u7ff2\u802c\u81bb\u81c4\u81cc\u81ca\u81c5\u81c7\u81bc\u81e9\u825b\u825a\u825c\u8583\u8580\u858f\u85a7\u8595\u85a0\u858b\u85a3\u857b\u85a4\u859a\u859e"],["ee40","\u8577\u857c\u8589\u85a1\u857a\u8578\u8557\u858e\u8596\u8586\u858d\u8599\u859d\u8581\u85a2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859f\u8668\u87be\u87aa\u87ad\u87c5\u87b0\u87ac\u87b9\u87b5\u87bc\u87ae\u87c9\u87c3\u87c2\u87cc\u87b7\u87af\u87c4\u87ca\u87b4\u87b6\u87bf\u87b8\u87bd\u87de\u87b2\u8935\u8933\u893c\u893e\u8941\u8952\u8937\u8942\u89ad\u89af\u89ae\u89f2\u89f3\u8b1e"],["eea1","\u8b18\u8b16\u8b11\u8b05\u8b0b\u8b22\u8b0f\u8b12\u8b15\u8b07\u8b0d\u8b08\u8b06\u8b1c\u8b13\u8b1a\u8c4f\u8c70\u8c72\u8c71\u8c6f\u8c95\u8c94\u8cf9\u8d6f\u8e4e\u8e4d\u8e53\u8e50\u8e4c\u8e47\u8f43\u8f40\u9085\u907e\u9138\u919a\u91a2\u919b\u9199\u919f\u91a1\u919d\u91a0\u93a1\u9383\u93af\u9364\u9356\u9347\u937c\u9358\u935c\u9376\u9349\u9350\u9351\u9360\u936d\u938f\u934c\u936a\u9379\u9357\u9355\u9352\u934f\u9371\u9377\u937b\u9361\u935e\u9363\u9367\u9380\u934e\u9359\u95c7\u95c0\u95c9\u95c3\u95c5\u95b7\u96ae\u96b0\u96ac\u9720\u971f\u9718\u971d\u9719\u979a\u97a1\u979c"],["ef40","\u979e\u979d\u97d5\u97d4\u97f1\u9841\u9844\u984a\u9849\u9845\u9843\u9925\u992b\u992c\u992a\u9933\u9932\u992f\u992d\u9931\u9930\u9998\u99a3\u99a1\u9a02\u99fa\u99f4\u99f7\u99f9\u99f8\u99f6\u99fb\u99fd\u99fe\u99fc\u9a03\u9abe\u9afe\u9afd\u9b01\u9afc\u9b48\u9b9a\u9ba8\u9b9e\u9b9b\u9ba6\u9ba1\u9ba5\u9ba4\u9b86\u9ba2\u9ba0\u9baf\u9d33\u9d41\u9d67\u9d36\u9d2e\u9d2f\u9d31\u9d38\u9d30"],["efa1","\u9d45\u9d42\u9d43\u9d3e\u9d37\u9d40\u9d3d\u7ff5\u9d2d\u9e8a\u9e89\u9e8d\u9eb0\u9ec8\u9eda\u9efb\u9eff\u9f24\u9f23\u9f22\u9f54\u9fa0\u5131\u512d\u512e\u5698\u569c\u5697\u569a\u569d\u5699\u5970\u5b3c\u5c69\u5c6a\u5dc0\u5e6d\u5e6e\u61d8\u61df\u61ed\u61ee\u61f1\u61ea\u61f0\u61eb\u61d6\u61e9\u64ff\u6504\u64fd\u64f8\u6501\u6503\u64fc\u6594\u65db\u66da\u66db\u66d8\u6ac5\u6ab9\u6abd\u6ae1\u6ac6\u6aba\u6ab6\u6ab7\u6ac7\u6ab4\u6aad\u6b5e\u6bc9\u6c0b\u7007\u700c\u700d\u7001\u7005\u7014\u700e\u6fff\u7000\u6ffb\u7026\u6ffc\u6ff7\u700a\u7201\u71ff\u71f9\u7203\u71fd\u7376"],["f040","\u74b8\u74c0\u74b5\u74c1\u74be\u74b6\u74bb\u74c2\u7514\u7513\u765c\u7664\u7659\u7650\u7653\u7657\u765a\u76a6\u76bd\u76ec\u77c2\u77ba\u78ff\u790c\u7913\u7914\u7909\u7910\u7912\u7911\u79ad\u79ac\u7a5f\u7c1c\u7c29\u7c19\u7c20\u7c1f\u7c2d\u7c1d\u7c26\u7c28\u7c22\u7c25\u7c30\u7e5c\u7e50\u7e56\u7e63\u7e58\u7e62\u7e5f\u7e51\u7e60\u7e57\u7e53\u7fb5\u7fb3\u7ff7\u7ff8\u8075\u81d1\u81d2"],["f0a1","\u81d0\u825f\u825e\u85b4\u85c6\u85c0\u85c3\u85c2\u85b3\u85b5\u85bd\u85c7\u85c4\u85bf\u85cb\u85ce\u85c8\u85c5\u85b1\u85b6\u85d2\u8624\u85b8\u85b7\u85be\u8669\u87e7\u87e6\u87e2\u87db\u87eb\u87ea\u87e5\u87df\u87f3\u87e4\u87d4\u87dc\u87d3\u87ed\u87d8\u87e3\u87a4\u87d7\u87d9\u8801\u87f4\u87e8\u87dd\u8953\u894b\u894f\u894c\u8946\u8950\u8951\u8949\u8b2a\u8b27\u8b23\u8b33\u8b30\u8b35\u8b47\u8b2f\u8b3c\u8b3e\u8b31\u8b25\u8b37\u8b26\u8b36\u8b2e\u8b24\u8b3b\u8b3d\u8b3a\u8c42\u8c75\u8c99\u8c98\u8c97\u8cfe\u8d04\u8d02\u8d00\u8e5c\u8e62\u8e60\u8e57\u8e56\u8e5e\u8e65\u8e67"],["f140","\u8e5b\u8e5a\u8e61\u8e5d\u8e69\u8e54\u8f46\u8f47\u8f48\u8f4b\u9128\u913a\u913b\u913e\u91a8\u91a5\u91a7\u91af\u91aa\u93b5\u938c\u9392\u93b7\u939b\u939d\u9389\u93a7\u938e\u93aa\u939e\u93a6\u9395\u9388\u9399\u939f\u938d\u93b1\u9391\u93b2\u93a4\u93a8\u93b4\u93a3\u93a5\u95d2\u95d3\u95d1\u96b3\u96d7\u96da\u5dc2\u96df\u96d8\u96dd\u9723\u9722\u9725\u97ac\u97ae\u97a8\u97ab\u97a4\u97aa"],["f1a1","\u97a2\u97a5\u97d7\u97d9\u97d6\u97d8\u97fa\u9850\u9851\u9852\u98b8\u9941\u993c\u993a\u9a0f\u9a0b\u9a09\u9a0d\u9a04\u9a11\u9a0a\u9a05\u9a07\u9a06\u9ac0\u9adc\u9b08\u9b04\u9b05\u9b29\u9b35\u9b4a\u9b4c\u9b4b\u9bc7\u9bc6\u9bc3\u9bbf\u9bc1\u9bb5\u9bb8\u9bd3\u9bb6\u9bc4\u9bb9\u9bbd\u9d5c\u9d53\u9d4f\u9d4a\u9d5b\u9d4b\u9d59\u9d56\u9d4c\u9d57\u9d52\u9d54\u9d5f\u9d58\u9d5a\u9e8e\u9e8c\u9edf\u9f01\u9f00\u9f16\u9f25\u9f2b\u9f2a\u9f29\u9f28\u9f4c\u9f55\u5134\u5135\u5296\u52f7\u53b4\u56ab\u56ad\u56a6\u56a7\u56aa\u56ac\u58da\u58dd\u58db\u5912\u5b3d\u5b3e\u5b3f\u5dc3\u5e70"],["f240","\u5fbf\u61fb\u6507\u6510\u650d\u6509\u650c\u650e\u6584\u65de\u65dd\u66de\u6ae7\u6ae0\u6acc\u6ad1\u6ad9\u6acb\u6adf\u6adc\u6ad0\u6aeb\u6acf\u6acd\u6ade\u6b60\u6bb0\u6c0c\u7019\u7027\u7020\u7016\u702b\u7021\u7022\u7023\u7029\u7017\u7024\u701c\u702a\u720c\u720a\u7207\u7202\u7205\u72a5\u72a6\u72a4\u72a3\u72a1\u74cb\u74c5\u74b7\u74c3\u7516\u7660\u77c9\u77ca\u77c4\u77f1\u791d\u791b"],["f2a1","\u7921\u791c\u7917\u791e\u79b0\u7a67\u7a68\u7c33\u7c3c\u7c39\u7c2c\u7c3b\u7cec\u7cea\u7e76\u7e75\u7e78\u7e70\u7e77\u7e6f\u7e7a\u7e72\u7e74\u7e68\u7f4b\u7f4a\u7f83\u7f86\u7fb7\u7ffd\u7ffe\u8078\u81d7\u81d5\u8264\u8261\u8263\u85eb\u85f1\u85ed\u85d9\u85e1\u85e8\u85da\u85d7\u85ec\u85f2\u85f8\u85d8\u85df\u85e3\u85dc\u85d1\u85f0\u85e6\u85ef\u85de\u85e2\u8800\u87fa\u8803\u87f6\u87f7\u8809\u880c\u880b\u8806\u87fc\u8808\u87ff\u880a\u8802\u8962\u895a\u895b\u8957\u8961\u895c\u8958\u895d\u8959\u8988\u89b7\u89b6\u89f6\u8b50\u8b48\u8b4a\u8b40\u8b53\u8b56\u8b54\u8b4b\u8b55"],["f340","\u8b51\u8b42\u8b52\u8b57\u8c43\u8c77\u8c76\u8c9a\u8d06\u8d07\u8d09\u8dac\u8daa\u8dad\u8dab\u8e6d\u8e78\u8e73\u8e6a\u8e6f\u8e7b\u8ec2\u8f52\u8f51\u8f4f\u8f50\u8f53\u8fb4\u9140\u913f\u91b0\u91ad\u93de\u93c7\u93cf\u93c2\u93da\u93d0\u93f9\u93ec\u93cc\u93d9\u93a9\u93e6\u93ca\u93d4\u93ee\u93e3\u93d5\u93c4\u93ce\u93c0\u93d2\u93e7\u957d\u95da\u95db\u96e1\u9729\u972b\u972c\u9728\u9726"],["f3a1","\u97b3\u97b7\u97b6\u97dd\u97de\u97df\u985c\u9859\u985d\u9857\u98bf\u98bd\u98bb\u98be\u9948\u9947\u9943\u99a6\u99a7\u9a1a\u9a15\u9a25\u9a1d\u9a24\u9a1b\u9a22\u9a20\u9a27\u9a23\u9a1e\u9a1c\u9a14\u9ac2\u9b0b\u9b0a\u9b0e\u9b0c\u9b37\u9bea\u9beb\u9be0\u9bde\u9be4\u9be6\u9be2\u9bf0\u9bd4\u9bd7\u9bec\u9bdc\u9bd9\u9be5\u9bd5\u9be1\u9bda\u9d77\u9d81\u9d8a\u9d84\u9d88\u9d71\u9d80\u9d78\u9d86\u9d8b\u9d8c\u9d7d\u9d6b\u9d74\u9d75\u9d70\u9d69\u9d85\u9d73\u9d7b\u9d82\u9d6f\u9d79\u9d7f\u9d87\u9d68\u9e94\u9e91\u9ec0\u9efc\u9f2d\u9f40\u9f41\u9f4d\u9f56\u9f57\u9f58\u5337\u56b2"],["f440","\u56b5\u56b3\u58e3\u5b45\u5dc6\u5dc7\u5eee\u5eef\u5fc0\u5fc1\u61f9\u6517\u6516\u6515\u6513\u65df\u66e8\u66e3\u66e4\u6af3\u6af0\u6aea\u6ae8\u6af9\u6af1\u6aee\u6aef\u703c\u7035\u702f\u7037\u7034\u7031\u7042\u7038\u703f\u703a\u7039\u7040\u703b\u7033\u7041\u7213\u7214\u72a8\u737d\u737c\u74ba\u76ab\u76aa\u76be\u76ed\u77cc\u77ce\u77cf\u77cd\u77f2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79b2\u7a6e\u7a6c\u7a6d\u7af7\u7c49\u7c48\u7c4a\u7c47\u7c45\u7cee\u7e7b\u7e7e\u7e81\u7e80\u7fba\u7fff\u8079\u81db\u81d9\u820b\u8268\u8269\u8622\u85ff\u8601\u85fe\u861b\u8600\u85f6\u8604\u8609\u8605\u860c\u85fd\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89b9\u89f7\u8b60\u8b6a\u8b5d\u8b68\u8b63\u8b65\u8b67\u8b6d\u8dae\u8e86\u8e88\u8e84\u8f59\u8f56\u8f57\u8f55\u8f58\u8f5a\u908d\u9143\u9141\u91b7\u91b5\u91b2\u91b3\u940b\u9413\u93fb\u9420\u940f\u9414\u93fe\u9415\u9410\u9428\u9419\u940d\u93f5\u9400\u93f7\u9407\u940e\u9416\u9412\u93fa\u9409\u93f8\u940a\u93ff"],["f540","\u93fc\u940c\u93f6\u9411\u9406\u95de\u95e0\u95df\u972e\u972f\u97b9\u97bb\u97fd\u97fe\u9860\u9862\u9863\u985f\u98c1\u98c2\u9950\u994e\u9959\u994c\u994b\u9953\u9a32\u9a34\u9a31\u9a2c\u9a2a\u9a36\u9a29\u9a2e\u9a38\u9a2d\u9ac7\u9aca\u9ac6\u9b10\u9b12\u9b11\u9c0b\u9c08\u9bf7\u9c05\u9c12\u9bf8\u9c40\u9c07\u9c0e\u9c06\u9c17\u9c14\u9c09\u9d9f\u9d99\u9da4\u9d9d\u9d92\u9d98\u9d90\u9d9b"],["f5a1","\u9da0\u9d94\u9d9c\u9daa\u9d97\u9da1\u9d9a\u9da2\u9da8\u9d9e\u9da3\u9dbf\u9da9\u9d96\u9da6\u9da7\u9e99\u9e9b\u9e9a\u9ee5\u9ee4\u9ee7\u9ee6\u9f30\u9f2e\u9f5b\u9f60\u9f5e\u9f5d\u9f59\u9f91\u513a\u5139\u5298\u5297\u56c3\u56bd\u56be\u5b48\u5b47\u5dcb\u5dcf\u5ef1\u61fd\u651b\u6b02\u6afc\u6b03\u6af8\u6b00\u7043\u7044\u704a\u7048\u7049\u7045\u7046\u721d\u721a\u7219\u737e\u7517\u766a\u77d0\u792d\u7931\u792f\u7c54\u7c53\u7cf2\u7e8a\u7e87\u7e88\u7e8b\u7e86\u7e8d\u7f4d\u7fbb\u8030\u81dd\u8618\u862a\u8626\u861f\u8623\u861c\u8619\u8627\u862e\u8621\u8620\u8629\u861e\u8625"],["f640","\u8829\u881d\u881b\u8820\u8824\u881c\u882b\u884a\u896d\u8969\u896e\u896b\u89fa\u8b79\u8b78\u8b45\u8b7a\u8b7b\u8d10\u8d14\u8daf\u8e8e\u8e8c\u8f5e\u8f5b\u8f5d\u9146\u9144\u9145\u91b9\u943f\u943b\u9436\u9429\u943d\u943c\u9430\u9439\u942a\u9437\u942c\u9440\u9431\u95e5\u95e4\u95e3\u9735\u973a\u97bf\u97e1\u9864\u98c9\u98c6\u98c0\u9958\u9956\u9a39\u9a3d\u9a46\u9a44\u9a42\u9a41\u9a3a"],["f6a1","\u9a3f\u9acd\u9b15\u9b17\u9b18\u9b16\u9b3a\u9b52\u9c2b\u9c1d\u9c1c\u9c2c\u9c23\u9c28\u9c29\u9c24\u9c21\u9db7\u9db6\u9dbc\u9dc1\u9dc7\u9dca\u9dcf\u9dbe\u9dc5\u9dc3\u9dbb\u9db5\u9dce\u9db9\u9dba\u9dac\u9dc8\u9db1\u9dad\u9dcc\u9db3\u9dcd\u9db2\u9e7a\u9e9c\u9eeb\u9eee\u9eed\u9f1b\u9f18\u9f1a\u9f31\u9f4e\u9f65\u9f64\u9f92\u4eb9\u56c6\u56c5\u56cb\u5971\u5b4b\u5b4c\u5dd5\u5dd1\u5ef2\u6521\u6520\u6526\u6522\u6b0b\u6b08\u6b09\u6c0d\u7055\u7056\u7057\u7052\u721e\u721f\u72a9\u737f\u74d8\u74d5\u74d9\u74d7\u766d\u76ad\u7935\u79b4\u7a70\u7a71\u7c57\u7c5c\u7c59\u7c5b\u7c5a"],["f740","\u7cf4\u7cf1\u7e91\u7f4f\u7f87\u81de\u826b\u8634\u8635\u8633\u862c\u8632\u8636\u882c\u8828\u8826\u882a\u8825\u8971\u89bf\u89be\u89fb\u8b7e\u8b84\u8b82\u8b86\u8b85\u8b7f\u8d15\u8e95\u8e94\u8e9a\u8e92\u8e90\u8e96\u8e97\u8f60\u8f62\u9147\u944c\u9450\u944a\u944b\u944f\u9447\u9445\u9448\u9449\u9446\u973f\u97e3\u986a\u9869\u98cb\u9954\u995b\u9a4e\u9a53\u9a54\u9a4c\u9a4f\u9a48\u9a4a"],["f7a1","\u9a49\u9a52\u9a50\u9ad0\u9b19\u9b2b\u9b3b\u9b56\u9b55\u9c46\u9c48\u9c3f\u9c44\u9c39\u9c33\u9c41\u9c3c\u9c37\u9c34\u9c32\u9c3d\u9c36\u9ddb\u9dd2\u9dde\u9dda\u9dcb\u9dd0\u9ddc\u9dd1\u9ddf\u9de9\u9dd9\u9dd8\u9dd6\u9df5\u9dd5\u9ddd\u9eb6\u9ef0\u9f35\u9f33\u9f32\u9f42\u9f6b\u9f95\u9fa2\u513d\u5299\u58e8\u58e7\u5972\u5b4d\u5dd8\u882f\u5f4f\u6201\u6203\u6204\u6529\u6525\u6596\u66eb\u6b11\u6b12\u6b0f\u6bca\u705b\u705a\u7222\u7382\u7381\u7383\u7670\u77d4\u7c67\u7c66\u7e95\u826c\u863a\u8640\u8639\u863c\u8631\u863b\u863e\u8830\u8832\u882e\u8833\u8976\u8974\u8973\u89fe"],["f840","\u8b8c\u8b8e\u8b8b\u8b88\u8c45\u8d19\u8e98\u8f64\u8f63\u91bc\u9462\u9455\u945d\u9457\u945e\u97c4\u97c5\u9800\u9a56\u9a59\u9b1e\u9b1f\u9b20\u9c52\u9c58\u9c50\u9c4a\u9c4d\u9c4b\u9c55\u9c59\u9c4c\u9c4e\u9dfb\u9df7\u9def\u9de3\u9deb\u9df8\u9de4\u9df6\u9de1\u9dee\u9de6\u9df2\u9df0\u9de2\u9dec\u9df4\u9df3\u9de8\u9ded\u9ec2\u9ed0\u9ef2\u9ef3\u9f06\u9f1c\u9f38\u9f37\u9f36\u9f43\u9f4f"],["f8a1","\u9f71\u9f70\u9f6e\u9f6f\u56d3\u56cd\u5b4e\u5c6d\u652d\u66ed\u66ee\u6b13\u705f\u7061\u705d\u7060\u7223\u74db\u74e5\u77d5\u7938\u79b7\u79b6\u7c6a\u7e97\u7f89\u826d\u8643\u8838\u8837\u8835\u884b\u8b94\u8b95\u8e9e\u8e9f\u8ea0\u8e9d\u91be\u91bd\u91c2\u946b\u9468\u9469\u96e5\u9746\u9743\u9747\u97c7\u97e5\u9a5e\u9ad5\u9b59\u9c63\u9c67\u9c66\u9c62\u9c5e\u9c60\u9e02\u9dfe\u9e07\u9e03\u9e06\u9e05\u9e00\u9e01\u9e09\u9dff\u9dfd\u9e04\u9ea0\u9f1e\u9f46\u9f74\u9f75\u9f76\u56d4\u652e\u65b8\u6b18\u6b19\u6b17\u6b1a\u7062\u7226\u72aa\u77d8\u77d9\u7939\u7c69\u7c6b\u7cf6\u7e9a"],["f940","\u7e98\u7e9b\u7e99\u81e0\u81e1\u8646\u8647\u8648\u8979\u897a\u897c\u897b\u89ff\u8b98\u8b99\u8ea5\u8ea4\u8ea3\u946e\u946d\u946f\u9471\u9473\u9749\u9872\u995f\u9c68\u9c6e\u9c6d\u9e0b\u9e0d\u9e10\u9e0f\u9e12\u9e11\u9ea1\u9ef5\u9f09\u9f47\u9f78\u9f7b\u9f7a\u9f79\u571e\u7066\u7c6f\u883c\u8db2\u8ea6\u91c3\u9474\u9478\u9476\u9475\u9a60\u9c74\u9c73\u9c71\u9c75\u9e14\u9e13\u9ef6\u9f0a"],["f9a1","\u9fa4\u7068\u7065\u7cf7\u866a\u883e\u883d\u883f\u8b9e\u8c9c\u8ea9\u8ec9\u974b\u9873\u9874\u98cc\u9961\u99ab\u9a64\u9a66\u9a67\u9b24\u9e15\u9e17\u9f48\u6207\u6b1e\u7227\u864c\u8ea8\u9482\u9480\u9481\u9a69\u9a68\u9b2e\u9e19\u7229\u864b\u8b9f\u9483\u9c79\u9eb7\u7675\u9a6b\u9c7a\u9e1d\u7069\u706a\u9ea4\u9f7e\u9f49\u9f98\u7881\u92b9\u88cf\u58bb\u6052\u7ca7\u5afa\u2554\u2566\u2557\u2560\u256c\u2563\u255a\u2569\u255d\u2552\u2564\u2555\u255e\u256a\u2561\u2558\u2567\u255b\u2553\u2565\u2556\u255f\u256b\u2562\u2559\u2568\u255c\u2551\u2550\u256d\u256e\u2570\u256f\u2593"]]},{}],16:[function(require,module,exports){module.exports=[["0","\0",127],["8ea1","\uff61",62],["a1a1","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7"],["a2a1","\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["a2ca","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["a2dc","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["a2f2","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["a2fe","\u25ef"],["a3b0","\uff10",9],["a3c1","\uff21",25],["a3e1","\uff41",25],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["addf","\u337b\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["b0a1","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["b1a1","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc"],["b2a1","\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["b3a1","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431"],["b4a1","\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["b5a1","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac"],["b6a1","\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["b7a1","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372"],["b8a1","\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["b9a1","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc"],["baa1","\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["bba1","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642"],["bca1","\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["bda1","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f"],["bea1","\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["bfa1","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe"],["c0a1","\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["c1a1","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e"],["c2a1","\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["c3a1","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5"],["c4a1","\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["c5a1","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230"],["c6a1","\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["c7a1","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6"],["c8a1","\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["c9a1","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d"],["caa1","\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["cba1","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80"],["cca1","\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["cda1","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483"],["cea1","\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["cfa1","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["d0a1","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["d1a1","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8"],["d2a1","\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["d3a1","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709"],["d4a1","\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["d5a1","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53"],["d6a1","\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["d7a1","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a"],["d8a1","\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["d9a1","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc"],["daa1","\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["dba1","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd"],["dca1","\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["dda1","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe"],["dea1","\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["dfa1","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc"],["e0a1","\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e1a1","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670"],["e2a1","\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e3a1","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50"],["e4a1","\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e5a1","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a"],["e6a1","\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e7a1","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759"],["eaa1","\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["eba1","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b"],["eca1","\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["eda1","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8"],["eea1","\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["efa1","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e"],["f0a1","\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["f1a1","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7"],["f2a1","\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["f3a1","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0"],["f4a1","\u582f\u69c7\u9059\u7464\u51dc\u7199"],["f9a1","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7"],["faa1","\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["fba1","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da"],["fca1","\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["fcf1","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["8fa2af","\u02d8\u02c7\xb8\u02d9\u02dd\xaf\u02db\u02da\uff5e\u0384\u0385"],["8fa2c2","\xa1\xa6\xbf"],["8fa2eb","\xba\xaa\xa9\xae\u2122\xa4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038a\u03aa"],["8fa6e7","\u038c"],["8fa6e9","\u038e\u03ab"],["8fa6ec","\u038f"],["8fa6f1","\u03ac\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03c2\u03cd\u03cb\u03b0\u03ce"],["8fa7c2","\u0402",10,"\u040e\u040f"],["8fa7f2","\u0452",10,"\u045e\u045f"],["8fa9a1","\xc6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013f"],["8fa9ab","\u014a\xd8\u0152"],["8fa9af","\u0166\xde"],["8fa9c1","\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014b\xf8\u0153\xdf\u0167\xfe"],["8faaa1","\xc1\xc0\xc4\xc2\u0102\u01cd\u0100\u0104\xc5\xc3\u0106\u0108\u010c\xc7\u010a\u010e\xc9\xc8\xcb\xca\u011a\u0116\u0112\u0118"],["8faaba","\u011c\u011e\u0122\u0120\u0124\xcd\xcc\xcf\xce\u01cf\u0130\u012a\u012e\u0128\u0134\u0136\u0139\u013d\u013b\u0143\u0147\u0145\xd1\xd3\xd2\xd6\xd4\u01d1\u0150\u014c\xd5\u0154\u0158\u0156\u015a\u015c\u0160\u015e\u0164\u0162\xda\xd9\xdc\xdb\u016c\u01d3\u0170\u016a\u0172\u016e\u0168\u01d7\u01db\u01d9\u01d5\u0174\xdd\u0178\u0176\u0179\u017d\u017b"],["8faba1","\xe1\xe0\xe4\xe2\u0103\u01ce\u0101\u0105\xe5\xe3\u0107\u0109\u010d\xe7\u010b\u010f\xe9\xe8\xeb\xea\u011b\u0117\u0113\u0119\u01f5\u011d\u011f"],["8fabbd","\u0121\u0125\xed\xec\xef\xee\u01d0"],["8fabc5","\u012b\u012f\u0129\u0135\u0137\u013a\u013e\u013c\u0144\u0148\u0146\xf1\xf3\xf2\xf6\xf4\u01d2\u0151\u014d\xf5\u0155\u0159\u0157\u015b\u015d\u0161\u015f\u0165\u0163\xfa\xf9\xfc\xfb\u016d\u01d4\u0171\u016b\u0173\u016f\u0169\u01d8\u01dc\u01da\u01d6\u0175\xfd\xff\u0177\u017a\u017e\u017c"],["8fb0a1","\u4e02\u4e04\u4e05\u4e0c\u4e12\u4e1f\u4e23\u4e24\u4e28\u4e2b\u4e2e\u4e2f\u4e30\u4e35\u4e40\u4e41\u4e44\u4e47\u4e51\u4e5a\u4e5c\u4e63\u4e68\u4e69\u4e74\u4e75\u4e79\u4e7f\u4e8d\u4e96\u4e97\u4e9d\u4eaf\u4eb9\u4ec3\u4ed0\u4eda\u4edb\u4ee0\u4ee1\u4ee2\u4ee8\u4eef\u4ef1\u4ef3\u4ef5\u4efd\u4efe\u4eff\u4f00\u4f02\u4f03\u4f08\u4f0b\u4f0c\u4f12\u4f15\u4f16\u4f17\u4f19\u4f2e\u4f31\u4f60\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e\u4f40\u4f42\u4f48\u4f49\u4f4b\u4f4c\u4f52\u4f54\u4f56\u4f58\u4f5f\u4f63\u4f6a\u4f6c\u4f6e\u4f71\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f7e\u4f81\u4f82\u4f84"],["8fb1a1","\u4f85\u4f89\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f94\u4f97\u4f99\u4f9a\u4f9e\u4f9f\u4fb2\u4fb7\u4fb9\u4fbb\u4fbc\u4fbd\u4fbe\u4fc0\u4fc1\u4fc5\u4fc6\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fcf\u4fd2\u4fdc\u4fe0\u4fe2\u4ff0\u4ff2\u4ffc\u4ffd\u4fff\u5000\u5001\u5004\u5007\u500a\u500c\u500e\u5010\u5013\u5017\u5018\u501b\u501c\u501d\u501e\u5022\u5027\u502e\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504a\u504c\u504e\u5051\u5052\u5053\u5057\u5059\u505f\u5060\u5062\u5063\u5066\u5067\u506a\u506d\u5070\u5071\u503b\u5081\u5083\u5084\u5086\u508a\u508e\u508f\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509b\u509c\u509e",4,"\u50aa\u50af\u50b0\u50b9\u50ba\u50bd\u50c0\u50c3\u50c4\u50c7\u50cc\u50ce\u50d0\u50d3\u50d4\u50d8\u50dc\u50dd\u50df\u50e2\u50e4\u50e6\u50e8\u50e9\u50ef\u50f1\u50f6\u50fa\u50fe\u5103\u5106\u5107\u5108\u510b\u510c\u510d\u510e\u50f2\u5110\u5117\u5119\u511b\u511c\u511d\u511e\u5123\u5127\u5128\u512c\u512d\u512f\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514a\u514f\u5153\u5155\u5157\u5158\u515f\u5164\u5166\u517e\u5183\u5184\u518b\u518e\u5198\u519d\u51a1\u51a3\u51ad\u51b8\u51ba\u51bc\u51be\u51bf\u51c2"],["8fb3a1","\u51c8\u51cf\u51d1\u51d2\u51d3\u51d5\u51d8\u51de\u51e2\u51e5\u51ee\u51f2\u51f3\u51f4\u51f7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523c\u5245\u5249\u5255\u5257\u5258\u525a\u525c\u525f\u5260\u5261\u5266\u526e\u5277\u5278\u5279\u5280\u5282\u5285\u528a\u528c\u5293\u5295\u5296\u5297\u5298\u529a\u529c\u52a4\u52a5\u52a6\u52a7\u52af\u52b0\u52b6\u52b7\u52b8\u52ba\u52bb\u52bd\u52c0\u52c4\u52c6\u52c8\u52cc\u52cf\u52d1\u52d4\u52d6\u52db\u52dc\u52e1\u52e5\u52e8\u52e9\u52ea\u52ec\u52f0\u52f1\u52f4\u52f6\u52f7\u5300\u5303\u530a\u530b"],["8fb4a1","\u530c\u5311\u5313\u5318\u531b\u531c\u531e\u531f\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u5330\u5332\u5335\u533c\u533d\u533e\u5342\u534c\u534b\u5359\u535b\u5361\u5363\u5365\u536c\u536d\u5372\u5379\u537e\u5383\u5387\u5388\u538e\u5393\u5394\u5399\u539d\u53a1\u53a4\u53aa\u53ab\u53af\u53b2\u53b4\u53b5\u53b7\u53b8\u53ba\u53bd\u53c0\u53c5\u53cf\u53d2\u53d3\u53d5\u53da\u53dd\u53de\u53e0\u53e6\u53e7\u53f5\u5402\u5413\u541a\u5421\u5427\u5428\u542a\u542f\u5431\u5434\u5435\u5443\u5444\u5447\u544d\u544f\u545e\u5462\u5464\u5466\u5467\u5469\u546b\u546d\u546e\u5474\u547f"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548d\u5491\u5495\u5496\u549c\u549f\u54a1\u54a6\u54a7\u54a9\u54aa\u54ad\u54ae\u54b1\u54b7\u54b9\u54ba\u54bb\u54bf\u54c6\u54ca\u54cd\u54ce\u54e0\u54ea\u54ec\u54ef\u54f6\u54fc\u54fe\u54ff\u5500\u5501\u5505\u5508\u5509\u550c\u550d\u550e\u5515\u552a\u552b\u5532\u5535\u5536\u553b\u553c\u553d\u5541\u5547\u5549\u554a\u554d\u5550\u5551\u5558\u555a\u555b\u555e\u5560\u5561\u5564\u5566\u557f\u5581\u5582\u5586\u5588\u558e\u558f\u5591\u5592\u5593\u5594\u5597\u55a3\u55a4\u55ad\u55b2\u55bf\u55c1\u55c3\u55c6\u55c9\u55cb\u55cc\u55ce\u55d1\u55d2"],["8fb6a1","\u55d3\u55d7\u55d8\u55db\u55de\u55e2\u55e9\u55f6\u55ff\u5605\u5608\u560a\u560d",5,"\u5619\u562c\u5630\u5633\u5635\u5637\u5639\u563b\u563c\u563d\u563f\u5640\u5641\u5643\u5644\u5646\u5649\u564b\u564d\u564f\u5654\u565e\u5660\u5661\u5662\u5663\u5666\u5669\u566d\u566f\u5671\u5672\u5675\u5684\u5685\u5688\u568b\u568c\u5695\u5699\u569a\u569d\u569e\u569f\u56a6\u56a7\u56a8\u56a9\u56ab\u56ac\u56ad\u56b1\u56b3\u56b7\u56be\u56c5\u56c9\u56ca\u56cb\u56cf\u56d0\u56cc\u56cd\u56d9\u56dc\u56dd\u56df\u56e1\u56e4",4,"\u56f1\u56eb\u56ed"],["8fb7a1","\u56f6\u56f7\u5701\u5702\u5707\u570a\u570c\u5711\u5715\u571a\u571b\u571d\u5720\u5722\u5723\u5724\u5725\u5729\u572a\u572c\u572e\u572f\u5733\u5734\u573d\u573e\u573f\u5745\u5746\u574c\u574d\u5752\u5762\u5765\u5767\u5768\u576b\u576d",4,"\u5773\u5774\u5775\u5777\u5779\u577a\u577b\u577c\u577e\u5781\u5783\u578c\u5794\u5797\u5799\u579a\u579c\u579d\u579e\u579f\u57a1\u5795\u57a7\u57a8\u57a9\u57ac\u57b8\u57bd\u57c7\u57c8\u57cc\u57cf\u57d5\u57dd\u57de\u57e4\u57e6\u57e7\u57e9\u57ed\u57f0\u57f5\u57f6\u57f8\u57fd\u57fe\u57ff\u5803\u5804\u5808\u5809\u57e1"],["8fb8a1","\u580c\u580d\u581b\u581e\u581f\u5820\u5826\u5827\u582d\u5832\u5839\u583f\u5849\u584c\u584d\u584f\u5850\u5855\u585f\u5861\u5864\u5867\u5868\u5878\u587c\u587f\u5880\u5881\u5887\u5888\u5889\u588a\u588c\u588d\u588f\u5890\u5894\u5896\u589d\u58a0\u58a1\u58a2\u58a6\u58a9\u58b1\u58b2\u58c4\u58bc\u58c2\u58c8\u58cd\u58ce\u58d0\u58d2\u58d4\u58d6\u58da\u58dd\u58e1\u58e2\u58e9\u58f3\u5905\u5906\u590b\u590c\u5912\u5913\u5914\u8641\u591d\u5921\u5923\u5924\u5928\u592f\u5930\u5933\u5935\u5936\u593f\u5943\u5946\u5952\u5953\u5959\u595b\u595d\u595e\u595f\u5961\u5963\u596b\u596d"],["8fb9a1","\u596f\u5972\u5975\u5976\u5979\u597b\u597c\u598b\u598c\u598e\u5992\u5995\u5997\u599f\u59a4\u59a7\u59ad\u59ae\u59af\u59b0\u59b3\u59b7\u59ba\u59bc\u59c1\u59c3\u59c4\u59c8\u59ca\u59cd\u59d2\u59dd\u59de\u59df\u59e3\u59e4\u59e7\u59ee\u59ef\u59f1\u59f2\u59f4\u59f7\u5a00\u5a04\u5a0c\u5a0d\u5a0e\u5a12\u5a13\u5a1e\u5a23\u5a24\u5a27\u5a28\u5a2a\u5a2d\u5a30\u5a44\u5a45\u5a47\u5a48\u5a4c\u5a50\u5a55\u5a5e\u5a63\u5a65\u5a67\u5a6d\u5a77\u5a7a\u5a7b\u5a7e\u5a8b\u5a90\u5a93\u5a96\u5a99\u5a9c\u5a9e\u5a9f\u5aa0\u5aa2\u5aa7\u5aac\u5ab1\u5ab2\u5ab3\u5ab5\u5ab8\u5aba\u5abb\u5abf"],["8fbaa1","\u5ac4\u5ac6\u5ac8\u5acf\u5ada\u5adc\u5ae0\u5ae5\u5aea\u5aee\u5af5\u5af6\u5afd\u5b00\u5b01\u5b08\u5b17\u5b34\u5b19\u5b1b\u5b1d\u5b21\u5b25\u5b2d\u5b38\u5b41\u5b4b\u5b4c\u5b52\u5b56\u5b5e\u5b68\u5b6e\u5b6f\u5b7c\u5b7d\u5b7e\u5b7f\u5b81\u5b84\u5b86\u5b8a\u5b8e\u5b90\u5b91\u5b93\u5b94\u5b96\u5ba8\u5ba9\u5bac\u5bad\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbc\u5bc0\u5bc1\u5bcd\u5bcf\u5bd6",4,"\u5be0\u5bef\u5bf1\u5bf4\u5bfd\u5c0c\u5c17\u5c1e\u5c1f\u5c23\u5c26\u5c29\u5c2b\u5c2c\u5c2e\u5c30\u5c32\u5c35\u5c36\u5c59\u5c5a\u5c5c\u5c62\u5c63\u5c67\u5c68\u5c69"],["8fbba1","\u5c6d\u5c70\u5c74\u5c75\u5c7a\u5c7b\u5c7c\u5c7d\u5c87\u5c88\u5c8a\u5c8f\u5c92\u5c9d\u5c9f\u5ca0\u5ca2\u5ca3\u5ca6\u5caa\u5cb2\u5cb4\u5cb5\u5cba\u5cc9\u5ccb\u5cd2\u5cdd\u5cd7\u5cee\u5cf1\u5cf2\u5cf4\u5d01\u5d06\u5d0d\u5d12\u5d2b\u5d23\u5d24\u5d26\u5d27\u5d31\u5d34\u5d39\u5d3d\u5d3f\u5d42\u5d43\u5d46\u5d48\u5d55\u5d51\u5d59\u5d4a\u5d5f\u5d60\u5d61\u5d62\u5d64\u5d6a\u5d6d\u5d70\u5d79\u5d7a\u5d7e\u5d7f\u5d81\u5d83\u5d88\u5d8a\u5d92\u5d93\u5d94\u5d95\u5d99\u5d9b\u5d9f\u5da0\u5da7\u5dab\u5db0\u5db4\u5db8\u5db9\u5dc3\u5dc7\u5dcb\u5dd0\u5dce\u5dd8\u5dd9\u5de0\u5de4"],["8fbca1","\u5de9\u5df8\u5df9\u5e00\u5e07\u5e0d\u5e12\u5e14\u5e15\u5e18\u5e1f\u5e20\u5e2e\u5e28\u5e32\u5e35\u5e3e\u5e4b\u5e50\u5e49\u5e51\u5e56\u5e58\u5e5b\u5e5c\u5e5e\u5e68\u5e6a",4,"\u5e70\u5e80\u5e8b\u5e8e\u5ea2\u5ea4\u5ea5\u5ea8\u5eaa\u5eac\u5eb1\u5eb3\u5ebd\u5ebe\u5ebf\u5ec6\u5ecc\u5ecb\u5ece\u5ed1\u5ed2\u5ed4\u5ed5\u5edc\u5ede\u5ee5\u5eeb\u5f02\u5f06\u5f07\u5f08\u5f0e\u5f19\u5f1c\u5f1d\u5f21\u5f22\u5f23\u5f24\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f34\u5f36\u5f3b\u5f3d\u5f3f\u5f40\u5f44\u5f45\u5f47\u5f4d\u5f50\u5f54\u5f58\u5f5b\u5f60\u5f63\u5f64\u5f67"],["8fbda1","\u5f6f\u5f72\u5f74\u5f75\u5f78\u5f7a\u5f7d\u5f7e\u5f89\u5f8d\u5f8f\u5f96\u5f9c\u5f9d\u5fa2\u5fa7\u5fab\u5fa4\u5fac\u5faf\u5fb0\u5fb1\u5fb8\u5fc4\u5fc7\u5fc8\u5fc9\u5fcb\u5fd0",4,"\u5fde\u5fe1\u5fe2\u5fe8\u5fe9\u5fea\u5fec\u5fed\u5fee\u5fef\u5ff2\u5ff3\u5ff6\u5ffa\u5ffc\u6007\u600a\u600d\u6013\u6014\u6017\u6018\u601a\u601f\u6024\u602d\u6033\u6035\u6040\u6047\u6048\u6049\u604c\u6051\u6054\u6056\u6057\u605d\u6061\u6067\u6071\u607e\u607f\u6082\u6086\u6088\u608a\u608e\u6091\u6093\u6095\u6098\u609d\u609e\u60a2\u60a4\u60a5\u60a8\u60b0\u60b1\u60b7"],["8fbea1","\u60bb\u60be\u60c2\u60c4\u60c8\u60c9\u60ca\u60cb\u60ce\u60cf\u60d4\u60d5\u60d9\u60db\u60dd\u60de\u60e2\u60e5\u60f2\u60f5\u60f8\u60fc\u60fd\u6102\u6107\u610a\u610c\u6110",4,"\u6116\u6117\u6119\u611c\u611e\u6122\u612a\u612b\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615e\u6160\u616c\u6172\u6178\u617b\u617c\u617f\u6180\u6181\u6183\u6184\u618b\u618d\u6192\u6193\u6197\u6198\u619c\u619d\u619f\u61a0\u61a5\u61a8\u61aa\u61ad\u61b8\u61b9\u61bc\u61c0\u61c1\u61c2\u61ce\u61cf\u61d5\u61dc\u61dd\u61de\u61df\u61e1\u61e2\u61e7\u61e9\u61e5"],["8fbfa1","\u61ec\u61ed\u61ef\u6201\u6203\u6204\u6207\u6213\u6215\u621c\u6220\u6222\u6223\u6227\u6229\u622b\u6239\u623d\u6242\u6243\u6244\u6246\u624c\u6250\u6251\u6252\u6254\u6256\u625a\u625c\u6264\u626d\u626f\u6273\u627a\u627d\u628d\u628e\u628f\u6290\u62a6\u62a8\u62b3\u62b6\u62b7\u62ba\u62be\u62bf\u62c4\u62ce\u62d5\u62d6\u62da\u62ea\u62f2\u62f4\u62fc\u62fd\u6303\u6304\u630a\u630b\u630d\u6310\u6313\u6316\u6318\u6329\u632a\u632d\u6335\u6336\u6339\u633c\u6341\u6342\u6343\u6344\u6346\u634a\u634b\u634e\u6352\u6353\u6354\u6358\u635b\u6365\u6366\u636c\u636d\u6371\u6374\u6375"],["8fc0a1","\u6378\u637c\u637d\u637f\u6382\u6384\u6387\u638a\u6390\u6394\u6395\u6399\u639a\u639e\u63a4\u63a6\u63ad\u63ae\u63af\u63bd\u63c1\u63c5\u63c8\u63ce\u63d1\u63d3\u63d4\u63d5\u63dc\u63e0\u63e5\u63ea\u63ec\u63f2\u63f3\u63f5\u63f8\u63f9\u6409\u640a\u6410\u6412\u6414\u6418\u641e\u6420\u6422\u6424\u6425\u6429\u642a\u642f\u6430\u6435\u643d\u643f\u644b\u644f\u6451\u6452\u6453\u6454\u645a\u645b\u645c\u645d\u645f\u6460\u6461\u6463\u646d\u6473\u6474\u647b\u647d\u6485\u6487\u648f\u6490\u6491\u6498\u6499\u649b\u649d\u649f\u64a1\u64a3\u64a6\u64a8\u64ac\u64b3\u64bd\u64be\u64bf"],["8fc1a1","\u64c4\u64c9\u64ca\u64cb\u64cc\u64ce\u64d0\u64d1\u64d5\u64d7\u64e4\u64e5\u64e9\u64ea\u64ed\u64f0\u64f5\u64f7\u64fb\u64ff\u6501\u6504\u6508\u6509\u650a\u650f\u6513\u6514\u6516\u6519\u651b\u651e\u651f\u6522\u6526\u6529\u652e\u6531\u653a\u653c\u653d\u6543\u6547\u6549\u6550\u6552\u6554\u655f\u6560\u6567\u656b\u657a\u657d\u6581\u6585\u658a\u6592\u6595\u6598\u659d\u65a0\u65a3\u65a6\u65ae\u65b2\u65b3\u65b4\u65bf\u65c2\u65c8\u65c9\u65ce\u65d0\u65d4\u65d6\u65d8\u65df\u65f0\u65f2\u65f4\u65f5\u65f9\u65fe\u65ff\u6600\u6604\u6608\u6609\u660d\u6611\u6612\u6615\u6616\u661d"],["8fc2a1","\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664a\u664c\u6651\u664e\u6657\u6658\u6659\u665b\u665c\u6660\u6661\u66fb\u666a\u666b\u666c\u667e\u6673\u6675\u667f\u6677\u6678\u6679\u667b\u6680\u667c\u668b\u668c\u668d\u6690\u6692\u6699\u669a\u669b\u669c\u669f\u66a0\u66a4\u66ad\u66b1\u66b2\u66b5\u66bb\u66bf\u66c0\u66c2\u66c3\u66c8\u66cc\u66ce\u66cf\u66d4\u66db\u66df\u66e8\u66eb\u66ec\u66ee\u66fa\u6705\u6707\u670e\u6713\u6719\u671c\u6720\u6722\u6733\u673e\u6745\u6747\u6748\u674c\u6754\u6755\u675d"],["8fc3a1","\u6766\u676c\u676e\u6774\u6776\u677b\u6781\u6784\u678e\u678f\u6791\u6793\u6796\u6798\u6799\u679b\u67b0\u67b1\u67b2\u67b5\u67bb\u67bc\u67bd\u67f9\u67c0\u67c2\u67c3\u67c5\u67c8\u67c9\u67d2\u67d7\u67d9\u67dc\u67e1\u67e6\u67f0\u67f2\u67f6\u67f7\u6852\u6814\u6819\u681d\u681f\u6828\u6827\u682c\u682d\u682f\u6830\u6831\u6833\u683b\u683f\u6844\u6845\u684a\u684c\u6855\u6857\u6858\u685b\u686b\u686e",4,"\u6875\u6879\u687a\u687b\u687c\u6882\u6884\u6886\u6888\u6896\u6898\u689a\u689c\u68a1\u68a3\u68a5\u68a9\u68aa\u68ae\u68b2\u68bb\u68c5\u68c8\u68cc\u68cf"],["8fc4a1","\u68d0\u68d1\u68d3\u68d6\u68d9\u68dc\u68dd\u68e5\u68e8\u68ea\u68eb\u68ec\u68ed\u68f0\u68f1\u68f5\u68f6\u68fb\u68fc\u68fd\u6906\u6909\u690a\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693b\u6942\u6945\u6949\u694e\u6957\u695b\u6963\u6964\u6965\u6966\u6968\u6969\u696c\u6970\u6971\u6972\u697a\u697b\u697f\u6980\u698d\u6992\u6996\u6998\u69a1\u69a5\u69a6\u69a8\u69ab\u69ad\u69af\u69b7\u69b8\u69ba\u69bc\u69c5\u69c8\u69d1\u69d6\u69d7\u69e2\u69e5\u69ee\u69ef\u69f1\u69f3\u69f5\u69fe\u6a00\u6a01\u6a03\u6a0f\u6a11\u6a15\u6a1a\u6a1d\u6a20\u6a24\u6a28\u6a30\u6a32"],["8fc5a1","\u6a34\u6a37\u6a3b\u6a3e\u6a3f\u6a45\u6a46\u6a49\u6a4a\u6a4e\u6a50\u6a51\u6a52\u6a55\u6a56\u6a5b\u6a64\u6a67\u6a6a\u6a71\u6a73\u6a7e\u6a81\u6a83\u6a86\u6a87\u6a89\u6a8b\u6a91\u6a9b\u6a9d\u6a9e\u6a9f\u6aa5\u6aab\u6aaf\u6ab0\u6ab1\u6ab4\u6abd\u6abe\u6abf\u6ac6\u6ac9\u6ac8\u6acc\u6ad0\u6ad4\u6ad5\u6ad6\u6adc\u6add\u6ae4\u6ae7\u6aec\u6af0\u6af1\u6af2\u6afc\u6afd\u6b02\u6b03\u6b06\u6b07\u6b09\u6b0f\u6b10\u6b11\u6b17\u6b1b\u6b1e\u6b24\u6b28\u6b2b\u6b2c\u6b2f\u6b35\u6b36\u6b3b\u6b3f\u6b46\u6b4a\u6b4d\u6b52\u6b56\u6b58\u6b5d\u6b60\u6b67\u6b6b\u6b6e\u6b70\u6b75\u6b7d"],["8fc6a1","\u6b7e\u6b82\u6b85\u6b97\u6b9b\u6b9f\u6ba0\u6ba2\u6ba3\u6ba8\u6ba9\u6bac\u6bad\u6bae\u6bb0\u6bb8\u6bb9\u6bbd\u6bbe\u6bc3\u6bc4\u6bc9\u6bcc\u6bd6\u6bda\u6be1\u6be3\u6be6\u6be7\u6bee\u6bf1\u6bf7\u6bf9\u6bff\u6c02\u6c04\u6c05\u6c09\u6c0d\u6c0e\u6c10\u6c12\u6c19\u6c1f\u6c26\u6c27\u6c28\u6c2c\u6c2e\u6c33\u6c35\u6c36\u6c3a\u6c3b\u6c3f\u6c4a\u6c4b\u6c4d\u6c4f\u6c52\u6c54\u6c59\u6c5b\u6c5c\u6c6b\u6c6d\u6c6f\u6c74\u6c76\u6c78\u6c79\u6c7b\u6c85\u6c86\u6c87\u6c89\u6c94\u6c95\u6c97\u6c98\u6c9c\u6c9f\u6cb0\u6cb2\u6cb4\u6cc2\u6cc6\u6ccd\u6ccf\u6cd0\u6cd1\u6cd2\u6cd4\u6cd6"],["8fc7a1","\u6cda\u6cdc\u6ce0\u6ce7\u6ce9\u6ceb\u6cec\u6cee\u6cf2\u6cf4\u6d04\u6d07\u6d0a\u6d0e\u6d0f\u6d11\u6d13\u6d1a\u6d26\u6d27\u6d28\u6c67\u6d2e\u6d2f\u6d31\u6d39\u6d3c\u6d3f\u6d57\u6d5e\u6d5f\u6d61\u6d65\u6d67\u6d6f\u6d70\u6d7c\u6d82\u6d87\u6d91\u6d92\u6d94\u6d96\u6d97\u6d98\u6daa\u6dac\u6db4\u6db7\u6db9\u6dbd\u6dbf\u6dc4\u6dc8\u6dca\u6dce\u6dcf\u6dd6\u6ddb\u6ddd\u6ddf\u6de0\u6de2\u6de5\u6de9\u6def\u6df0\u6df4\u6df6\u6dfc\u6e00\u6e04\u6e1e\u6e22\u6e27\u6e32\u6e36\u6e39\u6e3b\u6e3c\u6e44\u6e45\u6e48\u6e49\u6e4b\u6e4f\u6e51\u6e52\u6e53\u6e54\u6e57\u6e5c\u6e5d\u6e5e"],["8fc8a1","\u6e62\u6e63\u6e68\u6e73\u6e7b\u6e7d\u6e8d\u6e93\u6e99\u6ea0\u6ea7\u6ead\u6eae\u6eb1\u6eb3\u6ebb\u6ebf\u6ec0\u6ec1\u6ec3\u6ec7\u6ec8\u6eca\u6ecd\u6ece\u6ecf\u6eeb\u6eed\u6eee\u6ef9\u6efb\u6efd\u6f04\u6f08\u6f0a\u6f0c\u6f0d\u6f16\u6f18\u6f1a\u6f1b\u6f26\u6f29\u6f2a\u6f2f\u6f30\u6f33\u6f36\u6f3b\u6f3c\u6f2d\u6f4f\u6f51\u6f52\u6f53\u6f57\u6f59\u6f5a\u6f5d\u6f5e\u6f61\u6f62\u6f68\u6f6c\u6f7d\u6f7e\u6f83\u6f87\u6f88\u6f8b\u6f8c\u6f8d\u6f90\u6f92\u6f93\u6f94\u6f96\u6f9a\u6f9f\u6fa0\u6fa5\u6fa6\u6fa7\u6fa8\u6fae\u6faf\u6fb0\u6fb5\u6fb6\u6fbc\u6fc5\u6fc7\u6fc8\u6fca"],["8fc9a1","\u6fda\u6fde\u6fe8\u6fe9\u6ff0\u6ff5\u6ff9\u6ffc\u6ffd\u7000\u7005\u7006\u7007\u700d\u7017\u7020\u7023\u702f\u7034\u7037\u7039\u703c\u7043\u7044\u7048\u7049\u704a\u704b\u7054\u7055\u705d\u705e\u704e\u7064\u7065\u706c\u706e\u7075\u7076\u707e\u7081\u7085\u7086\u7094",4,"\u709b\u70a4\u70ab\u70b0\u70b1\u70b4\u70b7\u70ca\u70d1\u70d3\u70d4\u70d5\u70d6\u70d8\u70dc\u70e4\u70fa\u7103",4,"\u710b\u710c\u710f\u711e\u7120\u712b\u712d\u712f\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714a\u714b\u7150\u7152\u7157\u715a\u715c\u715e\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718c\u7192\u719a\u719b\u71a0\u71a2\u71af\u71b0\u71b2\u71b3\u71ba\u71bf\u71c0\u71c1\u71c4\u71cb\u71cc\u71d3\u71d6\u71d9\u71da\u71dc\u71f8\u71fe\u7200\u7207\u7208\u7209\u7213\u7217\u721a\u721d\u721f\u7224\u722b\u722f\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724e\u724f\u7250\u7253\u7255\u7256\u725a\u725c\u725e\u7260\u7263\u7268\u726b\u726e\u726f\u7271\u7277\u7278\u727b\u727c\u727f\u7284\u7289\u728d\u728e\u7293\u729b\u72a8\u72ad\u72ae\u72b1\u72b4\u72be\u72c1\u72c7\u72c9\u72cc\u72d5\u72d6\u72d8\u72df\u72e5\u72f3\u72f4\u72fa\u72fb"],["8fcba1","\u72fe\u7302\u7304\u7305\u7307\u730b\u730d\u7312\u7313\u7318\u7319\u731e\u7322\u7324\u7327\u7328\u732c\u7331\u7332\u7335\u733a\u733b\u733d\u7343\u734d\u7350\u7352\u7356\u7358\u735d\u735e\u735f\u7360\u7366\u7367\u7369\u736b\u736c\u736e\u736f\u7371\u7377\u7379\u737c\u7380\u7381\u7383\u7385\u7386\u738e\u7390\u7393\u7395\u7397\u7398\u739c\u739e\u739f\u73a0\u73a2\u73a5\u73a6\u73aa\u73ab\u73ad\u73b5\u73b7\u73b9\u73bc\u73bd\u73bf\u73c5\u73c6\u73c9\u73cb\u73cc\u73cf\u73d2\u73d3\u73d6\u73d9\u73dd\u73e1\u73e3\u73e6\u73e7\u73e9\u73f4\u73f5\u73f7\u73f9\u73fa\u73fb\u73fd"],["8fcca1","\u73ff\u7400\u7401\u7404\u7407\u740a\u7411\u741a\u741b\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744b\u744d\u7451\u7452\u7457\u745d\u7462\u7466\u7467\u7468\u746b\u746d\u746e\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748f\u7490\u7491\u7492\u7498\u7499\u749a\u749c\u749f\u74a0\u74a1\u74a3\u74a6\u74a8\u74a9\u74aa\u74ab\u74ae\u74af\u74b1\u74b2\u74b5\u74b9\u74bb\u74bf\u74c8\u74c9\u74cc\u74d0\u74d3\u74d8\u74da\u74db\u74de\u74df\u74e4\u74e8\u74ea\u74eb\u74ef\u74f4\u74fa\u74fb\u74fc\u74ff\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752a\u752f\u7536\u7539\u753d\u753e\u753f\u7540\u7543\u7547\u7548\u754e\u7550\u7552\u7557\u755e\u755f\u7561\u756f\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759c\u75a2\u75a4\u75b4\u75ba\u75bf\u75c0\u75c1\u75c4\u75c6\u75cc\u75ce\u75cf\u75d7\u75dc\u75df\u75e0\u75e1\u75e4\u75e7\u75ec\u75ee\u75ef\u75f1\u75f9\u7600\u7602\u7603\u7604\u7607\u7608\u760a\u760c\u760f\u7612\u7613\u7615\u7616\u7619\u761b\u761c\u761d\u761e\u7623\u7625\u7626\u7629\u762d\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763a\u763c\u764a\u7640\u7641\u7643\u7644\u7645\u7649\u764b\u7655\u7659\u765f\u7664\u7665\u766d\u766e\u766f\u7671\u7674\u7681\u7685\u768c\u768d\u7695\u769b\u769c\u769d\u769f\u76a0\u76a2",6,"\u76aa\u76ad\u76bd\u76c1\u76c5\u76c9\u76cb\u76cc\u76ce\u76d4\u76d9\u76e0\u76e6\u76e8\u76ec\u76f0\u76f1\u76f6\u76f9\u76fc\u7700\u7706\u770a\u770e\u7712\u7714\u7715\u7717\u7719\u771a\u771c\u7722\u7728\u772d\u772e\u772f\u7734\u7735\u7736\u7739\u773d\u773e\u7742\u7745\u7746\u774a\u774d\u774e\u774f\u7752\u7756\u7757\u775c\u775e\u775f\u7760\u7762"],["8fcfa1","\u7764\u7767\u776a\u776c\u7770\u7772\u7773\u7774\u777a\u777d\u7780\u7784\u778c\u778d\u7794\u7795\u7796\u779a\u779f\u77a2\u77a7\u77aa\u77ae\u77af\u77b1\u77b5\u77be\u77c3\u77c9\u77d1\u77d2\u77d5\u77d9\u77de\u77df\u77e0\u77e4\u77e6\u77ea\u77ec\u77f0\u77f1\u77f4\u77f8\u77fb\u7805\u7806\u7809\u780d\u780e\u7811\u781d\u7821\u7822\u7823\u782d\u782e\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784c\u784e\u7852\u785c\u785e\u7860\u7861\u7863\u7864\u7868\u786a\u786e\u787a\u787e\u788a\u788f\u7894\u7898\u78a1\u789d\u789e\u789f\u78a4\u78a8\u78ac\u78ad\u78b0\u78b1\u78b2\u78b3"],["8fd0a1","\u78bb\u78bd\u78bf\u78c7\u78c8\u78c9\u78cc\u78ce\u78d2\u78d3\u78d5\u78d6\u78e4\u78db\u78df\u78e0\u78e1\u78e6\u78ea\u78f2\u78f3\u7900\u78f6\u78f7\u78fa\u78fb\u78ff\u7906\u790c\u7910\u791a\u791c\u791e\u791f\u7920\u7925\u7927\u7929\u792d\u7931\u7934\u7935\u793b\u793d\u793f\u7944\u7945\u7946\u794a\u794b\u794f\u7951\u7954\u7958\u795b\u795c\u7967\u7969\u796b\u7972\u7979\u797b\u797c\u797e\u798b\u798c\u7991\u7993\u7994\u7995\u7996\u7998\u799b\u799c\u79a1\u79a8\u79a9\u79ab\u79af\u79b1\u79b4\u79b8\u79bb\u79c2\u79c4\u79c7\u79c8\u79ca\u79cf\u79d4\u79d6\u79da\u79dd\u79de"],["8fd1a1","\u79e0\u79e2\u79e5\u79ea\u79eb\u79ed\u79f1\u79f8\u79fc\u7a02\u7a03\u7a07\u7a09\u7a0a\u7a0c\u7a11\u7a15\u7a1b\u7a1e\u7a21\u7a27\u7a2b\u7a2d\u7a2f\u7a30\u7a34\u7a35\u7a38\u7a39\u7a3a\u7a44\u7a45\u7a47\u7a48\u7a4c\u7a55\u7a56\u7a59\u7a5c\u7a5d\u7a5f\u7a60\u7a65\u7a67\u7a6a\u7a6d\u7a75\u7a78\u7a7e\u7a80\u7a82\u7a85\u7a86\u7a8a\u7a8b\u7a90\u7a91\u7a94\u7a9e\u7aa0\u7aa3\u7aac\u7ab3\u7ab5\u7ab9\u7abb\u7abc\u7ac6\u7ac9\u7acc\u7ace\u7ad1\u7adb\u7ae8\u7ae9\u7aeb\u7aec\u7af1\u7af4\u7afb\u7afd\u7afe\u7b07\u7b14\u7b1f\u7b23\u7b27\u7b29\u7b2a\u7b2b\u7b2d\u7b2e\u7b2f\u7b30"],["8fd2a1","\u7b31\u7b34\u7b3d\u7b3f\u7b40\u7b41\u7b47\u7b4e\u7b55\u7b60\u7b64\u7b66\u7b69\u7b6a\u7b6d\u7b6f\u7b72\u7b73\u7b77\u7b84\u7b89\u7b8e\u7b90\u7b91\u7b96\u7b9b\u7b9e\u7ba0\u7ba5\u7bac\u7baf\u7bb0\u7bb2\u7bb5\u7bb6\u7bba\u7bbb\u7bbc\u7bbd\u7bc2\u7bc5\u7bc8\u7bca\u7bd4\u7bd6\u7bd7\u7bd9\u7bda\u7bdb\u7be8\u7bea\u7bf2\u7bf4\u7bf5\u7bf8\u7bf9\u7bfa\u7bfc\u7bfe\u7c01\u7c02\u7c03\u7c04\u7c06\u7c09\u7c0b\u7c0c\u7c0e\u7c0f\u7c19\u7c1b\u7c20\u7c25\u7c26\u7c28\u7c2c\u7c31\u7c33\u7c34\u7c36\u7c39\u7c3a\u7c46\u7c4a\u7c55\u7c51\u7c52\u7c53\u7c59",5],["8fd3a1","\u7c61\u7c63\u7c67\u7c69\u7c6d\u7c6e\u7c70\u7c72\u7c79\u7c7c\u7c7d\u7c86\u7c87\u7c8f\u7c94\u7c9e\u7ca0\u7ca6\u7cb0\u7cb6\u7cb7\u7cba\u7cbb\u7cbc\u7cbf\u7cc4\u7cc7\u7cc8\u7cc9\u7ccd\u7ccf\u7cd3\u7cd4\u7cd5\u7cd7\u7cd9\u7cda\u7cdd\u7ce6\u7ce9\u7ceb\u7cf5\u7d03\u7d07\u7d08\u7d09\u7d0f\u7d11\u7d12\u7d13\u7d16\u7d1d\u7d1e\u7d23\u7d26\u7d2a\u7d2d\u7d31\u7d3c\u7d3d\u7d3e\u7d40\u7d41\u7d47\u7d48\u7d4d\u7d51\u7d53\u7d57\u7d59\u7d5a\u7d5c\u7d5d\u7d65\u7d67\u7d6a\u7d70\u7d78\u7d7a\u7d7b\u7d7f\u7d81\u7d82\u7d83\u7d85\u7d86\u7d88\u7d8b\u7d8c\u7d8d\u7d91\u7d96\u7d97\u7d9d"],["8fd4a1","\u7d9e\u7da6\u7da7\u7daa\u7db3\u7db6\u7db7\u7db9\u7dc2",4,"\u7dcc\u7dcd\u7dce\u7dd7\u7dd9\u7e00\u7de2\u7de5\u7de6\u7dea\u7deb\u7ded\u7df1\u7df5\u7df6\u7df9\u7dfa\u7e08\u7e10\u7e11\u7e15\u7e17\u7e1c\u7e1d\u7e20\u7e27\u7e28\u7e2c\u7e2d\u7e2f\u7e33\u7e36\u7e3f\u7e44\u7e45\u7e47\u7e4e\u7e50\u7e52\u7e58\u7e5f\u7e61\u7e62\u7e65\u7e6b\u7e6e\u7e6f\u7e73\u7e78\u7e7e\u7e81\u7e86\u7e87\u7e8a\u7e8d\u7e91\u7e95\u7e98\u7e9a\u7e9d\u7e9e\u7f3c\u7f3b\u7f3d\u7f3e\u7f3f\u7f43\u7f44\u7f47\u7f4f\u7f52\u7f53\u7f5b\u7f5c\u7f5d\u7f61\u7f63\u7f64\u7f65\u7f66\u7f6d"],["8fd5a1","\u7f71\u7f7d\u7f7e\u7f7f\u7f80\u7f8b\u7f8d\u7f8f\u7f90\u7f91\u7f96\u7f97\u7f9c\u7fa1\u7fa2\u7fa6\u7faa\u7fad\u7fb4\u7fbc\u7fbf\u7fc0\u7fc3\u7fc8\u7fce\u7fcf\u7fdb\u7fdf\u7fe3\u7fe5\u7fe8\u7fec\u7fee\u7fef\u7ff2\u7ffa\u7ffd\u7ffe\u7fff\u8007\u8008\u800a\u800d\u800e\u800f\u8011\u8013\u8014\u8016\u801d\u801e\u801f\u8020\u8024\u8026\u802c\u802e\u8030\u8034\u8035\u8037\u8039\u803a\u803c\u803e\u8040\u8044\u8060\u8064\u8066\u806d\u8071\u8075\u8081\u8088\u808e\u809c\u809e\u80a6\u80a7\u80ab\u80b8\u80b9\u80c8\u80cd\u80cf\u80d2\u80d4\u80d5\u80d7\u80d8\u80e0\u80ed\u80ee"],["8fd6a1","\u80f0\u80f2\u80f3\u80f6\u80f9\u80fa\u80fe\u8103\u810b\u8116\u8117\u8118\u811c\u811e\u8120\u8124\u8127\u812c\u8130\u8135\u813a\u813c\u8145\u8147\u814a\u814c\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816d\u816f\u8177\u8181\u8190\u8184\u8185\u8186\u818b\u818e\u8196\u8198\u819b\u819e\u81a2\u81ae\u81b2\u81b4\u81bb\u81cb\u81c3\u81c5\u81ca\u81ce\u81cf\u81d5\u81d7\u81db\u81dd\u81de\u81e1\u81e4\u81eb\u81ec\u81f0\u81f1\u81f2\u81f5\u81f6\u81f8\u81f9\u81fd\u81ff\u8200\u8203\u820f\u8213\u8214\u8219\u821a\u821d\u8221\u8222\u8228\u8232\u8234\u823a\u8243\u8244\u8245\u8246"],["8fd7a1","\u824b\u824e\u824f\u8251\u8256\u825c\u8260\u8263\u8267\u826d\u8274\u827b\u827d\u827f\u8280\u8281\u8283\u8284\u8287\u8289\u828a\u828e\u8291\u8294\u8296\u8298\u829a\u829b\u82a0\u82a1\u82a3\u82a4\u82a7\u82a8\u82a9\u82aa\u82ae\u82b0\u82b2\u82b4\u82b7\u82ba\u82bc\u82be\u82bf\u82c6\u82d0\u82d5\u82da\u82e0\u82e2\u82e4\u82e8\u82ea\u82ed\u82ef\u82f6\u82f7\u82fd\u82fe\u8300\u8301\u8307\u8308\u830a\u830b\u8354\u831b\u831d\u831e\u831f\u8321\u8322\u832c\u832d\u832e\u8330\u8333\u8337\u833a\u833c\u833d\u8342\u8343\u8344\u8347\u834d\u834e\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837d\u837f\u8380\u8382\u8384\u8386\u838d\u8392\u8394\u8395\u8398\u8399\u839b\u839c\u839d\u83a6\u83a7\u83a9\u83ac\u83be\u83bf\u83c0\u83c7\u83c9\u83cf\u83d0\u83d1\u83d4\u83dd\u8353\u83e8\u83ea\u83f6\u83f8\u83f9\u83fc\u8401\u8406\u840a\u840f\u8411\u8415\u8419\u83ad\u842f\u8439\u8445\u8447\u8448\u844a\u844d\u844f\u8451\u8452\u8456\u8458\u8459\u845a\u845c\u8460\u8464\u8465\u8467\u846a\u8470\u8473\u8474\u8476\u8478\u847c\u847d\u8481\u8485\u8492\u8493\u8495\u849e\u84a6\u84a8\u84a9\u84aa\u84af\u84b1\u84b4\u84ba\u84bd\u84be\u84c0\u84c2\u84c7\u84c8\u84cc\u84cf\u84d3"],["8fd9a1","\u84dc\u84e7\u84ea\u84ef\u84f0\u84f1\u84f2\u84f7\u8532\u84fa\u84fb\u84fd\u8502\u8503\u8507\u850c\u850e\u8510\u851c\u851e\u8522\u8523\u8524\u8525\u8527\u852a\u852b\u852f\u8533\u8534\u8536\u853f\u8546\u854f",4,"\u8556\u8559\u855c",6,"\u8564\u856b\u856f\u8579\u857a\u857b\u857d\u857f\u8581\u8585\u8586\u8589\u858b\u858c\u858f\u8593\u8598\u859d\u859f\u85a0\u85a2\u85a5\u85a7\u85b4\u85b6\u85b7\u85b8\u85bc\u85bd\u85be\u85bf\u85c2\u85c7\u85ca\u85cb\u85ce\u85ad\u85d8\u85da\u85df\u85e0\u85e6\u85e8\u85ed\u85f3\u85f6\u85fc"],["8fdaa1","\u85ff\u8600\u8604\u8605\u860d\u860e\u8610\u8611\u8612\u8618\u8619\u861b\u861e\u8621\u8627\u8629\u8636\u8638\u863a\u863c\u863d\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865d\u8660",4,"\u8669\u866c\u866f\u8675\u8676\u8677\u867a\u868d\u8691\u8696\u8698\u869a\u869c\u86a1\u86a6\u86a7\u86a8\u86ad\u86b1\u86b3\u86b4\u86b5\u86b7\u86b8\u86b9\u86bf\u86c0\u86c1\u86c3\u86c5\u86d1\u86d2\u86d5\u86d7\u86da\u86dc\u86e0\u86e3\u86e5\u86e7\u8688\u86fa\u86fc\u86fd\u8704\u8705\u8707\u870b\u870e\u870f\u8710\u8713\u8714\u8719\u871e\u871f\u8721\u8723"],["8fdba1","\u8728\u872e\u872f\u8731\u8732\u8739\u873a\u873c\u873d\u873e\u8740\u8743\u8745\u874d\u8758\u875d\u8761\u8764\u8765\u876f\u8771\u8772\u877b\u8783",6,"\u878b\u878c\u8790\u8793\u8795\u8797\u8798\u8799\u879e\u87a0\u87a3\u87a7\u87ac\u87ad\u87ae\u87b1\u87b5\u87be\u87bf\u87c1\u87c8\u87c9\u87ca\u87ce\u87d5\u87d6\u87d9\u87da\u87dc\u87df\u87e2\u87e3\u87e4\u87ea\u87eb\u87ed\u87f1\u87f3\u87f8\u87fa\u87ff\u8801\u8803\u8806\u8809\u880a\u880b\u8810\u8819\u8812\u8813\u8814\u8818\u881a\u881b\u881c\u881e\u881f\u8828\u882d\u882e\u8830\u8832\u8835"],["8fdca1","\u883a\u883c\u8841\u8843\u8845\u8848\u8849\u884a\u884b\u884e\u8851\u8855\u8856\u8858\u885a\u885c\u885f\u8860\u8864\u8869\u8871\u8879\u887b\u8880\u8898\u889a\u889b\u889c\u889f\u88a0\u88a8\u88aa\u88ba\u88bd\u88be\u88c0\u88ca",4,"\u88d1\u88d2\u88d3\u88db\u88de\u88e7\u88ef\u88f0\u88f1\u88f5\u88f7\u8901\u8906\u890d\u890e\u890f\u8915\u8916\u8918\u8919\u891a\u891c\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893a\u893e\u8940\u8942\u8945\u8946\u8949\u894f\u8952\u8957\u895a\u895b\u895c\u8961\u8962\u8963\u896b\u896e\u8970\u8973\u8975\u897a"],["8fdda1","\u897b\u897c\u897d\u8989\u898d\u8990\u8994\u8995\u899b\u899c\u899f\u89a0\u89a5\u89b0\u89b4\u89b5\u89b6\u89b7\u89bc\u89d4",4,"\u89e5\u89e9\u89eb\u89ed\u89f1\u89f3\u89f6\u89f9\u89fd\u89ff\u8a04\u8a05\u8a07\u8a0f\u8a11\u8a12\u8a14\u8a15\u8a1e\u8a20\u8a22\u8a24\u8a26\u8a2b\u8a2c\u8a2f\u8a35\u8a37\u8a3d\u8a3e\u8a40\u8a43\u8a45\u8a47\u8a49\u8a4d\u8a4e\u8a53\u8a56\u8a57\u8a58\u8a5c\u8a5d\u8a61\u8a65\u8a67\u8a75\u8a76\u8a77\u8a79\u8a7a\u8a7b\u8a7e\u8a7f\u8a80\u8a83\u8a86\u8a8b\u8a8f\u8a90\u8a92\u8a96\u8a97\u8a99\u8a9f\u8aa7\u8aa9\u8aae\u8aaf\u8ab3"],["8fdea1","\u8ab6\u8ab7\u8abb\u8abe\u8ac3\u8ac6\u8ac8\u8ac9\u8aca\u8ad1\u8ad3\u8ad4\u8ad5\u8ad7\u8add\u8adf\u8aec\u8af0\u8af4\u8af5\u8af6\u8afc\u8aff\u8b05\u8b06\u8b0b\u8b11\u8b1c\u8b1e\u8b1f\u8b0a\u8b2d\u8b30\u8b37\u8b3c\u8b42",4,"\u8b48\u8b52\u8b53\u8b54\u8b59\u8b4d\u8b5e\u8b63\u8b6d\u8b76\u8b78\u8b79\u8b7c\u8b7e\u8b81\u8b84\u8b85\u8b8b\u8b8d\u8b8f\u8b94\u8b95\u8b9c\u8b9e\u8b9f\u8c38\u8c39\u8c3d\u8c3e\u8c45\u8c47\u8c49\u8c4b\u8c4f\u8c51\u8c53\u8c54\u8c57\u8c58\u8c5b\u8c5d\u8c59\u8c63\u8c64\u8c66\u8c68\u8c69\u8c6d\u8c73\u8c75\u8c76\u8c7b\u8c7e\u8c86"],["8fdfa1","\u8c87\u8c8b\u8c90\u8c92\u8c93\u8c99\u8c9b\u8c9c\u8ca4\u8cb9\u8cba\u8cc5\u8cc6\u8cc9\u8ccb\u8ccf\u8cd6\u8cd5\u8cd9\u8cdd\u8ce1\u8ce8\u8cec\u8cef\u8cf0\u8cf2\u8cf5\u8cf7\u8cf8\u8cfe\u8cff\u8d01\u8d03\u8d09\u8d12\u8d17\u8d1b\u8d65\u8d69\u8d6c\u8d6e\u8d7f\u8d82\u8d84\u8d88\u8d8d\u8d90\u8d91\u8d95\u8d9e\u8d9f\u8da0\u8da6\u8dab\u8dac\u8daf\u8db2\u8db5\u8db7\u8db9\u8dbb\u8dc0\u8dc5\u8dc6\u8dc7\u8dc8\u8dca\u8dce\u8dd1\u8dd4\u8dd5\u8dd7\u8dd9\u8de4\u8de5\u8de7\u8dec\u8df0\u8dbc\u8df1\u8df2\u8df4\u8dfd\u8e01\u8e04\u8e05\u8e06\u8e0b\u8e11\u8e14\u8e16\u8e20\u8e21\u8e22"],["8fe0a1","\u8e23\u8e26\u8e27\u8e31\u8e33\u8e36\u8e37\u8e38\u8e39\u8e3d\u8e40\u8e41\u8e4b\u8e4d\u8e4e\u8e4f\u8e54\u8e5b\u8e5c\u8e5d\u8e5e\u8e61\u8e62\u8e69\u8e6c\u8e6d\u8e6f\u8e70\u8e71\u8e79\u8e7a\u8e7b\u8e82\u8e83\u8e89\u8e90\u8e92\u8e95\u8e9a\u8e9b\u8e9d\u8e9e\u8ea2\u8ea7\u8ea9\u8ead\u8eae\u8eb3\u8eb5\u8eba\u8ebb\u8ec0\u8ec1\u8ec3\u8ec4\u8ec7\u8ecf\u8ed1\u8ed4\u8edc\u8ee8\u8eee\u8ef0\u8ef1\u8ef7\u8ef9\u8efa\u8eed\u8f00\u8f02\u8f07\u8f08\u8f0f\u8f10\u8f16\u8f17\u8f18\u8f1e\u8f20\u8f21\u8f23\u8f25\u8f27\u8f28\u8f2c\u8f2d\u8f2e\u8f34\u8f35\u8f36\u8f37\u8f3a\u8f40\u8f41"],["8fe1a1","\u8f43\u8f47\u8f4f\u8f51",4,"\u8f58\u8f5d\u8f5e\u8f65\u8f9d\u8fa0\u8fa1\u8fa4\u8fa5\u8fa6\u8fb5\u8fb6\u8fb8\u8fbe\u8fc0\u8fc1\u8fc6\u8fca\u8fcb\u8fcd\u8fd0\u8fd2\u8fd3\u8fd5\u8fe0\u8fe3\u8fe4\u8fe8\u8fee\u8ff1\u8ff5\u8ff6\u8ffb\u8ffe\u9002\u9004\u9008\u900c\u9018\u901b\u9028\u9029\u902f\u902a\u902c\u902d\u9033\u9034\u9037\u903f\u9043\u9044\u904c\u905b\u905d\u9062\u9066\u9067\u906c\u9070\u9074\u9079\u9085\u9088\u908b\u908c\u908e\u9090\u9095\u9097\u9098\u9099\u909b\u90a0\u90a1\u90a2\u90a5\u90b0\u90b2\u90b3\u90b4\u90b6\u90bd\u90cc\u90be\u90c3"],["8fe2a1","\u90c4\u90c5\u90c7\u90c8\u90d5\u90d7\u90d8\u90d9\u90dc\u90dd\u90df\u90e5\u90d2\u90f6\u90eb\u90ef\u90f0\u90f4\u90fe\u90ff\u9100\u9104\u9105\u9106\u9108\u910d\u9110\u9114\u9116\u9117\u9118\u911a\u911c\u911e\u9120\u9125\u9122\u9123\u9127\u9129\u912e\u912f\u9131\u9134\u9136\u9137\u9139\u913a\u913c\u913d\u9143\u9147\u9148\u914f\u9153\u9157\u9159\u915a\u915b\u9161\u9164\u9167\u916d\u9174\u9179\u917a\u917b\u9181\u9183\u9185\u9186\u918a\u918e\u9191\u9193\u9194\u9195\u9198\u919e\u91a1\u91a6\u91a8\u91ac\u91ad\u91ae\u91b0\u91b1\u91b2\u91b3\u91b6\u91bb\u91bc\u91bd\u91bf"],["8fe3a1","\u91c2\u91c3\u91c5\u91d3\u91d4\u91d7\u91d9\u91da\u91de\u91e4\u91e5\u91e9\u91ea\u91ec",5,"\u91f7\u91f9\u91fb\u91fd\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920a\u920c\u9210\u9212\u9213\u9216\u9218\u921c\u921d\u9223\u9224\u9225\u9226\u9228\u922e\u922f\u9230\u9233\u9235\u9236\u9238\u9239\u923a\u923c\u923e\u9240\u9242\u9243\u9246\u9247\u924a\u924d\u924e\u924f\u9251\u9258\u9259\u925c\u925d\u9260\u9261\u9265\u9267\u9268\u9269\u926e\u926f\u9270\u9275",4,"\u927b\u927c\u927d\u927f\u9288\u9289\u928a\u928d\u928e\u9292\u9297"],["8fe4a1","\u9299\u929f\u92a0\u92a4\u92a5\u92a7\u92a8\u92ab\u92af\u92b2\u92b6\u92b8\u92ba\u92bb\u92bc\u92bd\u92bf",4,"\u92c5\u92c6\u92c7\u92c8\u92cb\u92cc\u92cd\u92ce\u92d0\u92d3\u92d5\u92d7\u92d8\u92d9\u92dc\u92dd\u92df\u92e0\u92e1\u92e3\u92e5\u92e7\u92e8\u92ec\u92ee\u92f0\u92f9\u92fb\u92ff\u9300\u9302\u9308\u930d\u9311\u9314\u9315\u931c\u931d\u931e\u931f\u9321\u9324\u9325\u9327\u9329\u932a\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935a\u935e\u9364\u9365\u9367\u9369\u936a\u936d\u936f\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937a\u937d\u937f\u9380\u9381\u9382\u9388\u938a\u938b\u938d\u938f\u9392\u9395\u9398\u939b\u939e\u93a1\u93a3\u93a4\u93a6\u93a8\u93ab\u93b4\u93b5\u93b6\u93ba\u93a9\u93c1\u93c4\u93c5\u93c6\u93c7\u93c9",4,"\u93d3\u93d9\u93dc\u93de\u93df\u93e2\u93e6\u93e7\u93f9\u93f7\u93f8\u93fa\u93fb\u93fd\u9401\u9402\u9404\u9408\u9409\u940d\u940e\u940f\u9415\u9416\u9417\u941f\u942e\u942f\u9431\u9432\u9433\u9434\u943b\u943f\u943d\u9443\u9445\u9448\u944a\u944c\u9455\u9459\u945c\u945f\u9461\u9463\u9468\u946b\u946d\u946e\u946f\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957e\u9584\u9588\u958c\u958d\u958e\u959d\u959e\u959f\u95a1\u95a6\u95a9\u95ab\u95ac\u95b4\u95b6\u95ba\u95bd\u95bf\u95c6\u95c8\u95c9\u95cb\u95d0\u95d1\u95d2\u95d3\u95d9\u95da\u95dd\u95de\u95df\u95e0\u95e4\u95e6\u961d\u961e\u9622\u9624\u9625\u9626\u962c\u9631\u9633\u9637\u9638\u9639\u963a\u963c\u963d\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966e\u9674\u967b\u967c\u967e\u967f\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969a\u969d\u969f\u96a4\u96a5\u96a6\u96a9\u96ae\u96af\u96b3\u96ba\u96ca\u96d2\u5db2\u96d8\u96da\u96dd\u96de\u96df\u96e9\u96ef\u96f1\u96fa\u9702"],["8fe7a1","\u9703\u9705\u9709\u971a\u971b\u971d\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974a\u974e\u974f\u9755\u9757\u9758\u975a\u975b\u9763\u9767\u976a\u976e\u9773\u9776\u9777\u9778\u977b\u977d\u977f\u9780\u9789\u9795\u9796\u9797\u9799\u979a\u979e\u979f\u97a2\u97ac\u97ae\u97b1\u97b2\u97b5\u97b6\u97b8\u97b9\u97ba\u97bc\u97be\u97bf\u97c1\u97c4\u97c5\u97c7\u97c9\u97ca\u97cc\u97cd\u97ce\u97d0\u97d1\u97d4\u97d7\u97d8\u97d9\u97dd\u97de\u97e0\u97db\u97e1\u97e4\u97ef\u97f1\u97f4\u97f7\u97f8\u97fa\u9807\u980a\u9819\u980d\u980e\u9814\u9816\u981c\u981e\u9820\u9823\u9826"],["8fe8a1","\u982b\u982e\u982f\u9830\u9832\u9833\u9835\u9825\u983e\u9844\u9847\u984a\u9851\u9852\u9853\u9856\u9857\u9859\u985a\u9862\u9863\u9865\u9866\u986a\u986c\u98ab\u98ad\u98ae\u98b0\u98b4\u98b7\u98b8\u98ba\u98bb\u98bf\u98c2\u98c5\u98c8\u98cc\u98e1\u98e3\u98e5\u98e6\u98e7\u98ea\u98f3\u98f6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991a\u991b\u991c\u991f\u9922\u9926\u9927\u992b\u9931",4,"\u9939\u993a\u993b\u993c\u9940\u9941\u9946\u9947\u9948\u994d\u994e\u9954\u9958\u9959\u995b\u995c\u995e\u995f\u9960\u999b\u999d\u999f\u99a6\u99b0\u99b1\u99b2\u99b5"],["8fe9a1","\u99b9\u99ba\u99bd\u99bf\u99c3\u99c9\u99d3\u99d4\u99d9\u99da\u99dc\u99de\u99e7\u99ea\u99eb\u99ec\u99f0\u99f4\u99f5\u99f9\u99fd\u99fe\u9a02\u9a03\u9a04\u9a0b\u9a0c\u9a10\u9a11\u9a16\u9a1e\u9a20\u9a22\u9a23\u9a24\u9a27\u9a2d\u9a2e\u9a33\u9a35\u9a36\u9a38\u9a47\u9a41\u9a44\u9a4a\u9a4b\u9a4c\u9a4e\u9a51\u9a54\u9a56\u9a5d\u9aaa\u9aac\u9aae\u9aaf\u9ab2\u9ab4\u9ab5\u9ab6\u9ab9\u9abb\u9abe\u9abf\u9ac1\u9ac3\u9ac6\u9ac8\u9ace\u9ad0\u9ad2\u9ad5\u9ad6\u9ad7\u9adb\u9adc\u9ae0\u9ae4\u9ae5\u9ae7\u9ae9\u9aec\u9af2\u9af3\u9af5\u9af9\u9afa\u9afd\u9aff",4],["8feaa1","\u9b04\u9b05\u9b08\u9b09\u9b0b\u9b0c\u9b0d\u9b0e\u9b10\u9b12\u9b16\u9b19\u9b1b\u9b1c\u9b20\u9b26\u9b2b\u9b2d\u9b33\u9b34\u9b35\u9b37\u9b39\u9b3a\u9b3d\u9b48\u9b4b\u9b4c\u9b55\u9b56\u9b57\u9b5b\u9b5e\u9b61\u9b63\u9b65\u9b66\u9b68\u9b6a",4,"\u9b73\u9b75\u9b77\u9b78\u9b79\u9b7f\u9b80\u9b84\u9b85\u9b86\u9b87\u9b89\u9b8a\u9b8b\u9b8d\u9b8f\u9b90\u9b94\u9b9a\u9b9d\u9b9e\u9ba6\u9ba7\u9ba9\u9bac\u9bb0\u9bb1\u9bb2\u9bb7\u9bb8\u9bbb\u9bbc\u9bbe\u9bbf\u9bc1\u9bc7\u9bc8\u9bce\u9bd0\u9bd7\u9bd8\u9bdd\u9bdf\u9be5\u9be7\u9bea\u9beb\u9bef\u9bf3\u9bf7\u9bf8"],["8feba1","\u9bf9\u9bfa\u9bfd\u9bff\u9c00\u9c02\u9c0b\u9c0f\u9c11\u9c16\u9c18\u9c19\u9c1a\u9c1c\u9c1e\u9c22\u9c23\u9c26",4,"\u9c31\u9c35\u9c36\u9c37\u9c3d\u9c41\u9c43\u9c44\u9c45\u9c49\u9c4a\u9c4e\u9c4f\u9c50\u9c53\u9c54\u9c56\u9c58\u9c5b\u9c5d\u9c5e\u9c5f\u9c63\u9c69\u9c6a\u9c5c\u9c6b\u9c68\u9c6e\u9c70\u9c72\u9c75\u9c77\u9c7b\u9ce6\u9cf2\u9cf7\u9cf9\u9d0b\u9d02\u9d11\u9d17\u9d18\u9d1c\u9d1d\u9d1e\u9d2f\u9d30\u9d32\u9d33\u9d34\u9d3a\u9d3c\u9d45\u9d3d\u9d42\u9d43\u9d47\u9d4a\u9d53\u9d54\u9d5f\u9d63\u9d62\u9d65\u9d69\u9d6a\u9d6b\u9d70\u9d76\u9d77\u9d7b"],["8feca1","\u9d7c\u9d7e\u9d83\u9d84\u9d86\u9d8a\u9d8d\u9d8e\u9d92\u9d93\u9d95\u9d96\u9d97\u9d98\u9da1\u9daa\u9dac\u9dae\u9db1\u9db5\u9db9\u9dbc\u9dbf\u9dc3\u9dc7\u9dc9\u9dca\u9dd4\u9dd5\u9dd6\u9dd7\u9dda\u9dde\u9ddf\u9de0\u9de5\u9de7\u9de9\u9deb\u9dee\u9df0\u9df3\u9df4\u9dfe\u9e0a\u9e02\u9e07\u9e0e\u9e10\u9e11\u9e12\u9e15\u9e16\u9e19\u9e1c\u9e1d\u9e7a\u9e7b\u9e7c\u9e80\u9e82\u9e83\u9e84\u9e85\u9e87\u9e8e\u9e8f\u9e96\u9e98\u9e9b\u9e9e\u9ea4\u9ea8\u9eac\u9eae\u9eaf\u9eb0\u9eb3\u9eb4\u9eb5\u9ec6\u9ec8\u9ecb\u9ed5\u9edf\u9ee4\u9ee7\u9eec\u9eed\u9eee\u9ef0\u9ef1\u9ef2\u9ef5"],["8feda1","\u9ef8\u9eff\u9f02\u9f03\u9f09\u9f0f\u9f10\u9f11\u9f12\u9f14\u9f16\u9f17\u9f19\u9f1a\u9f1b\u9f1f\u9f22\u9f26\u9f2a\u9f2b\u9f2f\u9f31\u9f32\u9f34\u9f37\u9f39\u9f3a\u9f3c\u9f3d\u9f3f\u9f41\u9f43",4,"\u9f53\u9f55\u9f56\u9f57\u9f58\u9f5a\u9f5d\u9f5e\u9f68\u9f69\u9f6d",4,"\u9f73\u9f75\u9f7a\u9f7d\u9f8f\u9f90\u9f91\u9f92\u9f94\u9f96\u9f97\u9f9e\u9fa1\u9fa2\u9fa3\u9fa5"]]},{}],17:[function(require,module,exports){module.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}},{}],18:[function(require,module,exports){module.exports=[["a140","\ue4c6",62],["a180","\ue505",32],["a240","\ue526",62],["a280","\ue565",32],["a2ab","\ue766",5],["a2e3","\u20ac\ue76d"],["a2ef","\ue76e\ue76f"],["a2fd","\ue770\ue771"],["a340","\ue586",62],["a380","\ue5c5",31,"\u3000"],["a440","\ue5e6",62],["a480","\ue625",32],["a4f4","\ue772",10],["a540","\ue646",62],["a580","\ue685",32],["a5f7","\ue77d",7],["a640","\ue6a6",62],["a680","\ue6e5",32],["a6b9","\ue785",7],["a6d9","\ue78d",6],["a6ec","\ue794\ue795"],["a6f3","\ue796"],["a6f6","\ue797",8],["a740","\ue706",62],["a780","\ue745",32],["a7c2","\ue7a0",14],["a7f2","\ue7af",12],["a896","\ue7bc",10],["a8bc","\ue7c7"],["a8bf","\u01f9"],["a8c1","\ue7c9\ue7ca\ue7cb\ue7cc"],["a8ea","\ue7cd",20],["a958","\ue7e2"],["a95b","\ue7e3"],["a95d","\ue7e4\ue7e5\ue7e6"],["a989","\u303e\u2ff0",11],["a997","\ue7f4",12],["a9f0","\ue801",14],["aaa1","\ue000",93],["aba1","\ue05e",93],["aca1","\ue0bc",93],["ada1","\ue11a",93],["aea1","\ue178",93],["afa1","\ue1d6",93],["d7fa","\ue810",4],["f8a1","\ue234",93],["f9a1","\ue292",93],["faa1","\ue2f0",93],["fba1","\ue34e",93],["fca1","\ue3ac",93],["fda1","\ue40a",93],["fe50","\u2e81\ue816\ue817\ue818\u2e84\u3473\u3447\u2e88\u2e8b\ue81e\u359e\u361a\u360e\u2e8c\u2e97\u396e\u3918\ue826\u39cf\u39df\u3a73\u39d0\ue82b\ue82c\u3b4e\u3c6e\u3ce0\u2ea7\ue831\ue832\u2eaa\u4056\u415f\u2eae\u4337\u2eb3\u2eb6\u2eb7\ue83b\u43b1\u43ac\u2ebb\u43dd\u44d6\u4661\u464c\ue843"],["fe80","\u4723\u4729\u477c\u478d\u2eca\u4947\u497a\u497d\u4982\u4983\u4985\u4986\u499f\u499b\u49b7\u49b6\ue854\ue855\u4ca3\u4c9f\u4ca0\u4ca1\u4c77\u4ca2\u4d13",6,"\u4dae\ue864\ue468",93]]},{}],19:[function(require,module,exports){module.exports=[["0","\0",128],["a1","\uff61",62],["8140","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7"],["8180","\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["81c8","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["81da","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["81f0","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["81fc","\u25ef"],["824f","\uff10",9],["8260","\uff21",25],["8281","\uff41",25],["829f","\u3041",82],["8340","\u30a1",62],["8380","\u30e0",22],["839f","\u0391",16,"\u03a3",6],["83bf","\u03b1",16,"\u03c3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043e",17],["849f","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["877e","\u337b"],["8780","\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["889f","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["8940","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186"],["8980","\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["8a40","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b"],["8a80","\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["8b40","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551"],["8b80","\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["8c40","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8"],["8c80","\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["8d40","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d"],["8d80","\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["8e40","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62"],["8e80","\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["8f40","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3"],["8f80","\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["9040","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8"],["9080","\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["9140","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb"],["9180","\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["9240","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4"],["9280","\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["9340","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac"],["9380","\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["9440","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885"],["9480","\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["9540","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577"],["9580","\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["9640","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6"],["9680","\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["9740","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32"],["9780","\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["9840","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["989f","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["9940","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed"],["9980","\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["9a40","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638"],["9a80","\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["9b40","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80"],["9b80","\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["9c40","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["9d40","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b"],["9d80","\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["9e40","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e"],["9e80","\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["9f40","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef"],["9f80","\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["e040","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd"],["e080","\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e140","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff"],["e180","\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e240","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0"],["e280","\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e340","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37"],["e380","\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e440","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264"],["e480","\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec"],["e580","\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["e640","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7"],["e680","\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["e740","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c"],["e780","\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["e840","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599"],["e880","\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["e940","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43"],["e980","\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["ea40","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef"],["ea80","\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0\u582f\u69c7\u9059\u7464\u51dc\u7199"],["ed40","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f"],["ed80","\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["ee40","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559"],["ee80","\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["eeef","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["f040","\ue000",62],["f080","\ue03f",124],["f140","\ue0bc",62],["f180","\ue0fb",124],["f240","\ue178",62],["f280","\ue1b7",124],["f340","\ue234",62],["f380","\ue273",124],["f440","\ue2f0",62],["f480","\ue32f",124],["f540","\ue3ac",62],["f580","\ue3eb",124],["f640","\ue468",62],["f680","\ue4a7",124],["f740","\ue524",62],["f780","\ue563",124],["f840","\ue5e0",62],["f880","\ue61f",124],["f940","\ue69c"],["fa40","\u2170",9,"\u2160",9,"\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u2235\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a"],["fa80","\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f"],["fb40","\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19"],["fb80","\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9"],["fc40","\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"]]},{}],20:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports.utf16be=Utf16BECodec;function Utf16BECodec(){}Utf16BECodec.prototype.encoder=Utf16BEEncoder;Utf16BECodec.prototype.decoder=Utf16BEDecoder;Utf16BECodec.prototype.bomAware=true;function Utf16BEEncoder(){}Utf16BEEncoder.prototype.write=function(str){var buf=Buffer.from(str,"ucs2");for(var i=0;i=2){if(buf[0]==254&&buf[1]==255)enc="utf-16be";else if(buf[0]==255&&buf[1]==254)enc="utf-16le";else{var asciiCharsLE=0,asciiCharsBE=0,_len=Math.min(buf.length-buf.length%2,64);for(var i=0;i<_len;i+=2){if(buf[i]===0&&buf[i+1]!==0)asciiCharsBE++;if(buf[i]!==0&&buf[i+1]===0)asciiCharsLE++}if(asciiCharsBE>asciiCharsLE)enc="utf-16be";else if(asciiCharsBE0)res=this.iconv.decode(Buffer.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return res};exports.utf7imap=Utf7IMAPCodec;function Utf7IMAPCodec(codecOptions,iconv){this.iconv=iconv}Utf7IMAPCodec.prototype.encoder=Utf7IMAPEncoder;Utf7IMAPCodec.prototype.decoder=Utf7IMAPDecoder;Utf7IMAPCodec.prototype.bomAware=true;function Utf7IMAPEncoder(options,codec){this.iconv=codec.iconv;this.inBase64=false;this.base64Accum=Buffer.alloc(6);this.base64AccumIdx=0}Utf7IMAPEncoder.prototype.write=function(str){var inBase64=this.inBase64,base64Accum=this.base64Accum,base64AccumIdx=this.base64AccumIdx,buf=Buffer.alloc(str.length*5+10),bufIdx=0;for(var i=0;i0){bufIdx+=buf.write(base64Accum.slice(0,base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),bufIdx);base64AccumIdx=0}buf[bufIdx++]=minusChar;inBase64=false}if(!inBase64){buf[bufIdx++]=uChar;if(uChar===andChar)buf[bufIdx++]=minusChar}}else{if(!inBase64){buf[bufIdx++]=andChar;inBase64=true}if(inBase64){base64Accum[base64AccumIdx++]=uChar>>8;base64Accum[base64AccumIdx++]=uChar&255;if(base64AccumIdx==base64Accum.length){bufIdx+=buf.write(base64Accum.toString("base64").replace(/\//g,","),bufIdx);base64AccumIdx=0}}}}this.inBase64=inBase64;this.base64AccumIdx=base64AccumIdx;return buf.slice(0,bufIdx)};Utf7IMAPEncoder.prototype.end=function(){var buf=Buffer.alloc(10),bufIdx=0;if(this.inBase64){if(this.base64AccumIdx>0){bufIdx+=buf.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),bufIdx);this.base64AccumIdx=0}buf[bufIdx++]=minusChar;this.inBase64=false}return buf.slice(0,bufIdx)};function Utf7IMAPDecoder(options,codec){this.iconv=codec.iconv;this.inBase64=false;this.base64Accum=""}var base64IMAPChars=base64Chars.slice();base64IMAPChars[",".charCodeAt(0)]=true;Utf7IMAPDecoder.prototype.write=function(buf){var res="",lastI=0,inBase64=this.inBase64,base64Accum=this.base64Accum;for(var i=0;i0)res=this.iconv.decode(Buffer.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return res}},{"safer-buffer":39}],22:[function(require,module,exports){"use strict";var BOMChar="\ufeff";exports.PrependBOM=PrependBOMWrapper;function PrependBOMWrapper(encoder,options){this.encoder=encoder;this.addBOM=true}PrependBOMWrapper.prototype.write=function(str){if(this.addBOM){str=BOMChar+str;this.addBOM=false}return this.encoder.write(str)};PrependBOMWrapper.prototype.end=function(){return this.encoder.end()};exports.StripBOM=StripBOMWrapper;function StripBOMWrapper(decoder,options){this.decoder=decoder;this.pass=false;this.options=options||{}}StripBOMWrapper.prototype.write=function(buf){var res=this.decoder.write(buf);if(this.pass||!res)return res;if(res[0]===BOMChar){res=res.slice(1);if(typeof this.options.stripBOM==="function")this.options.stripBOM()}this.pass=true;return res};StripBOMWrapper.prototype.end=function(){return this.decoder.end()}},{}],23:[function(require,module,exports){(function(process){"use strict";var Buffer=require("safer-buffer").Buffer;var bomHandling=require("./bom-handling"),iconv=module.exports;iconv.encodings=null;iconv.defaultCharUnicode="\ufffd";iconv.defaultCharSingleByte="?";iconv.encode=function encode(str,encoding,options){str=""+(str||"");var encoder=iconv.getEncoder(encoding,options);var res=encoder.write(str);var trail=encoder.end();return trail&&trail.length>0?Buffer.concat([res,trail]):res};iconv.decode=function decode(buf,encoding,options){if(typeof buf==="string"){if(!iconv.skipDecodeWarning){console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");iconv.skipDecodeWarning=true}buf=Buffer.from(""+(buf||""),"binary")}var decoder=iconv.getDecoder(encoding,options);var res=decoder.write(buf);var trail=decoder.end();return trail?res+trail:res};iconv.encodingExists=function encodingExists(enc){try{iconv.getCodec(enc);return true}catch(e){return false}};iconv.toEncoding=iconv.encode;iconv.fromEncoding=iconv.decode;iconv._codecDataCache={};iconv.getCodec=function getCodec(encoding){if(!iconv.encodings)iconv.encodings=require("../encodings");var enc=iconv._canonicalizeEncoding(encoding);var codecOptions={};while(true){var codec=iconv._codecDataCache[enc];if(codec)return codec;var codecDef=iconv.encodings[enc];switch(typeof codecDef){case"string":enc=codecDef;break;case"object":for(var key in codecDef)codecOptions[key]=codecDef[key];if(!codecOptions.encodingName)codecOptions.encodingName=enc;enc=codecDef.type;break;case"function":if(!codecOptions.encodingName)codecOptions.encodingName=enc;codec=new codecDef(codecOptions,iconv);iconv._codecDataCache[codecOptions.encodingName]=codec;return codec;default:throw new Error("Encoding not recognized: '"+encoding+"' (searched as: '"+enc+"')")}}};iconv._canonicalizeEncoding=function(encoding){return(""+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};iconv.getEncoder=function getEncoder(encoding,options){var codec=iconv.getCodec(encoding),encoder=new codec.encoder(options,codec);if(codec.bomAware&&options&&options.addBOM)encoder=new bomHandling.PrependBOM(encoder,options);return encoder};iconv.getDecoder=function getDecoder(encoding,options){var codec=iconv.getCodec(encoding),decoder=new codec.decoder(options,codec);if(codec.bomAware&&!(options&&options.stripBOM===false))decoder=new bomHandling.StripBOM(decoder,options);return decoder};var nodeVer=typeof process!=="undefined"&&process.versions&&process.versions.node;if(nodeVer){var nodeVerArr=nodeVer.split(".").map(Number);if(nodeVerArr[0]>0||nodeVerArr[1]>=10){require("./streams")(iconv)}require("./extend-node")(iconv)}if("\u0100"!="\u0100"){console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.")}}).call(this,require("_process"))},{"../encodings":7,"./bom-handling":22,"./extend-node":44,"./streams":44,_process:48,"safer-buffer":39}],24:[function(require,module,exports){(function(process,setImmediate){(function(){VERSION="0.4.107";var error=function(){var msg=utils.toArray(arguments).join(" ");throw new Error(msg)};var utils={getUniqueName:function(){var c=0;return function(prefix){return(prefix||"__id_")+ ++c}}(),isFunction:function(obj){return typeof obj=="function"},isObject:function(obj){return obj===Object(obj)},clamp:function(val,min,max){return valmax?max:val},isArray:function(obj){return Array.isArray(obj)},isNumber:function(obj){return obj!=null&&obj.constructor==Number},isInteger:function(obj){return utils.isNumber(obj)&&(obj|0)===obj},isString:function(obj){return obj!=null&&obj.toString===String.prototype.toString},isBoolean:function(obj){return obj===true||obj===false},toArray:function(obj){var arr;if(!utils.isArrayLike(obj))error("utils.toArray() requires an array-like object");try{arr=Array.prototype.slice.call(obj,0)}catch(e){arr=[];for(var i=0,n=obj.length;i0)return true;return false},addslashes:function(str){return(str+"").replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0")},regexEscape:function(str){return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},defaults:function(dest){for(var i=1,n=arguments.length;i0?values:void 0};utils.sum=function(arr,info){if(!utils.isArrayLike(arr))error("utils.sum() expects an array, received:",arr);var tot=0,nan=0,val;for(var i=0,n=arr.length;imax)max=val}return{min:min,max:max,nan:nan}};utils.uniq=function(src){var index={};return src.reduce(function(memo,el){if(el in index===false){index[el]=true;memo.push(el)}return memo},[])};utils.pluck=function(arr,key){return arr.map(function(obj){return obj[key]})};utils.countValues=function(arr){return arr.reduce(function(memo,val){memo[val]=val in memo?memo[val]+1:1;return memo},{})};utils.indexOn=function(arr,k){return arr.reduce(function(index,o){index[o[k]]=o;return index},{})};utils.groupBy=function(arr,k){return arr.reduce(function(index,o){var keyval=o[k];if(keyval in index){index[keyval].push(o)}else{index[keyval]=[o]}return index},{})};utils.arrayToIndex=function(arr,val){var init=arguments.length>1;return arr.reduce(function(index,key){index[key]=init?val:true;return index},{})};utils.forEach=function(arr,func,ctx){if(!utils.isArrayLike(arr)){throw new Error("#forEach() takes an array-like argument. "+arr)}for(var i=0,n=arr.length;istart){fmt=","+str.substring(ins,end)+fmt;end=ins;ins-=3}return str.substring(0,end)+fmt};utils.numToStr=function(num,decimals){return decimals>=0?num.toFixed(decimals):String(num)};utils.formatNumber=function(num,decimals,nullStr,showPos){var fmt;if(isNaN(num)){fmt=nullStr||"-"}else{fmt=utils.numToStr(num,decimals);fmt=utils.addThousandsSep(fmt);if(showPos&&parseFloat(fmt)>0){fmt="+"+fmt}}return fmt};function Transform(){this.mx=this.my=1;this.bx=this.by=0}Transform.prototype.isNull=function(){return!this.mx||!this.my||isNaN(this.bx)||isNaN(this.by)};Transform.prototype.invert=function(){var inv=new Transform;inv.mx=1/this.mx;inv.my=1/this.my;inv.bx=-this.bx/this.mx;inv.by=-this.by/this.my;return inv};Transform.prototype.transform=function(x,y,xy){xy=xy||[];xy[0]=x*this.mx+this.bx;xy[1]=y*this.my+this.by;return xy};Transform.prototype.toString=function(){return JSON.stringify(utils.extend({},this))};function Bounds(){if(arguments.length>0){this.setBounds.apply(this,arguments)}}Bounds.prototype.toString=function(){return JSON.stringify({xmin:this.xmin,xmax:this.xmax,ymin:this.ymin,ymax:this.ymax})};Bounds.prototype.toArray=function(){return this.hasBounds()?[this.xmin,this.ymin,this.xmax,this.ymax]:[]};Bounds.prototype.hasBounds=function(){return this.xmin<=this.xmax&&this.ymin<=this.ymax};Bounds.prototype.sameBounds=Bounds.prototype.equals=function(bb){return bb&&this.xmin===bb.xmin&&this.xmax===bb.xmax&&this.ymin===bb.ymin&&this.ymax===bb.ymax};Bounds.prototype.width=function(){return this.xmax-this.xmin||0};Bounds.prototype.height=function(){return this.ymax-this.ymin||0};Bounds.prototype.area=function(){return this.width()*this.height()||0};Bounds.prototype.empty=function(){this.xmin=this.ymin=this.xmax=this.ymax=void 0;return this};Bounds.prototype.setBounds=function(a,b,c,d){if(arguments.length==1){if(utils.isArrayLike(a)){b=a[1];c=a[2];d=a[3];a=a[0]}else{b=a.ymin;c=a.xmax;d=a.ymax;a=a.xmin}}this.xmin=a;this.ymin=b;this.xmax=c;this.ymax=d;if(a>c||b>d)this.update();return this};Bounds.prototype.centerX=function(){var x=(this.xmin+this.xmax)*.5;return x};Bounds.prototype.centerY=function(){var y=(this.ymax+this.ymin)*.5;return y};Bounds.prototype.containsPoint=function(x,y){if(x>=this.xmin&&x<=this.xmax&&y<=this.ymax&&y>=this.ymin){return true}return false};Bounds.prototype.containsBufferedPoint=Bounds.prototype.containsCircle=function(x,y,buf){if(x+buf>this.xmin&&x-bufthis.ymin){return true}}return false};Bounds.prototype.intersects=function(bb){if(bb.xmin<=this.xmax&&bb.xmax>=this.xmin&&bb.ymax>=this.ymin&&bb.ymin<=this.ymax){return true}return false};Bounds.prototype.contains=function(bb){if(bb.xmin>=this.xmin&&bb.ymax<=this.ymax&&bb.xmax<=this.xmax&&bb.ymin>=this.ymin){return true}return false};Bounds.prototype.shift=function(x,y){this.setBounds(this.xmin+x,this.ymin+y,this.xmax+x,this.ymax+y)};Bounds.prototype.padBounds=function(a,b,c,d){this.xmin-=a;this.ymin-=b;this.xmax+=c;this.ymax+=d};Bounds.prototype.scale=function(pct,pctY){var halfWidth=(this.xmax-this.xmin)*.5;var halfHeight=(this.ymax-this.ymin)*.5;var kx=pct-1;var ky=pctY===undefined?kx:pctY-1;this.xmin-=halfWidth*kx;this.ymin-=halfHeight*ky;this.xmax+=halfWidth*kx;this.ymax+=halfHeight*ky};Bounds.prototype.cloneBounds=Bounds.prototype.clone=function(){return new Bounds(this.xmin,this.ymin,this.xmax,this.ymax)};Bounds.prototype.clearBounds=function(){this.setBounds(new Bounds)};Bounds.prototype.mergePoint=function(x,y){if(this.xmin===void 0){this.setBounds(x,y,x,y)}else{if(xthis.xmax)this.xmax=x;if(ythis.ymax)this.ymax=y}};Bounds.prototype.fillOut=function(aspect,focusX,focusY){if(arguments.length<3){focusX=.5;focusY=.5}var w=this.width(),h=this.height(),currAspect=w/h,pad;if(isNaN(aspect)||aspect<=0){}else if(currAspectthis.xmax){tmp=this.xmin;this.xmin=this.xmax;this.xmax=tmp}if(this.ymin>this.ymax){tmp=this.ymin;this.ymin=this.ymax;this.ymax=tmp}};Bounds.prototype.transform=function(t){this.xmin=this.xmin*t.mx+t.bx;this.xmax=this.xmax*t.mx+t.bx;this.ymin=this.ymin*t.my+t.by;this.ymax=this.ymax*t.my+t.by;this.update();return this};Bounds.prototype.getTransform=function(b2,flipY){var t=new Transform;t.mx=b2.width()/this.width()||1;t.bx=b2.xmin-t.mx*this.xmin;if(flipY){t.my=-b2.height()/this.height()||1;t.by=b2.ymax-t.my*this.ymin}else{t.my=b2.height()/this.height()||1;t.by=b2.ymin-t.my*this.ymin}return t};Bounds.prototype.mergeCircle=function(x,y,r){if(r<0)r=-r;this.mergeBounds([x-r,y-r,x+r,y+r])};Bounds.prototype.mergeBounds=function(bb){var a,b,c,d;if(bb instanceof Bounds){a=bb.xmin;b=bb.ymin;c=bb.xmax;d=bb.ymax}else if(arguments.length==4){a=arguments[0];b=arguments[1];c=arguments[2];d=arguments[3]}else if(bb.length==4){a=bb[0];b=bb[1];c=bb[2];d=bb[3]}else{error("Bounds#mergeBounds() invalid argument:",bb)}if(this.xmin===void 0){this.setBounds(a,b,c,d)}else{if(athis.xmax)this.xmax=c;if(d>this.ymax)this.ymax=d}return this};utils.sortOn=function(arr){var comparators=[];for(var i=1;i0||cmp===0&&i>j?1:-1})};utils.reorderArray=function(arr,idxs){var len=idxs.length;var arr2=[];for(var i=0;i=len)error("Out-of-bounds array idx");arr2[i]=arr[idx]}utils.replaceArray(arr,arr2)};utils.getKeyComparator=function(key,asc){var compare=utils.getGenericComparator(asc);return function(a,b){return compare(a[key],b[key])}};utils.getGenericComparator=function(asc){asc=asc!==false;return function(a,b){var retn=0;if(b==null){retn=a==null?0:-1}else if(a==null){retn=1}else if(ab){retn=asc?1:-1}else if(a!==a){retn=1}else if(b!==b){retn=-1}return retn}};utils.quicksort=function(arr,asc){utils.quicksortPartition(arr,0,arr.length-1);if(asc===false)Array.prototype.reverse.call(arr);return arr};utils.quicksortPartition=function(a,lo,hi){var i=lo,j=hi,pivot,tmp;while(i>1];while(i<=j){while(a[i]pivot)j--;if(i<=j){tmp=a[i];a[i]=a[j];a[j]=tmp;i++;j--}}if(loarr[i])rank++}return rank};utils.findValueByPct=function(arr,pct){var rank=Math.ceil((1-pct)*arr.length);return utils.findValueByRank(arr,rank)};utils.findValueByRank=function(arr,rank){if(!arr.length||rank<1||rank>arr.length)error("[findValueByRank()] invalid input");rank=utils.clamp(rank|0,1,arr.length);var k=rank-1,n=arr.length,l=0,m=n-1,i,j,val,tmp;while(l=0?i:this._idx)},position:function(i){if(i!=null){this._idx=i;return this}return this._idx},readCString:function(fixedLen,asciiOnly){var str="",count=fixedLen>=0?fixedLen:this.bytesLeft();while(count>0){var byteVal=this.readUint8();count--;if(byteVal==0){break}else if(byteVal>127&&asciiOnly){str=null;break}str+=String.fromCharCode(byteVal)}if(fixedLen>0&&count>0){this.skipBytes(count)}return str},writeString:function(str,maxLen){var bytesWritten=0,charsToWrite=str.length,cval;if(maxLen){charsToWrite=Math.min(charsToWrite,maxLen)}for(var i=0;i127){cval="?".charCodeAt(0)}this.writeUint8(cval);bytesWritten++}return bytesWritten},writeCString:function(str,fixedLen){var maxChars=fixedLen?fixedLen-1:null,bytesWritten=this.writeString(str,maxChars);this.writeUint8(0);bytesWritten++;if(fixedLen){while(bytesWritten=1?rate:1.2,buf;return function(size){if(size>capacity){capacity=Math.ceil(size*k);buf=new constructor(capacity)}return buf}};utils.copyElements=function(src,i,dest,j,n,rev){if(src===dest&&j>i)error("copy error");var inc=1,offs=0;if(rev){inc=-1;offs=n-1}for(var k=0;k0&&val.constructor==Number};utils.parsePercent=function(o){var str=String(o);var isPct=str.indexOf("%")>0;var pct;if(isPct){pct=Number(str.replace("%",""))/100}else{pct=Number(str)}if(!(pct>=0&&pct<=1)){stop(utils.format("Invalid percentage: %s",str))}return pct};var Buffer=require("buffer").Buffer;utils.createBuffer=function(arg,arg2){if(utils.isInteger(arg)){return Buffer.allocUnsafe?Buffer.allocUnsafe(arg):new Buffer(arg)}else{return Buffer.from&&Buffer.allocUnsafe?Buffer.from(arg,arg2):new Buffer(arg,arg2)}};var api={};var VERSION;var internal={VERSION:VERSION,LOGGING:false,context:createContext()};var T={stack:[],start:function(){T.stack.push(+new Date)},stop:function(note){var elapsed=+new Date-T.stack.pop();var msg=elapsed+"ms";if(note){msg=note+" "+msg}verbose(msg);return elapsed}};new Float64Array(1);internal.runningInBrowser=function(){return!!api.gui};internal.getStateVar=function(key){return internal.context[key]};internal.setStateVar=function(key,val){internal.context[key]=val};function createContext(){return{DEBUG:false,QUIET:false,VERBOSE:false,defs:{},input_files:[]}}function createAsyncContext(cb){internal.context=createContext();return function(){cb.apply(null,utils.toArray(arguments));internal.context=createContext()}}function preserveContext(cb){var ctx=internal.context;return function(){internal.context=ctx;cb.apply(null,utils.toArray(arguments))}}function error(){internal.error.apply(null,utils.toArray(arguments))}function stop(){internal.stop.apply(null,utils.toArray(arguments))}function UserError(msg){var err=new Error(msg);err.name="UserError";return err}function messageArgs(args){var arr=utils.toArray(args);var cmd=internal.getStateVar("current_command");if(cmd&&cmd!="help"){arr.unshift("["+cmd+"]")}return arr}function message(){internal.message.apply(null,messageArgs(arguments))}function verbose(){if(internal.getStateVar("VERBOSE")){internal.message.apply(null,messageArgs(arguments))}}function debug(){if(internal.getStateVar("DEBUG")){internal.logArgs(arguments)}}function absArcId(arcId){return arcId>=0?arcId:~arcId}api.enableLogging=function(){internal.LOGGING=true;return api};api.printError=function(err){var msg;if(utils.isString(err)){err=new UserError(err)}if(internal.LOGGING&&err.name=="UserError"){msg=err.message;if(!/Error/.test(msg)){msg="Error: "+msg}console.error(messageArgs([msg]).join(" "));internal.message("Run mapshaper -h to view help")}else{throw err}};internal.error=function(){var msg=utils.toArray(arguments).join(" ");throw new Error(msg)};internal.stop=function(){throw new UserError(internal.formatLogArgs(arguments))};internal.message=function(){internal.logArgs(arguments)};internal.formatLogArgs=function(args){return utils.toArray(args).join(" ")};internal.formatStringsAsGrid=function(arr){var longest=arr.reduce(function(len,str){return Math.max(len,str.length)},0),colWidth=longest+2,perLine=Math.floor(80/colWidth)||1;return arr.reduce(function(memo,name,i){var col=i%perLine;if(i>0&&col===0)memo+="\n";if(col0){stop("Table is missing one or more fields:\n",missingFields,"\nExisting fields:","\n"+internal.formatStringsAsGrid(dataFields))}};internal.layerTypeMessage=function(lyr,defaultMsg,customMsg){var msg;if(customMsg&&utils.isString(customMsg)){msg=customMsg}else{msg=defaultMsg+", ";if(!lyr||!lyr.geometry_type){msg+="received a layer with no geometry"}else{msg+="received a "+lyr.geometry_type+" layer"}}return msg};internal.requirePointLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="point")stop(internal.layerTypeMessage(lyr,"Expected a point layer",msg))};internal.requirePolylineLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="polyline")stop(internal.layerTypeMessage(lyr,"Expected a polyline layer",msg))};internal.requirePolygonLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="polygon")stop(internal.layerTypeMessage(lyr,"Expected a polygon layer",msg))};internal.requirePathLayer=function(lyr,msg){if(!lyr||!internal.layerHasPaths(lyr))stop(internal.layerTypeMessage(lyr,"Expected a polygon or polyline layer",msg))};var R=6378137;var D2R=Math.PI/180;function degreesToMeters(deg){return deg*D2R*R}function distance3D(ax,ay,az,bx,by,bz){var dx=ax-bx,dy=ay-by,dz=az-bz;return Math.sqrt(dx*dx+dy*dy+dz*dz)}function distanceSq(ax,ay,bx,by){var dx=ax-bx,dy=ay-by;return dx*dx+dy*dy}function distance2D(ax,ay,bx,by){var dx=ax-bx,dy=ay-by;return Math.sqrt(dx*dx+dy*dy)}function distanceSq3D(ax,ay,az,bx,by,bz){var dx=ax-bx,dy=ay-by,dz=az-bz;return dx*dx+dy*dy+dz*dz}function innerAngle2(ax,ay,bx,by,cx,cy){var a1=Math.atan2(ay-by,ax-bx),a2=Math.atan2(cy-by,cx-bx),a3=Math.abs(a1-a2);if(a3>Math.PI){a3=2*Math.PI-a3}return a3}function standardAngle(a){var twoPI=Math.PI*2;while(a<0){a+=twoPI}while(a>=twoPI){a-=twoPI}return a}function signedAngle(ax,ay,bx,by,cx,cy){if(ax==bx&&ay==by||bx==cx&&by==cy){return NaN}var abx=ax-bx,aby=ay-by,cbx=cx-bx,cby=cy-by,dotp=abx*cbx+aby*cby,crossp=abx*cby-aby*cbx,a=Math.atan2(crossp,dotp);return standardAngle(a)}function bearing(lng1,lat1,lng2,lat2){var D2R=Math.PI/180;lng1*=D2R;lng2*=D2R;lat1*=D2R;lat2*=D2R;var y=Math.sin(lng2-lng1)*Math.cos(lat2),x=Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lng2-lng1);return Math.atan2(y,x)}function signedAngleSph(alng,alat,blng,blat,clng,clat){if(alng==blng&&alat==blat||blng==clng&&blat==clat){return NaN}var b1=bearing(blng,blat,alng,alat),b2=bearing(blng,blat,clng,clat),a=Math.PI*2+b1-b2;return standardAngle(a)}function convLngLatToSph(xsrc,ysrc,xbuf,ybuf,zbuf){var p=[];for(var i=0,len=xsrc.length;i=1-1e-14){theta=0}else if(dotp<=-1+1e-14){theta=Math.PI}else{theta=Math.acos(dotp)}}return theta}function innerAngle3D(ax,ay,az,bx,by,bz,cx,cy,cz){var ab=distance3D(ax,ay,az,bx,by,bz),bc=distance3D(bx,by,bz,cx,cy,cz),theta,dotp;if(ab===0||bc===0){theta=0}else{dotp=((ax-bx)*(cx-bx)+(ay-by)*(cy-by)+(az-bz)*(cz-bz))/(ab*bc);if(dotp>=1){theta=0}else if(dotp<=-1){theta=Math.PI}else{theta=Math.acos(dotp)}}return theta}function triangleArea(ax,ay,bx,by,cx,cy){var area=Math.abs(((ay-cy)*(bx-cx)+(by-cy)*(cx-ax))/2);return area}function detSq(ax,ay,bx,by,cx,cy){var det=ax*by-ax*cy+bx*cy-bx*ay+cx*ay-cx*by;return det*det}function cosine(ax,ay,bx,by,cx,cy){var den=distance2D(ax,ay,bx,by)*distance2D(bx,by,cx,cy),cos=0;if(den>0){cos=((ax-bx)*(cx-bx)+(ay-by)*(cy-by))/den;if(cos>1)cos=1;else if(cos<-1)cos=-1}return cos}function cosine3D(ax,ay,az,bx,by,bz,cx,cy,cz){var den=distance3D(ax,ay,az,bx,by,bz)*distance3D(bx,by,bz,cx,cy,cz),cos=0;if(den>0){cos=((ax-bx)*(cx-bx)+(ay-by)*(cy-by)+(az-bz)*(cz-bz))/den;if(cos>1)cos=1;else if(cos<-1)cos=-1}return cos}function triangleArea3D(ax,ay,az,bx,by,bz,cx,cy,cz){var area=.5*Math.sqrt(detSq(ax,ay,bx,by,cx,cy)+detSq(ax,az,bx,bz,cx,cz)+detSq(ay,az,by,bz,cy,cz));return area}function apexDistSq(ab2,bc2,ac2){var dist2;if(ac2===0){dist2=ab2}else if(ab2>=bc2+ac2){dist2=bc2}else if(bc2>=ab2+ac2){dist2=ab2}else{var dval=ab2+ac2-bc2;dist2=ab2-dval*dval/ac2*.25}if(dist2<0){dist2=0}return dist2}function pointSegDistSq(ax,ay,bx,by,cx,cy){var ab2=distanceSq(ax,ay,bx,by),ac2=distanceSq(ax,ay,cx,cy),bc2=distanceSq(bx,by,cx,cy);return apexDistSq(ab2,ac2,bc2)}function pointSegDistSq3D(ax,ay,az,bx,by,bz,cx,cy,cz){var ab2=distanceSq3D(ax,ay,az,bx,by,bz),ac2=distanceSq3D(ax,ay,az,cx,cy,cz),bc2=distanceSq3D(bx,by,bz,cx,cy,cz);return apexDistSq(ab2,ac2,bc2)}internal.calcArcBounds=function(xx,yy,start,len){var i=start|0,n=isNaN(len)?xx.length-i:len+i,x,y,xmin,ymin,xmax,ymax;if(n>0){xmin=xmax=xx[i];ymin=ymax=yy[i]}for(i++;ixmax)xmax=x;if(yymax)ymax=y}return[xmin,ymin,xmax,ymax]};internal.reversePathCoords=function(arr,start,len){var i=start,j=start+len-1,tmp;while(ia[2])a[2]=b[2];if(b[3]>a[3])a[3]=b[3]}function containsBounds(a,b){return a[0]<=b[0]&&a[2]>=b[2]&&a[1]<=b[1]&&a[3]>=b[3]}function boundsArea(b){return(b[2]-b[0])*(b[3]-b[1])}var geom={R:R,D2R:D2R,degreesToMeters:degreesToMeters,distanceSq:distanceSq,distance2D:distance2D,distance3D:distance3D,innerAngle:innerAngle,innerAngle2:innerAngle2,signedAngle:signedAngle,bearing:bearing,signedAngleSph:signedAngleSph,standardAngle:standardAngle,convLngLatToSph:convLngLatToSph,lngLatToXYZ:lngLatToXYZ,xyzToLngLat:xyzToLngLat,sphericalDistance:sphericalDistance,greatCircleDistance:greatCircleDistance,pointSegDistSq:pointSegDistSq,pointSegDistSq3D:pointSegDistSq3D,innerAngle3D:innerAngle3D,triangleArea:triangleArea,triangleArea3D:triangleArea3D,cosine:cosine,cosine3D:cosine3D};function PointIter(points){var n=points.length,i=0,iter={x:0,y:0,hasNext:hasNext};function hasNext(){if(i>=n)return false;iter.x=points[i][0];iter.y=points[i][1];i++;return true}return iter}function ArcIter(xx,yy){this._i=0;this._n=0;this._inc=1;this._xx=xx;this._yy=yy;this.i=0;this.x=0;this.y=0}ArcIter.prototype.init=function(i,len,fw){if(fw){this._i=i;this._inc=1}else{this._i=i+len-1;this._inc=-1}this._n=len;return this};ArcIter.prototype.hasNext=function(){var i=this._i;if(this._n>0){this._i=i+this._inc;this.x=this._xx[i];this.y=this._yy[i];this.i=i;this._n--;return true}return false};function FilteredArcIter(xx,yy,zz){var _zlim=0,_i=0,_inc=1,_stop=0;this.init=function(i,len,fw,zlim){_zlim=zlim||0;if(fw){_i=i;_inc=1;_stop=i+len}else{_i=i+len-1;_inc=-1;_stop=i-1}return this};this.hasNext=function(){var zarr=zz,i=_i,j=i,zlim=_zlim,stop=_stop,inc=_inc;if(i==stop)return false;do{j+=inc}while(j!=stop&&zarr[j]0)this._arc.hasNext()}this._i=i};ShapeIter.prototype.reset=function(){this._i=-1;this.nextArc()};function ArcCollection(){var _xx,_yy,_ii,_nn,_zz,_zlimit=0,_bb,_allBounds,_arcIter,_filteredArcIter;if(arguments.length==1){initLegacyArcs(arguments[0])}else if(arguments.length==3){initXYData.apply(this,arguments)}else{error("ArcCollection() Invalid arguments")}function initLegacyArcs(arcs){var xx=[],yy=[];var nn=arcs.map(function(points){var n=points?points.length:0;for(var i=0;i0){j=i*4;b=internal.calcArcBounds(xx,yy,arcOffs,arcLen);bb[j++]=b[0];bb[j++]=b[1];bb[j++]=b[2];bb[j]=b[3];arcOffs+=arcLen;bounds.mergeBounds(b)}}return{bb:bb,bounds:bounds}}this.updateVertexData=function(nn,xx,yy,zz){initXYData(nn,xx,yy);initZData(zz||null)};this.getVertexData=function(){return{xx:_xx,yy:_yy,zz:_zz,bb:_bb,nn:_nn,ii:_ii}};this.getCopy=function(){var copy=new ArcCollection(new Int32Array(_nn),new Float64Array(_xx),new Float64Array(_yy));if(_zz){copy.setThresholds(new Float64Array(_zz));copy.setRetainedInterval(_zlimit)}return copy};function getFilteredPointCount(){var zz=_zz,z=_zlimit;if(!zz||!z)return this.getPointCount();var count=0;for(var i=0,n=zz.length;i=z)count++}return count}function getFilteredVertexData(){var len2=getFilteredPointCount();var arcCount=_nn.length;var xx2=new Float64Array(len2),yy2=new Float64Array(len2),zz2=new Float64Array(len2),nn2=new Int32Array(arcCount),i=0,i2=0,n,n2;for(var arcId=0;arcId=_zlimit){xx2[i2]=_xx[i];yy2[i2]=_yy[i];zz2[i2]=_zz[i];i2++;n2++}}if(n2<2)error("Collapsed arc");nn2[arcId]=n2}return{xx:xx2,yy:yy2,zz:zz2,nn:nn2}}this.getFilteredCopy=function(){if(!_zz||_zlimit===0)return this.getCopy();var data=getFilteredVertexData();var copy=new ArcCollection(data.nn,data.xx,data.yy);copy.setThresholds(data.zz);return copy};this.toArray=function(){var arr=[];this.forEach(function(iter){var arc=[];while(iter.hasNext()){arc.push([iter.x,iter.y])}arr.push(arc)});return arr};this.toJSON=function(){return this.toArray()};this.forEachArcSegment=function(arcId,cb){var fw=arcId>=0,absId=fw?arcId:~arcId,zlim=this.getRetainedInterval(),n=_nn[absId],step=fw?1:-1,v1=fw?_ii[absId]:_ii[absId]+n-1,v2=v1,xx=_xx,yy=_yy,zz=_zz,count=0;for(var j=1;j=zlim){cb(v1,v2,xx,yy);v1=v2;count++}}return count};this.forEachSegment=function(cb){var count=0;for(var i=0,n=this.size();i-1){copyElements(_xx,_ii[i],_xx,goodPoints,arcLen);copyElements(_yy,_ii[i],_yy,goodPoints,arcLen);if(_zz)copyElements(_zz,_ii[i],_zz,goodPoints,arcLen);_nn[k]=arcLen;goodPoints+=arcLen;goodArcs++}}initXYData(_nn.subarray(0,goodArcs),_xx.subarray(0,goodPoints),_yy.subarray(0,goodPoints));if(_zz)initZData(_zz.subarray(0,goodPoints))}this.dedupCoords=function(){var arcId=0,i=0,i2=0,arcCount=this.size(),zz=_zz,arcLen,arcLen2;while(arcIdi2){initXYData(_nn,_xx.subarray(0,i2),_yy.subarray(0,i2));if(zz)initZData(zz.subarray(0,i2))}return i-i2};this.getVertex=function(arcId,nth){var i=this.indexOfVertex(arcId,nth);return{x:_xx[i],y:_yy[i]}};this.indexOfVertex=function(arcId,nth){var absId=arcId<0?~arcId:arcId,len=_nn[absId];if(nth<0)nth=len+nth;if(absId!=arcId)nth=len-nth-1;if(nth<0||nth>=len)error("[ArcCollection] out-of-range vertex id");return _ii[absId]+nth};this.pointIsEndpoint=function(idx){var ii=_ii,nn=_nn;for(var j=0,n=ii.length;j0){if(x!=iter.x||y!=iter.y)return false}x=iter.x;y=iter.y;i++}return true};this.getArcLength=function(arcId){return _nn[absArcId(arcId)]};this.getArcIter=function(arcId){var fw=arcId>=0,i=fw?arcId:~arcId,iter=_zz&&_zlimit?_filteredArcIter:_arcIter;if(i>=_nn.length){error("#getArcId() out-of-range arc id:",arcId)}return iter.init(_ii[i],_nn[i],fw,_zlimit)};this.getShapeIter=function(ids){return new ShapeIter(this).init(ids)};this.setThresholds=function(thresholds){var n=this.getPointCount(),zz=null;if(!thresholds){}else if(thresholds.length==n){zz=thresholds}else if(thresholds.length==this.size()){zz=flattenThresholds(thresholds,n)}else{error("Invalid threshold data")}initZData(zz);return this};function flattenThresholds(arr,n){var zz=new Float64Array(n),i=0;arr.forEach(function(arr){for(var j=0,n=arr.length;j0){var data=getFilteredVertexData();this.updateVertexData(data.nn,data.xx,data.yy);_zlimit=0}else{_zz=null}};this.getRetainedInterval=function(){return _zlimit};this.setRetainedInterval=function(z){_zlimit=z;return this};this.getRetainedPct=function(){return this.getPctByThreshold(_zlimit)};this.setRetainedPct=function(pct){if(pct>=1){_zlimit=0}else{_zlimit=this.getThresholdByPct(pct);_zlimit=internal.clampIntervalByPct(_zlimit,pct)}return this};this.getRemovableThresholds=function(nth){if(!_zz)error("[arcs] Missing simplification data.");var skip=nth|1,arr=new Float64Array(Math.ceil(_zz.length/skip)),z;for(var i=0,j=0,n=this.getPointCount();i=0&&arcId0){arr=this.getRemovableThresholds(nth);rank=utils.findRankByValue(arr,val);pct=arr.length>0?1-(rank-1)/arr.length:1}else{pct=1}return pct};this.getThresholdByPct=function(pct,nth){return internal.getThresholdByPct(pct,this,nth)};this.arcIntersectsBBox=function(i,b1){var b2=_bb,j=i*4;return b2[j]<=b1[2]&&b2[j+2]>=b1[0]&&b2[j+3]>=b1[1]&&b2[j+1]<=b1[3]};this.arcIsContained=function(i,b1){var b2=_bb,j=i*4;return b2[j]>=b1[0]&&b2[j+2]<=b1[2]&&b2[j+1]>=b1[1]&&b2[j+3]<=b1[3]};this.arcIsSmaller=function(i,units){var bb=_bb,j=i*4;return bb[j+2]-bb[j]bbox[2])bbox[2]=bb[id];if(bb[++id]>bbox[3])bbox[3]=bb[id]}return bbox};this.getMultiShapeBounds=function(shapeIds,bounds){bounds=bounds||new Bounds;if(shapeIds){for(var i=0,n=shapeIds.length;i0&&(keep||zz[j]>zz[i])){zz[i]=zz[j]}n++}return n2>1?n2:0};internal.getAvgSegment=function(arcs){var sum=0;var count=arcs.forEachSegment(function(i,j,xx,yy){var dx=xx[i]-xx[j],dy=yy[i]-yy[j];sum+=Math.sqrt(dx*dx+dy*dy)});return sum/count||0};internal.getAvgSegment2=function(arcs){var dx=0,dy=0;var count=arcs.forEachSegment(function(i,j,xx,yy){dx+=Math.abs(xx[i]-xx[j]);dy+=Math.abs(yy[i]-yy[j])});return[dx/count||0,dy/count||0]};internal.getDirectedArcPresenceTest=function(shapes,n){var flags=new Uint8Array(n);internal.forEachArcId(shapes,function(id){var absId=absArcId(id);if(absId0}};internal.getArcPresenceTest2=function(layers,arcs){var counts=internal.countArcsInLayers(layers,arcs);return function(arcId){return counts[absArcId(arcId)]>0}};internal.countArcsInShapes=function(shapes,counts){internal.traversePaths(shapes,null,function(obj){var arcs=obj.arcs,id;for(var i=0;i=1)z=0;return z};internal.findNextRemovableVertices=function(zz,zlim,start,end){var i=internal.findNextRemovableVertex(zz,zlim,start,end),arr,k;if(i>-1){k=zz[i];arr=[i];while(++iend){tmp=start;start=end;end=tmp}for(var i=start+1;ijz){j=i;jz=z}}return j};internal.forEachArcId=function(arr,cb){var item;for(var i=0;i0)shape2.push(path)});return shape2.length>0?shape2:null};internal.groupPolygonRings=function(paths,reverseWinding){var holes=[],groups=[],sign=reverseWinding?-1:1,boundsQuery;(paths||[]).forEach(function(path){if(path.area*sign>0){groups.push([path])}else if(path.area*sign<0){holes.push(path)}else{}});if(holes.length===0){return groups}boundsQuery=internal.getBoundsSearchFunction(groups.map(function(group,i){return{bounds:group[0].bounds,idx:i}}));holes.forEach(function(hole){var containerId=-1,containerArea=0,holeArea=hole.area*-sign,b=hole.bounds,candidates=boundsQuery(b.xmin,b.ymin,b.xmax,b.ymax),ring,ringId,ringArea,isContained;for(var i=0,n=candidates.length;iholeArea;if(isContained&&(containerArea===0||ringArea0){return parts.filter(function(part){return!!part})}else{return parts}};internal.findMaxPartCount=function(shapes){var maxCount=0,shp;for(var i=0,n=shapes.length;imaxCount){maxCount=shp.length}}return maxCount};api.affine=function(targetLayers,dataset,opts){var rotateArg=opts.rotate||0;var scaleArg=opts.scale||1;var shiftArg=opts.shift?internal.convertIntervalPair(opts.shift,internal.getDatasetCRS(dataset)):[0,0];var arcs=dataset.arcs;var targetShapes=[];var otherShapes=[];var targetPoints=[];var targetFlags,otherFlags,transform,transformOpts;dataset.layers.filter(internal.layerHasGeometry).forEach(function(lyr){var hits=[],misses=[],test;if(targetLayers.indexOf(lyr)==-1){misses=lyr.shapes}else if(opts.where){test=internal.compileValueExpression(opts.where,lyr,dataset.arcs);lyr.shapes.forEach(function(shp,i){(test(i)?hits:misses).push(shp)})}else{hits=lyr.shapes}if(lyr.geometry_type=="point"){targetPoints=targetPoints.concat(hits)}else{targetShapes=targetShapes.concat(hits);otherShapes=otherShapes.concat(misses)}});var anchorArg=internal.getAffineAnchor({arcs:dataset.arcs,layers:[{geometry_type:"point",shapes:targetPoints},{geometry_type:"polyline",shapes:targetShapes}]},opts);transform=internal.getAffineTransform(rotateArg,scaleArg,shiftArg,anchorArg);if(targetShapes.length>0){targetFlags=new Uint8Array(arcs.size());otherFlags=new Uint8Array(arcs.size());internal.countArcsInShapes(targetShapes,targetFlags);if(otherShapes.length>0){internal.countArcsInShapes(otherShapes,otherFlags);internal.applyArrayMask(otherFlags,targetFlags);dataset.arcs=internal.duplicateSelectedArcs(otherShapes,arcs,otherFlags)}dataset.arcs.transformPoints(function(x,y,arcId){if(arcId0){return transform(x,y)}})}internal.forEachPoint(targetPoints,function(p){var p2=transform(p[0],p[1]);p[0]=p2[0];p[1]=p2[1]})};internal.getAffineAnchor=function(dataset,opts){var anchor,bounds;if(opts.anchor){anchor=opts.anchor}else{bounds=internal.getDatasetBounds(dataset);anchor=[bounds.centerX(),bounds.centerY()]}return anchor};internal.getAffineTransform=function(rotation,scale,shift,anchor){var angle=rotation*Math.PI/180;var a=scale*Math.cos(angle);var b=-scale*Math.sin(angle);return function(x,y){var x2=a*(x-anchor[0])-b*(y-anchor[1])+shift[0]+anchor[0];var y2=b*(x-anchor[0])+a*(y-anchor[1])+shift[1]+anchor[1];return[x2,y2]}};internal.applyArrayMask=function(destArr,maskArr){for(var i=0,n=destArr.length;i0){map[i]=arcs.size()+arcCount;n=data.nn[i];utils.copyElements(data.xx,data.ii[i],xx,vertexCount,n);utils.copyElements(data.yy,data.ii[i],yy,vertexCount,n);nn.push(n);vertexCount+=n;arcCount++}}internal.forEachArcId(shapes,function(id){var absId=absArcId(id);if(flags[absId]>0){return id<0?~map[absId]:map[absId]}});return internal.mergeArcs([arcs,new ArcCollection(nn,xx,yy)])};internal.divideFeaturesByType=function(shapes,properties,types){var typeSet=utils.uniq(types);var layers=typeSet.map(function(geoType){var p=[],s=[],dataNulls=0,rec;for(var i=0,n=shapes.length;i1)count++}return count};internal.getFeatureCount=function(lyr){var count=0;if(lyr.data){count=lyr.data.size()}else if(lyr.shapes){count=lyr.shapes.length}return count};internal.getLayerBounds=function(lyr,arcs){var bounds=null;if(lyr.geometry_type=="point"){bounds=internal.getPointBounds(lyr.shapes)}else if(lyr.geometry_type=="polygon"||lyr.geometry_type=="polyline"){bounds=internal.getPathBounds(lyr.shapes,arcs)}else{}return bounds};internal.getPathBounds=function(shapes,arcs){var bounds=new Bounds;internal.forEachArcId(shapes,function(id){arcs.mergeArcBounds(id,bounds)});return bounds};internal.replaceLayers=function(dataset,cutLayers,newLayers){var currLayers=dataset.layers.concat();utils.repeat(Math.max(cutLayers.length,newLayers.length),function(i){var cutLyr=cutLayers[i],newLyr=newLayers[i],idx=cutLyr?currLayers.indexOf(cutLyr):currLayers.length;if(cutLyr){currLayers.splice(idx,1)}if(newLyr){currLayers.splice(idx,0,newLyr)}});dataset.layers=currLayers};internal.isolateLayer=function(layer,dataset){return utils.defaults({layers:dataset.layers.filter(function(lyr){return lyr==layer})},dataset)};internal.transformPoints=function(dataset,f){if(dataset.arcs){dataset.arcs.transformPoints(f)}dataset.layers.forEach(function(lyr){if(internal.layerHasPoints(lyr)){internal.transformPointsInLayer(lyr,f)}})};internal.initDataTable=function(lyr){lyr.data=new DataTable(internal.getFeatureCount(lyr))};function NodeCollection(arcs,filter){if(utils.isArray(arcs)){arcs=new ArcCollection(arcs)}var arcData=arcs.getVertexData(),nn=arcData.nn,xx=arcData.xx,yy=arcData.yy,nodeData;Object.defineProperty(this,"arcs",{value:arcs});var toArray=this.toArray=function(){var chains=getNodeChains(),flags=new Uint8Array(chains.length),arr=[];utils.forEach(chains,function(nextIdx,thisIdx){var node,x,y,p;if(flags[thisIdx]==1)return;p=getEndpoint(thisIdx);if(!p)return;node={coordinates:p,arcs:[]};arr.push(node);while(flags[thisIdx]!=1){node.arcs.push(chainToArcId(thisIdx));flags[thisIdx]=1;thisIdx=chains[thisIdx]}});return arr};this.size=function(){return this.toArray().length};this.findDanglingEndpoints=function(){var chains=getNodeChains(),arr=[],p;for(var i=0,n=chains.length;i0){count+=this.detachAcyclicArcs()}return count};this.detachArc=function(arcId){unlinkDirectedArc(arcId);unlinkDirectedArc(~arcId)};this.forEachConnectedArc=function(arcId,cb){var nextId=nextConnectedArc(arcId),i=0;while(nextId!=arcId){cb(nextId,i++);nextId=nextConnectedArc(nextId)}};this.getConnectedArcs=function(arcId,filter){var ids=[];var nextId=nextConnectedArc(arcId);if(filter&&!filter(absArcId(arcId))){return ids}while(nextId!=arcId){if(!filter||filter(absArcId(nextId))){ids.push(nextId)}nextId=nextConnectedArc(nextId)}return ids};this.findDuplicateArc=function(arcId){var nextId=nextConnectedArc(arcId),match=arcId;while(nextId!=arcId){if(testArcMatch(arcId,nextId)){if(absArcId(nextId)>1;return chainId&1==1?absId:~absId}function arcToChainId(arcId){var fw=arcId>=0;return fw?arcId*2+1:~arcId*2}function getNodeChains(){if(!nodeData){nodeData=internal.findNodeTopology(arcs,filter);if(nn.length*2!=nodeData.chains.length)error("[NodeCollection] count error")}return nodeData.chains}function testArcMatch(a,b){var absA=a>=0?a:~a,absB=b>=0?b:~b,lenA=nn[absA];if(lenA<2){return false}if(lenA!=nn[absB])return false;if(testVertexMatch(a,b,-1)&&testVertexMatch(a,b,1)&&testVertexMatch(a,b,-2)){return true}return false}function testVertexMatch(a,b,i){var ai=arcs.indexOfVertex(a,i),bi=arcs.indexOfVertex(b,i);return xx[ai]==xx[bi]&&yy[ai]==yy[bi]}function nextConnectedArc(arcId){var chainId=arcToChainId(arcId),chains=getNodeChains(),nextChainId=chains[chainId];if(!(nextChainId>=0&&nextChainIdmaxArea){maxArea=bbArea;maxPath=path}return maxPath},null)};geom.getAvgPathXY=function(ids,arcs){var iter=arcs.getShapeIter(ids);if(!iter.hasNext())return null;var x0=iter.x,y0=iter.y,count=0,sumX=0,sumY=0;while(iter.hasNext()){count++;sumX+=iter.x;sumY+=iter.y}if(count===0||iter.x!==x0||iter.y!==y0){sumX+=x0;sumY+=y0;count++}return{x:sumX/count,y:sumY/count}};geom.testPointInPolygon=function(x,y,shp,arcs){var isIn=false,isOn=false;if(shp){shp.forEach(function(ids){var inRing=geom.testPointInRing(x,y,ids,arcs);if(inRing==1){isIn=!isIn}else if(inRing==-1){isOn=true}})}return isOn||isIn};geom.getPointToPathDistance=function(px,py,ids,arcs){return geom.getPointToPathInfo(px,py,ids,arcs).distance};geom.getPointToPathInfo=function(px,py,ids,arcs){var iter=arcs.getShapeIter(ids);var pPathSq=Infinity;var ax,ay,bx,by,axmin,aymin,bxmin,bymin,paSq,pbSq,abSq,pabSq;if(iter.hasNext()){ax=axmin=bxmin=iter.x;ay=aymin=bymin=iter.y;paSq=distanceSq(px,py,ax,ay)}while(iter.hasNext()){bx=iter.x;by=iter.y;pbSq=distanceSq(px,py,bx,by);abSq=distanceSq(ax,ay,bx,by);pabSq=apexDistSq(paSq,pbSq,abSq);if(pabSqax&&x>bx||y>ay&&y>by){}else if(x===ax||x===bx){if(x===ax&&x===bx){if(y==ay||y==by||y>ay!=y>by){hit=NaN}}else if(x===ax){if(y===ay){hit=NaN}else if(bxy){hit=yInt}else if(yInt==y){hit=NaN}}return hit};geom.getPathArea=function(ids,arcs){return(arcs.isPlanar()?geom.getPlanarPathArea:geom.getSphericalPathArea)(ids,arcs)};geom.getSphericalPathArea=function(ids,arcs){var iter=arcs.getShapeIter(ids),sum=0,started=false,deg2rad=Math.PI/180,x,y,xp,yp;while(iter.hasNext()){x=iter.x*deg2rad;y=Math.sin(iter.y*deg2rad);if(started){sum+=(x-xp)*(2+y+yp)}else{started=true}xp=x;yp=y}return sum/2*6378137*6378137};geom.getPlanarPathArea2=function(points){var sum=0,ax,ay,bx,by,dx,dy,p;for(var i=0,n=points.length;ixx[ids[i+1]]){swap(i,i+1)}}};internal.insertionSortSegmentIds=function(arr,ids,start,end){var id,id2;for(var j=start+2;j<=end;j+=2){id=ids[j];id2=ids[j+1];for(var i=j-2;i>=start&&arr[id]>2<<1]];while(i<=j){while(a[ids[i]]pivot)j-=2;if(i<=j){tmp=ids[i];ids[i]=ids[j];ids[j]=tmp;tmp=ids[i+1];ids[i+1]=ids[j+1];ids[j+1]=tmp;i+=2;j-=2}}if(j-lo<40)internal.insertionSortSegmentIds(a,ids,lo,j);else internal.quicksortSegmentIds(a,ids,lo,j);if(hi-i<40){internal.insertionSortSegmentIds(a,ids,i,hi);return}lo=i;j=hi}};function PolygonIndex(shape,arcs,opts){var data=arcs.getVertexData(),polygonBounds=arcs.getMultiShapeBounds(shape),boundsLeft,xminIds,xmaxIds,bucketCount,bucketOffsets,bucketWidth;init();this.pointInPolygon=function(x,y){if(!polygonBounds.containsPoint(x,y)){return false}var bucketId=getBucketId(x);var count=countCrosses(x,y,bucketId);if(bucketId>0){count+=countCrosses(x,y,bucketId-1)}count+=countCrosses(x,y,bucketCount);if(isNaN(count))return-1;return count%2==1?1:0};function countCrosses(x,y,bucketId){var offs=bucketOffsets[bucketId],count=0,xx=data.xx,yy=data.yy,n,a,b;if(bucketId==bucketCount){n=xminIds.length-offs}else{n=bucketOffsets[bucketId+1]-offs}for(var i=0;i=bucketCount)i=bucketCount-1;return i}function getBucketCount(segCount){var buckets=Math.pow(segCount,.75)/10;return Math.ceil(buckets)}function init(){var xx=data.xx,segCount=0,segId=0,bucketId=-1,prevBucketId,segments,head,tail,a,b,i,j,xmin,xmax;internal.forEachSegmentInShape(shape,arcs,function(){segCount++});segments=new Uint32Array(segCount*2);i=0;internal.forEachSegmentInShape(shape,arcs,function(a,b,xx,yy){segments[i++]=a;segments[i++]=b});internal.sortSegmentIds(xx,segments);xminIds=new Uint32Array(segCount);xmaxIds=new Uint32Array(segCount);bucketCount=getBucketCount(segCount);bucketOffsets=new Uint32Array(bucketCount+1);boundsLeft=xx[segments[0]];bucketWidth=(xx[segments[segments.length-2]]-boundsLeft)/bucketCount;head=0;tail=segCount-1;while(segIdprevBucketId){prevBucketId++;bucketOffsets[prevBucketId]=head}if(xmax-xmin>=0===false)error("Invalid segment");if(getBucketId(xmax)-bucketId>1){xminIds[tail]=a;xmaxIds[tail]=b;tail--}else{xminIds[head]=a;xmaxIds[head]=b;head++}segId++}bucketOffsets[bucketCount]=head;if(head!=tail+1)error("Segment indexing error")}}internal.getBoundsSearchFunction=function(boxes){var index,Flatbush;if(!boxes.length){return function(){return[]}}Flatbush=require("flatbush");index=new Flatbush(boxes.length);boxes.forEach(function(ring){var b=ring.bounds;index.add(b.xmin,b.ymin,b.xmax,b.ymax)});index.finish();function idxToObj(i){return boxes[i]}return function(a,b,c,d){return index.search(a,b,c,d).map(idxToObj)}};function PathIndex(shapes,arcs){var boundsQuery=internal.getBoundsSearchFunction(getRingData(shapes,arcs));var totalArea=internal.getPathBounds(shapes,arcs).area();function getRingData(shapes,arcs){var arr=[];shapes.forEach(function(shp,shpId){var n=shp?shp.length:0;for(var i=0;i6){index=new PolygonIndex([pathIds],arcs)}cands.forEach(function(cand){var p=getTestPoint(cand.ids);var isEnclosed=b.containsPoint(p[0],p[1])&&(index?index.pointInPolygon(p[0],p[1]):geom.testPointInRing(p[0],p[1],pathIds,arcs));if(isEnclosed){paths.push(cand.ids)}});return paths.length>0?paths:null};this.findPathsInsideShape=function(shape){var paths=[];shape.forEach(function(ids){var enclosed=this.findEnclosedPaths(ids);if(enclosed){paths=xorArrays(paths,enclosed)}},this);return paths.length>0?paths:null};function testPointInRing(p,cand){if(!cand.bounds.containsPoint(p[0],p[1]))return false;if(!cand.index&&cand.bounds.area()>totalArea*.01){cand.index=new PolygonIndex([cand.ids],arcs)}return cand.index?cand.index.pointInPolygon(p[0],p[1]):geom.testPointInRing(p[0],p[1],cand.ids,arcs)}function testPointInRings(p,cands){var isOn=false,isIn=false;cands.forEach(function(cand){var inRing=testPointInRing(p,cand);if(inRing==-1){isOn=true}else if(inRing==1){isIn=!isIn}});return isOn||isIn}function groupItemsByShapeId(items){var groups=[],group,item;if(items.length>0){items.sort(function(a,b){return a.id-b.id});for(var i=0;i0?buffer:0;var x=p[0],y=p[1];return boundsQuery(p[0]-b,p[1]-b,p[0]+b,p[1]+b)}function getTestPoint(ring){var arcId=ring[0],p0=arcs.getVertex(arcId,0),p1=arcs.getVertex(arcId,1);return[(p0.x+p1.x)/2,(p0.y+p1.y)/2]}function xorArrays(a,b){var xor=[];a.forEach(function(el){if(b.indexOf(el)==-1)xor.push(el)});b.forEach(function(el){if(xor.indexOf(el)==-1)xor.push(el)});return xor}}geom.segmentIntersection=segmentIntersection;geom.segmentHit=segmentHit;geom.orient2D=orient2D;geom.outsideRange=outsideRange;geom.findClosestPointOnSeg=findClosestPointOnSeg;function segmentIntersection(ax,ay,bx,by,cx,cy,dx,dy){var hit=segmentHit(ax,ay,bx,by,cx,cy,dx,dy);return hit?findSegmentIntersection(ax,ay,bx,by,cx,cy,dx,dy):null}function findSegmentIntersection(ax,ay,bx,by,cx,cy,dx,dy){var den=determinant2D(bx-ax,by-ay,dx-cx,dy-cy);var m,p;if(den===0){return collinearIntersection(ax,ay,bx,by,cx,cy,dx,dy)}if(endpointHit(ax,ay,bx,by,cx,cy,dx,dy)){return null}if(Math.abs(den)<1e-18){return findEndpointInRange(ax,ay,bx,by,cx,cy,dx,dy)}m=orient2D(cx,cy,dx,dy,ax,ay)/den;p=[ax+m*(bx-ax),ay+m*(by-ay)];snapIntersectionPoint(p,ax,ay,bx,by,cx,cy,dx,dy);clampIntersectionPoint(p,ax,ay,bx,by,cx,cy,dx,dy);return p}function findClosestPointOnSeg(px,py,ax,ay,bx,by){var dx=bx-ax,dy=by-ay,dotp=(px-ax)*dx+(py-ay)*dy,abSq=dx*dx+dy*dy,k=abSq===0?-1:dotp/abSq,eps=.1,p;if(k<=eps){p=[ax,ay]}else if(k>=1-eps){p=[bx,by]}else{p=[ax+k*dx,ay+k*dy]}return p}function findEndpointInRange(ax,ay,bx,by,cx,cy,dx,dy){var p=null;if(!outsideRange(ax,cx,dx)&&!outsideRange(ay,cy,dy)){p=[ax,ay]}else if(!outsideRange(bx,cx,dx)&&!outsideRange(by,cy,dy)){p=[bx,by]}else if(!outsideRange(cx,ax,bx)&&!outsideRange(cy,ay,by)){p=[cx,cy]}else if(!outsideRange(dx,ax,bx)&&!outsideRange(dy,ay,by)){p=[dx,dy]}else{debug("[findEndpointInRange()] error")}return p}function snapIfCloser(p,minDist,x,y,x2,y2){var dist=distance2D(x,y,x2,y2);if(distc}else if(b>c){out=a>b||a1e-15){debug("[clampToCloseRange()] large clamping interval",a,b,c)}a=lim}return a}function determinant2D(a,b,c,d){return a*d-b*c}function orient2D(ax,ay,bx,by,cx,cy){return determinant2D(ax-cx,ay-cy,bx-cx,by-cy)}function segmentHit(ax,ay,bx,by,cx,cy,dx,dy){return orient2D(ax,ay,bx,by,cx,cy)*orient2D(ax,ay,bx,by,dx,dy)<=0&&orient2D(cx,cy,dx,dy,ax,ay)*orient2D(cx,cy,dx,dy,bx,by)<=0}function inside(x,minX,maxX){return x>minX&&xmaxX-minX,coords=[];if(useY?inside(ay,minY,maxY):inside(ax,minX,maxX)){coords.push(ax,ay)}if(useY?inside(by,minY,maxY):inside(bx,minX,maxX)){coords.push(bx,by)}if(useY?inside(cy,minY,maxY):inside(cx,minX,maxX)){coords.push(cx,cy)}if(useY?inside(dy,minY,maxY):inside(dx,minX,maxX)){coords.push(dx,dy)}if(coords.length!=2&&coords.length!=4){coords=null;debug("Invalid collinear segment intersection",coords)}else if(coords.length==4&&coords[0]==coords[2]&&coords[1]==coords[3]){coords=null}return coords}function endpointHit(ax,ay,bx,by,cx,cy,dx,dy){return ax==cx&&ay==cy||ax==dx&&ay==dy||bx==cx&&by==cy||bx==dx&&by==dy}internal.getIntersectionPoints=function(intersections){return intersections.map(function(obj){return[obj.x,obj.y]})};internal.findSegmentIntersections=function(){var buf;function getUint32Array(count){var bytes=count*4;if(!buf||buf.byteLength1&&yrange>0?multiStripeId:singleStripeId,i,j;function multiStripeId(y){return Math.floor((stripeCount-1)*(y-ymin)/yrange)}function singleStripeId(y){return 0}arcs.forEachSegment(function(id1,id2,xx,yy){var s1=stripeId(yy[id1]),s2=stripeId(yy[id2]);while(true){stripeSizes[s1]=stripeSizes[s1]+2;if(s1==s2)break;s1+=s2>s1?1:-1}});var stripeData=getUint32Array(utils.sum(stripeSizes)),offs=0;var stripes=[];utils.forEach(stripeSizes,function(stripeSize){var start=offs;offs+=stripeSize;stripes.push(stripeData.subarray(start,offs))});utils.initializeArray(stripeSizes,0);arcs.forEachSegment(function(id1,id2,xx,yy){var s1=stripeId(yy[id1]),s2=stripeId(yy[id2]),count,stripe;while(true){count=stripeSizes[s1];stripeSizes[s1]=count+2;stripe=stripes[s1];stripe[count]=id1;stripe[count+1]=id2;if(s1==s2)break;s1+=s2>s1?1:-1}});var raw=arcs.getVertexData(),intersections=[],arr;for(i=0;i0?stripes:1};internal.calcSegmentIntersectionStripeCount_old=function(arcs){var yrange=arcs.getBounds().height(),segLen=internal.getAvgSegment2(arcs)[1],count=1;if(segLen>0&&yrange>0){count=Math.ceil(yrange/segLen/20)}return count||1};internal.intersectSegments=function(ids,xx,yy){var lim=ids.length-2,intersections=[];var s1p1,s1p2,s2p1,s2p2,s1p1x,s1p2x,s2p1x,s2p2x,s1p1y,s1p2y,s2p1y,s2p2y,hit,seg1,seg2,i,j;internal.sortSegmentIds(xx,ids);i=0;while(i=s2p1y){if(s1p1y>s2p2y&&s1p2y>s2p1y&&s1p2y>s2p2y)continue}else{if(s1p1y0?[path]:[]}function dividePathAtNode(path,enterId){var nodeIds=nodes.getConnectedArcs(enterId),exitIds=[],outId;for(var i=0;i1){return internal.splitPathByIds(path,exitIds).reduce(accumulatePaths,null)}return null}function accumulatePaths(memo,path){var subPaths=dividePath(path);return memo?memo.concat(subPaths):subPaths}function contains(arr,el){for(var i=0,n=arr.length;i0){subPaths.push(path.slice(0,indexes[0]))}for(var i=0,n=indexes.length;iids.length){subPaths[0]=subPaths[0].concat(subPaths.pop())}return subPaths};internal.getHoleDivider=function(nodes,spherical){var split=internal.getSelfIntersectionSplitter(nodes);return function(rings,cw,ccw){var pathArea=spherical?geom.getSphericalPathArea:geom.getPlanarPathArea;internal.forEachShapePart(rings,function(ringIds){var splitRings=split(ringIds);if(splitRings.length===0){debug("[getRingDivider()] Defective path:",ringIds)}splitRings.forEach(function(ringIds,i){var ringArea=pathArea(ringIds,nodes.arcs);if(ringArea>0){cw.push(ringIds)}else if(ringArea<0){ccw.push(ringIds)}})})}};internal.cleanShapes=function(shapes,arcs,type){for(var i=0,n=shapes.length;i0?path.filter(function(id){return id!==null}):path};internal.removeSpikesInPath=function(ids){var n=ids.length;if(n>=2){if(ids[0]==~ids[n-1]){ids.pop();ids.shift()}else{for(var i=1;i0?1:-1,mainRing;var maxArea=splitIds.reduce(function(max,ringIds,i){var pathArea=geom.getPlanarPathArea(ringIds,nodes.arcs)*sign;if(pathArea>max){mainRing=ringIds;max=pathArea}return max},0);if(mainRing){cleanedPolygon.push(mainRing)}}});return cleanedPolygon.length>0?cleanedPolygon:null}};function Matrix2D(){this.a=1;this.c=0;this.tx=0;this.b=0;this.d=1;this.ty=0}Matrix2D.prototype.transformXY=function(x,y,p){p=p||{};p.x=x*this.a+y*this.c+this.tx;p.y=x*this.b+y*this.d+this.ty;return p};Matrix2D.prototype.translate=function(dx,dy){this.tx+=dx;this.ty+=dy};Matrix2D.prototype.rotate=function(q,x,y){var cos=Math.cos(q);var sin=Math.sin(q);x=x||0;y=y||0;this.a=cos;this.c=-sin;this.b=sin;this.d=cos;this.tx+=x-x*cos+y*sin;this.ty+=y-x*sin-y*cos};Matrix2D.prototype.scale=function(sx,sy){this.a*=sx;this.c*=sx;this.b*=sy;this.d*=sy};function getAlbersUSA(opts){return function(){return AlbersNYT(opts||{})}}function AlbersNYT(opts){var mproj=require("mproj");var lcc=mproj.pj_init("+proj=lcc +lon_0=-96 +lat_0=39 +lat_1=33 +lat_2=45");var aea=mproj.pj_init("+proj=aea +lon_0=-96 +lat_0=37.5 +lat_1=29.5 +lat_2=45.5");var mixed=new MixedProjection(aea).addFrame(lcc,{lam:-152,phi:63},{lam:-115,phi:27},6e6,3e6,.31,29.2).addFrame(lcc,{lam:-157,phi:20.9},{lam:-106.6,phi:28.2},3e6,5e6,.9,40);if(opts.PR){mixed.addFrame(lcc,{lam:-66.431,phi:18.228},{lam:-76.5,phi:26.3},1e6,1e6,1,-16)}return mixed}function MixedProjection(proj){var frames=[];var mixed=utils.extend({},proj);var mproj=require("mproj");mixed.addFrame=function(proj2,ctr1,ctr2,frameWidth,frameHeight,scale,rotation){var m=new Matrix2D,a2=proj.a*2,xy1=toRawXY(ctr1,proj),xy2=toRawXY(ctr2,proj),bbox=[xy1.x-frameWidth/a2,xy1.y-frameHeight/a2,xy1.x+frameWidth/a2,xy1.y+frameHeight/a2];m.rotate(rotation*Math.PI/180,xy1.x,xy1.y);m.scale(scale,scale);m.transformXY(xy1.x,xy1.y,xy1);m.translate(xy2.x-xy1.x,xy2.y-xy1.y);frames.push({bbox:bbox,matrix:m,projection:proj2});return this};function toRawXY(lp,P){var xy=mproj.pj_fwd_deg(lp,P);return{x:(xy.x/P.fr_meter-P.x0)/P.a,y:(xy.y/P.fr_meter-P.y0)/P.a}}mixed.fwd=function(lp,xy){var lam=lp.lam,phi=lp.phi,frame,bbox;proj.fwd(lp,xy);for(var i=0,n=frames.length;i=bbox[0]&&xy.x<=bbox[2]&&xy.y>=bbox[1]&&xy.y<=bbox[3]){frame.projection.fwd({lam:lam,phi:phi},xy);frame.matrix.transformXY(xy.x,xy.y,xy);break}}};return mixed}internal.projectionIndex={robinson:"+proj=robin +datum=WGS84",webmercator:"+proj=merc +a=6378137 +b=6378137",wgs84:"+proj=longlat +datum=WGS84",albersusa:getAlbersUSA(),albersusa2:getAlbersUSA({PR:true})};internal.initProjLibrary=function(opts,done){done()};internal.findProjLibs=function(str){var matches=str.match(/\b(esri|epsg|nad83|nad27)(?=:[0-9]+\b)/gi)||[];return utils.uniq(matches.map(function(str){return str.toLowerCase()}))};internal.getProjTransform=function(src,dest){var mproj=require("mproj");var clampSrc=internal.isLatLngCRS(src);return function(x,y){var xy;if(clampSrc){if(x<-180)x=-180;else if(x>180)x=180}xy=[x,y];mproj.pj_transform_point(src,dest,xy);return xy}};internal.getProjTransform2=function(src,dest){var mproj=require("mproj"),xx=[0],yy=[0],preK=src.is_latlong?mproj.internal.DEG_TO_RAD:1,postK=dest.is_latlong?mproj.internal.RAD_TO_DEG:1,clampSrc=internal.isLatLngCRS(src);return function(x,y){var fail;if(clampSrc){if(x<-180)x=-180;else if(x>180)x=180}xx[0]=x*preK;yy[0]=y*preK;try{mproj.pj_transform(src,dest,xx,yy);fail=xx[0]==Infinity}catch(e){fail=true}return fail?null:[xx[0]*postK,yy[0]*postK]}};internal.toLngLat=function(xy,P){var proj;if(isLatLngCRS(P)){return xy.concat()}proj=internal.getProjInfo(P,internal.getCRS("wgs84"));return proj(xy)};internal.getProjInfo=function(dataset){var P,info;try{P=internal.getDatasetCRS(dataset);if(P){info=internal.crsToProj4(P)}}catch(e){}return info||"[unknown]"};internal.crsToProj4=function(P){return require("mproj").internal.get_proj_defn(P)};internal.crsToPrj=function(P){var wkt;try{wkt=require("mproj").internal.wkt_from_proj4(P)}catch(e){}return wkt};internal.crsAreEqual=function(a,b){var str=internal.crsToProj4(a);return!!str&&str==internal.crsToProj4(b)};internal.getProjDefn=function(str){var mproj=require("mproj");var defn;if(str in internal.projectionIndex){defn=internal.projectionIndex[str]}else if(str in mproj.internal.pj_list){defn="+proj="+str}else if(/^\+/.test(str)){defn=str}else{stop("Unknown projection definition:",str)}return defn};internal.getCRS=function(str){var defn=internal.getProjDefn(str);var P;if(typeof defn=="function"){P=defn()}else{try{P=require("mproj").pj_init(defn)}catch(e){stop("Unable to use projection",defn,"("+e.message+")")}}return P||null};internal.setDatasetCRS=function(dataset,info){dataset.info=dataset.info||{};dataset.info.crs=info.crs;dataset.info.prj=info.prj};internal.getDatasetCRS=function(dataset){var info=dataset.info||{},P=info.crs;if(!P&&info.prj){P=internal.parsePrj(info.prj)}if(!P&&internal.probablyDecimalDegreeBounds(internal.getDatasetBounds(dataset))){P=internal.getCRS("wgs84")}return P};internal.getScaleFactorAtXY=function(x,y,crs){var proj=require("mproj");var dist=1;var lp=proj.pj_inv_deg({x:x,y:y},crs);var lp2=proj.pj_inv_deg({x:x+dist,y:y},crs);var k=dist/greatCircleDistance(lp.lam,lp.phi,lp2.lam,lp2.phi);return k};internal.isProjectedCRS=function(P){return P&&P.is_latlong||false};internal.isLatLngCRS=function(P){return P&&P.is_latlong||false};internal.printProjections=function(){var index=require("mproj").internal.pj_list;var msg="Proj4 projections\n";Object.keys(index).sort().forEach(function(id){msg+=" "+utils.rpad(id,7," ")+" "+index[id].name+"\n"});msg+="\nAliases";Object.keys(internal.projectionIndex).sort().forEach(function(n){msg+="\n "+n});message(msg)};internal.translatePrj=function(str){var proj4;try{proj4=require("mproj").internal.wkt_to_proj4(str)}catch(e){stop("Unusable .prj file ("+e.message+")")}return proj4};internal.parsePrj=function(str){return internal.getCRS(internal.translatePrj(str))};var UNITS_LOOKUP={m:"meters",meter:"meters",meters:"meters",mi:"miles",mile:"miles",miles:"miles",km:"kilometers",ft:"feet",feet:"feet"};var TO_METERS={meters:1,kilometers:1e3,feet:.3048,miles:1609.344};internal.getIntervalConversionFactor=function(paramUnits,crs){var fromParam=0,fromCRS=0,k;if(crs){if(crs.is_latlong){fromCRS=1}else if(crs.to_meter>0){fromCRS=crs.to_meter}else{error("Invalid CRS")}}if(paramUnits){fromParam=TO_METERS[paramUnits];if(!fromParam)error("Unknown units:",paramUnits)}if(fromParam&&fromCRS){k=fromParam/fromCRS}else if(!fromParam&&!fromCRS){k=1}else if(fromParam&&!fromCRS){stop("Unable to convert",paramUnits,"to unknown coordinates")}else if(!fromParam&&fromCRS){k=1/fromCRS}return k};internal.parseMeasure=function(m){var s=utils.isString(m)?m:"";var match=/(sq|)([a-z]+)(2|)$/i.exec(s);var o={};if(utils.isNumber(m)){o.value=m}else if(s===""){o.value=NaN}else if(match){o.units=UNITS_LOOKUP[match[2].toLowerCase()];if(!o.units){stop("Unknown units:",match[0])}o.areal=!!(match[1]||match[3]);o.value=Number(s.substring(0,s.length-match[0].length))}else{o.value=Number(s)}if(isNaN(o.value)){stop("Invalid parameter:",m)}return o};internal.convertAreaParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);return o.value*k*k};internal.convertDistanceParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);if(o.areal){stop("Expected a distance, received an area:",opt)}return o.value*k};internal.convertIntervalParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);if(o.units&&crs&&crs.is_latlong){stop("Parameter does not support distance units with latlong datasets")}if(o.areal){stop("Expected a distance, received an area:",opt)}return o.value*k};internal.convertIntervalPair=function(opt,crs){var a,b;if(!Array.isArray(opt)||opt.length!=2){stop("Expected two distance parameters, received",opt)}a=internal.parseMeasure(opt[0]);b=internal.parseMeasure(opt[1]);if(a.units&&!b.units||b.units&&!a.units){stop("Both parameters should have units:",opt)}return[internal.convertIntervalParam(opt[0],crs),internal.convertIntervalParam(opt[1],crs)]};internal.convertFourSides=function(opt,crs,bounds){var arr=opt.split(",");if(arr.length==1){arr=[arr[0],arr[0],arr[0],arr[0]]}else if(arr.length!=4){stop("Expected a distance parameter or a list of four params")}return arr.map(function(param,i){var tmp;if(param.indexOf("%")>0){tmp=parseFloat(param)/100||0;return tmp*(i==1||i==3?bounds.height():bounds.width())}return internal.convertIntervalParam(opt,crs)})};internal.addIntersectionCuts=function(dataset,_opts){var opts=_opts||{};var arcs=dataset.arcs;var snapDist,snapCount,dupeCount,nodes;if(opts.snap_interval){snapDist=internal.convertIntervalParam(opts.snap_interval,internal.getDatasetCRS(dataset))}else{snapDist=internal.getHighPrecisionSnapInterval(arcs)}debug("addIntersectionCuts() snap dist:",snapDist);arcs.flatten();snapCount=opts.no_snap?0:internal.snapCoordsByInterval(arcs,snapDist);dupeCount=arcs.dedupCoords();if(snapCount>0||dupeCount>0){api.buildTopology(dataset)}internal.cutPathsAtIntersections(dataset);dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.cleanShapes(lyr.shapes,arcs,lyr.geometry_type)}});nodes=internal.cleanArcReferences(dataset);return nodes};internal.cleanArcReferences=function(dataset){var nodes=new NodeCollection(dataset.arcs);var map=internal.findDuplicateArcs(nodes);var dropCount;if(map){internal.replaceIndexedArcIds(dataset,map)}dropCount=internal.deleteUnusedArcs(dataset);if(dropCount>0){nodes=new NodeCollection(dataset.arcs)}return nodes};internal.replaceIndexedArcIds=function(dataset,map){var remapPath=function(ids){var arcId,absId,id2;for(var i=0;i0?map:null};internal.deleteUnusedArcs=function(dataset){var test=internal.getArcPresenceTest2(dataset.layers,dataset.arcs);var count1=dataset.arcs.size();var map=dataset.arcs.deleteArcs(test);var count2=dataset.arcs.size();var deleteCount=count1-count2;if(deleteCount>0){internal.replaceIndexedArcIds(dataset,map)}return deleteCount};internal.getDividedArcUpdater=function(map,arcCount){return function(ids){var ids2=[];for(var j=0;j=map.length-1?arcCount:map[absId+1])-1,id2;do{if(rev){id2=~max;max--}else{id2=min;min++}ids.push(id2)}while(max-min>=0)}};internal.divideArcs=function(arcs){var points=internal.findClippingPoints(arcs);var map=internal.insertCutPoints(points,arcs);arcs.dedupCoords();return map};internal.cutPathsAtIntersections=function(dataset){var map=internal.divideArcs(dataset.arcs);internal.remapDividedArcs(dataset,map)};internal.remapDividedArcs=function(dataset,map){var remapPath=internal.getDividedArcUpdater(map,dataset.arcs.size());dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.editShapes(lyr.shapes,remapPath)}})};internal.insertCutPoints=function(unfilteredPoints,arcs){var data=arcs.getVertexData(),xx0=data.xx,yy0=data.yy,nn0=data.nn,i0=0,i1=0,nn1=[],srcArcTotal=arcs.size(),map=new Uint32Array(srcArcTotal),points=internal.filterSortedCutPoints(internal.sortCutPoints(unfilteredPoints,xx0,yy0),arcs),destPointTotal=arcs.getPointCount()+points.length*2,xx1=new Float64Array(destPointTotal),yy1=new Float64Array(destPointTotal),n0,n1,arcLen,p;points.reverse();p=points.pop();for(var srcArcId=0,destArcId=0;srcArcIdi+1){error("Out-of-sequence arc ids:",i,j)}if(geom.outsideRange(x,ix,jx)||geom.outsideRange(y,iy,jy)){debug("[getCutPoint()] Coordinate range error");return null}return{x:x,y:y,i:i}};internal.sortCutPoints=function(points,xx,yy){points.sort(function(a,b){return a.i-b.i||Math.abs(a.x-xx[a.i])-Math.abs(b.x-xx[b.i])||Math.abs(a.y-yy[a.i])-Math.abs(b.y-yy[b.i])});return points};internal.filterSortedCutPoints=function(points,arcs){var filtered=[],pointId=0;arcs.forEach2(function(i,n,xx,yy){var j=i+n-1,x0=xx[i],y0=yy[i],xn=xx[j],yn=yy[j],p,pp;while(pointId0){toId=ids[0];ito=arcs.indexOfVertex(toId,-2)}for(j=1;j0){code=1}else if(angleB>0){code=2}else{code=0}}else if(angleA0){code=2}else if(orient<0){code=1}else{code=0}return code};internal.setBits=function(src,flags,mask){return src&~mask|flags&mask};internal.andBits=function(src,flags,mask){return src&(~mask|flags)};internal.setRouteBits=function(bits,id,flags){var abs=absArcId(id),mask;if(abs==id){mask=~3}else{mask=~48;bits=bits<<4}flags[abs]&=bits|mask};internal.getRouteBits=function(id,flags){var abs=absArcId(id),bits=flags[abs];if(abs!=id)bits=bits>>4;return bits&7};internal.openArcRoutes=function(arcIds,arcs,flags,fwd,rev,dissolve,orBits){internal.forEachArcId(arcIds,function(id){var isInv=id<0,absId=isInv?~id:id,currFlag=flags[absId],openFwd=isInv?rev:fwd,openRev=isInv?fwd:rev,newFlag=currFlag;if(arcs.arcIsLollipop(id)){debug("lollipop");newFlag=0}else{if(openFwd){newFlag|=3}if(openRev){newFlag|=48}if(orBits>0){newFlag|=orBits}if(dissolve&&(newFlag&34)===34){newFlag&=~17}}flags[absId]=newFlag})};internal.closeArcRoutes=function(arcIds,arcs,flags,fwd,rev,hide){internal.forEachArcId(arcIds,function(id){var isInv=id<0,absId=isInv?~id:id,currFlag=flags[absId],mask=255,closeFwd=isInv?rev:fwd,closeRev=isInv?fwd:rev;if(closeFwd){if(hide)mask&=~1;mask^=2}if(closeRev){if(hide)mask&=~16;mask^=32}flags[absId]=currFlag&mask})};internal.getPathFinder=function(nodes,useRoute,routeIsUsable){var testArc=null;if(routeIsUsable){testArc=function(arcId){return routeIsUsable(~arcId)}}function getNextArc(prevId){return~internal.getRightmostArc(prevId,nodes,testArc)}return function(startId){var path=[],nextId,msg,candId=startId;do{if(useRoute(candId)){path.push(candId);nextId=candId;candId=getNextArc(nextId)}else{return null}if(candId==~nextId){debug("Pathfinder warning: dead-end path");return null}}while(candId!=startId);return path.length===0?null:path}};internal.getRingIntersector=function(nodes,type,flags){var arcs=nodes.arcs;var findPath=internal.getPathFinder(nodes,useRoute,routeIsActive);flags=flags||new Uint8Array(arcs.size());return function(rings){var dissolve=type=="dissolve",openFwd=true,openRev=type=="flatten",output;if(rings.length>0){output=[];internal.openArcRoutes(rings,arcs,flags,openFwd,openRev,dissolve);internal.forEachShapePart(rings,function(ids){var path;for(var i=0,n=ids.length;i0?"1":"0";if(i<7)str+=" ";if(i==3)str+=" "}return str}};internal.getLayerDataTable=function(lyr){var data=lyr.data;if(!data){data=lyr.data=new DataTable(lyr.shapes?lyr.shapes.length:0)}return data};internal.copyRecord=function(o){var o2={},key,val;if(!o)return null;for(key in o){if(o.hasOwnProperty(key)){val=o[key];o2[key]=val&&val.constructor===Object?internal.copyRecord(val):val}}return o2};internal.insertFieldValues=function(lyr,fieldName,values){var size=internal.getFeatureCount(lyr)||values.length,table=lyr.data=lyr.data||new DataTable(size),records=table.getRecords();internal.insertFieldValues2(fieldName,table.getRecords(),values)};internal.insertFieldValues2=function(key,records,values){var n=records.length,i,rec,val;for(i=0,n=records.length;i-1||utils.difference(fields,list).length===0};internal.getColumnType=function(key,records){var type=null,rec;for(var i=0,n=records.length;i=0){buf=buf.slice(start,end)}return internal.decodeString(buf,enc)};internal.getNativeEncoder=function(enc){var encoder=null;enc=internal.standardizeEncodingName(enc);if(enc!="utf8"){return null}if(typeof TextEncoder!="undefined"){encoder=new TextEncoder(enc)}return function(str){return encoder?Buffer.from(encoder.encode(str).buffer):utils.createBuffer(str,enc)}};internal.encodeString=function(){var iconv=require("iconv-lite");var toUtf8=internal.getNativeEncoder("utf8");return function(str,enc){var buf;if(internal.encodingIsUtf8(enc)){buf=toUtf8(str)}else{buf=iconv.encode(str,enc)}return buf}}();internal.getNativeDecoder=function(enc){var decoder=null;enc=internal.standardizeEncodingName(enc);if(enc!="utf8"){return null}if(typeof TextDecoder!="undefined"){decoder=new TextDecoder(enc)}return function(buf){return decoder?decoder.decode(buf):buf.toString(enc)}};internal.decodeString=function(){var iconv=require("iconv-lite");var fromUtf8=internal.getNativeDecoder("utf8");return function(buf,enc){var str;if(internal.encodingIsUtf8(enc)){str=fromUtf8(buf)}else{str=iconv.decode(buf,enc)}return str}}();internal.encodingIsSupported=function(raw){var enc=internal.standardizeEncodingName(raw);return utils.contains(internal.getEncodings(),enc)};internal.trimBOM=function(str){if(str.charCodeAt(0)==65279){str=str.substr(1)}return str};internal.printEncodings=function(){var encodings=internal.getEncodings().filter(function(name){return!/^(_|cs|internal|ibm|isoir|singlebyte|table|[0-9]|l[0-9]|windows)/.test(name)});encodings.sort();message("Supported encodings:\n"+internal.formatStringsAsGrid(encodings))};internal.detectEncoding=function(samples){var encoding=null;if(internal.looksLikeUtf8(samples)){encoding="utf8"}else if(internal.looksLikeWin1252(samples)){encoding="win1252"}return encoding};internal.decodeSamples=function(enc,samples){return samples.map(function(buf){return internal.decodeString(buf,enc).trim()}).join("\n")};internal.formatSamples=function(str){return internal.formatStringsAsGrid(str.split("\n"))};internal.looksLikeWin1252=function(samples){var ascii="abcdefghijklmnopqrstuvwxyz0123456789.'\"?+-\n,:;/|_$% ",extended="\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf8\xf9\xfa\xfb\xfc\xfd\xff\xb0\u2013\xb1\u2019\u2018",str=internal.decodeSamples("win1252",samples),asciiScore=internal.getCharScore(str,ascii),totalScore=internal.getCharScore(str,extended+ascii);return totalScore>.97&&asciiScore>.7};internal.looksLikeUtf8=function(samples){var str=internal.decodeSamples("utf8",samples);return str.indexOf("\ufffd")==-1};internal.replaceUtf8ReplacementChar=function(buf){var isCopy=false;for(var i=0,n=buf.length;i0||c!=32){buf[count++]=c}}while(count>0&&buf[count-1]==32){count--}return count};Dbf.getStringReader=function(arg){var encoding=arg||"ascii";var slug=internal.standardizeEncodingName(encoding);var buf=utils.createBuffer(256);var inNode=typeof module=="object";if(inNode&&(slug=="utf8"||slug=="ascii")){return function(bin,size){var n=Dbf.readStringBytes(bin,size,buf);return buf.toString(slug,0,n)}}return function readEncodedString(bin,size){var n=Dbf.readStringBytes(bin,size,buf),str="",i,c;for(i=0;i127){return internal.bufferToString(buf,encoding,0,n)}str+=String.fromCharCode(c)}return str}};Dbf.bufferContainsHighBit=function(buf,n){for(var i=0;i=128)return true}return false};Dbf.getNumberReader=function(){var read=Dbf.getStringReader("ascii");return function readNumber(bin,size){var str=read(bin,size);var val;if(str.indexOf(",")>=0){str=str.replace(",",".")}val=parseFloat(str);return isNaN(val)?null:val}};Dbf.readInt=function(bin,size){return bin.readInt32()};Dbf.readBool=function(bin,size){var c=bin.readCString(size),val=null;if(/[ty]/i.test(c))val=true;else if(/[fn]/i.test(c))val=false;return val};Dbf.readDate=function(bin,size){var str=bin.readCString(size),yr=str.substr(0,4),mo=str.substr(4,2),day=str.substr(6,2);return new Date(Date.UTC(+yr,+mo-1,+day))};function DbfReader(src,encodingArg){if(utils.isString(src)){error("[DbfReader] Expected a buffer, not a string")}var bin=new BinArray(src);var header=readHeader(bin);var encoding=encodingArg||null;this.size=function(){return header.recordCount};this.readRow=function(i){return getRecordReader(header.fields)(i)};this.getFields=getFieldNames;this.getBuffer=function(){return bin.buffer()};this.deleteField=function(f){header.fields=header.fields.filter(function(field){return field.name!=f})};this.readRows=function(){var reader=getRecordReader(header.fields);var data=[];for(var r=0,n=this.size();reofOffs){stop("Invalid DBF file: encountered end-of-file while reading data")}bin.position(fieldOffs);values[c]=readers[c](bin,field.size)}return create.apply(null,values)}}function getFieldReader(f){var type=f.type,r=null;if(type=="I"){r=Dbf.readInt}else if(type=="F"||type=="N"){r=Dbf.getNumberReader()}else if(type=="L"){r=Dbf.readBool}else if(type=="D"){r=Dbf.readDate}else if(type=="C"){r=Dbf.getStringReader(getEncoding())}else{message('Field "'+field.name+'" has an unsupported type ('+field.type+") -- converting to null values");r=function(){return null}}return r}function findStringEncoding(){var ldid=header.ldid,codepage=Dbf.lookupCodePage(ldid),samples=getNonAsciiSamples(50),only7bit=samples.length===0,encoding,msg;if(codepage&&ldid!=87){encoding=codepage}else if(only7bit){encoding="ascii"}if(!encoding){encoding=internal.detectEncoding(samples)}if(encoding&&samples.length>0){msg=internal.decodeSamples(encoding,samples);msg=internal.formatStringsAsGrid(msg.split("\n"));msg="\nSample text containing non-ascii characters:"+(msg.length>60?"\n":"")+msg;msg="Detected DBF text encoding: "+encoding+(encoding in Dbf.encodingNames?" ("+Dbf.encodingNames[encoding]+")":"")+msg;message(msg)}return encoding}function getNonAsciiSamples(size){var samples=[];var stringFields=header.fields.filter(function(f){return f.type=="C"});var buf=utils.createBuffer(256);var index={};var f,chars,sample,hash;for(var r=0,rows=header.recordCount;r=size)break;f=stringFields[c];bin.position(getRowOffset(r)+f.columnOffset);chars=Dbf.readStringBytes(bin,f.size,buf);if(chars>0&&Dbf.bufferContainsHighBit(buf,chars)){sample=utils.createBuffer(buf.slice(0,chars));hash=sample.toString("hex");if(hash in index===false){index[hash]=true;samples.push(sample)}}}}return samples}}Dbf.MAX_STRING_LEN=254;function BufferPool(){var n=5e3,pool,i;newPool();function newPool(){pool=new Uint8Array(n);i=0}return{reserve:function(bytes){if(i+bytes>n)newPool();i+=bytes;return pool.subarray(i-bytes,i)},putBack:function(bytes){i-=bytes}}}Dbf.bufferPool=new BufferPool;Dbf.exportRecords=function(records,encoding,fieldOrder){var rows=records.length;var fields=internal.findFieldNames(records,fieldOrder);var dbfFields=Dbf.convertFieldNames(fields);var fieldData=fields.map(function(name,i){var info=Dbf.getFieldInfo(records,name,encoding||"utf8");var name2=dbfFields[i];info.name=name2;if(name!=name2){message('Changed field name from "'+name+'" to "'+name2+'"')}if(info.warning){message("["+name+"] "+info.warning)}return info});var headerBytes=Dbf.getHeaderSize(fieldData.length),recordBytes=Dbf.getRecordSize(utils.pluck(fieldData,"size")),fileBytes=headerBytes+rows*recordBytes+1;var buffer=new ArrayBuffer(fileBytes);var bin=new BinArray(buffer).littleEndian();var now=new Date;bin.writeUint8(3);bin.writeUint8(now.getFullYear()-1900);bin.writeUint8(now.getMonth()+1);bin.writeUint8(now.getDate());bin.writeUint32(rows);bin.writeUint16(headerBytes);bin.writeUint16(recordBytes);bin.skipBytes(17);bin.writeUint8(0);bin.skipBytes(2);fieldData.reduce(function(recordOffset,obj){bin.writeCString(obj.name,11);bin.writeUint8(obj.type.charCodeAt(0));bin.writeUint32(recordOffset);bin.writeUint8(obj.size);bin.writeUint8(obj.decimals);bin.skipBytes(14);return recordOffset+obj.size},1);bin.writeUint8(13);if(bin.position()!=headerBytes){error("Dbf#exportRecords() header size mismatch; expected:",headerBytes,"written:",bin.position())}records.forEach(function(rec,i){var start=bin.position();bin.writeUint8(32);for(var j=0,n=fieldData.length;jMAX_FIELD_SIZE){size=MAX_FIELD_SIZE;info.decimals-=size-MAX_FIELD_SIZE;if(info.decimals<0){error("Dbf#getFieldInfo() Out-of-range error.")}}info.size=size;var formatter=Dbf.getDecimalFormatter(size,info.decimals);info.write=function(i,bin){var rec=arr[i],str=formatter(rec[name]);if(str.lengthDbf.MAX_STRING_LEN){if(encoding=="ascii"){buf=buf.subarray(0,Dbf.MAX_STRING_LEN)}else{buf=Dbf.truncateEncodedString(buf,encoding,Dbf.MAX_STRING_LEN)}truncated++}size=Math.max(size,buf.length);return buf});info.size=size;info.write=function(i,bin){var buf=buffers[i],n=Math.min(size,buf.length),dest=bin._bytes,pos=bin.position(),j;for(j=0;j0){info.warning="Truncated "+truncated+" string"+(truncated==1?"":"s")+" to fit the 254-byte limit"}};Dbf.convertFieldNames=function(names){return internal.getUniqFieldNames(names.map(Dbf.cleanFieldName),10)};Dbf.cleanFieldName=function(name){return name.replace(/[^A-Za-z0-9]+/g,"_")};Dbf.getFieldInfo=function(arr,name,encoding){var type=this.discoverFieldType(arr,name),info={type:type,decimals:0};if(type=="N"){Dbf.initNumericField(info,arr,name)}else if(type=="C"){Dbf.initStringField(info,arr,name,encoding)}else if(type=="L"){Dbf.initBooleanField(info,arr,name)}else if(type=="D"){Dbf.initDateField(info,arr,name)}else{info.size=0;info.type="N";if(type){info.warning="Unable to export "+type+"-type data, writing null values"}info.write=function(){}}return info};Dbf.discoverFieldType=function(arr,name){var val;for(var i=0,n=arr.length;imax){if(valmax)max=val;while(Math.abs(val)>=power){power*=10;eps*=10}}while(Math.abs(Math.round(val*k)-val*k)>eps){if(decimals==15){break}decimals++;eps*=10;k*=10}}return{decimals:decimals,min:min,max:max}};Dbf.encodeValueAsAscii=function(val,strict){var str=String(val),n=str.length,view=Dbf.bufferPool.reserve(n),i,c;for(i=0;i127){if(strict){view=null;i=0;break}c="?".charCodeAt(0)}view[i]=c}Dbf.bufferPool.putBack(n-i);return view?view.subarray(0,i):null};Dbf.getStringWriterEncoded=function(encoding){return function(val){var buf=Dbf.encodeValueAsAscii(val,true);if(buf===null){buf=internal.encodeString(String(val),encoding)}return buf}};Dbf.truncateEncodedString=function(buf,encoding,maxLen){var truncated=buf.slice(0,maxLen);var len=maxLen;var tmp,str;while(len>0&&len>=maxLen-3){tmp=len==maxLen?truncated:buf.slice(0,len);str=internal.decodeString(tmp,encoding);if(str.charAt(str.length-1)!="\ufffd"){truncated=tmp;break}len--}return truncated};function DataTable(obj){var records;if(utils.isArray(obj)){records=obj}else{records=[];if(utils.isInteger(obj)){for(var i=0;i0){xx.pop();yy.pop();count--}if(count>0){shp2.push([nn.length]);nn.push(count)}});return{shape:shp2.length>0?shp2:null,arcs:new ArcCollection(nn,xx,yy)}};internal.simplifyPathFast=function(path,arcs,dist,xx,yy){var iter=arcs.getShapeIter(path),count=0,prevX,prevY,x,y;while(iter.hasNext()){x=iter.x;y=iter.y;if(count===0||distance2D(x,y,prevX,prevY)>dist){xx.push(x);yy.push(y);prevX=x;prevY=y;count++}}if(x!=prevX||y!=prevY){xx.push(x);yy.push(y);count++}return count};internal.findAnchorPoint=function(shp,arcs){var maxPath=shp&&geom.getMaxPath(shp,arcs),pathBounds=maxPath&&arcs.getSimpleShapeBounds(maxPath),thresh,simple;if(!pathBounds||!pathBounds.hasBounds()||pathBounds.area()===0){return null}thresh=Math.sqrt(pathBounds.area())*.01;simple=internal.simplifyPolygonFast(shp,arcs,thresh);if(!simple.shape){return null}return internal.findAnchorPoint2(simple.shape,simple.arcs)};internal.findAnchorPoint2=function(shp,arcs){var maxPath=geom.getMaxPath(shp,arcs);var pathBounds=arcs.getSimpleShapeBounds(maxPath);var centroid=geom.getPathCentroid(maxPath,arcs);var weight=internal.getPointWeightingFunction(centroid,pathBounds);var area=geom.getPlanarPathArea(maxPath,arcs);var hrange,lbound,rbound,focus,htics,hstep,p,p2;if(shp.length==1&&area*1.2>pathBounds.area()){htics=5;focus=.2}else if(shp.length==1&&area*1.7>pathBounds.area()){htics=7;focus=.4}else{htics=11;focus=.5}hrange=pathBounds.width()*focus;lbound=centroid.x-hrange/2;rbound=lbound+hrange;hstep=hrange/htics;p=internal.probeForBestAnchorPoint(shp,arcs,lbound,rbound,htics,weight);if(!p){verbose("[points inner] failed, falling back to centroid");p=centroid}else{p2=internal.probeForBestAnchorPoint(shp,arcs,p.x-hstep/2,p.x+hstep/2,2,weight);if(p2.distance>p.distance){p=p2}}return p};internal.getPointWeightingFunction=function(centroid,pathBounds){var referenceDist=Math.max(pathBounds.width(),pathBounds.height())/2;return function(x,y){var offset=distance2D(centroid.x,centroid.y,x,y);return 1-Math.min(.6*offset/referenceDist,.25)}};internal.findAnchorPointCandidates=function(shp,arcs,xx){var ymin=arcs.getBounds().ymin-1;return xx.reduce(function(memo,x){var cands=internal.findHitCandidates(x,ymin,shp,arcs);return memo.concat(cands)},[])};internal.probeForBestAnchorPoint=function(shp,arcs,lbound,rbound,htics,weight){var tics=internal.getInnerTics(lbound,rbound,htics);var interval=(rbound-lbound)/htics;var candidates=internal.findAnchorPointCandidates(shp,arcs,tics);var bestP,adjustedP,candP;candidates.forEach(function(p){p.interval*=weight(p.x,p.y)});candidates.sort(function(a,b){return b.interval-a.interval});for(var i=0;icandP.interval){break}adjustedP=internal.getAdjustedPoint(candP.x,candP.y,shp,arcs,interval,weight);if(!bestP||adjustedP.distance>bestP.distance){bestP=adjustedP}}return bestP};internal.getAdjustedPoint=function(x,y,shp,arcs,vstep,weight){var p={x:x,y:y,distance:geom.getPointToShapeDistance(x,y,shp,arcs)*weight(x,y)};internal.scanForBetterPoint(p,shp,arcs,vstep,weight);internal.scanForBetterPoint(p,shp,arcs,-vstep,weight);return p};internal.scanForBetterPoint=function(p,shp,arcs,vstep,weight){var x=p.x,y=p.y,dmax=p.distance,d;while(true){y+=vstep;d=geom.getPointToShapeDistance(x,y,shp,arcs)*weight(x,y);if(d>dmax*.9&&geom.testPointInPolygon(x,y,shp,arcs)){if(d>dmax){p.distance=dmax=d;p.y=y}}else{break}}};internal.findHitCandidates=function(x,y,shp,arcs){var yy=internal.findRayShapeIntersections(x,y,shp,arcs);var cands=[],y1,y2,interval;utils.genericSort(yy);for(var i=0;i0){cands.push({y:(y1+y2)/2,x:x,interval:interval})}}return cands};internal.findRayShapeIntersections=function(x,y,shp,arcs){if(!shp)return[];return shp.reduce(function(memo,path){var yy=internal.findRayRingIntersections(x,y,path,arcs);return memo.concat(yy)},[])};internal.findRayRingIntersections=function(x,y,path,arcs){var yints=[];internal.forEachSegmentInPath(path,arcs,function(a,b,xx,yy){var result=geom.getRayIntersection(x,y,xx[a],yy[a],xx[b],yy[b]);if(result>-Infinity){yints.push(result)}});if(yints.length%2===1){yints=[]}return yints};internal.getInnerTics=function(min,max,steps){var range=max-min,step=range/(steps+1),arr=[];for(var i=1;i<=steps;i++){arr.push(min+step*i)}return arr};function addGetters(obj,getters){Object.keys(getters).forEach(function(name){Object.defineProperty(obj,name,{get:getters[name]})})}internal.initFeatureProxy=function(lyr,arcs){var hasPoints=internal.layerHasPoints(lyr),hasPaths=arcs&&internal.layerHasPaths(lyr),_records=lyr.data?lyr.data.getRecords():null,_isPlanar=hasPaths&&arcs.isPlanar(),ctx={},_bounds,_centroid,_innerXY,_xy,_ids,_id;addGetters(ctx,{id:function(){return _id},layer_name:function(){return lyr.name||""}});if(_records){Object.defineProperty(ctx,"properties",{set:function(obj){if(utils.isObject(obj)){_records[_id]=obj}else{stop("Can't assign non-object to $.properties")}},get:function(){var rec=_records[_id];if(!rec){rec=_records[_id]={}}return rec}})}if(hasPaths){addGetters(ctx,{partCount:function(){return _ids?_ids.length:0},isNull:function(){return ctx.partCount===0},bounds:function(){return shapeBounds().toArray()},height:function(){return shapeBounds().height()},width:function(){return shapeBounds().width()}});if(lyr.geometry_type=="polygon"){addGetters(ctx,{area:function(){return _isPlanar?ctx.planarArea:geom.getSphericalShapeArea(_ids,arcs)},perimeter:function(){return geom.getShapePerimeter(_ids,arcs)},compactness:function(){return geom.calcPolsbyPopperCompactness(ctx.area,ctx.perimeter)},planarArea:function(){return geom.getPlanarShapeArea(_ids,arcs)},originalArea:function(){var i=arcs.getRetainedInterval(),area;arcs.setRetainedInterval(0);area=ctx.area;arcs.setRetainedInterval(i);return area},centroidX:function(){var p=centroid();return p?p.x:null},centroidY:function(){var p=centroid();return p?p.y:null},innerX:function(){var p=innerXY();return p?p.x:null},innerY:function(){var p=innerXY();return p?p.y:null}})}}else if(hasPoints){Object.defineProperty(ctx,"coordinates",{set:function(obj){if(!obj||utils.isArray(obj)){lyr.shapes[_id]=obj||null}else{stop("Can't assign non-array to $.coordinates")}},get:function(){return lyr.shapes[_id]||null}});Object.defineProperty(ctx,"x",{get:function(){xy();return _xy?_xy[0]:null},set:function(val){xy();if(_xy)_xy[0]=Number(val)}});Object.defineProperty(ctx,"y",{get:function(){xy();return _xy?_xy[1]:null},set:function(val){xy();if(_xy)_xy[1]=Number(val)}})}function xy(){var shape=lyr.shapes[_id];if(!_xy){_xy=shape&&shape[0]||null}}function centroid(){_centroid=_centroid||geom.getShapeCentroid(_ids,arcs);return _centroid}function innerXY(){_innerXY=_innerXY||internal.findAnchorPoint(_ids,arcs);return _innerXY}function shapeBounds(){if(!_bounds){_bounds=arcs.getMultiShapeBounds(_ids)}return _bounds}return function(id){_id=id;if(hasPaths){_bounds=null;_centroid=null;_innerXY=null;_ids=lyr.shapes[id]}if(hasPoints){_xy=null}return ctx}};internal.expressionUtils={round:function(val,dig){var k=1;dig=dig|0;while(dig-- >0)k*=10;return Math.round(val*k)/k},sprintf:utils.format};internal.compileValueExpression=function(exp,lyr,arcs,opts){opts=opts||{};opts.returns=true;return internal.compileFeatureExpression(exp,lyr,arcs,opts)};internal.compileFeaturePairFilterExpression=function(exp,lyr,arcs){var func=internal.compileFeaturePairExpression(exp,lyr,arcs);return function(idA,idB){var val=func(idA,idB);if(val!==true&&val!==false){stop("where expression must return true or false")}return val}};internal.compileFeaturePairExpression=function(exp,lyr,arcs){var ctx=internal.getExpressionContext(lyr);var A=getProxyFactory(lyr,arcs);var B=getProxyFactory(lyr,arcs);var vars=internal.getAssignedVars(exp);var functionBody="with(env){with(record){return "+exp+"}}";var func;try{func=new Function("record,env",functionBody)}catch(e){console.error(e);stop(e.name,"in expression ["+exp+"]")}internal.nullifyUnsetProperties(vars,ctx);function getProxyFactory(lyr,arcs){var records=lyr.data?lyr.data.getRecords():[];var getFeatureById=internal.initFeatureProxy(lyr,arcs);function Proxy(id){}return function(id){var proxy;if(id==-1)return null;Proxy.prototype=records[id]||{};proxy=new Proxy;proxy.$=getFeatureById(id);return proxy}}return function(idA,idB,rec){var val;ctx.A=A(idA);ctx.B=B(idB);if(rec){internal.nullifyUnsetProperties(vars,rec)}try{val=func.call(ctx,rec||{},ctx)}catch(e){stop(e.name,"in expression ["+exp+"]:",e.message)}return val}};internal.compileFeatureExpression=function(rawExp,lyr,arcs,opts_){var opts=utils.extend({},opts_),exp=rawExp||"",mutable=!opts.no_assign,vars=internal.getAssignedVars(exp),func,records;if(mutable&&vars.length>0&&!lyr.data){internal.initDataTable(lyr)}if(!mutable){opts.context=opts.context||{};internal.nullifyUnsetProperties(vars,opts.context)}records=lyr.data?lyr.data.getRecords():[];func=internal.getExpressionFunction(exp,lyr,arcs,opts);return function(recId,destRec){var record;if(destRec){record=destRec}else{record=records[recId]||(records[recId]={})}if(mutable){internal.nullifyUnsetProperties(vars,record)}return func(record,recId)}};internal.getAssignedVars=function(exp,hasDot){var rxp=/[a-z_][.a-z0-9_]*(?= *=[^=])/gi;var matches=exp.match(rxp)||[];var f=function(s){var i=s.indexOf(".");return hasDot?i>-1:i==-1};return utils.uniq(matches.filter(f))};internal.getAssignmentObjects=function(exp){var matches=internal.getAssignedVars(exp,true),names=[];matches.forEach(function(s){var match=/^([^.]+)\.[^.]+$/.exec(s);var name=match?match[1]:null;if(name&&name!="this"){names.push(name)}});return utils.uniq(names)};internal.compileExpressionToFunction=function(exp,opts){var functionBody="with(env){with(record){ "+(opts.returns?"return ":"")+exp+"}}";var func;try{func=new Function("record,env",functionBody)}catch(e){stop(e.name,"in expression ["+exp+"]")}return func};internal.getExpressionFunction=function(exp,lyr,arcs,opts){var getFeatureById=internal.initFeatureProxy(lyr,arcs);var ctx=internal.getExpressionContext(lyr,opts.context);var func=internal.compileExpressionToFunction(exp,opts);return function(rec,i){var val;ctx.$=getFeatureById(i);ctx._=ctx;ctx.d=rec||null;try{val=func.call(ctx.$,rec,ctx)}catch(e){stop(e.name,"in expression ["+exp+"]:",e.message)}return val}};internal.nullifyUnsetProperties=function(vars,obj){for(var i=0;i0}};internal.combineFilters=function(a,b){return a&&b&&function(id){return a(id)&&b(id)}||a||b};internal.getMode=function(values){var data=internal.getModeData(values);return data.modes[0]};internal.getValueCountData=function(values){var uniqValues=[],uniqIndex={},counts=[];var i,val;for(i=0;imax)max=values[i]}return max};internal.getCountDataSummary=function(o){var counts=o.counts;var values=o.values;var maxCount=internal.getMaxValue(counts);var nextCount=0;var modes=[];var i,count;for(i=0;inextCount){nextCount=count}}return{modes:modes,margin:modes.length>1?0:maxCount-nextCount,count:maxCount}};internal.getModeData=function(values,verbose){var counts=internal.getValueCountData(values);var modes=internal.getCountDataSummary(counts);if(verbose){modes.counts=counts.counts;modes.values=counts.values}return modes};api.calc=function(lyr,arcs,opts){var msg=opts.expression,result,compiled,defs;if(opts.where){lyr={shapes:lyr.shapes,data:lyr.data};api.filterFeatures(lyr,arcs,{expression:opts.where});msg+=" where "+opts.where}defs=internal.getStateVar("defs");compiled=internal.compileCalcExpression(lyr,arcs,opts.expression);result=compiled(null,defs);message(msg+": "+result);return result};internal.evalCalcExpression=function(lyr,arcs,exp){return internal.compileCalcExpression(lyr,arcs,exp)()};internal.compileCalcExpression=function(lyr,arcs,exp){var rowNo=0,colNo=0,cols=[];var ctx1={count:assign,sum:captureNum,average:captureNum,median:captureNum,min:captureNum,max:captureNum,mode:capture,collect:capture,first:assignOnce,last:assign},ctx2={count:wrap(function(){return rowNo},0),sum:wrap(utils.sum,0),median:wrap(utils.findMedian),min:wrap(min),max:wrap(max),average:wrap(utils.mean),mode:wrap(internal.getMode),collect:wrap(pass),first:wrap(pass),last:wrap(pass)},len=internal.getFeatureCount(lyr),calc1,calc2,result;if(lyr.geometry_type){ctx1.width=ctx1.height=noop;ctx2.width=function(){return internal.getLayerBounds(lyr,arcs).width()};ctx2.height=function(){return internal.getLayerBounds(lyr,arcs).height()}}calc1=internal.compileFeatureExpression(exp,lyr,arcs,{context:ctx1,no_assign:true});calc2=internal.compileFeatureExpression(exp,{data:lyr.data},null,{returns:true,context:ctx2});return function(ids,destRec){var result;if(ids)procRecords(ids);else procAll();result=calc2(undefined,destRec);reset();return result};function pass(o){return o}function max(arr){return utils.getArrayBounds(arr).max}function min(arr){return utils.getArrayBounds(arr).min}function wrap(proc,nullVal){var nodata=arguments.length>1?nullVal:null;return function(){var c=colNo++;return rowNo>0?proc(cols[c]):nodata}}function procAll(){for(var i=0;i=len)error("Invalid record index");calc1(i);rowNo++;colNo=0}function noop(){}function reset(){rowNo=0;colNo=0;cols=[]}function captureNum(val){if(isNaN(val)&&val){stop("Expected a number, received:",val)}return capture(val)}function assignOnce(val){if(rowNo===0)cols[colNo]=val;colNo++;return val}function assign(val){cols[colNo++]=val;return val}function capture(val){var col;if(rowNo===0){cols[colNo]=[]}col=cols[colNo];if(col.length!=rowNo){stop("Evaluation failed")}col.push(val);colNo++;return val}};internal.getJoinCalc=function(src,exp){var calc=internal.compileCalcExpression({data:src},null,exp);return function(ids,destRec){if(!ids)ids=[];calc(ids,destRec)}};internal.getCategoryClassifier=function(fields,data){if(!fields||fields.length===0)return function(){return 0};fields.forEach(function(f){if(!data||!data.fieldExists(f)){stop("Data table is missing field:",f)}});var index={},count=0,records=data.getRecords(),getKey=internal.getMultiFieldKeyFunction(fields);return function(i){var key=getKey(records[i]);if(key in index===false){index[key]=count++}return index[key]}};internal.getMultiFieldKeyFunction=function(fields){return fields.reduce(function(partial,field){var strval=function(rec){return String(rec[field])};return partial?function(rec){return partial(rec)+"~~"+strval(rec)}:strval},null)};internal.aggregateDataRecords=function(records,getGroupId,opts){var groups=internal.groupIds(getGroupId,records.length),sumFields=opts.sum_fields||[],copyFields=opts.copy_fields||[],calc;if(opts.fields){copyFields=copyFields.concat(opts.fields)}if(opts.calc){calc=internal.getJoinCalc(new DataTable(records),opts.calc)}function sum(field,group){var tot=0,rec;for(var i=0;i0){if(!memo){memo={sum:weight,centroid:p.concat()}}else{sum=memo.sum+weight;k=memo.sum/sum;memo.centroid[0]=k*memo.centroid[0]+weight*x/sum;memo.centroid[1]=k*memo.centroid[1]+weight*y/sum;if(p.length==3){memo.centroid[2]=k*memo.centroid[2]+weight*p[2]/sum}memo.sum=sum}}return memo}function dissolvePolygonGeometry(shapes,getGroupId){var segments=dissolveFirstPass(shapes,getGroupId);return dissolveSecondPass(segments,shapes,getGroupId)}function dissolveFirstPass(shapes,getGroupId){var groups=[],largeGroups=[],segments=[],ids=shapes.map(function(shp,i){return getGroupId(i)});internal.traversePaths(shapes,procArc);largeGroups.forEach(splitGroup);return segments;function procArc(obj){var arcId=obj.arcId,idx=arcId<0?~arcId:arcId,segId=segments.length,group=groups[idx];if(!group){group=[];groups[idx]=group}group.push(segId);obj.group=group;segments.push(obj);if(group.length==3){largeGroups.push(group)}}function findMatchingPair(group,cb){var arc1,arc2;for(var i=0;i2)splitGroup(group)}}}function dissolveSecondPass(segments,shapes,getGroupId){var dissolveShapes=[];segments.forEach(procSegment);return dissolveShapes;function procSegment(obj){if(obj.used)return;var match=findDissolveArc(obj);if(!match)buildRing(obj)}function addRing(arcs,i){if(i in dissolveShapes===false){dissolveShapes[i]=[]}dissolveShapes[i].push(arcs)}function buildRing(firstArc){var newArcs=[firstArc.arcId],nextArc=getNextArc(firstArc);firstArc.used=true;while(nextArc&&nextArc!=firstArc){newArcs.push(nextArc.arcId);nextArc.used=true;nextArc=getNextArc(nextArc);if(nextArc&&nextArc!=firstArc&&nextArc.used)error("buildRing() topology error")}if(!nextArc)error("buildRing() traversal error");firstArc.used=true;addRing(newArcs,getGroupId(firstArc.shapeId))}function getNextArc(obj,depth){var next=getNextSegment(obj,segments,shapes),match;depth=depth||0;if(next!=obj){match=findDissolveArc(next);if(match){if(depth>100){error("deep recursion -- unhandled topology problem")}if(shapes[match.shapeId][match.partId].length==1){next=getNextArc(next,depth+1)}else{next=getNextArc(match,depth+1)}}}return next}function findDissolveArc(obj){var dissolveId=getGroupId(obj.shapeId),match,matchId;matchId=utils.find(obj.group,function(i){var a=obj,b=segments[i];if(a==b||b.used||getGroupId(b.shapeId)!==dissolveId||a.arcId!=~b.arcId)return false;return true});match=matchId===null?null:segments[matchId];return match}}function getNextSegment(seg,segments,shapes){return getSegmentByOffs(seg,segments,shapes,1)}function getPrevSegment(seg,segments,shapes){return getSegmentByOffs(seg,segments,shapes,-1)}function getSegmentByOffs(seg,segments,shapes,offs){var arcs=shapes[seg.shapeId][seg.partId],partLen=arcs.length,nextOffs=(seg.i+offs)%partLen,nextSeg;if(nextOffs<0)nextOffs+=partLen;nextSeg=segments[seg.segId-seg.i+nextOffs];if(!nextSeg||nextSeg.shapeId!=seg.shapeId)error("index error");return nextSeg}internal.dissolvePolylineGeometry=function(lyr,getGroupId,arcs,opts){var groups=internal.getPolylineDissolveGroups(lyr.shapes,getGroupId);var dissolve=internal.getPolylineDissolver(arcs);return groups.map(dissolve)};internal.getPolylineDissolveGroups=function(shapes,getGroupId){var groups=[];internal.traversePaths(shapes,function(o){var groupId=getGroupId(o.shapeId);if(groupId in groups===false){groups[groupId]=[]}groups[groupId].push(o.arcId)});return groups};internal.getPolylineDissolver=function(arcs){var flags=new Uint8Array(arcs.size());var testArc=function(id){return flags[absArcId(id)]>0};var useArc=function(id){flags[absArcId(id)]=0};var nodes=new NodeCollection(arcs);return function(ids){ids.forEach(function(id){flags[absArcId(id)]=1});var ends=internal.findPolylineEnds(ids,nodes,testArc);var straightParts=internal.collectPolylineArcs(ends,nodes,testArc,useArc);var ringParts=internal.collectPolylineArcs(ids,nodes,testArc,useArc);var allParts=straightParts.concat(ringParts);ids.forEach(function(id){flags[absArcId(id)]=0});return allParts}};internal.collectPolylineArcs=function(ids,nodes,testArc,useArc){var parts=[];ids.forEach(function(startId){var part=[];var nextId=startId;var nextIds;while(testArc(nextId)){part.push(nextId);nextIds=nodes.getConnectedArcs(nextId,testArc);useArc(nextId);if(nextIds.length>0){nextId=~nextIds[0]}else{break}}if(part.length>0)parts.push(part)});return parts};internal.findPolylineEnds=function(ids,nodes,filter){var ends=[];ids.forEach(function(arcId){if(nodes.getConnectedArcs(arcId,filter).length===0){ends.push(~arcId)}if(nodes.getConnectedArcs(~arcId,filter).length===0){ends.push(arcId)}});return ends};api.dissolve=function(lyr,arcs,opts){var dissolveShapes,getGroupId;opts=utils.extend({},opts);if(opts.field)opts.fields=[opts.field];getGroupId=internal.getCategoryClassifier(opts.fields,lyr.data);if(lyr.geometry_type=="polygon"){dissolveShapes=dissolvePolygonGeometry(lyr.shapes,getGroupId)}else if(lyr.geometry_type=="polyline"){dissolveShapes=internal.dissolvePolylineGeometry(lyr,getGroupId,arcs,opts)}else if(lyr.geometry_type=="point"){dissolveShapes=dissolvePointLayerGeometry(lyr,getGroupId,opts)}return internal.composeDissolveLayer(lyr,dissolveShapes,getGroupId,opts)};internal.composeDissolveLayer=function(lyr,shapes,getGroupId,opts){var records=null;var lyr2;if(lyr.data){records=internal.aggregateDataRecords(lyr.data.getRecords(),getGroupId,opts);for(var i=0,n=records.length;i-1){ringIsCW=ringData[i].area>0;containerIsCW=ringData[containerId].area>0;if(containerIsCW==ringIsCW){valid=false}}return valid}};internal.fixNestingErrors2=function(rings,arcs){var ringData=internal.getPathMetadata(rings,arcs,"polygon");var shapes=rings.map(function(ids){return[ids]});var index=new PathIndex(shapes,arcs);rings.forEach(fixRing);function fixRing(ids,i){var ringIsCW=ringData[i].area>0;var containerId;if(!ringIsCW){containerId=index.findSmallestEnclosingPolygon(ids);if(containerId==-1){internal.reversePath(ids)}}}};internal.dissolvePolygonLayer2=function(lyr,dataset,opts){opts=utils.extend({},opts);if(opts.field)opts.fields=[opts.field];var getGroupId=internal.getCategoryClassifier(opts.fields,lyr.data);var groups=lyr.shapes.reduce(function(groups,shape,i){var i2=getGroupId(i);if(i2 in groups===false){groups[i2]=[]}internal.extendShape(groups[i2],shape);return groups},[]);var shapes2=internal.dissolvePolygons2(groups,dataset,opts);return internal.composeDissolveLayer(lyr,shapes2,getGroupId,opts)};internal.getGapFillTest=function(dataset,opts){var test;if(opts.min_gap_area===0){test=function(){return false}}else if(opts.min_gap_area){test=internal.getMinAreaTest(opts.min_gap_area,dataset)}else{test=internal.getSliverTest(dataset.arcs)}return test};internal.dissolvePolygons2=function(shapes,dataset,opts){var arcs=dataset.arcs;var arcFilter=internal.getArcPresenceTest(shapes,arcs);var nodes=new NodeCollection(arcs,arcFilter);var divide=internal.getHoleDivider(nodes);var dissolve=internal.getRingIntersector(nodes,"dissolve");var gapTest=internal.getGapFillTest(dataset,opts);T.start();var mosaic=internal.buildPolygonMosaic(nodes).mosaic;T.stop("Build mosaic");var fwdArcIndex=new Int32Array(arcs.size());var revArcIndex=new Int32Array(arcs.size());var shapeWeights=[];var unassignedTiles=[];var tileGroups=shapes.map(function(){return[]});T.start();shapes.forEach(indexPolygon);mosaic.forEach(assignMosaicRing);unassignedTiles=unassignedTiles.filter(assignRemainingTile);var shapes2=tileGroups.map(dissolveTileGroup);T.stop("Dissolve tiles");return shapes2;function dissolveTileGroup(group){var rings=[],holes=[],dissolved,tile;for(var i=0,n=group.length;i1){holes=holes.concat(tile.slice(1))}}dissolved=dissolve(rings.concat(holes));if(dissolved.length>1){}return dissolved.length>0?dissolved:null}function assignRemainingTile(tileId){var tile=mosaic[tileId];var ring=tile[0];var shapeId=-1;for(var i=0,n=ring.length;i-1&&gapTest(ring)){tileGroups[shapeId].push(tileId)}return shapeId<0}function findFullEnclosureCandidates(tile){var shapeIds=[];var reversedRing=internal.reversePath(ring.concat());reversedRing.forEach(function(arcId){var shpId=getShapeId(arcId);if(shpId>-1&&shapeIds.indexOf(shpId)==-1){shapeIds.push(shpId)}})}function findEnclosingShape(tileRing){return-1}function assignMosaicRing(tile,tileId){var shapeId=-1;var ring=tile[0];for(var i=0,n=ring.length;i-1&&shapeWeights[a]0){shape=cw.concat(ccw);internal.fixNestingErrors2(shape,arcs)}else{shape=cw}for(i=0,n=shape.length;i0){arcLen--}newArc.push(arcId);arcStatus[absId]=1}else{newArc=[arcId];arcIndex[absId]=newArcs.length;newArcs.push(newArc);arcStatus[absId]=fw?2:3}pointCount+=arcLen}if(arcStatus[absId]>1){newArcId=arcIndex[absId];if(fw&&arcStatus[absId]==3||!fw&&arcStatus[absId]==2){newArcId=~newArcId}newPath.push(newArcId)}}totalPoints+=pointCount;return newPath}};internal.dissolveArcCollection=function(arcs,newArcs,newLen){var nn2=new Uint32Array(newArcs.length),xx2=new Float64Array(newLen),yy2=new Float64Array(newLen),src=arcs.getVertexData(),zz2=src.zz?new Float64Array(newLen):null,interval=arcs.getRetainedInterval(),offs=0;newArcs.forEach(function(newArc,newId){newArc.forEach(function(oldId,i){extendDissolvedArc(oldId,newId)})});return new ArcCollection(nn2,xx2,yy2).setThresholds(zz2).setRetainedInterval(interval);function extendDissolvedArc(oldId,newId){var absId=absArcId(oldId),rev=oldId<0,n=src.nn[absId],i=src.ii[absId],n2=nn2[newId];if(n>0){if(n2>0){n--;if(!rev)i++}utils.copyElements(src.xx,i,xx2,offs,n,rev);utils.copyElements(src.yy,i,yy2,offs,n,rev);if(zz2)utils.copyElements(src.zz,i,zz2,offs,n,rev);nn2[newId]+=n;offs+=n}}};internal.getArcDissolveTest=function(layers,arcs){var nodes=new NodeCollection(arcs,internal.getArcPresenceTest2(layers,arcs)),lineLayers=layers.filter(function(lyr){return lyr.geometry_type=="polyline"}),testLineEndpoint=internal.getPathEndpointTest(lineLayers,arcs),linkCount,lastId;return function(id1,id2){if(id1==id2||id1==~id2){verbose("Unexpected arc sequence:",id1,id2);return false}linkCount=0;nodes.forEachConnectedArc(id1,countLink);return linkCount==1&&lastId==~id2&&!testLineEndpoint(id1)&&!testLineEndpoint(~id2)};function countLink(arcId,i){linkCount++;lastId=arcId}};api.cleanLayers=function(layers,dataset,opts){var nodes;opts=opts||{};nodes=internal.addIntersectionCuts(dataset,opts);layers.forEach(function(lyr){if(lyr.geometry_type=="polygon"){lyr.shapes=internal.dissolvePolygons2(lyr.shapes,dataset,opts)}if(!opts.allow_empty){api.filterFeatures(lyr,dataset.arcs,{remove_empty:true})}});if(!opts.no_arc_dissolve&&dataset.arcs){internal.dissolveArcs(dataset)}};internal.concatShapes=function(shapes){return shapes.reduce(function(memo,shape){internal.extendShape(memo,shape);return memo},[])};internal.extendShape=function(dest,src){if(src){for(var i=0,n=src.length;i1){dissolved=internal.fixNestingErrors(dissolved,nodes.arcs)}return dissolved.length>0?dissolved:null}};internal.clipPolygons=function(targetShapes,clipShapes,nodes,type){var arcs=nodes.arcs;var clipFlags=new Uint8Array(arcs.size());var routeFlags=new Uint8Array(arcs.size());var clipArcTouches=0;var clipArcUses=0;var usedClipArcs=[];var dividePath=internal.getPathFinder(nodes,useRoute,routeIsActive);var dissolvePolygon=internal.getPolygonDissolver(nodes);targetShapes=targetShapes.map(dissolvePolygon);clipShapes=[dissolvePolygon(internal.concatShapes(clipShapes))];internal.openArcRoutes(clipShapes,arcs,clipFlags,type=="clip",type=="erase",!!"dissolve",17);var index=new PathIndex(clipShapes,arcs);var clippedShapes=targetShapes.map(function(shape,i){if(shape){return clipPolygon(shape,type,index)}return null});var undividedClipShapes=findUndividedClipShapes(clipShapes);internal.closeArcRoutes(clipShapes,arcs,routeFlags,true,true);index=new PathIndex(undividedClipShapes,arcs);targetShapes.forEach(function(shape,shapeId){var paths=shape?findInteriorPaths(shape,type,index):null;if(paths){clippedShapes[shapeId]=(clippedShapes[shapeId]||[]).concat(paths)}});return clippedShapes;function clipPolygon(shape,type,index){var dividedShape=[],clipping=type=="clip",erasing=type=="erase";internal.openArcRoutes(shape,arcs,routeFlags,true,false,false);internal.forEachShapePart(shape,function(ids){var path;for(var i=0,n=ids.length;i0){internal.closeArcRoutes(usedClipArcs,arcs,routeFlags,true,true,true);usedClipArcs=[]}return dividedShape.length===0?null:dividedShape}function routeIsActive(id){var fw=id>=0,abs=fw?id:~id,visibleBit=fw?1:16,targetBits=routeFlags[abs],clipBits=clipFlags[abs];if(clipBits>0)clipArcTouches++;return(targetBits&visibleBit)>0||(clipBits&visibleBit)>0}function useRoute(id){var fw=id>=0,abs=fw?id:~id,targetBits=routeFlags[abs],clipBits=clipFlags[abs],targetRoute,clipRoute;if(fw){targetRoute=targetBits;clipRoute=clipBits}else{targetRoute=targetBits>>4;clipRoute=clipBits>>4}targetRoute&=3;clipRoute&=3;var usable=false;if(targetRoute==3){if(clipRoute==1){}else if(clipRoute==2&&type=="erase"){}else{usable=true}}else if(targetRoute===0&&clipRoute==3){usedClipArcs.push(id);usable=true}if(usable){if(clipRoute==3){clipArcUses++}if(fw){targetBits=internal.setBits(targetBits,1,3)}else{targetBits=internal.setBits(targetBits,16,48)}}targetBits|=fw?4:64;routeFlags[abs]=targetBits;return usable}function findUndividedClipShapes(clipShapes){return clipShapes.map(function(shape){var usableParts=[];internal.forEachShapePart(shape,function(ids){var pathIsClean=true,pathIsVisible=false;for(var i=0;i0?usableParts:null})}function arcIsUnused(id,flags){var abs=absArcId(id),flag=flags[abs];return(flag&68)===0}function arcIsVisible(id,flags){var flag=flags[absArcId(id)];return(flag&17)>0}function findInteriorPaths(shape,type,index){var enclosedPaths=index.findPathsInsideShape(shape),dissolvedPaths=[];if(!enclosedPaths)return null;if(type=="erase")enclosedPaths.forEach(internal.reversePath);if(enclosedPaths.length<=1){dissolvedPaths=enclosedPaths}else{internal.openArcRoutes(enclosedPaths,arcs,routeFlags,true,false,true);enclosedPaths.forEach(function(ids){var path;for(var j=0;j0?dissolvedPaths:null}};internal.clipPolylines=function(targetShapes,clipShapes,nodes,type){var index=new PathIndex(clipShapes,nodes.arcs);return targetShapes.map(function(shp){return clipPolyline(shp)});function clipPolyline(shp){var clipped=null;if(shp)clipped=shp.reduce(clipPath,[]);return clipped&&clipped.length>0?clipped:null}function clipPath(memo,path){var clippedPath=null,arcId,enclosed;for(var i=0;i-1;if(type=="clip"&&enclosed||type=="erase"&&!enclosed){feat2.push(feat[i].concat())}}memo.push(feat2.length>0?feat2:null);return memo},[]);return points2};internal.clipIterByBounds=function(iter,bounds){var points=[];var bbox=getClippingBBox(bounds);var xy,xyp,first,isRing;while(iter.hasNext()){xy=[iter.x,iter.y];addClippedPoint(points,xyp,xy,bbox);xyp=xy;if(!first)first=xy}isRing=pointsAreEqual(first,xy);if(isRing&&points.length>0&&!pointsAreEqual(points[0],points[points.length-1])){points.push(points[0].concat())}if(isRing&&points.length<4||points.length<2){points=[]}return points};function pointsAreEqual(a,b){return a&&b&&a[0]===b[0]&&a[1]===b[1]}function getPointSector(x,y,bbox){var bl=bbox[0];var tr=bbox[2];var i;if(x>tr[0]){i=y>tr[1]&&4||y>=bl[1]&&5||6}else if(x>=bl[0]){i=y>tr[1]&&3||y>=bl[1]&&8||7}else{i=y>tr[1]&&2||y>=bl[1]&&1||0}return i}function isCornerSector(q){return q==0||q==2||q==4||q==6}function isEdgeSector(q){return q==1||q==3||q==5||q==7}function getSectorRotation(q){return q>1&&q<8?Math.floor(q/2):0}function rotateClippingBox(i,bbox){var a=bbox[0],b=bbox[1],c=bbox[2],d=bbox[3];if(i===0){bbox=[a,b,c,d]}else if(i==1){bbox=[b,c,d,a]}else if(i==2){bbox=[c,d,a,b]}else if(i==3){bbox=[d,a,b,c]}else error("Invalid rotation number");return bbox}function getClippingBBox(bounds){return[[bounds.xmin,bounds.ymin],[bounds.xmin,bounds.ymax],[bounds.xmax,bounds.ymax],[bounds.xmax,bounds.ymin]]}function rotateSector(i,q){return q<8&&q>=0?(q+8-i*2)%8:q}function getCornerBySector(q,bbox){if(isCornerSector(q)){return bbox[q/2].concat()}error("Invalid corner sector:",q)}function addCornerPoint(points,q,bbox){points.push(getCornerBySector(q,bbox))}function projectPointToEdge(p,s1,s2){return s1[0]==s2[0]?[s1[0],p[1]]:[p[0],s1[1]]}function addClippedPoint(points,p1,p2,bbox){var q1=p1?getPointSector(p1[0],p1[1],bbox):-1;var q2=getPointSector(p2[0],p2[1],bbox);var rot;var closed=true;if(q1==8&&q2==8){points.push(p2)}else if(q1==q2){}else if(q1==-1){if(q2==8){points.push(p2)}else if(closed&&isCornerSector(q2)){addCornerPoint(points,q2,bbox)}}else if(q1==8){addSegmentBoundsIntersection(points,p1,p2,bbox);if(closed&&isCornerSector(q2)){addCornerPoint(points,q2,bbox)}}else if(q2==8){addSegmentBoundsIntersection(points,p1,p2,bbox);points.push(p2)}else{rot=getSectorRotation(q1);bbox=rotateClippingBox(rot,bbox);q1=rotateSector(rot,q1);q2=rotateSector(rot,q2);if(q1==0){if(q2===0||q2===1||q2===7){}else if(q2==2||q2==6){if(closed)addCornerPoint(points,q2,bbox)}else if(q2==3){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox)}else if(q2==4){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)){if(geom.orient2D(p1[0],p1[1],p2[0],p2[1],bbox[0][0],bbox[0][1])>1){addCornerPoint(points,6,bbox)}else{addCornerPoint(points,2,bbox)}}if(closed)addCornerPoint(points,q2,bbox)}else if(q2==5){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,6,bbox)}}else if(q1==1){if(q2==2||q2===0){addCornerPoint(points,q2,bbox)}else if(q2==3){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox)}else if(q2==4){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox);if(closed)addCornerPoint(points,4,bbox)}else if(q2==5){addSegmentBoundsIntersection(points,p1,p2,bbox)}else if(q2==6){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,0,bbox);if(closed)addCornerPoint(points,6,bbox)}else if(q2==7){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,0,bbox)}}else{error("Sector error")}}}function addSegmentSegmentIntersection(points,a,b,c,d){var p=geom.segmentIntersection(a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);if(p)points.push(p)}function addSegmentBoundsIntersection(points,a,b,bounds){var hits=[];addSegmentSegmentIntersection(hits,a,b,bounds[0],bounds[1]);addSegmentSegmentIntersection(hits,a,b,bounds[0],bounds[3]);addSegmentSegmentIntersection(hits,a,b,bounds[1],bounds[2]);addSegmentSegmentIntersection(hits,a,b,bounds[2],bounds[3]);if(hits.length>0){points.push.apply(points,hits);return true}return false}internal.getVertexCountTest=function(minVertices,arcs){return function(path){return geom.countVerticesInPath(path,arcs)<=minVertices}};internal.getSliverTest=function(arcs){var maxSliverArea=internal.calcMaxSliverArea(arcs);return function(path){var area=geom.getPlanarPathArea(path,arcs);return Math.abs(area)<=maxSliverArea}};internal.getMinAreaTest=function(areaParam,dataset,opts){var arcs=dataset.arcs;var minArea=internal.convertAreaParam(areaParam,internal.getDatasetCRS(dataset));if(opts&&opts.weighted){return internal.getWeightedMinAreaFilter(minArea,dataset.arcs)}return internal.getMinAreaFilter(minArea,dataset.arcs)};internal.getMinAreaFilter=function(minArea,arcs){var pathArea=arcs.isPlanar()?geom.getPlanarPathArea:geom.getSphericalPathArea;return function(path){var area=pathArea(path,arcs);return Math.abs(area)0){newArcs++}else{prevArcs++}}if(newArcs>0&&prevArcs>0&&ringTest(path)){removed++;return null}};internal.countArcsInShapes(clipLyr.shapes,flags);internal.editShapes(lyr.shapes,pathFilter);return removed};internal.calcMaxSliverArea=function(arcs){var k=2,dxMax=arcs.getBounds().width()/k,dyMax=arcs.getBounds().height()/k,count=0,mean=0;arcs.forEachSegment(function(i,j,xx,yy){var dx=Math.abs(xx[i]-xx[j]),dy=Math.abs(yy[i]-yy[j]);if(dxy0&&x1>x0)){stop("Invalid bbox (should be [xmin, ymin, xmax, ymax]):",bb)}return{arcs:new ArcCollection([arc]),layers:[{shapes:[[[0]]],geometry_type:"polygon"}]}};internal.getArcClassifier=function(shapes,arcs,filter){var n=arcs.size(),a=new Int32Array(n),b=new Int32Array(n);utils.initializeArray(a,-1);utils.initializeArray(b,-1);internal.traversePaths(shapes,function(o){var i=absArcId(o.arcId);var shpId=o.shapeId;var aval=a[i];if(aval==-1){a[i]=shpId}else if(shpId-1&&a>-1?[a,b]:null};var classify=internal.getArcClassifier(shapes,arcs)(getKey);var arr=[];var index={};var onArc=function(arcId){var obj=classify(arcId);var key;if(obj){key=obj.join("~");if(key in index===false){arr.push(obj);index[key]=true}}};internal.forEachArcId(shapes,onArc);return arr};api.cluster=function(lyr,arcs,opts){internal.requirePolygonLayer(lyr);var groups=internal.calcPolygonClusters(lyr,arcs,opts);var idField=opts.id_field||"cluster";internal.insertFieldValues(lyr,idField,groups);return lyr};internal.calcPolygonClusters=function(lyr,arcs,opts){var calcScore=internal.getPolygonClusterCalculator(opts);var size=lyr.shapes.length;var pct=opts.pct?utils.parsePercent(opts.pct):1;var count=Math.round(size*pct);var groupField=opts.group_by||null;var shapeItems=lyr.shapes.map(function(shp,i){var groupId=groupField&&lyr.data.getRecordAt(i)[groupField]||null;return{ids:[i],area:geom.getShapeArea(shp,arcs),bounds:arcs.getMultiShapeBounds(shp),centroid:geom.getShapeCentroid(shp,arcs),group:groupId,friends:[]}});var mergeItems=[];var mergeIndex={};var next;if(groupField&&!lyr.data)stop("Missing attribute data table");internal.findNeighbors(lyr.shapes,arcs).forEach(function(ab,i){var a=shapeItems[ab[0]],b=shapeItems[ab[1]],item,id;if(a.group!==b.group)return;item={ids:ab};item.score=getScore(item);if(item.score<0)return;id=mergeItems.length;a.friends.push(id);b.friends.push(id);mergeItems.push(item)});while(count-- >0&&(next=nextItem())){merge(next)}return shapeItems.filter(Boolean).reduce(function(memo,shape,clusterId){var ids=shape.ids;for(var i=0;imaxArea||bounds.width()>maxWidth||bounds.height()>maxHeight){score=-1}return score}};internal.roundPoints=function(lyr,round){internal.forEachPoint(lyr.shapes,function(p){p[0]=round(p[0]);p[1]=round(p[1])})};internal.setCoordinatePrecision=function(dataset,precision){var round=utils.getRoundingFunction(precision);internal.transformPoints(dataset,function(x,y){return[round(x),round(y)]});return dataset};utils.getRoundingFunction=function(inc){if(!utils.isNumber(inc)||inc===0){error("Rounding increment must be a non-zero number.")}var inv=1/inc;if(inv>1)inv=Math.round(inv);return function(x){return Math.round(x*inv)/inv}};api.colorizer=function(opts){if(!opts.name){stop("Missing required name= parameter")}if(internal.isReservedName(opts.name)){stop('"'+opts.name+'" is a reserved name')}internal.getStateVar("defs")[opts.name]=internal.getColorizerFunction(opts)};internal.isReservedName=function(name){return/^(stroke|stroke-width|stroke-dasharray|fill|opacity|r|class)$/.test(name)};internal.getColorizerFunction=function(opts){var nodataColor=opts.nodata||"white";var round=opts.precision?utils.getRoundingFunction(opts.precision):null;var colorFunction;if(!opts.colors||!opts.colors.length){stop("Missing colors= parameter")}if(opts.breaks){colorFunction=internal.getSequentialColorFunction(opts.colors,opts.breaks,round)}else if(opts.categories){colorFunction=internal.getCategoricalColorFunction(opts.colors,opts.other,opts.categories)}else{stop("Missing categories= or breaks= parameter")}return function(val){var col=colorFunction(val);return col||nodataColor}};internal.getCategoricalColorFunction=function(colors,otherColor,keys){if(colors.length!=keys.length){stop("Number of colors should be equal to the number of categories")}return function(val){var i=keys.indexOf(val);if(i>=0)return colors[i];return val&&otherColor?otherColor:null}};internal.validateSequentialBreaks=function(breaks){var arr2=breaks.map(parseFloat);utils.genericSort(arr2);for(var i=0;i-1&&i=minVal&&val<=maxVal)){return-1}while(i=breaks[i])i++;return i};api.dataFill=function(lyr,arcs,opts){var field=opts.field;var count;if(!field)stop("Missing required field= parameter");if(lyr.geometry_type!="polygon")stop("Target layer must be polygon type");count=internal.fillMissingValues(lyr,field,internal.getSingleAssignment(lyr,field,arcs));verbose("first pass:",count);do{count=internal.fillMissingValues(lyr,field,internal.getMultipleAssignment(lyr,field,arcs));verbose("count:",count)}while(count>0);if(opts.postprocess){internal.fillDataIslands(lyr,field,arcs);internal.fillDataIslands(lyr,field,arcs)}};internal.fillDataIslands=function(lyr,field,arcs){var records=lyr.data.getRecords();var getValue=internal.getSingleAssignment(lyr,field,arcs,{min_border_pct:.5});records.forEach(function(rec,shpId){var val=rec[field];var nabe=getValue(shpId);if(nabe&&nabe!=val){rec[field]=nabe}})};internal.fillMissingValues=function(lyr,field,getValue){var records=lyr.data.getRecords();var unassigned=internal.getEmptyRecordIds(records,field);var count=0;unassigned.forEach(function(shpId){var value=getValue(shpId);if(!internal.isEmptyValue(value)){count++;records[shpId][field]=value}});return count};internal.getSingleAssignment=function(lyr,field,arcs,opts){var index=internal.buildAssignmentIndex(lyr,field,arcs);var minBorderPct=opts&&opts.min_border_pct||0;return function(shpId){var nabes=index[shpId];var emptyLen=0;var fieldLen=0;var fieldVal=null;var nabe,val,len;for(var i=0;i0?fieldVal:null}};internal.isEmptyValue=function(val){return!val&&val!==0};internal.getMultipleAssignment=function(lyr,field,arcs){var index;return function(shpId){index=index||internal.buildAssignmentIndex(lyr,field,arcs);var nabes=index[shpId];var nabeIndex={};var emptyLen=0;var maxLen=0;var maxVal=null;var nabe,val,len;for(var i=0;imaxLen){maxLen=len;maxVal=val}nabeIndex[val]=len}return maxVal}};internal.getEmptyRecordIds=function(records,field){var ids=[];for(var i=0,n=records.length;i-1?records[nabeId][field]:null})}});return index2;function filter(a,b){return a>-1?[a,b]:null}function onArc(arcId){var ab=classify(arcId);var len;if(ab){len=geom.calcPathLen([arcId],arcs,!arcs.isPlanar());addArc(ab[0],ab[1],len);if(ab[1]>-1){addArc(ab[1],ab[0],len)}}}function addArc(shpA,shpB,len){var o=index[shpA]||(index[shpA]={});o[shpB]=len+(o[shpB]||0)}};api.dissolve2=function(layers,dataset,opts){layers.forEach(internal.requirePolygonLayer);T.start();var nodes=internal.addIntersectionCuts(dataset,opts);T.stop("Add cuts");return layers.map(function(lyr){return internal.dissolvePolygonLayer2(lyr,dataset,opts)})};api.drop2=function(catalog,targets,opts){targets.forEach(function(target){api.drop(catalog,target.layers,target.dataset,opts)})};api.drop=function(catalog,layers,dataset,opts){var updateArcs=false;layers.forEach(function(lyr){var fields=lyr.data&&opts.fields;var allFields=fields&&internal.fieldListContainsAll(fields,lyr.data.getFields());var deletion=!fields&&!opts.geometry||allFields&&opts.geometry;if(opts.geometry){updateArcs|=internal.layerHasPaths(lyr);delete lyr.shapes;delete lyr.geometry_type}if(deletion){catalog.deleteLayer(lyr,dataset)}else if(allFields){delete lyr.data}else if(fields){opts.fields.forEach(lyr.data.deleteField,lyr.data)}});if(updateArcs){internal.pruneArcs(dataset)}};var GeoJSON={};GeoJSON.ID_FIELD="FID";GeoJSON.typeLookup={LineString:"polyline",MultiLineString:"polyline",Polygon:"polygon",MultiPolygon:"polygon",Point:"point",MultiPoint:"point"};GeoJSON.translateGeoJSONType=function(type){return GeoJSON.typeLookup[type]||null};GeoJSON.pathIsRing=function(coords){var first=coords[0],last=coords[coords.length-1];return coords.length>=4&&first[0]==last[0]&&first[1]==last[1]};internal.FileReader=FileReader;internal.BufferReader=BufferReader;internal.readFirstChars=function(reader,n){return internal.bufferToString(reader.readSync(0,Math.min(n||1e3,reader.size())))};function BufferReader(src){var bufSize=src.byteLength||src.length,binArr,buf;this.readToBinArray=function(start,length){if(bufSize0===false){length=DEFAULT_BUFFER_LEN;if(start+length>fileLen){length=fileLen-start}if(length===0){return utils.createBuffer(0)}}updateCache(start,length);return cache.slice(start-cacheOffs,start-cacheOffs+length)};this.size=function(){return fileLen};this.toString=function(enc){return cli.readFile(path,enc||"utf8")};this.close=function(){if(fd){fs.closeSync(fd);fd=null;cache=null}};function updateCache(fileOffs,bufLen){var headroom=fileLen-fileOffs,bytesRead,bytesToRead;if(headroom=cacheOffs&&cacheOffs+cache.length>=fileOffs+bufLen){return false}bytesToRead=Math.max(DEFAULT_CACHE_LEN,bufLen);if(headroom0===false){throw new Error("Invalid size param: "+size)}return function(x,y){var u=uints,h;floats[0]=x;floats[1]=y;h=u[0]^u[1];h=h<<5^h>>7^u[2]^u[3];return(h&2147483647)%lim}}function getXHash(size){var buf=new ArrayBuffer(8),floats=new Float64Array(buf),uints=new Uint32Array(buf),lim=size|0;if(lim>0===false){throw new Error("Invalid size param: "+size)}return function(x){var h;floats[0]=x;h=uints[0]^uints[1];h=h<<5^h>>7;return(h&2147483647)%lim}}function ArcIndex(pointCount){var hashTableSize=Math.floor(pointCount*.25+1),hash=getXYHash(hashTableSize),hashTable=new Int32Array(hashTableSize),chainIds=[],arcs=[],arcPoints=0;utils.initializeArray(hashTable,-1);this.addArc=function(xx,yy){var end=xx.length-1,key=hash(xx[end],yy[end]),chainId=hashTable[key],arcId=arcs.length;hashTable[key]=arcId;arcs.push([xx,yy]);arcPoints+=xx.length;chainIds.push(chainId);return arcId};this.findDuplicateArc=function(xx,yy,start,end,getNext,getPrev){var arcId=findArcNeighbor(xx,yy,start,end,getNext);if(arcId===null){arcId=findArcNeighbor(xx,yy,end,start,getPrev)}else{arcId=~arcId}return arcId};function findArcNeighbor(xx,yy,start,end,getNext){var next=getNext(start),key=hash(xx[start],yy[start]),arcId=hashTable[key],arcX,arcY,len;while(arcId!=-1){arcX=arcs[arcId][0];arcY=arcs[arcId][1];len=arcX.length;if(arcX[0]===xx[end]&&arcX[len-1]===xx[start]&&arcX[len-2]===xx[next]&&arcY[0]===yy[end]&&arcY[len-1]===yy[start]&&arcY[len-2]===yy[next]){return arcId}arcId=chainIds[arcId]}return null}this.getVertexData=function(){var xx=new Float64Array(arcPoints),yy=new Float64Array(arcPoints),nn=new Uint32Array(arcs.length),copied=0,arc,len;for(var i=0,n=arcs.length;i=0?j:i}return chainIds}function initPointChains(xx,yy){var chainIds=initHashChains(xx,yy),j,next,prevMatchId,prevUnmatchId;for(var i=xx.length-1;i>=0;i--){next=chainIds[i];if(next>=i)continue;prevMatchId=i;prevUnmatchId=-1;do{j=next;next=chainIds[j];if(yy[j]==yy[i]&&xx[j]==xx[i]){chainIds[j]=prevMatchId;prevMatchId=j}else{if(prevUnmatchId>-1){chainIds[prevUnmatchId]=j}prevUnmatchId=j}}while(next-1){chainIds[prevUnmatchId]=prevUnmatchId}chainIds[i]=prevMatchId}return chainIds}api.buildTopology=function(dataset){if(!dataset.arcs)return;var raw=dataset.arcs.getVertexData(),cooked=internal.buildPathTopology(raw.nn,raw.xx,raw.yy);dataset.arcs.updateVertexData(cooked.nn,cooked.xx,cooked.yy);dataset.layers.forEach(function(lyr){if(lyr.geometry_type=="polyline"||lyr.geometry_type=="polygon"){lyr.shapes=internal.replaceArcIds(lyr.shapes,cooked.paths)}})};internal.buildPathTopology=function(nn,xx,yy){var pointCount=xx.length,chainIds=initPointChains(xx,yy),pathIds=initPathIds(pointCount,nn),index=new ArcIndex(pointCount),slice=usingTypedArrays()?xx.subarray:Array.prototype.slice,paths,retn;paths=convertPaths(nn);retn=index.getVertexData();retn.paths=paths;return retn;function usingTypedArrays(){return!!(xx.subarray&&yy.subarray)}function convertPaths(nn){var paths=[],pointId=0,pathLen;for(var i=0,len=nn.length;i=0&&pathIds[prevId]===partId){return id-1}var len=nn[partId];return sameXY(id,id+len-1)?id+len-2:-1}function sameXY(a,b){return xx[a]==xx[b]&&yy[a]==yy[b]}function convertPath(start,end){var arcIds=[],firstNodeId=-1,arcStartId;for(var i=start;i-1){arcIds.push(addEdge(arcStartId,i))}else{firstNodeId=i}arcStartId=i}}if(firstNodeId==-1){arcIds.push(addRing(start,end))}else if(firstNodeId==start){if(!pointIsArcEndpoint(end)){error("Topology error")}arcIds.push(addEdge(arcStartId,i))}else{arcIds.push(addSplitEdge(arcStartId,end,start+1,firstNodeId))}return arcIds}function pointIsArcEndpoint(id){var id2=chainIds[id],prev=prevPoint(id),next=nextPoint(id),prev2,next2;if(prev==-1||next==-1){return true}while(id!=id2){prev2=prevPoint(id2);next2=nextPoint(id2);if(prev2==-1||next2==-1||brokenEdge(prev,next,prev2,next2)){return true}id2=chainIds[id2]}return false}function brokenEdge(aprev,anext,bprev,bnext){var apx=xx[aprev],anx=xx[anext],bpx=xx[bprev],bnx=xx[bnext],apy=yy[aprev],any=yy[anext],bpy=yy[bprev],bny=yy[bnext];if(apx==bnx&&anx==bpx&&apy==bny&&any==bpy||apx==bpx&&anx==bnx&&apy==bpy&&any==bny){return false}return true}function mergeArcParts(src,startId,endId,startId2,endId2){var len=endId-startId+endId2-startId2+2,ArrayClass=usingTypedArrays()?Float64Array:Array,dest=new ArrayClass(len),j=0,i;for(i=startId;i<=endId;i++){dest[j++]=src[i]}for(i=startId2;i<=endId2;i++){dest[j++]=src[i]}return dest}function addSplitEdge(start1,end1,start2,end2){var arcId=index.findDuplicateArc(xx,yy,start1,end2,nextPoint,prevPoint);if(arcId===null){arcId=index.addArc(mergeArcParts(xx,start1,end1,start2,end2),mergeArcParts(yy,start1,end1,start2,end2))}return arcId}function addEdge(start,end){var arcId=index.findDuplicateArc(xx,yy,start,end,nextPoint,prevPoint);if(arcId===null){arcId=index.addArc(slice.call(xx,start,end+1),slice.call(yy,start,end+1))}return arcId}function addRing(startId,endId){var chainId=chainIds[startId],pathId=pathIds[startId],arcId;while(chainId!=startId){if(pathIds[chainId]0){snapDist=threshold;message(utils.format("Applying snapping threshold of %s -- %.6f times avg. segment length",threshold,threshold/avgDist))}var snapCount=internal.snapCoordsByInterval(arcs,snapDist);if(snapCount>0)arcs.dedupCoords();message(utils.format("Snapped %s point%s",snapCount,utils.pluralSuffix(snapCount)))};internal.snapCoordsByInterval=function(arcs,snapDist){var snapCount=0,data=arcs.getVertexData();var ids=utils.sortCoordinateIds(data.xx);for(var i=0,n=ids.length;ilimit)break;dy=yy[id2]-y;if(dx===0&&dy===0||dx*dx+dy*dy>limit*limit)continue;xx[id2]=x;yy[id2]=y;snaps++}return snaps}};utils.sortCoordinateIds=function(a){var n=a.length,ids=new Uint32Array(n);for(var i=0;i24){var pivot=a[ids[lo+hi>>1]],i=lo,j=hi,tmp;while(i<=j){while(a[ids[i]]pivot)j--;if(i<=j){tmp=ids[i];ids[i]=ids[j];ids[j]=tmp;i++;j--}}if(j>lo)utils.quicksortIds(a,ids,lo,j);if(i=start&&arr[id]=buflen){buflen=Math.ceil(buflen*1.3);xx=utils.extendBuffer(xx,buflen);yy=utils.extendBuffer(yy,buflen)}xx[i]=x;yy[i]=y;i++}}function PathImporter(opts){var bufSize=opts.reserved_points>0?opts.reserved_points:2e4,xx=new Float64Array(bufSize),yy=new Float64Array(bufSize),shapes=[],properties=[],nn=[],types=[],collectionType=opts.type||null,round=null,pathId=-1,shapeId=-1,pointId=0,dupeCount=0,openRingCount=0;if(opts.precision){round=utils.getRoundingFunction(opts.precision)}utils.extend(this,new PathImportStream(importPathCoords));this.startShape=function(d){shapes[++shapeId]=null;if(d)properties[shapeId]=d};this.importLine=function(points){setShapeType("polyline");this.importPath(points)};this.importPoints=function(points){setShapeType("point");if(round){points.forEach(function(p){p[0]=round(p[0]);p[1]=round(p[1])})}points.forEach(appendToShape)};this.importRing=function(points,isHole){var area=geom.getPlanarPathArea2(points);setShapeType("polygon");if(isHole===true&&area>0||isHole===false&&area<0){verbose("Warning: reversing",isHole?"a CW hole":"a CCW ring");points.reverse()}this.importPath(points)};this.importPath=function importPath(points){var p;for(var i=0,n=points.length;i0){verbose(utils.format("Removed %,d duplicate point%s",dupeCount,utils.pluralSuffix(dupeCount)))}if(openRingCount>0){message(utils.format("Closed %,d open polygon ring%s",openRingCount,utils.pluralSuffix(openRingCount)))}if(pointId>0){if(pointId0){lyr.data=new DataTable(properties)}layers=[lyr]}layers.forEach(function(lyr){if(lyr.data){internal.fixInconsistentFields(lyr.data.getRecords())}});return{arcs:arcs||null,info:{},layers:layers}};function setShapeType(t){var currType=shapeIdxx.length){var newLen=Math.max(needed,Math.ceil(xx.length*1.5));xx=utils.extendBuffer(xx,newLen,pointId);yy=utils.extendBuffer(yy,newLen,pointId)}}function appendToShape(part){var currShape=shapes[shapeId]||(shapes[shapeId]=[]);currShape.push(part)}function appendPath(n){pathId++;nn[pathId]=n;appendToShape([pathId])}function importPathCoords(xsrc,ysrc,n){var count=0;var x,y,prevX,prevY;checkBuffers(pointId+n);for(var i=0;i0&&x==prevX&&y==prevY){dupeCount++}else{xx[pointId]=x;yy[pointId]=y;pointId++;count++}prevY=y;prevX=x}if(collectionType=="polygon"&&count>0){if(xsrc[0]!=xsrc[n-1]||ysrc[0]!=ysrc[n-1]){checkBuffers(pointId+1);xx[pointId]=xsrc[0];yy[pointId]=ysrc[0];openRingCount++;pointId++;count++}}appendPath(count)}}function GeoJSONParser(opts){var idField=opts.id_field||GeoJSON.ID_FIELD,importer=new PathImporter(opts),dataset;this.parseObject=function(o){var geom,rec;if(o.type=="Feature"){geom=o.geometry;rec=o.properties||{};if("id"in o){rec[idField]=o.id}}else if(o.type){geom=o}importer.startShape(rec);if(geom)GeoJSON.importGeometry(geom,importer,opts)};this.done=function(){return importer.done()}}internal.importGeoJSON=function(src,opts){var supportedGeometries=Object.keys(GeoJSON.pathImporters),srcObj=utils.isString(src)?JSON.parse(src):src,importer=new GeoJSONParser(opts),srcCollection,dataset;if(srcObj.type=="Feature"){srcCollection={type:"FeatureCollection",features:[srcObj]}}else if(utils.contains(supportedGeometries,srcObj.type)){srcCollection={type:"GeometryCollection",geometries:[srcObj]}}else{srcCollection=srcObj}(srcCollection.features||srcCollection.geometries||[]).forEach(importer.parseObject);dataset=importer.done();internal.importCRS(dataset,srcObj);return dataset};GeoJSON.importGeometry=function(geom,importer,opts){var type=geom.type;if(type in GeoJSON.pathImporters){if(opts.geometry_type&&opts.geometry_type!=GeoJSON.translateGeoJSONType(type)){return}GeoJSON.pathImporters[type](geom.coordinates,importer)}else if(type=="GeometryCollection"){geom.geometries.forEach(function(geom){GeoJSON.importGeometry(geom,importer,opts)})}else{verbose("GeoJSON.importGeometry() Unsupported geometry type:",geom.type)}};GeoJSON.pathImporters={LineString:function(coords,importer){importer.importLine(coords)},MultiLineString:function(coords,importer){for(var i=0;i0)}},MultiPolygon:function(coords,importer){for(var i=0;i3&&path.area!==0}else if(type=="polyline"){valid=path.pointCount>1}if(valid){pointCount+=path.pointCount;path.bounds=geom.getPathBounds(path.points);bounds.mergeBounds(path.bounds);paths.push(path)}else{verbose("Skipping a collapsed",type,"path")}})}return{pointCount:pointCount,pathData:paths,pathCount:paths.length,bounds:bounds}};internal.exportPathCoords=function(iter){var points=[],i=0,x,y,prevX,prevY;while(iter.hasNext()){x=iter.x;y=iter.y;if(i===0||prevX!=x||prevY!=y){points.push([x,y]);i++}prevX=x;prevY=y}return{points:points,pointCount:points.length}};internal.mergeDatasetsForExport=function(arr){var copy=arr.map(function(dataset){return utils.defaults({layers:dataset.layers.map(internal.copyLayerShapes)},dataset)});return internal.mergeDatasets(copy)};internal.mergeCommandTargets=function(targets,catalog){var targetLayers=[];var targetDatasets=[];var datasetsWithArcs=0;var merged;targets.forEach(function(target){targetLayers=targetLayers.concat(target.layers);targetDatasets=targetDatasets.concat(target.dataset);if(target.dataset.arcs&&target.dataset.arcs.size()>0)datasetsWithArcs++});merged=internal.mergeDatasets(targetDatasets);if(datasetsWithArcs>1){api.buildTopology(merged)}targetDatasets.forEach(catalog.removeDataset);catalog.addDataset(merged);catalog.setDefaultTarget(targetLayers,merged);return[{layers:targetLayers,dataset:merged}]};internal.mergeDatasets=function(arr){var arcSources=[],arcCount=0,mergedLayers=[],mergedInfo={},mergedArcs;internal.requireDatasetsHaveCompatibleCRS(arr);arr.forEach(function(dataset){var n=dataset.arcs?dataset.arcs.size():0;if(n>0){arcSources.push(dataset.arcs)}internal.mergeDatasetInfo(mergedInfo,dataset);dataset.layers.forEach(function(lyr){if(lyr.geometry_type=="polygon"||lyr.geometry_type=="polyline"){internal.forEachArcId(lyr.shapes,function(id){return id<0?id-arcCount:id+arcCount})}mergedLayers.push(lyr)});arcCount+=n});mergedArcs=internal.mergeArcs(arcSources);if(mergedArcs.size()!=arcCount){error("[mergeDatasets()] Arc indexing error")}return{info:mergedInfo,arcs:mergedArcs,layers:mergedLayers}};internal.requireDatasetsHaveCompatibleCRS=function(arr){arr.reduce(function(memo,dataset){var P=internal.getDatasetCRS(dataset);if(memo&&P){if(internal.isLatLngCRS(memo)!=internal.isLatLngCRS(P)){stop("Unable to combine projected and unprojected datasets")}}return P||memo},null)};internal.mergeDatasetInfo=function(merged,dataset){var info=dataset.info||{};merged.input_files=utils.uniq((merged.input_files||[]).concat(info.input_files||[]));merged.input_formats=utils.uniq((merged.input_formats||[]).concat(info.input_formats||[]));utils.defaults(merged,info)};internal.mergeArcs=function(arr){var dataArr=arr.map(function(arcs){if(arcs.getRetainedInterval()>0){verbose("Baking-in simplification setting.");arcs.flatten()}return arcs.getVertexData()});var xx=utils.mergeArrays(utils.pluck(dataArr,"xx"),Float64Array),yy=utils.mergeArrays(utils.pluck(dataArr,"yy"),Float64Array),nn=utils.mergeArrays(utils.pluck(dataArr,"nn"),Int32Array);return new ArcCollection(nn,xx,yy)};utils.countElements=function(arrays){return arrays.reduce(function(memo,arr){return memo+(arr.length||0)},0)};utils.mergeArrays=function(arrays,TypedArr){var size=utils.countElements(arrays),Arr=TypedArr||Array,merged=new Arr(size),offs=0;arrays.forEach(function(src){var n=src.length;for(var i=0;i1){stop("Incompatible geometry types:",geoTypes.map(function(type){return type||"[none]"}).join(", "))}return geoTypes[0]||null};internal.mergeShapesFromLayers=function(layers){return layers.reduce(function(memo,lyr){return memo.concat(lyr.shapes)},[])};internal.mergeDataFromLayers=function(layers,force){var allFields=utils.uniq(layers.reduce(function(memo,lyr){return memo.concat(lyr.data?lyr.data.getFields():[])},[]));if(allFields.length===0)return null;var missingFields=internal.checkMergeLayersInconsistentFields(allFields,layers,force);var mergedRecords=layers.reduce(function(memo,lyr){var records=lyr.data?lyr.data.getRecords():new DataTable(internal.getFeatureCount(lyr)).getRecords();return memo.concat(records)},[]);if(missingFields.length>0){internal.fixInconsistentFields(mergedRecords)}return new DataTable(mergedRecords)};internal.checkMergeLayersInconsistentFields=function(allFields,layers,force){var msg;var missingFields=utils.uniq(layers.reduce(function(memo,lyr){return memo.concat(utils.difference(allFields,lyr.data?lyr.data.getFields():[]))},[]));if(missingFields.length>0){msg="["+missingFields.join(", ")+"]";msg=(missingFields.length==1?"Field "+msg+" is missing":"Fields "+msg+" are missing")+" from one or more layers";if(force){message("Warning: "+msg)}else{stop(msg)}}internal.checkMergeLayersFieldTypes(allFields,layers);return missingFields};internal.checkMergeLayersFieldTypes=function(fields,layers){fields.forEach(function(key){var types=internal.checkFieldTypes(key,layers);if(types.length>1){stop('Inconsistent data types in "'+key+'" field:',types.join(", "))}})};internal.checkFieldTypes=function(key,layers){return layers.reduce(function(memo,lyr){var type=lyr.data?internal.getColumnType(key,lyr.data.getRecords()):null;if(type&&memo.indexOf(type)==-1){memo.push(type)}return memo},[])};internal.mergeLayerNames=function(layers){return layers.reduce(function(memo,lyr){if(memo===null){memo=lyr.name||null}else if(memo&&lyr.name){memo=utils.mergeNames(memo,lyr.name)}return memo},null)||""};internal.exportGeoJSON=function(dataset,opts){opts=opts||{};var extension=opts.extension||"json";var layerGroups,warn;if(opts.precision||opts.rfc7946){dataset=internal.copyDatasetForExport(dataset);internal.setCoordinatePrecision(dataset,opts.precision||1e-6)}if(opts.rfc7946){warn=internal.getRFC7946Warnings(dataset);if(warn)message(warn)}if(opts.file){extension=utils.getFileExtension(opts.file)}if(opts.combine_layers){layerGroups=[dataset.layers]}else{layerGroups=dataset.layers.map(function(lyr){return[lyr]})}return layerGroups.map(function(layers){var name=internal.mergeLayerNames(layers)||"output";var d=utils.defaults({layers:layers},dataset);return{content:internal.exportDatasetAsGeoJSON(d,opts,"geojson"),filename:name+"."+extension}})};internal.exportLayerAsGeoJSON=function(lyr,dataset,opts,asFeatures,ofmt){var properties=internal.exportProperties(lyr.data,opts),shapes=lyr.shapes,ids=internal.exportIds(lyr.data,opts),items,stringify;if(ofmt){stringify=opts.prettify?internal.getFormattedStringify(["bbox","coordinates"]):JSON.stringify}if(properties&&shapes&&properties.length!==shapes.length){error("Mismatch between number of properties and number of shapes")}return(shapes||properties||[]).reduce(function(memo,o,i){var shape=shapes?shapes[i]:null,exporter=GeoJSON.exporters[lyr.geometry_type],obj=shape?exporter(shape,dataset.arcs,opts):null;if(asFeatures){obj={type:"Feature",geometry:obj,properties:properties?properties[i]:null};if(ids){obj.id=ids[i]}}else if(!obj){return memo}if(ofmt){obj=stringify(obj);if(ofmt=="buffer"){obj=internal.encodeString(obj,"utf8")}}memo.push(obj);return memo},[])};internal.getRFC7946Warnings=function(dataset){var P=internal.getDatasetCRS(dataset);var str;if(!P||!internal.isLatLngCRS(P)){str="RFC 7946 warning: non-WGS84 coordinates.";if(P)str+=' Use "-proj wgs84" to convert.'}return str};internal.getDatasetBbox=function(dataset,rfc7946){var P=internal.getDatasetCRS(dataset),wrapped=rfc7946&&P&&internal.isLatLngCRS(P),westBounds=new Bounds,eastBounds=new Bounds,mergedBounds,gutter,margins,bbox;dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.traversePaths(lyr.shapes,null,function(o){var bounds=dataset.arcs.getSimpleShapeBounds(o.arcs);(bounds.centerX()<0?westBounds:eastBounds).mergeBounds(bounds)})}else if(internal.layerHasPoints(lyr)){internal.forEachPoint(lyr.shapes,function(p){(p[0]<0?westBounds:eastBounds).mergePoint(p[0],p[1])})}});mergedBounds=(new Bounds).mergeBounds(eastBounds).mergeBounds(westBounds);if(mergedBounds.hasBounds()){bbox=mergedBounds.toArray()}if(wrapped&&eastBounds.hasBounds()&&westBounds.hasBounds()){gutter=eastBounds.xmin-westBounds.xmax;margins=360+westBounds.xmin-eastBounds.xmax;if(gutter>0&&gutter>margins){bbox[0]=eastBounds.xmin;bbox[2]=westBounds.xmax}}return bbox||null};internal.exportDatasetAsGeoJSON=function(dataset,opts,ofmt){var geojson={};var layers=dataset.layers;var useFeatures=internal.useFeatureCollection(layers,opts);var parts,collection,bbox,collname;if(useFeatures){geojson.type="FeatureCollection";collname="features"}else{geojson.type="GeometryCollection";collname="geometries"}if(!opts.rfc7946){internal.exportCRS(dataset,geojson)}if(opts.bbox){bbox=internal.getDatasetBbox(dataset,opts.rfc7946);if(bbox){geojson.bbox=bbox}}collection=layers.reduce(function(memo,lyr,i){var items=internal.exportLayerAsGeoJSON(lyr,dataset,opts,useFeatures,ofmt);return memo.length>0?memo.concat(items):items},[]);if(opts.geojson_type=="Feature"&&collection.length==1){return collection[0]}else if(ofmt){return GeoJSON.formatGeoJSON(geojson,collection,collname,ofmt)}else{geojson[collname]=collection;return geojson}};GeoJSON.formatGeoJSON=function(container,collection,collType,ofmt){var head=JSON.stringify(container).replace(/\}$/,', "'+collType+'": [\n');var tail="\n]}";if(ofmt=="buffer"){return GeoJSON.joinOutputBuffers(head,tail,collection)}return head+collection.join(",\n")+tail};GeoJSON.joinOutputBuffers=function(head,tail,collection){var comma=utils.createBuffer(",\n","utf8");var parts=collection.reduce(function(memo,buf,i){if(i>0)memo.push(comma);memo.push(buf);return memo},[utils.createBuffer(head,"utf8")]);parts.push(utils.createBuffer(tail,"utf8"));return Buffer.concat(parts)};GeoJSON.exportPointGeom=function(points,arcs){var geom=null;if(points.length==1){geom={type:"Point",coordinates:points[0]}}else if(points.length>1){geom={type:"MultiPoint",coordinates:points}}return geom};GeoJSON.exportLineGeom=function(ids,arcs){var obj=internal.exportPathData(ids,arcs,"polyline");if(obj.pointCount===0)return null;var coords=obj.pathData.map(function(path){return path.points});return coords.length==1?{type:"LineString",coordinates:coords[0]}:{type:"MultiLineString",coordinates:coords}};GeoJSON.exportPolygonGeom=function(ids,arcs,opts){var obj=internal.exportPathData(ids,arcs,"polygon");if(obj.pointCount===0)return null;var groups=internal.groupPolygonRings(obj.pathData,opts.invert_y);var reverse=opts.rfc7946&&!opts.invert_y;var coords=groups.map(function(paths){return paths.map(function(path){if(reverse)path.points.reverse();return path.points})});return coords.length==1?{type:"Polygon",coordinates:coords[0]}:{type:"MultiPolygon",coordinates:coords}};GeoJSON.exporters={polygon:GeoJSON.exportPolygonGeom,polyline:GeoJSON.exportLineGeom,point:GeoJSON.exportPointGeom};internal.exportCRS=function(dataset,jsonObj){var info=dataset.info||{};if(!info.crs&&"input_geojson_crs"in info){jsonObj.crs=info.input_geojson_crs}else if(info.crs&&!internal.isLatLngCRS(info.crs)){jsonObj.crs=null}else{}};internal.useFeatureCollection=function(layers,opts){var type=opts.geojson_type||"";if(type=="Feature"||type=="FeatureCollection"){return true}else if(type=="GeometryCollection"){return false}else if(type){stop("Unsupported GeoJSON type:",opts.geojson_type)}return utils.some(layers,function(lyr){var fields=lyr.data?lyr.data.getFields():[];var haveData=internal.useFeatureProperties(fields,opts);var haveId=!!internal.getIdField(fields,opts);return haveData||haveId})};internal.useFeatureProperties=function(fields,opts){return!(opts.drop_table||opts.cut_table||fields.length===0||fields.length==1&&fields[0]==GeoJSON.ID_FIELD)};internal.exportProperties=function(table,opts){var fields=table?table.getFields():[],idField=internal.getIdField(fields,opts),properties,records;if(!internal.useFeatureProperties(fields,opts)){return null}records=table.getRecords();if(idField==GeoJSON.ID_FIELD){properties=records.map(function(rec){rec=utils.extend({},rec);delete rec[idField];return rec})}else{properties=records}return properties};internal.getIdField=function(fields,opts){var ids=[];var opt=opts.id_field;if(utils.isString(opt)){ids.push(opt)}else if(utils.isArray(opt)){ids=opt}ids.push(GeoJSON.ID_FIELD);return utils.find(ids,function(name){return utils.contains(fields,name)})};internal.exportIds=function(table,opts){var fields=table?table.getFields():[],idField=internal.getIdField(fields,opts);if(!idField)return null;return table.getRecords().map(function(rec){return idField in rec?rec[idField]:null})};var TopoJSON={};TopoJSON.forEachShapePart=function forEachShapePart(obj,cb){var iterators={GeometryCollection:function(o){o.geometries.forEach(eachGeom)},LineString:function(o){var retn=cb(o.arcs);if(retn)o.arcs=retn},MultiLineString:function(o){eachMultiPath(o.arcs)},Polygon:function(o){eachMultiPath(o.arcs)},MultiPolygon:function(o){o.arcs.forEach(eachMultiPath)}};eachGeom(obj);function eachGeom(o){if(o.type in iterators){iterators[o.type](o)}}function eachMultiPath(arr){var retn;for(var i=0;i0){if(topology.transform){TopoJSON.decodeArcs(topology.arcs,topology.transform)}if(opts&&opts.precision){TopoJSON.roundCoords(topology.arcs,opts.precision)}arcs=new ArcCollection(topology.arcs)}layers=Object.keys(topology.objects).reduce(function(memo,name){var layers=TopoJSON.importObject(topology.objects[name],arcs,opts),lyr;for(var i=0,n=layers.length;i0)internal.reversePath(ring);imported.push(ring)}return imported};TopoJSON.shapeImporters={Point:function(geom){return[geom.coordinates]},MultiPoint:function(geom){return geom.coordinates},LineString:function(geom){return[geom.arcs]},MultiLineString:function(geom){return geom.arcs},Polygon:function(geom,arcColl){return TopoJSON.importPolygonArcs(geom.arcs,arcColl)},MultiPolygon:function(geom,arcColl){return geom.arcs.reduce(function(memo,arr){var rings=TopoJSON.importPolygonArcs(arr,arcColl);if(rings){memo=memo?memo.concat(rings):rings}return memo},null)}};TopoJSON.getPresimplifyFunction=function(width){var quanta=1e4,k=quanta/width;return function(z){return z===Infinity?0:Math.ceil(z*k)}};api.explodeFeatures=function(lyr,arcs,opts){var properties=lyr.data?lyr.data.getRecords():null,explodedProperties=properties?[]:null,explodedShapes=[],explodedLyr=utils.extend({},lyr);lyr.shapes.forEach(function explodeShape(shp,shpId){var exploded;if(!shp){explodedShapes.push(null)}else{if(lyr.geometry_type=="polygon"&&shp.length>1){if(opts&&opts.naive){exploded=internal.explodePolygonNaive(shp,arcs)}else{exploded=internal.explodePolygon(shp,arcs)}}else{exploded=internal.explodeShape(shp)}utils.merge(explodedShapes,exploded)}if(explodedProperties!==null){for(var i=0,n=exploded?exploded.length:1;i0){widthPx=width/opts.svg_scale+marginX;heightPx=0}else if(+opts.pixels){size=internal.getFrameSize(bounds,opts);widthPx=size[0];heightPx=size[1]}else{heightPx=opts.height||0;widthPx=opts.width||(heightPx>0?0:800)}if(heightPx>0){ky=(height||width||1)/(heightPx-marginY)}if(widthPx>0){kx=(width||height||1)/(widthPx-marginX)}if(!widthPx){kx=ky;widthPx=width>0?marginX+width/kx:heightPx}else if(!heightPx){ky=kx;heightPx=height>0?marginY+height/ky:widthPx;if(opts.max_height>0&&heightPx>opts.max_height){ky=kx*heightPx/opts.max_height;heightPx=opts.max_height}}if(kx>ky){ky=kx;padY=ky*(heightPx-marginY)-height}else if(ky>kx){kx=ky;padX=kx*(widthPx-marginX)-width}bounds.padBounds(margins[0]*kx+padX*wx,margins[1]*ky+padY*wy,margins[2]*kx+padX*(1-wx),margins[3]*ky+padY*(1-wy));if(!(widthPx>0&&heightPx>0)){error("Missing valid height and width parameters")}if(!(kx===ky&&kx>0)){error("Missing valid margin parameters")}return new Bounds(0,0,widthPx,heightPx)};internal.exportTopoJSON=function(dataset,opts){var extension="."+(opts.extension||"json"),needCopy=!opts.final||internal.datasetHasPaths(dataset)&&dataset.arcs.getRetainedInterval()>0,stringify=JSON.stringify;if(needCopy){dataset=internal.copyDatasetForExport(dataset)}if(opts.prettify){stringify=internal.getFormattedStringify("coordinates,arcs,bbox,translate,scale".split(","))}if(opts.width>0||opts.height>0){opts=utils.defaults({invert_y:true},opts);internal.transformDatasetToPixels(dataset,opts)}if(opts.precision){internal.setCoordinatePrecision(dataset,opts.precision)}if(opts.singles){return internal.splitDataset(dataset).map(function(dataset){return{content:stringify(TopoJSON.exportTopology(dataset,opts)),filename:(dataset.layers[0].name||"output")+extension}})}else{return[{filename:opts.file||utils.getOutputFileBase(dataset)+extension,content:stringify(TopoJSON.exportTopology(dataset,opts))}]}};TopoJSON.exportTopology=function(dataset,opts){var topology={type:"Topology",arcs:[]},hasPaths=internal.datasetHasPaths(dataset),bounds=internal.getDatasetBounds(dataset);if(opts.bbox&&bounds.hasBounds()){topology.bbox=bounds.toArray()}if(hasPaths&&opts.presimplify&&!dataset.arcs.getVertexData().zz){api.simplify(dataset,opts)}if(!opts.no_quantization&&(opts.quantization||hasPaths)){topology.transform=TopoJSON.transformDataset(dataset,bounds,opts)}if(hasPaths){internal.dissolveArcs(dataset);topology.arcs=TopoJSON.exportArcs(dataset.arcs,bounds,opts);if(topology.transform){TopoJSON.deltaEncodeArcs(topology.arcs)}}topology.objects=dataset.layers.reduce(function(objects,lyr,i){var name=lyr.name||"layer"+(i+1);objects[name]=TopoJSON.exportLayer(lyr,dataset.arcs,opts);return objects},{});internal.exportCRS(dataset,topology);if(opts.metadata){topology.metadata=internal.exportMetadata(dataset)}return topology};TopoJSON.transformDataset=function(dataset,bounds,opts){var bounds2=TopoJSON.calcExportBounds(bounds,dataset.arcs,opts),fw=bounds.getTransform(bounds2),inv=fw.invert();function transform(x,y){var p=fw.transform(x,y);return[Math.round(p[0]),Math.round(p[1])]}if(dataset.arcs){dataset.arcs.transformPoints(transform)}if(!opts.no_point_quantization){dataset.layers.filter(internal.layerHasPoints).forEach(function(lyr){internal.transformPointsInLayer(lyr,transform)})}return{scale:[inv.mx,inv.my],translate:[inv.bx,inv.by]}};TopoJSON.exportArcs=function(arcs,bounds,opts){var fromZ=null,output=[];if(opts.presimplify){fromZ=TopoJSON.getPresimplifyFunction(bounds.width())}arcs.forEach2(function(i,n,xx,yy,zz){var arc=[],p;for(var j=i+n;i1?arc:null)});return output};TopoJSON.deltaEncodeArcs=function(arcs){arcs.forEach(function(arr){var ax,ay,bx,by,p;for(var i=0,n=arr.length;i0){p[0]=bx-ax;p[1]=by-ay}ax=bx;ay=by}})};TopoJSON.calcExportResolution=function(arcs,k){var xy=internal.getAvgSegment2(arcs);return[xy[0]*k,xy[1]*k]};TopoJSON.calcExportBounds=function(bounds,arcs,opts){var unitXY,xmax,ymax;if(opts.topojson_precision>0){unitXY=TopoJSON.calcExportResolution(arcs,opts.topojson_precision)}else if(opts.quantization>0){unitXY=[bounds.width()/(opts.quantization-1),bounds.height()/(opts.quantization-1)]}else if(opts.precision>0){unitXY=[opts.precision,opts.precision]}else{unitXY=TopoJSON.calcExportResolution(arcs,.02)}xmax=Math.ceil(bounds.width()/unitXY[0])||0;ymax=Math.ceil(bounds.height()/unitXY[1])||0;return new Bounds(0,0,xmax,ymax)};TopoJSON.exportProperties=function(geometries,table,opts){var properties=internal.exportProperties(table,opts),ids=internal.exportIds(table,opts);geometries.forEach(function(geom,i){if(properties){geom.properties=properties[i]}if(ids){geom.id=ids[i]}})};TopoJSON.exportLayer=function(lyr,arcs,opts){var n=internal.getFeatureCount(lyr),geometries=[],exporter=TopoJSON.exporters[lyr.geometry_type]||null,shp;for(var i=0;i1){geom.arcs=internal.explodePolygon(shape,coords,opts.invert_y);if(geom.arcs.length==1){geom.arcs=geom.arcs[0];geom.type="Polygon"}else{geom.type="MultiPolygon"}}else{geom.arcs=shape;geom.type="Polygon"}return geom};TopoJSON.exportLineGeom=function(shape,coords){var geom={};shape=internal.filterEmptyArcs(shape,coords);if(!shape||shape.length===0){geom.type=null}else if(shape.length==1){geom.type="LineString";geom.arcs=shape[0]}else{geom.type="MultiLineString";geom.arcs=shape}return geom};TopoJSON.exporters={polygon:TopoJSON.exportPolygonGeom,polyline:TopoJSON.exportLineGeom,point:GeoJSON.exportPointGeom};var ShpType={NULL:0,POINT:1,POLYLINE:3,POLYGON:5,MULTIPOINT:8,POINTZ:11,POLYLINEZ:13,POLYGONZ:15,MULTIPOINTZ:18,POINTM:21,POLYLINEM:23,POLYGONM:25,MULIPOINTM:28,MULTIPATCH:31};ShpType.isPolygonType=function(t){return t==5||t==15||t==25};ShpType.isPolylineType=function(t){return t==3||t==13||t==23};ShpType.isMultiPartType=function(t){return ShpType.isPolygonType(t)||ShpType.isPolylineType(t)};ShpType.isMultiPointType=function(t){return t==8||t==18||t==28};ShpType.isZType=function(t){return utils.contains([11,13,15,18],t)};ShpType.isMType=function(t){return ShpType.isZType(t)||utils.contains([21,23,25,28],t)};ShpType.hasBounds=function(t){return ShpType.isMultiPartType(t)||ShpType.isMultiPointType(t)};internal.translateShapefileType=function(shpType){if(utils.contains([ShpType.POLYGON,ShpType.POLYGONM,ShpType.POLYGONZ],shpType)){return"polygon"}else if(utils.contains([ShpType.POLYLINE,ShpType.POLYLINEM,ShpType.POLYLINEZ],shpType)){return"polyline"}else if(utils.contains([ShpType.POINT,ShpType.POINTM,ShpType.POINTZ,ShpType.MULTIPOINT,ShpType.MULTIPOINTM,ShpType.MULTIPOINTZ],shpType)){return"point"}return null};internal.isSupportedShapefileType=function(t){return utils.contains([0,1,3,5,8,11,13,15,18,21,23,25,28],t)};var NullRecord=function(){return{isNull:true,pointCount:0,partCount:0,byteLength:12}};function ShpRecordClass(type){var hasBounds=ShpType.hasBounds(type),hasParts=ShpType.isMultiPartType(type),hasZ=ShpType.isZType(type),hasM=ShpType.isMType(type),singlePoint=!hasBounds,mzRangeBytes=singlePoint?0:16,constructor;if(type===0){return NullRecord}constructor=function ShapeRecord(bin,bytes){var pos=bin.position();this.id=bin.bigEndian().readUint32();this.type=bin.littleEndian().skipBytes(4).readUint32();if(this.type===0){return new NullRecord}if(bytes>0!==true||this.type!=type&&this.type!==0){error("Unable to read a shape -- .shp file may be corrupted")}this.byteLength=bytes;if(singlePoint){this.pointCount=1;this.partCount=1}else{bin.skipBytes(32);this.partCount=hasParts?bin.readUint32():1;this.pointCount=bin.readUint32()}this._data=function(){return bin.position(pos)}};var proto={_xypos:function(){var offs=12;if(!singlePoint)offs+=4;if(hasBounds)offs+=32;if(hasParts)offs+=4*this.partCount+4;return offs},readCoords:function(){if(this.pointCount===0)return null;var partSizes=this.readPartSizes(),xy=this._data().skipBytes(this._xypos());return partSizes.map(function(pointCount){return xy.readFloat64Array(pointCount*2)})},readXY:function(){if(this.pointCount===0)return new Float64Array(0);return this._data().skipBytes(this._xypos()).readFloat64Array(this.pointCount*2)},readPoints:function(){var xy=this.readXY(),zz=hasZ?this.readZ():null,mm=hasM&&this.hasM()?this.readM():null,points=[],p;for(var i=0,n=xy.length/2;i0){sizes.push(partLen);startId+=partLen}}}return sizes}};var singlePointProto={read:function(){var n=2;if(hasZ)n++;if(this.hasM())n++;return this._data().skipBytes(12).readFloat64Array(n)},stream:function(sink){var src=this._data().skipBytes(12);sink.addPoint(src.readFloat64(),src.readFloat64());sink.endPath()}};var multiCoordProto={readBounds:function(){return this._data().skipBytes(12).readFloat64Array(4)},stream:function(sink){var sizes=this.readPartSizes(),xy=this.readXY(),i=0,j=0,n;while(i0){sink.addPoint(xy[j++],xy[j++])}sink.endPath();i++}if(xy.length!=j)error("Counting error")},stream2:function(sink){var sizes=this.readPartSizes(),bin=this._data().skipBytes(this._xypos()),i=0,n;while(i0){sink.addPoint(bin.readFloat64(),bin.readFloat64())}sink.endPath();i++}},read:function(){var parts=[],sizes=this.readPartSizes(),points=this.readPoints();for(var i=0,n=sizes.length-1;i0){verbose("Skipped over "+skippedBytes+" non-data bytes in the .shp file.")}shpFile.close();reset()}return shape};function readNextShape(){var expectedId=recordCount+1;var shape,offset;if(done())return null;if(shxBin){shxBin.position(100+recordCount*8);offset=shxBin.readUint32()*2;if(offset>shpOffset){skippedBytes+=offset-shpOffset}}else{offset=shpOffset}shape=readShapeAtOffset(offset);if(!shape){shape=huntForNextShape(offset,expectedId)}if(shape){if(shape.idexpectedId){stop("Shapefile contains an out-of-sequence record. Possible data corruption -- bailing.")}recordCount++}return shape||null}function done(){if(shxFile&&shxFile.size()<=100+recordCount*8)return true;if(shpOffset+12>shpSize)return true;return false}function reset(){shpOffset=100;skippedBytes=0;recordCount=0}function parseHeader(bin){var header={signature:bin.bigEndian().readUint32(),byteLength:bin.skipBytes(20).readUint32()*2,version:bin.littleEndian().readUint32(),type:bin.readUint32(),bounds:bin.readFloat64Array(4),zbounds:bin.readFloat64Array(2),mbounds:bin.readFloat64Array(2)};if(header.signature!=9994){error("Not a valid .shp file")}if(!internal.isSupportedShapefileType(header.type)){error("Unsupported .shp type:",header.type)}if(header.byteLength!=shpFile.size()){error("File size of .shp doesn't match size in header")}return header}function readShapeAtOffset(offset){var shape=null,recordSize,recordType,recordId,goodSize,goodType,bin;if(offset+12<=shpSize){bin=shpFile.readToBinArray(offset,12);recordId=bin.bigEndian().readUint32();recordSize=bin.readUint32()*2+8;recordType=bin.littleEndian().readUint32();goodSize=offset+recordSize<=shpSize&&recordSize>=12;goodType=recordType===0||recordType==header.type;if(goodSize&&goodType){bin=shpFile.readToBinArray(offset,recordSize);shape=new RecordClass(bin,recordSize);shpOffset=offset+shape.byteLength}}return shape}function huntForNextShape(start,id){var offset=start+4,shape=null,bin,recordId,recordType,count;while(offset+12<=shpSize){bin=shpFile.readToBinArray(offset,12);recordId=bin.bigEndian().readUint32();recordType=bin.littleEndian().skipBytes(4).readUint32();if(recordId==id&&(recordType==header.type||recordType===0)){shape=readShapeAtOffset(offset);break}offset+=4}count=shape?offset-start:shpSize-start;skippedBytes+=count;return shape}}ShpReader.prototype.type=function(){return this.header().type};ShpReader.prototype.getCounts=function(){var counts={nullCount:0,partCount:0,shapeCount:0,pointCount:0};this.forEachShape(function(shp){if(shp.isNull)counts.nullCount++;counts.pointCount+=shp.pointCount;counts.partCount+=shp.partCount;counts.shapeCount++});return counts};internal.importShp=function(shp,shx,opts){var reader=new ShpReader(shp,shx),shpType=reader.type(),type=internal.translateShapefileType(shpType),importOpts=utils.defaults({type:type,reserved_points:Math.round(reader.header().byteLength/16)},opts),importer=new PathImporter(importOpts);if(!internal.isSupportedShapefileType(shpType)){stop("Unsupported Shapefile type:",shpType)}if(ShpType.isZType(shpType)){message("Warning: Shapefile Z data will be lost.")}else if(ShpType.isMType(shpType)){message("Warning: Shapefile M data will be lost.")}reader.forEachShape(function(shp){importer.startShape();if(shp.isNull){}else if(type=="point"){importer.importPoints(shp.readPoints())}else{shp.stream(importer)}});return importer.done()};internal.exportShapefile=function(dataset,opts){return dataset.layers.reduce(function(files,lyr){var prj=internal.exportPrjFile(lyr,dataset);files=files.concat(internal.exportShpAndShxFiles(lyr,dataset,opts));files=files.concat(internal.exportDbfFile(lyr,dataset,opts));if(prj)files.push(prj);return files},[])};internal.exportPrjFile=function(lyr,dataset){var info=dataset.info||{};var prj=info.prj;if(!prj){try{prj=internal.crsToPrj(internal.getDatasetCRS(dataset))}catch(e){}}if(!prj){message("Unable to generate .prj file for",lyr.name+".shp")}return prj?{content:prj,filename:lyr.name+".prj"}:null};internal.getShapefileExportType=function(lyr){var type=lyr.geometry_type;var shpType;if(type=="point"){shpType=internal.findMaxPartCount(lyr.shapes||[])<=1?ShpType.POINT:ShpType.MULTIPOINT}else if(type=="polygon"){shpType=ShpType.POLYGON}else if(type=="polyline"){shpType=ShpType.POLYLINE}else{shpType=ShpType.NULL}return shpType};internal.exportShpAndShxFiles=function(layer,dataset,opts){var shapes=layer.shapes||utils.initializeArray(new Array(internal.getFeatureCount(layer)),null);var bounds=new Bounds;var shpType=internal.getShapefileExportType(layer);var fileBytes=100;var shxBytes=100+shapes.length*8;var shxBin=new BinArray(shxBytes).bigEndian().position(100);var shpBin;var shapeBuffers=shapes.map(function(shape,i){var pathData=internal.exportPathData(shape,dataset.arcs,layer.geometry_type);var rec=internal.exportShpRecord(pathData,i+1,shpType);var recBytes=rec.buffer.byteLength;shxBin.writeInt32(fileBytes/2);shxBin.writeInt32(recBytes/2-4);fileBytes+=recBytes;if(rec.bounds)bounds.mergeBounds(rec.bounds);return rec.buffer});shpBin=new BinArray(fileBytes,false).writeInt32(9994).skipBytes(5*4).writeInt32(fileBytes/2).littleEndian().writeInt32(1e3).writeInt32(shpType);if(bounds.hasBounds()){shpBin.writeFloat64(bounds.xmin||0).writeFloat64(bounds.ymin||0).writeFloat64(bounds.xmax||0).writeFloat64(bounds.ymax||0)}else{shpBin.skipBytes(4*8)}shpBin.skipBytes(4*8);shapeBuffers.forEach(function(buf){shpBin.writeBuffer(buf)});shxBin.position(0).writeBuffer(shpBin.buffer(),100).position(24).writeInt32(shxBytes/2);return[{content:shpBin.buffer(),filename:layer.name+".shp"},{content:shxBin.buffer(),filename:layer.name+".shx"}]};internal.exportShpRecord=function(data,id,shpType){var multiPartType=ShpType.isMultiPartType(shpType),singlePointType=!multiPartType&&!ShpType.isMultiPointType(shpType),isNull=data.pointCount>0===false,bounds=isNull?null:data.bounds,bin=null;if(isNull){bin=new BinArray(12,false).writeInt32(id).writeInt32(2).littleEndian().writeInt32(0)}else if(singlePointType){bin=new BinArray(28,false).writeInt32(id).writeInt32(10).littleEndian().writeInt32(shpType).writeFloat64(data.pathData[0].points[0][0]).writeFloat64(data.pathData[0].points[0][1])}else{var partIndexIdx=52,pointsIdx=multiPartType?partIndexIdx+4*data.pathCount:48,recordBytes=pointsIdx+16*data.pointCount,pointCount=0;bin=new BinArray(recordBytes,false).writeInt32(id).writeInt32((recordBytes-8)/2).littleEndian().writeInt32(shpType).writeFloat64(bounds.xmin).writeFloat64(bounds.ymin).writeFloat64(bounds.xmax).writeFloat64(bounds.ymax);if(multiPartType){bin.writeInt32(data.pathCount)}bin.writeInt32(data.pointCount);data.pathData.forEach(function(path,i){if(multiPartType){bin.position(partIndexIdx+i*4).writeInt32(pointCount)}bin.position(pointsIdx+pointCount*16);for(var j=0,len=path.points.length;j-1){val=null}else if(type=="number"){val=internal.isSvgNumber(strVal)?Number(strVal):null}else if(type=="color"){val=internal.isSvgColor(strVal)?strVal:null}else if(type=="classname"){val=internal.isSvgClassName(strVal)?strVal:null}else if(type=="measure"){val=internal.isSvgMeasure(strVal)?internal.parseSvgMeasure(strVal):null}else if(type=="dasharray"){val=internal.isDashArray(strVal)?strVal:null}else{val=/[\?\:\[\(\+]/.test(strVal)?null:strVal}return val};internal.isDashArray=function(str){return/^[0-9]+( [0-9]+)*$/.test(str)};internal.isSvgClassName=function(str){return/^( ?[_a-z][-_a-z0-9]*\b)+$/i.test(str)};internal.isSvgNumber=function(o){return utils.isFiniteNumber(o)||utils.isString(o)&&/^-?[.0-9]+$/.test(o)};internal.isSvgMeasure=function(o){return utils.isFiniteNumber(o)||utils.isString(o)&&/^-?[.0-9]+[a-z]*$/.test(o)};internal.parseSvgMeasure=function(str){return utils.isString(str)&&/[a-z]/.test(str)?str:Number(str)};internal.isSvgColor=function(str){return/^[a-z]+$/i.test(str)||/^#[0-9a-f]+$/i.test(str)||/^rgba?\([0-9,. ]+\)$/.test(str)};api.svgStyle=function(lyr,dataset,opts){var filter;if(!lyr.data){internal.initDataTable(lyr)}if(opts.where){filter=internal.compileValueExpression(opts.where,lyr,dataset.arcs)}Object.keys(opts).forEach(function(optName){var svgName=optName.replace("_","-");var strVal,literalVal,func,dataType;if(!SVG.isSupportedSvgStyleProperty(svgName)){return}dataType=SVG.stylePropertyTypes[svgName];strVal=opts[optName].trim();literalVal=internal.parseSvgLiteralValue(strVal,dataType,lyr.data.getFields());if(literalVal===null){func=internal.compileValueExpression(strVal,lyr,dataset.arcs,{context:internal.getStateVar("defs")})}internal.getLayerDataTable(lyr).getRecords().forEach(function(rec,i){if(filter&&!filter(i)){if(svgName in rec===false){rec[svgName]=undefined}}else{rec[svgName]=func?func(i):literalVal}})})};utils.sha1=function(str1){for(var blockstart=0,i=0,W=[],A,B,C,D,F,G,H=[A=1732584193,B=4023233417,~A,~B,3285377520],word_array=[],temp2,s=unescape(encodeURI(str1)),str_len=s.length;i<=str_len;){word_array[i>>2]|=(s.charCodeAt(i)||128)<<8*(3-i++%4)}word_array[temp2=str_len+8>>2|15]=str_len<<3;for(;blockstart<=temp2;blockstart+=16){A=H;i=0;for(;i<80;A=[[(G=((s=A[0])<<5|s>>>27)+A[4]+(W[i]=i<16?~~word_array[blockstart+i]:G<<1|G>>>31)+1518500249)+((B=A[1])&(C=A[2])|~B&(D=A[3])),F=G+(B^C^D)+341275144,G+(B&C|B&D|C&D)+882459459,F+1535694389][0|i++/20]|0,s,B<<30|B>>>2,C,D]){G=W[i-3]^W[i-8]^W[i-14]^W[i-16]}for(i=5;i;)H[--i]=H[i]+A[i]|0}for(str1="";i<40;)str1+=(H[i>>3]>>(7-i++%8)*4&15).toString(16);return str1};SVG.embedImages=function(obj,symbols){if(internal.runningInBrowser())return;procNode(obj);function procNode(obj){if(obj.tag=="image"){if(/\.svg/.test(obj.properties.href||"")){embedSvgImage(obj)}}else if(obj.children){obj.children.forEach(procNode)}}function embedSvgImage(obj){var id=addImage(obj.properties.href);obj.tag="use";obj.properties.href="#"+id}function addImage(href){var item=utils.find(symbols,function(item){return item.href==href});if(!item){item={href:href,id:SVG.urlToId(href)};item.svg=convertSvg(getSvgFile(href),item.id)+"\n";symbols.push(item)}return item.id}function getSvgFile(href){var res,content,fs;if(href.indexOf("http")===0){res=require("sync-request")("GET",href,{timeout:1e3});content=res.getBody().toString()}else if(require("fs").existsSync(href)){content=require("fs").readFileSync(href,"utf8")}else{stop("Invalid SVG location:",href)}return content}function convertSvg(svg,id){svg=svg.replace(/[^]*]*>/,function(a){a=a.replace(/ id="[^"]*"/,"");a=a.replace(/"+joinStr;if(obj.value){svg+=obj.value}if(obj.children){svg+=obj.children.map(SVG.stringify).join(joinStr)}svg+=joinStr+""}else{svg+="/>"}return svg};SVG.stringEscape=function(){var rxp=/[&<>"']/g,map={"&":"&","<":"<",">":">",'"':""","'":"'"};return function(s){return String(s).replace(rxp,function(s){return map[s]})}}();SVG.stringifyProperties=function(o){return Object.keys(o).reduce(function(memo,key){var val=o[key],strval;if(!val&&val!==0)return memo;strval=utils.isString(val)?val:JSON.stringify(val);if(key=="href"){key="xlink:href"}return memo+" "+key+'="'+SVG.stringEscape(strval)+'"'},"")};SVG.importGeoJSONFeatures=function(features,opts){opts=opts||{};return features.map(function(obj,i){var geom=obj.type=="Feature"?obj.geometry:obj;var geomType=geom&&geom.type;var svgObj=null;if(geomType&&geom.coordinates){svgObj=SVG.geojsonImporters[geomType](geom.coordinates,obj.properties,opts)}if(!svgObj){return{tag:"g"}}if(obj.properties){SVG.applyStyleAttributes(svgObj,geomType,obj.properties)}if("id"in obj){if(!svgObj.properties){svgObj.properties={}}svgObj.properties.id=(opts.id_prefix||"")+obj.id}return svgObj})};SVG.applyStyleAttributes=function(svgObj,geomType,rec){var symbolType=GeoJSON.translateGeoJSONType(geomType);if(symbolType=="point"&&"label-text"in rec){symbolType="label"}var fields=SVG.findPropertiesBySymbolGeom(Object.keys(rec),symbolType);for(var i=0,n=fields.length;i0?{tag:"g",children:children}:null};SVG.importMultiPath=function(coords,importer){var o;for(var i=0;i/i;var dx=rec.dx||0;var dy=rec.dy||0;var properties={y:dy,x:dx};if(p){properties.transform=SVG.getTransform(p)}if(newline.test(line)){morelines=line.split(newline);line=morelines.shift()}obj={tag:"text",value:line,properties:properties};if(morelines){obj.children=[];morelines.forEach(function(line){var tspan={tag:"tspan",value:line,properties:{x:dx,dy:rec["line-height"]||"1.1em"}};obj.children.push(tspan)})}return obj};SVG.importPoint=function(coords,rec,layerOpts){rec=rec||{};if("svg-symbol"in rec){return SVG.importSymbol(rec["svg-symbol"],coords)}return SVG.importStandardPoint(coords,rec,layerOpts||{})};SVG.importPolygon=function(coords){var d,o;for(var i=0;i0||!isLabel){if(symbolType=="square"){p={tag:"rect",properties:{x:coords[0]-halfSize,y:coords[1]-halfSize,width:halfSize*2,height:halfSize*2}}}else{p={tag:"circle",properties:{cx:coords[0],cy:coords[1]}};if(halfSize>0){p.properties.r=halfSize}}children.push(p)}if(isLabel){children.push(SVG.importLabel(rec,coords))}return children.length>1?{tag:"g",children:children}:children[0]};SVG.geojsonImporters={Point:SVG.importPoint,Polygon:SVG.importPolygon,LineString:SVG.importLineString,MultiPoint:function(coords,rec,opts){return SVG.importMultiPoint(coords,rec,opts)},MultiLineString:function(coords){return SVG.importMultiPath(coords,SVG.importLineString)},MultiPolygon:function(coords){return SVG.importMultiPath(coords,SVG.importPolygon)}};internal.exportSVG=function(dataset,opts){var template='\n\n%s\n';var namespace='xmlns="http://www.w3.org/2000/svg"';var symbols=[];var size,svg;if(opts.final){if(dataset.arcs)dataset.arcs.flatten()}else{dataset=internal.copyDataset(dataset)}utils.extend(opts,{invert_y:true});size=internal.transformCoordsForSVG(dataset,opts);svg=dataset.layers.map(function(lyr){var obj=internal.exportLayerForSVG(lyr,dataset,opts);SVG.embedImages(obj,symbols);return SVG.stringify(obj)}).join("\n");if(symbols.length>0){namespace+=' xmlns:xlink="http://www.w3.org/1999/xlink"';svg="\n"+utils.pluck(symbols,"svg").join("")+"\n"+svg}svg=utils.format(template,namespace,size[0],size[1],0,0,size[0],size[1],svg);return[{content:svg,filename:opts.file||utils.getOutputFileBase(dataset)+".svg"}]};internal.transformCoordsForSVG=function(dataset,opts){var size=internal.transformDatasetToPixels(dataset,opts);var precision=opts.precision||1e-4;internal.setCoordinatePrecision(dataset,precision);return size};internal.exportLayerForSVG=function(lyr,dataset,opts){var layerObj=internal.getEmptyLayerForSVG(lyr,opts);if(internal.layerHasFurniture(lyr)){layerObj.children=internal.exportFurnitureForSVG(lyr,dataset,opts)}else{layerObj.children=internal.exportSymbolsForSVG(lyr,dataset,opts)}return layerObj};internal.exportFurnitureForSVG=function(lyr,dataset,opts){var frameLyr=internal.findFrameLayerInDataset(dataset);var frameData;if(!frameLyr)return[];frameData=internal.getFurnitureLayerData(frameLyr);frameData.crs=internal.getDatasetCRS(dataset);return SVG.importFurniture(internal.getFurnitureLayerData(lyr),frameData)};internal.exportSymbolsForSVG=function(lyr,dataset,opts){var d=utils.defaults({layers:[lyr]},dataset);var geojson=internal.exportDatasetAsGeoJSON(d,opts);var features=geojson.features||geojson.geometries||(geojson.type?[geojson]:[]);return SVG.importGeoJSONFeatures(features,opts)};internal.getEmptyLayerForSVG=function(lyr,opts){var layerObj={tag:"g",properties:{id:(opts.id_prefix||"")+lyr.name},children:[]};if(lyr.geometry_type=="polyline"){layerObj.properties.fill="none";layerObj.properties.stroke="black";layerObj.properties["stroke-width"]=1}if(internal.layerHasLabels(lyr)||internal.layerHasSvgSymbols(lyr)||internal.layerHasFurniture(lyr)){layerObj.properties["font-family"]="sans-serif";layerObj.properties["font-size"]="12";layerObj.properties["text-anchor"]="middle"}return layerObj};internal.layerHasSvgSymbols=function(lyr){return lyr.geometry_type=="point"&&lyr.data&&lyr.data.fieldExists("svg-symbol")};internal.layerHasLabels=function(lyr){var hasLabels=lyr.geometry_type=="point"&&lyr.data&&lyr.data.fieldExists("label-text");return hasLabels};internal.exportDelim=function(dataset,opts){var delim=internal.getExportDelimiter(dataset.info,opts),ext=internal.getDelimFileExtension(delim,opts);return dataset.layers.reduce(function(arr,lyr){if(lyr.data){arr.push({content:internal.exportLayerAsDSV(lyr,delim,opts),filename:(lyr.name||"output")+"."+ext})}return arr},[])};internal.exportLayerAsDSV=function(lyr,delim,optsArg){var opts=optsArg||{};var encoding=opts.encoding||"utf8";var formatRows=require("d3-dsv").dsvFormat(delim).formatRows;var records=lyr.data.getRecords();var fields=internal.findFieldNames(records,opts.field_order);var exportAsString=internal.encodingIsUtf8(encoding)&&!opts.to_buffer&&(records.length<1e4||opts.to_string);if(exportAsString){return internal.exportRecordsAsString(fields,records,formatRows)}else{return internal.exportRecordsAsBuffer(fields,records,formatRows,encoding)}};internal.exportRecordsAsString=function(fields,records,formatRows){var formatRow=internal.getDelimRowFormatter(fields,records);var rows=[fields].concat(records.map(formatRow));return formatRows(rows)};internal.exportRecordsAsBuffer=function(fields,records,formatRows,encoding){var formatRow=internal.getDelimRowFormatter(fields,records);var str=formatRows([fields]);var buffers=[internal.encodeString(str,encoding)];var tmp=[];var n=records.length;var i=0;while(i1){datasets=[internal.mergeDatasetsForExport(datasets)];if(format=="topojson"){api.buildTopology(datasets[0])}opts=utils.defaults({final:true},opts)}}else{datasets=datasets.map(internal.copyDatasetForRenaming);internal.assignUniqueLayerNames2(datasets)}files=datasets.reduce(function(memo,dataset){if(internal.runningInBrowser()){utils.sortOn(dataset.layers,"stack_id",true)}else{utils.sortOn(dataset.layers,"target_id",true)}return memo.concat(internal.exportFileContent(dataset,opts))},[]);internal.assignUniqueFileNames(files);return files};internal.exportFileContent=function(dataset,opts){var outFmt=opts.format=internal.getOutputFormat(dataset,opts),exporter=internal.exporters[outFmt],files=[];if(!outFmt){error("Missing output format")}else if(!exporter){error("Unknown output format:",outFmt)}dataset=utils.defaults({layers:dataset.layers.map(function(lyr){return utils.extend({},lyr)})},dataset);if(opts.file&&outFmt!="topojson"&&outFmt!="svg"){dataset.layers.forEach(function(lyr){lyr.name=utils.getFileBase(opts.file)})}internal.assignUniqueLayerNames(dataset.layers);if(opts.precision&&outFmt!="svg"&&outFmt!="geojson"&&outFmt!="topojson"){dataset=internal.copyDatasetForExport(dataset);internal.setCoordinatePrecision(dataset,opts.precision)}if(opts.cut_table){files=internal.exportDataTables(dataset.layers,opts).concat(files)}if(opts.extension){opts.extension=internal.fixFileExtension(opts.extension,outFmt)}internal.validateLayerData(dataset.layers);files=exporter(dataset,opts).concat(files);if(opts.bbox_index){files.push(internal.createIndexFile(dataset))}internal.validateFileNames(files);return files};internal.exporters={geojson:internal.exportGeoJSON,topojson:internal.exportTopoJSON,shapefile:internal.exportShapefile,dsv:internal.exportDelim,dbf:internal.exportDbf,json:internal.exportJSON,svg:internal.exportSVG};internal.getOutputFormat=function(dataset,opts){var outFile=opts.file||null,inFmt=dataset.info&&dataset.info.input_formats&&dataset.info.input_formats[0],outFmt=null;if(opts.format){outFmt=opts.format}else if(outFile){outFmt=internal.inferOutputFormat(outFile,inFmt)}else if(inFmt){outFmt=inFmt}return outFmt};internal.createIndexFile=function(dataset){var index=dataset.layers.map(function(lyr){var bounds=internal.getLayerBounds(lyr,dataset.arcs);return{bbox:bounds.toArray(),name:lyr.name}});return{content:JSON.stringify(index),filename:"bbox-index.json"}};internal.validateLayerData=function(layers){layers.forEach(function(lyr){if(!lyr.geometry_type){if(lyr.shapes&&utils.some(lyr.shapes,function(o){return!!o})){error("A layer contains shape records and a null geometry type")}}else{if(!utils.contains(["polygon","polyline","point"],lyr.geometry_type)){error("A layer has an invalid geometry type:",lyr.geometry_type)}if(!lyr.shapes){error("A layer is missing shape data")}}})};internal.validateFileNames=function(files){var index={};files.forEach(function(file,i){var filename=file.filename;if(!filename)error("Missing a filename for file"+i);if(filename in index)error("Duplicate filename",filename);index[filename]=true})};internal.assignUniqueLayerNames=function(layers){var names=layers.map(function(lyr){return lyr.name||"layer"});var uniqueNames=internal.uniqifyNames(names);layers.forEach(function(lyr,i){lyr.name=uniqueNames[i]})};internal.assignUniqueLayerNames2=function(datasets){var layers=datasets.reduce(function(memo,dataset){return memo.concat(dataset.layers)},[]);internal.assignUniqueLayerNames(layers)};internal.assignUniqueFileNames=function(output){var names=output.map(function(o){return o.filename});var uniqnames=internal.uniqifyNames(names,internal.formatVersionedFileName);output.forEach(function(o,i){o.filename=uniqnames[i]})};internal.exportDataTables=function(layers,opts){var tables=[];layers.forEach(function(lyr){if(lyr.data){tables.push({content:JSON.stringify(lyr.data),filename:(lyr.name?lyr.name+"-":"")+"table.json"})}});return tables};internal.formatVersionedName=function(name,i){var suffix=String(i);if(/[0-9]$/.test(name)){suffix="-"+suffix}return name+suffix};internal.formatVersionedFileName=function(filename,i){var parts=filename.split(".");var ext,base;if(parts.length<2){return internal.formatVersionedName(filename,i)}ext=parts.pop();base=parts.join(".");return internal.formatVersionedName(base,i)+"."+ext};internal.fixFileExtension=function(ext,fmt){return ext.replace(/^\.+/,"")};internal.uniqifyNames=function(names,formatter){var counts=utils.countValues(names),format=formatter||internal.formatVersionedName,blacklist={};Object.keys(counts).forEach(function(name){if(counts[name]>1)blacklist[name]=true});return names.map(function(name){var i=1,candidate=name,versionedName;while(candidate in blacklist){versionedName=format(name,i);if(!versionedName||versionedName==candidate){throw new Error("Naming error")}candidate=versionedName;i++}blacklist[candidate]=true;return candidate})};api.evaluateEachFeature=function(lyr,arcs,exp,opts){var n=internal.getFeatureCount(lyr),compiled,filter;if(n>0&&!lyr.data){lyr.data=new DataTable(n)}if(opts&&opts.where){filter=internal.compileValueExpression(opts.where,lyr,arcs)}compiled=internal.compileFeatureExpression(exp,lyr,arcs,{context:internal.getStateVar("defs")});for(var i=0;imaxChars)str=str.substr(0,maxChars);str=str.replace(/\s/g,"");if(opts&&opts.json_path){fmt="json"}else if(/^\[[{\]]/.test(str)){fmt="json"}else if(/"arcs":\[|"objects":\{|"transform":\{/.test(str)){fmt="topojson"}else if(/^\{"/.test(str)){fmt="geojson"}return fmt};internal.identifyJSONObject=function(o){var fmt=null;if(!o){}else if(o.type=="Topology"){fmt="topojson"}else if(o.type){fmt="geojson"}else if(utils.isArray(o)){fmt="json"}return fmt};internal.importGeoJSONFile=function(fileReader,opts){var importer=new GeoJSONParser(opts);new GeoJSONReader(fileReader).readObjects(importer.parseObject);return importer.done()};internal.importJSONFile=function(reader,opts){var str=internal.readFirstChars(reader,1e3);var type=internal.identifyJSONString(str,opts);var dataset,retn;if(type=="geojson"){dataset=internal.importGeoJSONFile(reader,opts);retn={dataset:dataset,format:"geojson"}}else{retn={content:reader.toString("utf8")}}reader.close();return retn};internal.importJSON=function(data,opts){var content=data.content,filename=data.filename,retn={filename:filename},reader;if(!content){reader=new FileReader(filename)}else if(content instanceof ArrayBuffer){if(content.byteLength<1e7){content=internal.bufferToString(utils.createBuffer(content))}else{reader=new BufferReader(content);content=null}}if(reader){data=internal.importJSONFile(reader,opts);if(data.dataset){retn.dataset=data.dataset;retn.format=data.format}else{content=data.content}}if(content){if(utils.isString(content)){try{content=JSON.parse(content)}catch(e){stop("Unable to parse JSON")}}if(opts.json_path){content=internal.selectFromObject(content,opts.json_path)}retn.format=internal.identifyJSONObject(content,opts);if(retn.format=="topojson"){retn.dataset=internal.importTopoJSON(content,opts)}else if(retn.format=="geojson"){retn.dataset=internal.importGeoJSON(content,opts)}else if(retn.format=="json"){retn.dataset=internal.importJSONTable(content,opts)}else{stop("Unknown JSON format")}}return retn};internal.selectFromObject=function(o,path){var parts=path.split(".");var value=o&&o[parts[0]];if(parts>1){return internal.selectFromObject(value,parts.slice(1).join(""))}return value};internal.readDelimRecords=function(reader,delim,encoding,filter){var dsv=require("d3-dsv").dsvFormat(delim),records=[],retn=internal.readDelimLines(reader,0,delim,encoding,1),header=internal.trimBOM(retn?retn.text:""),batch;if(!retn)return[];while(retn=internal.readDelimLines(reader,retn.offset,delim,encoding,500)){batch=dsv.parse(header+retn.text,filter);records.push.apply(records,batch)}return records};internal.readDelimLines=function(reader,offs,delim,encoding,lines){var CR=13,LF=10,DQUOTE=34,DELIM=delim.charCodeAt(0),inQuotedField=false,buf=reader.readSync(offs),eol=false,linesLeft=lines>0?lines:1,i,n,c,prev;for(i=0,n=buf.length;i-1){obj.extension=obj.filename.substr(i+1);obj.basename=obj.filename.substr(0,i);obj.pathbase=path.substr(0,path.lastIndexOf("."))}else{obj.extension="";obj.basename=obj.filename;obj.pathbase=path}return obj};utils.getFileBase=function(path){return utils.parseLocalPath(path).basename};utils.getFileExtension=function(path){return utils.parseLocalPath(path).extension};utils.getPathBase=function(path){return utils.parseLocalPath(path).pathbase};utils.getCommonFileBase=function(names){return names.reduce(function(memo,name,i){if(i===0){memo=utils.getFileBase(name)}else{memo=utils.mergeNames(memo,name)}return memo},"")};utils.getOutputFileBase=function(dataset){var inputFiles=dataset.info&&dataset.info.input_files;return inputFiles&&utils.getCommonFileBase(inputFiles)||"output"};internal.guessInputFileType=function(file){var ext=utils.getFileExtension(file||"").toLowerCase(),type=null;if(ext=="dbf"||ext=="shp"||ext=="prj"||ext=="shx"){type=ext}else if(/json$/.test(ext)){type="json"}else if(ext=="csv"||ext=="tsv"||ext=="txt"||ext=="tab"){type="text"}return type};internal.guessInputContentType=function(content){var type=null;if(utils.isString(content)){type=internal.stringLooksLikeJSON(content)?"json":"text"}else if(utils.isObject(content)&&content.type||utils.isArray(content)){type="json"}return type};internal.guessInputType=function(file,content){return internal.guessInputFileType(file)||internal.guessInputContentType(content)};internal.stringLooksLikeJSON=function(str){return/^\s*[{[]/.test(String(str))};internal.couldBeDsvFile=function(name){var ext=utils.getFileExtension(name).toLowerCase();return/csv|tsv|txt$/.test(ext)};internal.inferOutputFormat=function(file,inputFormat){var ext=utils.getFileExtension(file).toLowerCase(),format=null;if(ext=="shp"){format="shapefile"}else if(ext=="dbf"){format="dbf"}else if(ext=="svg"){format="svg"}else if(/json$/.test(ext)){format="geojson";if(ext=="topojson"||inputFormat=="topojson"&&ext!="geojson"){format="topojson"}else if(ext=="json"&&inputFormat=="json"){format="json"}}else if(internal.couldBeDsvFile(file)){format="dsv"}else if(inputFormat){format=inputFormat}return format};internal.isZipFile=function(file){return/\.zip$/i.test(file)};internal.isSupportedOutputFormat=function(fmt){var types=["geojson","topojson","json","dsv","dbf","shapefile","svg"];return types.indexOf(fmt)>-1};internal.getFormatName=function(fmt){return{geojson:"GeoJSON",topojson:"TopoJSON",json:"JSON records",dsv:"CSV",dbf:"DBF",shapefile:"Shapefile",svg:"SVG"}[fmt]||""};internal.isSupportedBinaryInputType=function(path){var ext=utils.getFileExtension(path).toLowerCase();return ext=="shp"||ext=="shx"||ext=="dbf"};internal.filenameIsUnsupportedOutputType=function(file){var rxp=/\.(shx|prj|xls|xlsx|gdb|sbn|sbx|xml|kml)$/i;return rxp.test(file)};var cli={};cli.isFile=function(path,cache){var ss=cli.statSync(path);return cache&&path in cache||ss&&ss.isFile()||false};cli.fileSize=function(path){var ss=cli.statSync(path);return ss&&ss.size||0};cli.isDirectory=function(path){var ss=cli.statSync(path);return ss&&ss.isDirectory()||false};cli.readFile=function(fname,encoding,cache){var content;if(cache&&fname in cache){content=cache[fname];delete cache[fname]}else if(fname=="/dev/stdin"){content=require("rw").readFileSync(fname)}else{internal.getStateVar("input_files").push(fname);content=require("fs").readFileSync(fname)}if(encoding&&Buffer.isBuffer(content)){content=internal.trimBOM(internal.decodeString(content,encoding))}return content};cli.writeFile=function(path,content,cb){var fs=require("rw");if(cb){fs.writeFile(path,content,preserveContext(cb))}else{fs.writeFileSync(path,content)}};cli.convertArrayBuffer=function(buf){var src=new Uint8Array(buf),dest=utils.createBuffer(src.length);for(var i=0,n=src.length;i-1){memo=memo.concat(cli.expandFileName(name))}else{memo.push(name)}return memo},[])};cli.validateOutputDir=function(name){if(!cli.isDirectory(name)){error("Output directory not found:",name)}};cli.checkFileExists=function(path,cache){if(!cli.isFile(path,cache)&&path!="/dev/stdin"){stop("File not found ("+path+")")}};cli.statSync=function(fpath){var obj=null;try{obj=require("fs").statSync(fpath)}catch(e){}return obj};internal.importDelim=function(str,opts){return internal.importDelim2({content:str},opts)};internal.importDelim2=function(data,opts){var readFromFile=!data.content&&data.content!=="",content=data.content,filter,reader,records,delimiter,table;opts=opts||{};filter=internal.getImportFilterFunction(opts);if(readFromFile&&cli.fileSize(data.filename)<2e9){content=cli.readFile(data.filename);readFromFile=false}if(readFromFile){reader=new FileReader(data.filename)}else if(content instanceof ArrayBuffer||content instanceof Buffer){reader=new BufferReader(content);content=null}else if(utils.isString(content)){}else{error("Unexpected object type")}if(reader&&!internal.encodingIsAsciiCompat(opts.encoding)){content=reader.toString(opts.encoding);reader=null}if(reader){delimiter=internal.guessDelimiter(internal.readFirstChars(reader,2e3));records=internal.readDelimRecords(reader,delimiter,opts.encoding,filter)}else{delimiter=internal.guessDelimiter(content);records=require("d3-dsv").dsvFormat(delimiter).parse(content,filter);delete records.columns}if(records.length===0){message("Unable to read any data records")}internal.adjustRecordTypes(records,opts);table=new DataTable(records);internal.deleteFields(table,internal.isInvalidFieldName);return{layers:[{data:table}],info:{input_delimiter:delimiter}}};internal.supportedDelimiters=["|","\t",",",";"];internal.isSupportedDelimiter=function(d){return utils.contains(internal.supportedDelimiters,d)};internal.guessDelimiter=function(content){return utils.find(internal.supportedDelimiters,function(delim){var rxp=internal.getDelimiterRxp(delim);return rxp.test(content)})||","};internal.getDelimiterRxp=function(delim){var rxp="^[^\\n\\r]+"+utils.regexEscape(delim);return new RegExp(rxp)};internal.getFieldTypeHints=function(opts){var hints={};opts=opts||{};if(opts.string_fields){opts.string_fields.forEach(function(f){hints[f]="string"})}if(opts.field_types){opts.field_types.forEach(function(raw){var parts,name,type;if(raw.indexOf(":")!=-1){parts=raw.split(":");name=parts[0];type=internal.validateFieldType(parts[1])}else if(raw[0]==="+"){name=raw.substr(1);type="number"}if(type){hints[name]=type}else{message("Invalid type hint (expected :str or :num) ["+raw+"]")}})}return hints};internal.adjustRecordTypes=function(records,opts){var typeIndex=internal.getFieldTypeHints(opts),fields=Object.keys(records[0]||[]),detectedNumFields=[],replacements={};fields.forEach(function(key){var typeHint=typeIndex[key];var values=null;if(typeHint=="number"){values=internal.convertDataField(key,records,utils.parseNumber)}else if(typeHint=="string"){values=internal.convertDataField(key,records,utils.parseString)}else{values=internal.tryNumericField(key,records);if(values)detectedNumFields.push(key)}if(values)replacements[key]=values});if(Object.keys(replacements).length>0){internal.updateFieldsInRecords(fields,records,replacements)}if(detectedNumFields.length>0){message(utils.format("Auto-detected number field%s: %s",detectedNumFields.length==1?"":"s",detectedNumFields.join(", ")))}};internal.updateFieldsInRecords=function(fields,records,replacements){records.forEach(function(rec,recId){var rec2={},n,i,f;for(i=0,n=fields.length;i0&&str!="NA"&&str!="NaN"){return null}}else{count++}arr.push(num)}return count>0?arr:null};internal.convertDataField=function(name,records,f){var values=[];for(var i=0,n=records.length;i0===false){stop("Missing input file(s)")}verbose("Importing: "+files.join(" "));if(files.length==1){dataset=api.importFile(files[0],opts)}else if(opts.merge_files){dataset=internal.importFiles(files,opts);dataset.layers=api.mergeLayers(dataset.layers)}else if(opts.combine_files){dataset=internal.importFiles(files,opts)}else{stop("Invalid inputs")}return dataset};api.importFile=function(path,opts){var fileType=internal.guessInputFileType(path),input={},encoding=opts&&opts.encoding||null,cache=opts&&opts.input||null,cached=cache&&path in cache,content;cli.checkFileExists(path,cache);if(fileType=="shp"&&!cached){content=null}else if(fileType=="json"&&!cached){content=null}else if(fileType=="text"&&!cached){content=null}else if(fileType&&internal.isSupportedBinaryInputType(path)){content=cli.readFile(path,null,cache);if(utils.isString(content)){stop("Expected binary content, received a string")}}else if(fileType){content=cli.readFile(path,encoding||"utf-8",cache)}else{content=cli.readFile(path,encoding||"utf-8",cache);fileType=internal.guessInputContentType(content);if(fileType=="text"&&content.indexOf("\ufffd")>-1){fileType=null}}if(!fileType){stop(internal.getUnsupportedFileMessage(path))}input[fileType]={filename:path,content:content};content=null;if(fileType=="shp"||fileType=="dbf"){internal.readShapefileAuxFiles(path,input,cache)}if(fileType=="shp"&&!input.dbf){message(utils.format("[%s] .dbf file is missing - shapes imported without attribute data.",path))}return internal.importContent(input,opts)};internal.getUnsupportedFileMessage=function(path){var ext=utils.getFileExtension(path);var msg="Unable to import "+path;if(ext.toLowerCase()=="zip"){msg+=" (ZIP files must be unpacked before running mapshaper)"}else{msg+=" (unknown file type)"}return msg};internal.readShapefileAuxFiles=function(path,obj,cache){var dbfPath=utils.replaceFileExtension(path,"dbf");var shxPath=utils.replaceFileExtension(path,"shx");var cpgPath=utils.replaceFileExtension(path,"cpg");var prjPath=utils.replaceFileExtension(path,"prj");if(cli.isFile(prjPath,cache)){obj.prj={filename:prjPath,content:cli.readFile(prjPath,"utf-8",cache)}}if(cli.isFile(shxPath,cache)){obj.shx={filename:shxPath,content:cli.readFile(shxPath,null,cache)}}if(!obj.dbf&&cli.isFile(dbfPath,cache)){obj.dbf={filename:dbfPath,content:cli.readFile(dbfPath,null,cache)}}if(obj.dbf&&cli.isFile(cpgPath,cache)){obj.cpg={filename:cpgPath,content:cli.readFile(cpgPath,"utf-8",cache).trim()}}};internal.writeFiles=function(exports,opts,cb){if(exports.length>0===false){message("No files to save")}else if(opts.dry_run){}else if(opts.stdout){return cli.writeFile("/dev/stdout",exports[0].content,cb)}else{var paths=internal.getOutputPaths(utils.pluck(exports,"filename"),opts);var inputFiles=internal.getStateVar("input_files");exports.forEach(function(obj,i){var path=paths[i];if(obj.content instanceof ArrayBuffer){obj.content=cli.convertArrayBuffer(obj.content)}if(opts.output){opts.output.push({filename:path,content:obj.content})}else{if(!opts.force&&inputFiles.indexOf(path)>-1){stop('Need to use the "-o force" option to overwrite input files.')}cli.writeFile(path,obj.content);message("Wrote "+path)}})}if(cb)cb(null)};internal.getOutputPaths=function(files,opts){var odir=opts.directory;if(odir){files=files.map(function(file){return require("path").join(odir,file)})}return files};api.filterGeom=function(lyr,arcs,opts){if(!internal.layerHasGeometry(lyr)){stop("Layer is missing geometry")}if(opts.bbox){internal.filterByBoundsIntersection(lyr,arcs,opts)}api.filterFeatures(lyr,arcs,{remove_empty:true,verbose:false})};internal.filterByBoundsIntersection=function(lyr,arcs,opts){var bounds=new Bounds(opts.bbox);var filter=lyr.geometry_type=="point"?internal.getPointInBoundsTest(bounds):internal.getPathBoundsIntersectionTest(bounds,arcs);internal.editShapes(lyr.shapes,filter)};internal.getPointInBoundsTest=function(bounds){return function(xy){var contains=bounds.containsPoint(xy[0],xy[1]);return contains?xy:null}};internal.getPathBoundsIntersectionTest=function(bounds,arcs){return function(path){return bounds.intersects(arcs.getSimpleShapeBounds(path))?path:null}};api.filterFields=function(lyr,names){var table=lyr.data;names=names||[];internal.requireDataFields(table,names);utils.difference(table.getFields(),names).forEach(table.deleteField,table)};api.renameFields=function(lyr,names){var map=internal.mapFieldNames(names);internal.requireDataFields(lyr.data,Object.keys(map));utils.defaults(map,internal.mapFieldNames(lyr.data.getFields()));lyr.data.update(internal.getRecordMapper(map))};internal.mapFieldNames=function(names){return(names||[]).reduce(function(memo,str){var parts=str.split("="),dest=utils.trimQuotes(parts[0]),src=parts.length>1?utils.trimQuotes(parts[1]):dest;if(!src||!dest)stop("Invalid field description:",str);memo[src]=dest;return memo},{})};internal.getRecordMapper=function(map){var fields=Object.keys(map);return function(src){var dest={},key;for(var i=0,n=fields.length;i0===false)return null;if(opts.aspect_ratio){bounds=internal.applyAspectRatio(opts.aspect_ratio,bounds)}if(isGeoBox){bounds=internal.clampToWorldBounds(bounds)}return bounds};internal.applyAspectRatio=function(opt,bounds){var range=String(opt).split(",").map(parseFloat),aspectRatio=bounds.width()/bounds.height(),min,max;if(range.length==1){range.push(range[0])}else if(range[0]>range[1]){range.reverse()}min=range[0];max=range[1];if(!min&&!max)return bounds;if(!min)min=-Infinity;if(!max)max=Infinity;if(aspectRatiomax){bounds.fillOut(max)}return bounds};internal.applyBoundsOffset=function(offsetOpt,bounds,crs){var offsets=internal.convertFourSides(offsetOpt,crs,bounds);bounds.padBounds(offsets[0],offsets[1],offsets[2],offsets[3]);return bounds};internal.convertBboxToGeoJSON=function(bbox,opts){var coords=[[bbox[0],bbox[1]],[bbox[0],bbox[3]],[bbox[2],bbox[3]],[bbox[2],bbox[1]],[bbox[0],bbox[1]]];return{type:"Polygon",coordinates:[coords]}};api.frame=function(catalog,source,opts){var size,bounds,tmp,dataset;if(+opts.width>0===false&&+opts.pixels>0===false){stop("Missing a width or area")}if(opts.width&&opts.height){opts=utils.extend({},opts);opts.aspect_ratio=internal.getAspectRatioArg(opts.width,opts.height)}tmp=api.rectangle(source,opts);bounds=internal.getDatasetBounds(tmp);if(internal.probablyDecimalDegreeBounds(bounds)){stop("Frames require projected, not geographical coordinates")}else if(!internal.getDatasetCRS(tmp)){message("Warning: missing projection data. Assuming coordinates are meters and k (scale factor) is 1")}size=internal.getFrameSize(bounds,opts);if(size[0]>0===false){stop("Missing a valid frame width")}if(size[1]>0===false){stop("Missing a valid frame height")}dataset={info:{},layers:[{name:opts.name||"frame",data:new DataTable([{width:size[0],height:size[1],bbox:bounds.toArray(),type:"frame"}])}]};catalog.addDataset(dataset)};internal.getAspectRatioArg=function(widthArg,heightArg){return heightArg.split(",").map(function(opt){var height=Number(opt),width=Number(widthArg);if(!opt)return"";return width/height}).reverse().join(",")};internal.getFrameSize=function(bounds,opts){var aspectRatio=bounds.width()/bounds.height();var height,width;if(opts.pixels){width=Math.sqrt(+opts.pixels*aspectRatio)}else{width=+opts.width}height=width/aspectRatio;return[Math.round(width),Math.round(height)]};internal.getDatasetDisplayBounds=function(dataset){var frameLyr=findFrameLayerInDataset(dataset);if(frameLyr){return internal.getFrameLayerBounds(frameLyr)}return internal.getDatasetBounds(dataset)};internal.isFrameLayer=function(lyr){return internal.getFurnitureLayerType(lyr)=="frame"};internal.findFrameLayerInDataset=function(dataset){return utils.find(dataset.layers,function(lyr){return internal.isFrameLayer(lyr)})};internal.findFrameDataset=function(catalog){var target=utils.find(catalog.getLayers(),function(o){return internal.isFrameLayer(o.layer)});return target?target.dataset:null};internal.findFrameLayer=function(catalog){var target=utils.find(catalog.getLayers(),function(o){return internal.isFrameLayer(o.layer)});return target&&target.layer||null};internal.getFrameLayerBounds=function(lyr){return new Bounds(internal.getFurnitureLayerData(lyr).bbox)};internal.getMapFrameMetersPerPixel=function(data){var bounds=new Bounds(data.bbox);var k,toMeters,metersPerPixel;if(data.crs){k=internal.getScaleFactorAtXY(bounds.centerX(),bounds.centerY(),data.crs);toMeters=data.crs.to_meter}else{k=1;toMeters=1}metersPerPixel=bounds.width()/k*toMeters/data.width;return metersPerPixel};SVG.furnitureRenderers.frame=function(d){var lineWidth=1,off=lineWidth/2,obj=SVG.importPolygon([[[off,off],[off,d.height-off],[d.width-off,d.height-off],[d.width-off,off],[off,off]]]);utils.extend(obj.properties,{fill:"none",stroke:d.stroke||"black","stroke-width":d["stroke-width"]||lineWidth});return[obj]};api.fuzzyJoin=function(polygonLyr,arcs,src,opts){var pointLyr=src?src.layer:null;if(!pointLyr||!internal.layerHasPoints(pointLyr)){stop("Missing a point layer to join from")}if(!pointLyr.data||!pointLyr.data.fieldExists(opts.field)){stop("Missing",opts.field?"["+opts.field+"] field":"a field parameter")}internal.requirePolygonLayer(polygonLyr);if(opts.dedup_points){api.uniq(pointLyr,null,{expression:'this.x + "~" + this.y + "~" + d["'+opts.field+'"]'})}internal.fuzzyJoin(polygonLyr,arcs,pointLyr,opts)};internal.fuzzyJoin=function(polygonLyr,arcs,pointLyr,opts){var field=opts.field;var getPointIds=internal.getPolygonToPointsFunction(polygonLyr,arcs,pointLyr,opts);var getFieldValues=internal.getFieldValuesFunction(pointLyr,field);var getNeighbors=internal.getNeighborLookupFunction(polygonLyr,arcs);var unassignedData=[];var assignedValues=[];var confidenceValues=[];var neighborValues=[];var lowDataIds=[];var noDataIds=[];polygonLyr.shapes.forEach(function(shp,i){var pointIds=getPointIds(i)||[];var values=getFieldValues(pointIds);var data=internal.getModeData(values,true);var mode=internal.getHighConfidenceDataValue(data);var isHighConfidence=mode!==null;var isLowConfidence=!isHighConfidence&&data.count>1;var isNoConfidence=!isHighConfidence&&~isLowConfidence;neighborValues.push(null);assignedValues.push(mode);unassignedData.push(isHighConfidence?null:data);confidenceValues.push(isHighConfidence&&"high"||isLowConfidence&&"low"||"none");if(isLowConfidence){lowDataIds.push(i)}else if(isNoConfidence){noDataIds.push(i)}});lowDataIds.forEach(function(shpId){var nabes=getNeighbors(shpId);nabes.forEach(function(nabeId){borrowStrength(shpId,nabeId)});var countData=unassignedData[shpId];var modeData=internal.getCountDataSummary(countData);if(modeData.margin>0){assignedValues[shpId]=modeData.modes[0]}else{noDataIds.push(shpId)}unassignedData[shpId]=null});internal.insertFieldValues(polygonLyr,field,assignedValues);internal.insertFieldValues(polygonLyr,"confidence",confidenceValues);if(noDataIds.length>0){api.dataFill(polygonLyr,arcs,{field:field})}function borrowStrength(shpA,shpB){var val=assignedValues[shpB];var data=unassignedData[shpA];var counts=data.counts;var values=data.values;var weight=2;var i;if(val===null)return;i=values.indexOf(val);if(i==-1){values.push(val);counts.push(weight)}else{counts[i]+=weight}}};internal.getNeighborLookupFunction=function(lyr,arcs){var classify=internal.getArcClassifier(lyr.shapes,arcs)(filter);var index={};function filter(a,b){return a>-1?[a,b]:null}function onArc(arcId){var ab=classify(arcId);if(ab){addArc(ab[0],ab[1]);addArc(ab[1],ab[0])}}function addArc(shpA,shpB){var arr;if(shpA==-1||shpB==-1||shpA==shpB)return;if(shpA in index===false){index[shpA]=[]}arr=index[shpA];if(arr.indexOf(shpB)==-1){arr.push(shpB)}}internal.forEachArcId(lyr.shapes,onArc);return function(shpId){return index[shpId]||[]}};internal.getFieldValuesFunction=function(lyr,field){var records=lyr.data.getRecords();return function getFieldValues(ids){var values=[],rec;for(var i=0;i2){return o.modes[0]}return null};internal.getNeighborsFunction=function(lyr,arcs,opts){var index=internal.buildAssignmentIndex(lyr,field,arcs);var minBorderPct=opts&&opts.min_border_pct||0;return function(shpId){var nabes=index[shpId];var emptyLen=0;var fieldLen=0;var fieldVal=null;var nabe,val,len;for(var i=0;i0?fieldVal:null}};api.graticule=function(dataset,opts){var graticule=internal.createGraticule(opts);var dest,src;if(dataset){dest=internal.getDatasetCRS(dataset);src=internal.getCRS("wgs84");if(!dest)stop("Coordinate system is unknown, unable to create a graticule");internal.projectDataset(graticule,src,dest,{})}return graticule};internal.createGraticule=function(opts){var precision=1;var step=10;var majorStep=90;var xn=Math.round(360/step)+1;var yn=Math.round(180/step)+1;var xx=utils.range(xn,-180,step);var yy=utils.range(yn,-90,step);var meridians=xx.map(function(x){var ymin=-90,ymax=90;if(x%majorStep!==0){ymin+=step;ymax-=step}return internal.createMeridian(x,ymin,ymax,precision)});var parallels=yy.map(function(y){return internal.createParallel(y,-180,180,precision)});var geojson={type:"FeatureCollection",features:meridians.concat(parallels)};var graticule=internal.importGeoJSON(geojson,{});graticule.layers[0].name="graticule";return graticule};internal.graticuleFeature=function(coords,o){return{type:"Feature",properties:o,geometry:{type:"LineString",coordinates:coords}}};internal.createMeridian=function(x,ymin,ymax,precision){var coords=[];for(var y=ymin;y-1;var targStr=isTarget?" *":"";str+="\n";str+="Layer "+(i+1)+targStr+"\n"+internal.getLayerInfo(o.layer,o.dataset);str+="\n"});message(str)};internal.getLayerData=function(lyr,dataset){var n=internal.getFeatureCount(lyr);var o={geometry_type:lyr.geometry_type,feature_count:n,null_shape_count:0,null_data_count:lyr.data?internal.countNullRecords(lyr.data.getRecords()):n};if(lyr.shapes){o.null_shape_count=internal.countNullShapes(lyr.shapes);o.bbox=internal.getLayerBounds(lyr,dataset.arcs).toArray();o.proj4=internal.getProjInfo(dataset)}return o};internal.countNullShapes=function(shapes){var count=0;for(var i=0;i0)rings++;if(area<0)holes++});return{rings:rings,holes:holes}};internal.getLayerInfo=function(lyr,dataset){var data=internal.getLayerData(lyr,dataset);var str="Layer name: "+(lyr.name||"[unnamed]")+"\n";str+=utils.format("Records: %,d\n",data.feature_count);str+=internal.getGeometryInfo(data);str+=internal.getTableInfo(lyr);return str};internal.getGeometryInfo=function(data){var lines;if(!data.geometry_type){lines=["Geometry: [none]"]}else{lines=["Geometry","Type: "+data.geometry_type];if(data.null_shape_count>0){lines.push(utils.format("Null shapes: %'d",data.null_shape_count))}if(data.feature_count>data.null_shape_count){lines.push("Bounds: "+data.bbox.join(" "));lines.push("Proj.4: "+data.proj4)}}return lines.join("\n ")+"\n"};internal.getTableInfo=function(lyr,i){if(!lyr.data||lyr.data.size()===0||lyr.data.getFields().length===0){return"Attribute data: [none]"}return internal.getAttributeInfo(lyr.data,i)};internal.getAttributeInfo=function(data,i){var featureId=i||0;var featureLabel=i>=0?"Value":"First value";var fields=internal.applyFieldOrder(data.getFields(),"ascending");var col1Chars=fields.reduce(function(memo,name){return Math.max(memo,name.length)},5)+2;var vals=fields.map(function(fname){return data.getReadOnlyRecordAt(featureId)[fname]});var maxIntegralChars=vals.reduce(function(max,val){if(utils.isNumber(val)){max=Math.max(max,internal.countIntegralChars(val))}return max},0);var table=vals.map(function(val,i){return" "+internal.formatTableItem(fields[i],val,col1Chars,maxIntegralChars)}).join("\n");return"Attribute data\n "+utils.rpad("Field",col1Chars," ")+featureLabel+"\n"+table};internal.formatNumber=function(val){return val+""};internal.formatString=function(str){var replacements={"\n":"\\n","\r":"\\r","\t":"\\t"};var cleanChar=function(c){return c in replacements?replacements[c]:""};str=str.replace(/[\r\t\n]/g,cleanChar);return"'"+str+"'"};internal.countIntegralChars=function(val){return utils.isNumber(val)?(internal.formatNumber(val)+".").indexOf("."):0};internal.formatTableItem=function(name,val,col1Chars,integralChars){var str=utils.rpad(name,col1Chars," ");if(utils.isNumber(val)){str+=utils.lpad("",integralChars-internal.countIntegralChars(val)," ")+internal.formatNumber(val)}else if(utils.isString(val)){str+=internal.formatString(val)}else if(utils.isObject(val)){str+=JSON.stringify(val)}else{str+=String(val)}return str};internal.getSimplificationInfo=function(arcs){var nodeCount=new NodeCollection(arcs).size();var internalVertexCount=internal.countInteriorVertices(arcs)};internal.countInteriorVertices=function(arcs){var count=0;arcs.forEach2(function(i,n){if(n>2){count+=n-2}});return count};api.innerlines=function(lyr,arcs,opts){opts=opts||{};internal.requirePolygonLayer(lyr);var filter=opts.where?internal.compileFeaturePairFilterExpression(opts.where,lyr,arcs):null;var classifier=internal.getArcClassifier(lyr.shapes,arcs,filter);var lines=internal.extractInnerLines(lyr.shapes,classifier);var outputLyr=internal.createLineLayer(lines,null);if(lines.length===0){message("No shared boundaries were found")}outputLyr.name=opts.no_replace?null:lyr.name;return outputLyr};api.lines=function(lyr,arcs,opts){opts=opts||{};var filter=opts.where?internal.compileFeaturePairFilterExpression(opts.where,lyr,arcs):null,decorateRecord=opts.each?internal.getLineRecordDecorator(opts.each,lyr,arcs):null,classifier=internal.getArcClassifier(lyr.shapes,arcs,filter),fields=utils.isArray(opts.fields)?opts.fields:[],rankId=0,shapes=[],records=[],outputLyr;internal.requirePolygonLayer(lyr,"Command requires a polygon layer");if(fields.length>0&&!lyr.data){stop("Missing a data table")}addLines(internal.extractOuterLines(lyr.shapes,classifier),"outer");fields.forEach(function(field){var data=lyr.data.getRecords();var key=function(a,b){var arec=data[a];var brec=data[b];var aval,bval;if(!arec||!brec||arec[field]===brec[field]){return null}return a+"-"+b};if(!lyr.data.fieldExists(field)){stop("Unknown data field:",field)}addLines(internal.extractLines(lyr.shapes,classifier(key)),field)});addLines(internal.extractInnerLines(lyr.shapes,classifier),"inner");outputLyr=internal.createLineLayer(shapes,records);outputLyr.name=opts.no_replace?null:lyr.name;return outputLyr;function addLines(lines,typeName){var attr=lines.map(function(shp,i){var rec={RANK:rankId,TYPE:typeName};if(decorateRecord)decorateRecord(rec,shp);return rec});shapes=utils.merge(lines,shapes);records=utils.merge(attr,records);rankId++}};internal.getLineRecordDecorator=function(exp,lyr,arcs){var procArcId=internal.getArcClassifier(lyr.shapes,arcs)(procShapeIds);var compiled=internal.compileFeaturePairExpression(exp,lyr,arcs);var tmp;function procShapeIds(shpA,shpB){compiled(shpA,shpB,tmp)}return function(rec,shp){tmp=rec;procArcId(shp[0][0]);return rec}};internal.createLineLayer=function(lines,records){return{geometry_type:"polyline",shapes:lines,data:records?new DataTable(records):null}};internal.extractOuterLines=function(shapes,classifier){var key=function(a,b){return b==-1?String(a):null};return internal.extractLines(shapes,classifier(key))};internal.extractInnerLines=function(shapes,classifier){var key=function(a,b){return b>-1?a+"-"+b:null};return internal.extractLines(shapes,classifier(key))};internal.extractLines=function(shapes,classify){var lines=[],index={},prev=null,prevKey=null,part;internal.traversePaths(shapes,onArc,onPart);function onArc(o){var arcId=o.arcId,key=classify(arcId),isContinuation,line;if(!!key){line=key in index?index[key]:null;isContinuation=key==prevKey&&o.shapeId==prev.shapeId&&o.partId==prev.partId;if(!line){line=[[arcId]];index[key]=line;lines.push(line)}else if(isContinuation){line[line.length-1].push(arcId)}else{line.push([arcId])}if(o.i==part.arcs.length-1&&line.length>1&&line[0][0]==part.arcs[0]){line[0]=line.pop().concat(line[0])}}prev=o;prevKey=key}function onPart(o){part=o}return lines};api.inspect=function(lyr,arcs,opts){var ids=internal.selectFeatures(lyr,arcs,opts);var msg;if(ids.length==1){msg=internal.getFeatureInfo(ids[0],lyr,arcs)}else{msg=utils.format("Expression matched %d feature%s. Select one feature for details",ids.length,utils.pluralSuffix(ids.length))}message(msg)};internal.getFeatureInfo=function(id,lyr,arcs){var msg="Feature "+id+"\n";msg+=internal.getShapeInfo(id,lyr,arcs);msg+=internal.getTableInfo(lyr,id);return msg};internal.getShapeInfo=function(id,lyr,arcs){var shp=lyr.shapes?lyr.shapes[id]:null;var type=lyr.geometry_type;var info,msg;if(!shp||!type){return"Geometry: [null]\n"}msg="Geometry\n Type: "+type+"\n";if(type=="point"){msg+=" Points: "+shp.length+"\n"}else if(type=="polyline"){msg+=" Parts: "+shp.length+"\n"}else if(type=="polygon"){info=internal.getPolygonInfo(shp,arcs);msg+=utils.format(" Rings: %d cw, %d ccw\n",info.cw,info.ccw);msg+=" Planar area: "+info.area+"\n";if(info.sph_area){msg+=" Spherical area: "+info.sph_area+" sq. meters\n"}}return msg};internal.getPolygonInfo=function(shp,arcs){var o={rings:shp.length,cw:0,ccw:0,area:0};var area;for(var i=0;i0){o.cw++}else if(area<0){o.ccw++}o.area+=area}if(!arcs.isPlanar()){o.sph_area=geom.getSphericalShapeArea(shp,arcs)}return o};internal.selectFeatures=function(lyr,arcs,opts){var n=internal.getFeatureCount(lyr),ids=[],filter;if(!opts.expression){stop("Missing a JS expression for selecting a feature")}filter=internal.compileValueExpression(opts.expression,lyr,arcs);utils.repeat(n,function(id){var result=filter(id);if(result===true){ids.push(id)}else if(result!==false){stop("Expression must return true or false")}});return ids};function PointIndex(shapes,opts){var buf=utils.isNonNegNumber(opts.buffer)?opts.buffer:.001;var minDistSq,minId,target;this.findNearestPointFeature=function(shape){minDistSq=Infinity;minId=-1;target=shape||[];internal.forEachPoint(shapes,testPoint);return minId};function testPoint(p,id){var distSq;for(var i=0;i-1?[srcId]:null}};internal.getPolygonToPointsFunction=function(polygonLyr,arcs,pointLyr,opts){var joinFunction=internal.getPointToPolygonsFunction(pointLyr,polygonLyr,arcs,opts);var index=[];var hits,polygonId;pointLyr.shapes.forEach(function(shp,pointId){var polygonIds=joinFunction(pointId);var n=polygonIds?polygonIds.length:0;var polygonId;for(var i=0;i0?polygonIds:null}};internal.getPointToPolygonFunction=function(pointLyr,polygonLyr,arcs,opts){var index=new PathIndex(polygonLyr.shapes,arcs),points=pointLyr.shapes;return function(i){var shp=points[i],shpId=-1;if(shp){shpId=index.findEnclosingShape(shp[0])}return shpId==-1?null:[shpId]}};internal.getJoinFilter=function(data,exp){var test=internal.getJoinFilterTestFunction(exp,data);var calc=null;if(internal.expressionHasCalcFunction(exp)){calc=internal.getJoinFilterCalcFunction(exp,data)}return function(srcIds,destRec){var d=calc?calc(srcIds):null;var filtered=[],retn,i;for(i=0;i-1})};internal.getJoinFilterCalcFunction=function(exp,data){var values,counts,max,min,context,calc,n;context={isMax:function(val){if(val>max)max=val},isMin:function(val){if(val-1}};Object.defineProperty(context,"target",{get:function(){return destRec},enumerable:true});test=internal.compileFeatureExpression(exp,{data:data},null,{context:context,returns:true});return function(srcId,destR,calcR){calcRec=calcR;destRec=destR;return test(srcId)}};api.join=function(targetLyr,dataset,src,opts){var srcType,targetType,retn;if(!src||!src.layer.data||!src.dataset){stop("Missing a joinable data source")}if(opts.keys){if(opts.keys.length!=2){stop("Expected two key fields: a target field and a source field")}retn=api.joinAttributesToFeatures(targetLyr,src.layer.data,opts)}else{srcType=src.layer.geometry_type;targetType=targetLyr.geometry_type;if(srcType=="point"&&targetType=="polygon"){retn=api.joinPointsToPolygons(targetLyr,dataset.arcs,src.layer,opts)}else if(srcType=="polygon"&&targetType=="point"){retn=api.joinPolygonsToPoints(targetLyr,src.layer,src.dataset.arcs,opts)}else if(srcType=="point"&&targetType=="point"){retn=api.joinPointsToPoints(targetLyr,src.layer,opts)}else{stop(utils.format("Unable to join %s geometry to %s geometry",srcType||"null",targetType||"null"))}}if(retn.unmatched){dataset.layers.push(retn.unmatched)}if(retn.unjoined){dataset.layers.push(retn.unjoined)}};internal.validateFieldNames=function(arr){arr.forEach(function(name){if(/:(str|num)/.test(name)){stop("Unsupported use of type hints. Use string-fields= or field-types= options instead")}})};api.joinAttributesToFeatures=function(lyr,srcTable,opts){var keys=opts.keys,destKey=keys[0],srcKey=keys[1],destTable=lyr.data,joinFunction=internal.getJoinByKey(destTable,destKey,srcTable,srcKey);internal.validateFieldNames(keys);return internal.joinTables(destTable,srcTable,joinFunction,opts)};internal.joinTables=function(dest,src,join,opts){var srcRecords=src.getRecords(),destRecords=dest.getRecords(),unmatchedRecords=[],joinFields=internal.getFieldsToJoin(dest.getFields(),src.getFields(),opts),sumFields=opts.sum_fields||[],copyFields=utils.difference(joinFields,sumFields),joinCounts=new Uint32Array(srcRecords.length),matchCount=0,collisionCount=0,collisionFields=[],skipCount=0,retn={},srcRec,srcId,destRec,joins,count,filter,calc,i,j,n,m;if(opts.where){filter=internal.getJoinFilter(src,opts.where)}if(opts.calc){calc=internal.getJoinCalc(src,opts.calc)}for(i=0,n=destRecords.length;i0){internal.joinByCopy(destRec,srcRec,copyFields)}}else if(count==1){if(copyFields.length>0){internal.findCollisionFields(destRec,srcRec,copyFields,collisionFields)}collisionCount++}if(sumFields.length>0){internal.joinBySum(destRec,srcRec,sumFields)}joinCounts[srcId]++;count++}if(calc){calc(joins,destRec)}if(count>0){matchCount++}else if(destRec){if(opts.unmatched){unmatchedRecords.push(utils.extend({},destRec))}internal.updateUnmatchedRecord(destRec,copyFields,sumFields)}}internal.printJoinMessage(matchCount,destRecords.length,internal.countJoins(joinCounts),srcRecords.length,skipCount,collisionCount,collisionFields);if(opts.unjoined){retn.unjoined={name:"unjoined",data:new DataTable(srcRecords.filter(function(o,i){return joinCounts[i]===0}))}}if(opts.unmatched){retn.unmatched={name:"unmatched",data:new DataTable(unmatchedRecords)}}return retn};internal.countJoins=function(counts){var joinCount=0;for(var i=0,n=counts.length;i0){joinCount++}}return joinCount};internal.updateUnmatchedRecord=function(rec,copyFields,sumFields){internal.joinByCopy(rec,{},copyFields);internal.joinBySum(rec,{},sumFields)};internal.joinByCopy=function(dest,src,fields){var f;for(var i=0,n=fields.length;i0===false){message("No records could be joined");return}message(utils.format("Joined data from %'d source record%s to %'d target record%s",joins,utils.pluralSuffix(joins),matches,utils.pluralSuffix(matches)));if(matches0){message(utils.format("%d/%d source records were skipped",skipped,m))}if(collisions>0){message(utils.format("%d/%d target records were matched by multiple source records",collisions,n));if(collisionFields.length>0){message(utils.format("Found inconsistent values in field%s [%s] during many-to-one join",utils.pluralSuffix(collisionFields.length),collisionFields.join(", ")))}}};internal.getFieldsToJoin=function(destFields,srcFields,opts){var joinFields;if(opts.fields){if(opts.fields.indexOf("*")>-1){joinFields=srcFields}else{joinFields=opts.fields;internal.validateFieldNames(joinFields)}}else{joinFields=srcFields;if(opts.keys){joinFields=utils.difference(joinFields,[opts.keys[1]])}}if(!opts.force){joinFields=utils.difference(joinFields,destFields)}return joinFields};internal.validateJoinFieldType=function(field,type){if(!type||type=="object"){stop("["+field+"] field has an unsupported data type. Expected string or number.")}};internal.getJoinByKey=function(dest,destKey,src,srcKey){var destRecords=dest.getRecords();var index=internal.createTableIndex(src.getRecords(),srcKey);var srcType,destType;if(src.fieldExists(srcKey)===false){stop("External table is missing a field named:",srcKey)}if(!dest||!dest.fieldExists(destKey)){stop("Target layer is missing key field:",destKey)}srcType=internal.getColumnType(srcKey,src.getRecords());destType=internal.getColumnType(destKey,destRecords);internal.validateJoinFieldType(srcKey,srcType);internal.validateJoinFieldType(destKey,destType);if(srcType!=destType){stop("Join keys have mismatched data types:",destType,"and",srcType)}return function(i){var destRec=destRecords[i],val=destRec?destRec[destKey]:null,retn=null;if(destRec&&val in index){retn=index[val];if(!Array.isArray(retn))retn=[retn]}return retn}};internal.createTableIndex=function(records,f){var index={},rec,key;for(var i=0,n=records.length;imaxArea){maxRing=shape[i];maxArea=area}}if(!maxRing||maxRing.length===0){verbose("[protectShape()] Invalid shape:",shape)}else{internal.protectPolygonRing(arcData,maxRing)}};internal.protectPolygonRing=function(arcData,ring){var zlim=arcData.getRetainedInterval(),minArea=1e-10,area,added;arcData.setRetainedInterval(Infinity);area=geom.getPlanarPathArea(ring,arcData);while(area<=minArea){added=internal.lockMaxThreshold(arcData,ring);if(added===0){verbose("[protectMultiRing()] Failed on ring:",ring);break}area=geom.getPlanarPathArea(ring,arcData)}arcData.setRetainedInterval(zlim)};internal.lockMaxThreshold=function(arcData,ring){var targZ=0,targArcId,raw=arcData.getVertexData(),arcId,id,z,start,end;for(var i=0;itargZ){targZ=z;targArcId=arcId}}if(targZ>0){start=raw.ii[targArcId];end=start+raw.nn[targArcId]-1;return internal.replaceInArray(raw.zz,targZ,Infinity,start,end)}return 0};internal.replaceInArray=function(zz,value,replacement,start,end){var count=0;for(var i=start;i<=end;i++){if(zz[i]===value){zz[i]=replacement;count++}}return count};internal.importFiles=function(files,opts){var unbuiltTopology=false;var datasets=files.map(function(fname){var importOpts=utils.defaults({no_topology:true,snap:false,snap_interval:null,files:[fname]},opts);var dataset=api.importFile(fname,importOpts);if(dataset.arcs&&dataset.arcs.size()>0&&dataset.info.input_formats[0]!="topojson"){unbuiltTopology=true}return dataset});var combined=internal.mergeDatasets(datasets);if(unbuiltTopology&&!opts.no_topology){internal.cleanPathsAfterImport(combined,opts);api.buildTopology(combined)}return combined};internal.findInnerPoints=function(shp,arcs){var groups,points;if(!shp){points=null}else{groups=shp.length==1?[shp]:internal.findPotentialRingGroups(shp,arcs);points=internal.findInnerPoints2(groups,arcs)}return points};internal.findInnerPoints2=function(shapes,arcs){return shapes.map(function(shp){return internal.findInnerPoint(shp,arcs)})};internal.findPotentialRingGroups=function(shp,arcs){var data=internal.getPathMetadata(shp,arcs,"polygon");var groups=[];data.sort(function(a,b){return b.bounds.area()-a.bounds.area()});data.forEach(function(d,i){if(d.area>0===false)return;groups.push(utils.pluck(data.slice(i),"ids"))});return groups};internal.findInnerPoint=function(shp,arcs){};internal.polylineToPoint=function(shp,arcs,opts){var spherical=!arcs.isPlanar();var part=!shp?null:shp.length==1?shp[0]:internal.findLongestPolylinePart(shp,arcs,spherical);if(!part)return null;var bbox=arcs.getSimpleShapeBounds(part);var p=internal.findNearestPolylineVertex(bbox.centerX(),bbox.centerY(),part,arcs,spherical);return p};internal.findNearestPolylineVertex=function(x,y,path,arcs,spherical){var minLen=Infinity,minX,minY,iter=arcs.getShapeIter(path),calcLen=spherical?greatCircleDistance:distance2D,dist;while(iter.hasNext()){dist=calcLen(x,y,iter.x,iter.y);if(distmaxLen){maxLen=len;maxPart=path}});return maxPart};internal.parseDMS=function(str){var rxp=/^([nsew+-]?)([0-9.]+)[d\xb0]? ?([0-9.]*)['\u2032]? ?([0-9.]*)["\u2033]? ?([nsew]?)$/i;var match=rxp.exec(str.trim());var d=NaN;var deg,min,sec,inv;if(match){deg=match[2]||"0";min=match[3]||"0";sec=match[4]||"0";d=+deg+ +min/60+ +sec/3600;if(/[sw-]/i.test(match[1])||/[sw]/i.test(match[5])){d=-d}}return d};api.createPointLayer=function(srcLyr,dataset,opts){var destLyr=internal.getOutputLayer(srcLyr,opts);var arcs=dataset.arcs;if(opts.intersections){internal.testIntersections(arcs);destLyr=srcLyr}else if(opts.interpolated){destLyr.shapes=internal.interpolatedPointsFromVertices(srcLyr,dataset,opts)}else if(opts.vertices){destLyr.shapes=internal.pointsFromVertices(srcLyr,arcs,opts)}else if(opts.vertices2){destLyr.shapes=internal.pointsFromVertices2(srcLyr,arcs,opts)}else if(opts.endpoints){destLyr.shapes=internal.pointsFromEndpoints(srcLyr,arcs,opts)}else if(opts.x||opts.y){destLyr.shapes=internal.pointsFromDataTable(srcLyr.data,opts)}else if(srcLyr.geometry_type=="polygon"){destLyr.shapes=internal.pointsFromPolygons(srcLyr,arcs,opts)}else if(srcLyr.geometry_type=="polyline"){destLyr.shapes=internal.pointsFromPolylines(srcLyr,arcs,opts)}else{stop("Expected a polygon or polyline layer")}destLyr.geometry_type="point";var nulls=destLyr.shapes.reduce(function(sum,shp){if(!shp)sum++;return sum},0);if(nulls>0){message(utils.format("%,d of %,d points are null",nulls,destLyr.shapes.length))}if(srcLyr.data){destLyr.data=opts.no_replace?srcLyr.data.clone():srcLyr.data}return destLyr};internal.testIntersections=function(arcs){var pointCount=arcs.getFilteredPointCount(),arcCount=arcs.size(),segCount=pointCount-arcCount,stripes=internal.calcSegmentIntersectionStripeCount2(arcs),stripes2=Math.ceil(stripes/10),stripes3=stripes*10,stripes4=internal.calcSegmentIntersectionStripeCount(arcs);console.log("points:",pointCount,"arcs:",arcCount,"segs:",segCount);[stripes2,stripes,stripes3,stripes4].forEach(function(n){console.time(n+" stripes");internal.findSegmentIntersections(arcs,{stripes:n});console.timeEnd(n+" stripes")})};internal.interpolatePoint2D=function(ax,ay,bx,by,k){var j=1-k;return[ax*j+bx*k,ay*j+by*k]};internal.interpolatePointsAlongArc=function(ids,arcs,interval){var iter=arcs.getShapeIter(ids);var distance=arcs.isPlanar()?distance2D:greatCircleDistance;var coords=[];var elapsedDist=0;var prevX,prevY;var segLen,k,p;if(iter.hasNext()){coords.push([iter.x,iter.y]);prevX=iter.x;prevY=iter.y}while(iter.hasNext()){segLen=distance(prevX,prevY,iter.x,iter.y);while(elapsedDist+segLen>=interval){k=(interval-elapsedDist)/segLen;p=internal.interpolatePoint2D(prevX,prevY,iter.x,iter.y,k);elapsedDist=0;coords.push(p);prevX=p[0];prevY=p[1];segLen=distance(prevX,prevY,iter.x,iter.y)}elapsedDist+=segLen;prevX=iter.x;prevY=iter.y}if(elapsedDist>0){coords.push([prevX,prevY])}return coords};internal.interpolatedPointsFromVertices=function(lyr,dataset,opts){var interval=internal.convertIntervalParam(opts.interval,internal.getDatasetCRS(dataset));var coords;if(interval>0===false)stop("Invalid interpolation interval:",opts.interval);if(lyr.geometry_type!="polyline")stop("Expected a polyline layer");return lyr.shapes.map(function(shp,shpId){coords=[];if(shp)shp.forEach(nextPart);return coords.length>0?coords:null});function nextPart(ids){var points=internal.interpolatePointsAlongArc(ids,dataset.arcs,interval);coords=coords.concat(points)}};internal.pointsFromVertices=function(lyr,arcs,opts){var coords,index;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];index={};(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function addPoint(p){var key=p.x+"~"+p.y;if(key in index===false){index[key]=true;coords.push([p.x,p.y])}}function nextPart(ids){var iter=arcs.getShapeIter(ids);while(iter.hasNext()){addPoint(iter)}}};internal.pointsFromVertices2=function(lyr,arcs,opts){var coords;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function nextPart(ids){var iter=arcs.getShapeIter(ids);while(iter.hasNext()){coords.push([iter.x,iter.y])}}};internal.pointsFromEndpoints=function(lyr,arcs){var coords,index;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];index={};(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function addPoint(p){var key=p.x+"~"+p.y;if(key in index===false){index[key]=true;coords.push([p.x,p.y])}}function nextPart(ids){for(var i=0;i0&&opts.cols>0){params.rows=opts.rows;params.cols=opts.cols}else{}if(opts.bbox){params.bbox=opts.bbox}else if(dataset){params.bbox=internal.getDatasetBounds(dataset).toArray()}else{params.bbox=[-180,-90,180,90]}return params};internal.createPointGridLayer=function(rows,opts){var points=[],lyr;rows.forEach(function(row,rowId){for(var i=0;i0){dx=opts.interval;dy=opts.interval;cols=Math.round(w/dx)-1;rows=Math.round(h/dy)-1;x0=bbox[0]+(w-cols*dx)/2;y0=bbox[1]+(h-rows*dy)/2}else if(opts.rows>0&&opts.cols>0){cols=opts.cols;rows=opts.rows;dx=w/cols;dy=h/rows;x0=bbox[0]+dx/2;y0=bbox[1]+dy/2}if(dx>0===false||dy>0===false){stop("Invalid grid parameters")}y=y0;while(y<=bbox[3]){x=x0;rowsArr.push(rowArr=[]);while(x<=bbox[2]){rowArr.push([x,y]);x+=dx}y+=dy}return rowsArr};internal.editArcs=function(arcs,onPoint){var nn2=[],xx2=[],yy2=[],n;arcs.forEach(function(arc,i){editArc(arc,onPoint)});arcs.updateVertexData(nn2,xx2,yy2);function append(p){if(p){xx2.push(p[0]);yy2.push(p[1]);n++}}function editArc(arc,cb){var x,y,xp,yp,retn;var valid=true;var i=0;n=0;while(arc.hasNext()){x=arc.x;y=arc.y;retn=cb(append,x,y,xp,yp,i++);if(retn===false){valid=false;break}xp=x;yp=y}if(valid&&n==1){message("An invalid arc was created");valid=false}if(valid){nn2.push(n)}else{while(n-- >0){xx2.pop();yy2.pop()}nn2.push(0)}}};api.proj=function(dataset,destInfo,opts){var modifyCopy=!!api.gui,originals=[],target={},src,dest;dest=destInfo.crs;if(!dest){stop("Missing projection data")}if(!internal.datasetHasGeometry(dataset)){dataset.info.crs=dest;dataset.info.prj=destInfo.prj;return}src=internal.getDatasetCRS(dataset);if(!src){stop("Unable to project -- source coordinate system is unknown")}if(internal.crsAreEqual(src,dest)){message("Source and destination CRS are the same");return}if(dataset.arcs){dataset.arcs.flatten();target.arcs=modifyCopy?dataset.arcs.getCopy():dataset.arcs}target.layers=dataset.layers.filter(internal.layerHasPoints).map(function(lyr){if(modifyCopy){originals.push(lyr);lyr=utils.extend({},lyr);lyr.shapes=internal.cloneShapes(lyr.shapes)}return lyr});try{internal.projectDataset(target,src,dest,opts||{})}catch(e){stop(utils.format("Projection failure%s (%s)",e.point?" at "+e.point.join(" "):"",e.message))}dataset.info.crs=dest;dataset.info.prj=destInfo.prj;dataset.arcs=target.arcs;originals.forEach(function(lyr,i){utils.extend(lyr,target.layers[i])})};internal.getCrsInfo=function(name,catalog){var dataset,sources,info={};if(/\.prj$/i.test(name)){dataset=api.importFile(name,{});if(dataset){info.prj=dataset.info.prj;info.crs=internal.parsePrj(info.prj)}}else{sources=catalog.findCommandTargets(name);if(sources.length>0){dataset=sources[0].dataset;info.crs=internal.getDatasetCRS(dataset);info.prj=dataset.info.prj}else{info.crs=internal.getCRS(name)}}return info};internal.projectDataset=function(dataset,src,dest,opts){var proj=internal.getProjTransform(src,dest);dataset.layers.forEach(function(lyr){if(internal.layerHasPoints(lyr)){internal.projectPointLayer(lyr,proj)}});if(dataset.arcs){if(opts.densify){internal.projectAndDensifyArcs(dataset.arcs,proj)}else{internal.projectArcs(dataset.arcs,proj)}}};internal.projectPointLayer=function(lyr,proj){internal.editShapes(lyr.shapes,function(p){return proj(p[0],p[1])})};internal.projectArcs=function(arcs,proj){var data=arcs.getVertexData(),xx=data.xx,yy=data.yy,zz=data.zz,p;for(var i=0,n=xx.length;i0&&distanceSq(p[0],p[1],prevX,prevY)>interval*interval*25){internal.densifySegment(prevLng,prevLat,prevX,prevY,lng,lat,p[0],p[1],proj,interval).forEach(append)}append(p)}};internal.getDefaultDensifyInterval=function(arcs,proj){var xy=internal.getAvgSegment2(arcs),bb=arcs.getBounds(),a=proj(bb.centerX(),bb.centerY()),b=proj(bb.centerX()+xy[0],bb.centerY()+xy[1]);return distance2D(a[0],a[1],b[0],b[1])};internal.densifySegment=function(lng0,lat0,x0,y0,lng2,lat2,x2,y2,proj,interval,points){var lng1=(lng0+lng2)/2,lat1=(lat0+lat2)/2,p=proj(lng1,lat1),distSq=geom.pointSegDistSq(p[0],p[1],x0,y0,x2,y2);points=points||[];if(distSq>interval*interval*.25&&distance2D(lng0,lat0,lng2,lat2)>.01){internal.densifySegment(lng0,lat0,x0,y0,lng1,lat1,p[0],p[1],proj,interval,points);points.push(p);internal.densifySegment(lng1,lat1,p[0],p[1],lng2,lat2,x2,y2,proj,interval,points)}return points};internal.mosaic=function(dataset,opts){var layers2=[];var nodes,output;if(!dataset.arcs)stop("Dataset is missing path data");nodes=internal.addIntersectionCuts(dataset,opts);output=internal.buildPolygonMosaic(nodes);layers2.push({name:"mosaic",shapes:output.mosaic,geometry_type:"polygon"});if(opts.debug){layers2.push({geometry_type:"polygon",name:"mosaic-enclosure",shapes:output.enclosures});if(output.lostArcs.length>0){layers2=layers2.concat(getLostArcLayers(output.lostArcs,nodes.arcs))}}return layers2;function getLostArcLayers(lostArcs,arcs){var arcLyr={geometry_type:"polyline",name:"lost-arcs",shapes:[]};var pointLyr={geometry_type:"point",name:"lost-arc-endpoints",shapes:[]};var arcData=[];var pointData=[];lostArcs.forEach(function(arcId){var first=arcs.getVertex(arcId,0);var last=arcs.getVertex(arcId,-1);arcData.push({ARCID:arcId});arcLyr.shapes.push([[arcId]]);pointData.push({ARCID:arcId},{ARCID:arcId});pointLyr.shapes.push([[first.x,first.y]],[[last.x,last.y]])});arcLyr.data=new DataTable(arcData);pointLyr.data=new DataTable(pointData);return[arcLyr,pointLyr]}};internal.buildPolygonMosaic=function(nodes){T.start();nodes.detachAcyclicArcs();var data=internal.findMosaicRings(nodes);var mosaic=data.cw.map(function(ring){return[ring]});T.stop("Find mosaic rings");T.start();var enclosures=[];var index=new PathIndex(mosaic,nodes.arcs);data.ccw.forEach(function(ring){var id=index.findSmallestEnclosingPolygon(ring);if(id>-1){mosaic[id].push(ring)}else{internal.reversePath(ring);enclosures.push([ring])}});T.stop(utils.format("Detect holes (holes: %d, enclosures: %d)",data.ccw.length-enclosures.length,enclosures.length));return{mosaic:mosaic,enclosures:enclosures,lostArcs:data.lostArcs}};internal.findMosaicRings=function(nodes){var arcs=nodes.arcs,cw=[],ccw=[],empty=[],lostArcs=[];var flags=new Uint8Array(arcs.size());var findPath=internal.getPathFinder(nodes,useRoute);for(var i=0,n=flags.length;i0){cw.push(ring)}else if(area<0){ccw.push(ring)}else{empty.push(ring)}}function useRoute(arcId){return routeIsOpen(arcId,true)}function routeIsOpen(arcId,closeRoute){var absId=absArcId(arcId);var bit=absId==arcId?1:2;var isOpen=(flags[absId]&bit)===0;if(closeRoute&&isOpen)flags[absId]|=bit;return isOpen}};internal.closeGaps=function(lyr,dataset,opts){var maxGapLen=opts.gap_tolerance?internal.convertIntervalParam(opts.gap_tolerance,internal.getDatasetCRS(dataset)):0;var arcs=dataset.arcs;var arcFilter=internal.getArcPresenceTest(lyr.shapes,arcs);var nodes=new NodeCollection(dataset.arcs,arcFilter);var dangles=internal.findPotentialUndershoots(nodes,maxGapLen);if(dangles.length===0)return nodes;var arcShapes=internal.arcsToShapes(arcs,arcFilter);var index=new PathIndex(arcShapes,arcs);var extensions=dangles.reduce(function(memo,dangle){var candidates=index.findPointEnclosureCandidates(dangle.point,maxGapLen);var nearestHit=internal.findUndershootTarget(dangle,candidates,arcs,maxGapLen);if(nearestHit){memo.push(internal.getArcExtension(nearestHit,dangle.arc,arcs))}return memo},[]);dataset.arcs=internal.insertArcExtensions(arcs,extensions);return internal.addIntersectionCuts(dataset,{})};internal.findUndershootTarget=function(endpoint,candidates,arcs,maxGapLen){var absId=absArcId(endpoint.arc);var target=null;candidates.forEach(function(candId){var hit;if(candId==absId)return;hit=geom.getPointToPathInfo(endpoint.point[0],endpoint.point[1],[candId],arcs);if(hit&&hit.distance<=maxGapLen&&(!target||hit.distancemaxLen})};internal.insertArcExtensions=function(arcs,extensions){var data=arcs.getVertexData();extensions.forEach(function(obj){var i=arcs.indexOfVertex(obj.arc,-1);data.xx[i]=obj.point[0];data.yy[i]=obj.point[1]});arcs.updateVertexData(data.nn,data.xx,data.yy,data.zz);return arcs};internal.chooseCloserPoint=function(p,a,b){return distance2D(p[0],p[1],a[0],a[1])=nameCount-1){suffix=(suffix||0)+1}lyr.name=name+suffix})};api.run=function(targets,catalog,opts,cb){var commandStr,commands;if(opts.include){internal.include({file:opts.include})}if(!opts.commands){stop("Missing commands parameter")}commandStr=internal.runGlobalExpression(opts.commands,targets);if(commandStr){commands=internal.parseCommands(commandStr);internal.runParsedCommands(commands,catalog,cb)}else{cb(null)}};internal.runGlobalExpression=function(expression,targets){var ctx=internal.getBaseContext();var output,targetData;if(targets.length==1){targetData=internal.getRunCommandData(targets[0]);Object.defineProperty(ctx,"target",{value:targetData})}utils.extend(ctx,internal.getStateVar("defs"));try{output=Function("ctx","with(ctx) {return ("+expression+");}").call({},ctx)}catch(e){stop(e.name,"in JS source:",e.message)}return output};internal.getRunCommandData=function(target){var lyr=target.layers[0];var data=internal.getLayerData(lyr,target.dataset);data.layer=lyr;data.dataset=target.dataset;return data};api.require=function(targets,opts){var defs=internal.getStateVar("defs");var moduleFile,moduleName,mod;if(!opts.module){stop("Missing module name or path to module")}if(cli.isFile(opts.module)){moduleFile=opts.module}else if(cli.isFile(opts.module+".js")){moduleFile=opts.module+".js"}else{moduleName=opts.module}if(moduleFile){moduleFile=require("path").join(process.cwd(),moduleFile)}try{mod=require(moduleFile||moduleName)}catch(e){stop(e)}if(moduleName||opts.alias){defs[opts.alias||moduleName]=mod}else{utils.extend(defs,mod)}if(opts.init){internal.runGlobalExpression(opts.init,targets)}};api.scalebar=function(catalog,opts){var frame=internal.findFrameDataset(catalog);var obj,lyr;if(!frame){stop("Missing a map frame")}obj=utils.defaults({type:"scalebar"},opts);lyr={name:opts.name||"scalebar",data:new DataTable([obj])};frame.layers.push(lyr)};internal.getScalebarPosition=function(d){var opts={valign:"top",halign:"left",voffs:10,hoffs:10};if(+d.left>0){opts.hoffs=+d.left}if(+d.top>0){opts.voffs=+d.top}if(+d.right>0){opts.hoffs=+d.right;opts.halign="right"}if(+d.bottom>0){opts.voffs=+d.bottom;opts.valign="bottom"}return opts};SVG.furnitureRenderers.scalebar=function(d,frame){var pos=internal.getScalebarPosition(d);var metersPerPx=internal.getMapFrameMetersPerPixel(frame);var label=d.label_text||internal.getAutoScalebarLabel(frame.width,metersPerPx);var scalebarKm=internal.parseScalebarLabelToKm(label);var barHeight=3;var labelOffs=4;var fontSize=+d.font_size||13;var width=Math.round(scalebarKm/metersPerPx*1e3);var height=Math.round(barHeight+labelOffs+fontSize*.8);var labelPos=d.label_position=="top"?"top":"bottom";var anchorX=pos.halign=="left"?0:width;var anchorY=barHeight+labelOffs;var dx=pos.halign=="right"?frame.width-width-pos.hoffs:pos.hoffs;var dy=pos.valign=="bottom"?frame.height-height-pos.voffs:pos.voffs;if(labelPos=="top"){anchorY=-labelOffs;dy+=Math.round(labelOffs+fontSize*.8)}if(width>0===false){stop("Null scalebar length")}var barObj={tag:"rect",properties:{fill:"black",x:0,y:0,width:width,height:barHeight}};var labelOpts={"label-text":label,"font-size":fontSize,"text-anchor":pos.halign=="left"?"start":"end","dominant-baseline":labelPos=="top"?"auto":"hanging"};var labelObj=SVG.symbolRenderers.label(labelOpts,anchorX,anchorY)[0];var g={tag:"g",children:[barObj,labelObj],properties:{transform:"translate("+dx+" "+dy+")"}};return[g]};internal.getAutoScalebarLabel=function(mapWidth,metersPerPx){var minWidth=100;var minKm=metersPerPx*minWidth/1e3;var options=("1/8 1/5 1/4 1/2 1 1.5 2 3 4 5 8 10 12 15 20 25 30 40 50 75 "+"100 150 200 250 300 350 400 500 750 1,000 1,200 1,500 2,000 "+"2,500 3,000 4,000 5,000").split(" ");return options.reduce(function(memo,str){if(memo)return memo;var label=internal.formatDistanceLabelAsMiles(str);if(internal.parseScalebarLabelToKm(label)>minKm){return label}},null)||""};internal.formatDistanceLabelAsMiles=function(str){var num=internal.parseScalebarNumber(str);return str+(num>1?" MILES":" MILE")};internal.parseScalebarLabelToKm=function(str){var units=internal.parseScalebarUnits(str);var value=internal.parseScalebarNumber(str);if(!units||!value)return NaN;return units=="mile"?value*1.60934:value};internal.parseScalebarUnits=function(str){var isMiles=/miles?$/.test(str.toLowerCase());var isKm=/(km|kilometers?|kilometres?)$/.test(str.toLowerCase());return isMiles&&"mile"||isKm&&"km"||""};internal.parseScalebarNumber=function(str){var fractionRxp=/^([0-9]+) ?\/ ?([0-9]+)/;var match,value;str=str.replace(/[\s]/g,"").replace(/,/g,"");if(fractionRxp.test(str)){match=fractionRxp.exec(str);value=+match[1]/+match[2]}else{value=parseFloat(str)}return value>0&&value=2===false){stop("Missing list of coordinates")}for(i=0;i=3){type="Polygon";coordinates.push(coordinates[0])}else{type="LineString"}geojson={type:type,coordinates:type=="Polygon"?[coordinates]:coordinates};dataset=internal.importGeoJSON(geojson,{});dataset.layers[0].name=opts.name||"shape";return dataset};function Heap(){var heapBuf=utils.expandoBuffer(Int32Array),indexBuf=utils.expandoBuffer(Int32Array),itemsInHeap=0,dataArr,heapArr,indexArr;this.init=function(values){var i;dataArr=values;itemsInHeap=values.length;heapArr=heapBuf(itemsInHeap);indexArr=indexBuf(itemsInHeap);for(i=0;i>1;i>=0;i--){downHeap(i)}};this.size=function(){return itemsInHeap};this.updateValue=function(valIdx,val){var heapIdx=indexArr[valIdx];dataArr[valIdx]=val;if(!(heapIdx>=0&&heapIdx0){parentIdx=idx-1>>1;if(greaterThan(idx,parentIdx)){break}swapItems(idx,parentIdx);idx=parentIdx}return idx}function downHeap(idx){var minIdx=compareDown(idx);while(minIdx>idx){swapItems(idx,minIdx);idx=minIdx;minIdx=compareDown(idx)}}function swapItems(a,b){var i=heapArr[a];insertValue(a,heapArr[b]);insertValue(b,i)}function insertValue(heapIdx,valId){indexArr[valId]=heapIdx;heapArr[heapIdx]=valId}function greaterThan(a,b){var idx1=heapArr[a],idx2=heapArr[b],val1=dataArr[idx1],val2=dataArr[idx2];return val1>val2||val1===val2&&idx1>idx2}function compareDown(idx){var a=2*idx+1,b=a+1,n=itemsInHeap;if(axx.length){error("[visvalingam] Incompatible data arrays:",kk.length,xx.length)}for(c=0;c=arcLen){val=Infinity}else{val=calc(b,c,d,xx,yy,zz)}kk[c]=val;nextArr[c]=d;prevArr[c]=b}heap.init(kk);while(heap.size()>0){c=heap.pop();val=kk[c];if(val===Infinity){break}if(val0){val=calc(prevArr[b],b,d,xx,yy,zz);heap.updateValue(b,val)}if(d2){procSegment(0,len-1,1,Number.MAX_VALUE)}function procSegment(startIdx,endIdx,depth,distSqPrev){var ax=xx[startIdx],ay=yy[startIdx],cx=xx[endIdx],cy=yy[endIdx],az,cz;if(useZ){az=zz[startIdx];cz=zz[endIdx]}var maxDistSq=0,maxIdx=0,distSqLeft=0,distSqRight=0,distSq;for(var i=startIdx+1;i=maxDistSq){maxDistSq=distSq;maxIdx=i}}if(distSqPrev1){distSqLeft=procSegment(startIdx,maxIdx,depth+1,maxDistSq)}if(endIdx-maxIdx>1){distSqRight=procSegment(maxIdx,endIdx,depth+1,maxDistSq)}if(depth==1&&ax==cx&&ay==cy){maxDistSq=Math.max(distSqLeft,distSqRight)}dest[maxIdx]=Math.sqrt(maxDistSq);return maxDistSq}};internal.postSimplifyRepair=function(arcs){var intersections=internal.findSegmentIntersections(arcs),unfixable=internal.repairIntersections(arcs,intersections),countPre=intersections.length,countPost=unfixable.length,countFixed=countPre>countPost?countPre-countPost:0,msg;if(countPre>0){msg=utils.format("Repaired %'i intersection%s",countFixed,utils.pluralSuffix(countFixed));if(countPost>0){msg+=utils.format("; %'i intersection%s could not be repaired",countPost,utils.pluralSuffix(countPost))}message(msg)}};internal.repairIntersections=function(arcs,intersections){while(internal.unwindIntersections(arcs,intersections)>0){intersections=internal.findSegmentIntersections(arcs)}return intersections};internal.unwindIntersections=function(arcs,intersections){var data=arcs.getVertexData(),zlim=arcs.getRetainedInterval(),changes=0,loops=0,replacements,queue,target,i;queue=internal.getUnwindTargets(intersections,zlim,data.zz);utils.sortOn(queue,"z",!!"ascending");while(queue.length>0){target=queue.pop();replacements=internal.redetectIntersectionTarget(target,zlim,data.xx,data.yy,data.zz);if(replacements.length==1){replacements=internal.unwindIntersection(replacements[0],zlim,data.zz);changes++}else{}for(i=0;i5e5){verbose("Caught an infinite loop at intersection:",target);return 0}return changes};internal.getUnwindTargets=function(intersections,zlim,zz){return intersections.reduce(function(memo,o){var target=internal.getUnwindTarget(o,zlim,zz);if(target!==null){memo.push(target)}return memo},[])};internal.getUnwindTarget=function(o,zlim,zz){var ai=internal.findNextRemovableVertex(zz,zlim,o.a[0],o.a[1]),bi=internal.findNextRemovableVertex(zz,zlim,o.b[0],o.b[1]),targ;if(ai==-1&&bi==-1){targ=null}else if(bi==-1||ai!=-1&&zz[ai]>zz[bi]){targ={a:o.a,b:o.b,z:zz[ai]}}else{targ={a:o.b,b:o.a,z:zz[bi]}}return targ};internal.insertUnwindTarget=function(arr,obj){var ins=arr.length;while(ins>0){if(arr[ins-1].z<=obj.z){break}arr[ins]=arr[ins-1];ins--}arr[ins]=obj};internal.unwindIntersection=function(target,zlim,zz){var replacements=[];var start=target.a[0],end=target.a[1],z=target.z;for(var i=start+1;i<=end;i++){if(zz[i]==z||i==end){replacements.push({a:[start,i],b:target.b,z:z});if(i!=end)zz[i]=zlim;start=i}}if(replacements.length<2)error("Error in unwindIntersection()");return replacements};internal.redetectIntersectionTarget=function(targ,zlim,xx,yy,zz){var segIds=internal.getIntersectionCandidates(targ,zlim,xx,yy,zz);var intersections=internal.intersectSegments(segIds,xx,yy);return internal.getUnwindTargets(intersections,zlim,zz)};internal.getIntersectionCandidates=function(o,zlim,xx,yy,zz){var segIds=internal.getSegmentVertices(o.a,zlim,xx,yy,zz);segIds=segIds.concat(internal.getSegmentVertices(o.b,zlim,xx,yy,zz));return segIds};internal.getSegmentVertices=function(seg,zlim,xx,yy,zz){var start,end,prev,ids=[];if(seg[0]<=seg[1]){start=seg[0];end=seg[1]}else{start=seg[1];end=seg[0]}prev=start;for(var i=start+1;i<=end;i++){if(zz[i]>=zlim){if(xx[prev]Math.PI)angle=2*Math.PI-angle;if(!isNaN(angle)){angles.push(angle*180/Math.PI)}}iprev=i;jprev=j;if(zz[i]0){stats.angleMean=utils.sum(angles)/angles.length;stats.angleQuartiles=[utils.findValueByPct(angles,.75),utils.findValueByPct(angles,.5),utils.findValueByPct(angles,.25)]}if(measures.length>0){stats.displacementMean=sum/measures.length;stats.displacementQuartiles=[utils.findValueByPct(measures,.75),utils.findValueByPct(measures,.5),utils.findValueByPct(measures,.25)]}return stats};internal.countUniqueVertices=function(arcs){var endpoints=arcs.size()*2;var nodes=new NodeCollection(arcs).size();return arcs.getPointCount()-endpoints+nodes};internal.getSimplifyMethodLabel=function(slug){return{dp:"Ramer-Douglas-Peucker",visvalingam:"Visvalingam",weighted_visvalingam:"Weighted Visvalingam"}[slug]||"Unknown"};internal.printSimplifyInfo=function(arcs,opts){var method=internal.getSimplifyMethod(opts);var name=internal.getSimplifyMethodLabel(method);var spherical=internal.useSphericalSimplify(arcs,opts);var stats=internal.calcSimplifyStats(arcs,spherical);var pct1=(stats.removed+stats.collapsedRings)/stats.uniqueCount||0;var pct2=stats.removed/stats.removableCount||0;var aq=stats.angleQuartiles;var dq=stats.displacementQuartiles;var lines=["Simplification statistics"];lines.push(utils.format("Method: %s (%s) %s",name,spherical?"spherical":"planar",method=="weighted_visvalingam"?"(weighting="+Visvalingam.getWeightCoefficient(opts)+")":""));lines.push(utils.format("Removed vertices: %,d",stats.removed+stats.collapsedRings));lines.push(utils.format(" %.1f% of %,d unique coordinate locations",pct1*100,stats.uniqueCount));lines.push(utils.format(" %.1f% of %,d filterable coordinate locations",pct2*100,stats.removableCount));lines.push(utils.format("Simplification threshold: %.4f %s",arcs.getRetainedInterval(),spherical?"meters":""));lines.push(utils.format("Collapsed rings: %,d",stats.collapsedRings));lines.push("Displacement statistics");lines.push(utils.format(" Mean displacement: %.4f",stats.displacementMean));lines.push(utils.format(" Max displacement: %.4f",stats.displacementMax));if(dq){lines.push(utils.format(" Quartiles: %.2f, %.2f, %.2f",dq[0],dq[1],dq[2]))}lines.push("Vertex angle statistics");lines.push(utils.format(" Mean angle: %.2f degrees",stats.angleMean));if(aq){lines.push(utils.format(" Quartiles: %.2f, %.2f, %.2f",aq[0],aq[1],aq[2]))}message(lines.join("\n "))};api.simplify=function(dataset,opts){var arcs=dataset.arcs;if(!arcs)stop("Missing path data");opts=internal.getStandardSimplifyOpts(dataset,opts);internal.simplifyPaths(arcs,opts);if(opts.percentage||opts.percentage===0){arcs.setRetainedPct(utils.parsePercent(opts.percentage))}else if(opts.interval||opts.interval===0){arcs.setRetainedInterval(internal.convertSimplifyInterval(opts.interval,dataset,opts))}else if(opts.resolution){arcs.setRetainedInterval(internal.convertSimplifyResolution(opts.resolution,arcs,opts))}else{stop("Missing a simplification amount")}internal.finalizeSimplification(dataset,opts)};internal.finalizeSimplification=function(dataset,opts){var arcs=dataset.arcs;if(opts.keep_shapes){api.keepEveryPolygon(arcs,dataset.layers)}if(!opts.no_repair&&arcs.getRetainedInterval()>0){internal.postSimplifyRepair(arcs)}if(opts.stats){internal.printSimplifyInfo(arcs,opts)}dataset.info=utils.defaults({simplify:opts},dataset.info)};internal.getStandardSimplifyOpts=function(dataset,opts){opts=opts||{};return utils.defaults({method:internal.getSimplifyMethod(opts),spherical:internal.useSphericalSimplify(dataset.arcs,opts)},opts)};internal.useSphericalSimplify=function(arcs,opts){return!opts.planar&&!arcs.isPlanar()};internal.simplifyPaths=function(arcs,opts){var simplifyPath=internal.getSimplifyFunction(opts);arcs.setThresholds(new Float64Array(arcs.getPointCount()));if(opts.spherical){internal.simplifyPaths3D(arcs,simplifyPath);internal.protectWorldEdges(arcs)}else{internal.simplifyPaths2D(arcs,simplifyPath)}if(opts.lock_box){internal.protectContentEdges(arcs)}};internal.simplifyPaths2D=function(arcs,simplify){arcs.forEach3(function(xx,yy,kk,i){simplify(kk,xx,yy)})};internal.simplifyPaths3D=function(arcs,simplify){var xbuf=utils.expandoBuffer(Float64Array),ybuf=utils.expandoBuffer(Float64Array),zbuf=utils.expandoBuffer(Float64Array);arcs.forEach3(function(xx,yy,kk,i){var n=xx.length,xx2=xbuf(n),yy2=ybuf(n),zz2=zbuf(n);geom.convLngLatToSph(xx,yy,xx2,yy2,zz2);simplify(kk,xx2,yy2,zz2)})};internal.getSimplifyMethod=function(opts){var m=opts.method;if(!m||m=="weighted"||m=="visvalingam"&&opts.weighting){m="weighted_visvalingam"}return m};internal.getSimplifyFunction=function(opts){var f;if(opts.method=="dp"){f=DouglasPeucker.calcArcData}else if(opts.method=="visvalingam"){f=Visvalingam.getEffectiveAreaSimplifier(opts.spherical)}else if(opts.method=="weighted_visvalingam"){f=Visvalingam.getWeightedSimplifier(opts,opts.spherical)}else{stop("Unsupported simplify method:",method)}return f};internal.protectContentEdges=function(arcs){var e=1e-14;var bb=arcs.getBounds();bb.padBounds(-e,-e,-e,-e);internal.limitSimplificationExtent(arcs,bb.toArray(),true)};internal.limitSimplificationExtent=function(arcs,bb,hardLimit){var arcBounds=arcs.getBounds().toArray();if(containsBounds(bb,arcBounds)===true)return;arcs.forEach3(function(xx,yy,zz){var lockZ=hardLimit?Infinity:0,x,y;for(var i=0,n=zz.length;i=bb[2]||x<=bb[0]||y<=bb[1]||y>=bb[3]){if(lockZ===0){lockZ=internal.findMaxThreshold(zz)}if(zz[i]!==Infinity){zz[i]=lockZ}}}})};internal.protectWorldEdges=function(arcs){internal.limitSimplificationExtent(arcs,internal.getWorldBounds(1e-12),false)};internal.findMaxThreshold=function(zz){var z,maxZ=0;for(var i=0,n=zz.length;imaxZ&&z=0&&h>=0&&w+h>0)){stop("Invalid simplify resolution:",raw)}return[w,h]};internal.calcPlanarInterval=function(xres,yres,width,height){var fitWidth=xres!==0&&width/height>xres/yres||yres===0;return fitWidth?width/xres:height/yres};internal.calcSphericalInterval=function(xres,yres,bounds){var width=geom.degreesToMeters(bounds.width())*Math.cos(bounds.centerY()*geom.D2R);var height=geom.degreesToMeters(bounds.height());return internal.calcPlanarInterval(xres,yres,width,height)};internal.convertSimplifyInterval=function(param,dataset,opts){var crs=internal.getDatasetCRS(dataset);var interval;if(internal.useSphericalSimplify(dataset.arcs,opts)){interval=internal.convertDistanceParam(param,crs)}else{interval=internal.convertIntervalParam(param,crs)}return interval};internal.convertSimplifyResolution=function(param,arcs,opts){var res=internal.parseSimplifyResolution(param);var bounds=arcs.getBounds();var interval;if(internal.useSphericalSimplify(arcs,opts)){interval=internal.calcSphericalInterval(res[0],res[1],bounds)}else{interval=internal.calcPlanarInterval(res[0],res[1],bounds.width(),bounds.height())}interval*=.5;return interval};internal.getThresholdFunction=function(arcs){var size=arcs.getPointCount(),nth=Math.ceil(size/5e5),sortedThresholds=arcs.getRemovableThresholds(nth);utils.quicksort(sortedThresholds,true);return function(pct){var n=sortedThresholds.length;var rank=internal.retainedPctToRank(pct,sortedThresholds.length);if(rank<1)return 0;if(rank>n)return Infinity;return sortedThresholds[rank-1]}};internal.retainedPctToRank=function(pct,n){var rank;if(n===0||pct>=1){rank=0}else if(pct<=0){rank=n+1}else{rank=Math.floor((1-pct)*(n+2))}return rank};internal.getThresholdByPct=function(pct,arcs,nth){var tmp=arcs.getRemovableThresholds(nth),rank=internal.retainedPctToRank(pct,tmp.length);if(rank<1)return 0;if(rank>tmp.length)return Infinity;return utils.findValueByRank(tmp,rank)};api.variableSimplify=function(layers,dataset,opts){var lyr=layers[0];var arcs=dataset.arcs;var getShapeThreshold;var arcThresholds;if(layers.length!=1){stop("Variable simplification requires a single target layer")}if(!internal.layerHasPaths(lyr)){stop("Target layer is missing path data")}opts=internal.getStandardSimplifyOpts(dataset,opts);internal.simplifyPaths(arcs,opts);if(opts.interval){getShapeThreshold=internal.getVariableIntervalFunction(opts.interval,lyr,dataset,opts)}else if(opts.percentage){getShapeThreshold=internal.getVariablePercentageFunction(opts.percentage,lyr,dataset,opts)}else if(opts.resolution){getShapeThreshold=internal.getVariableResolutionFunction(opts.resolution,lyr,dataset,opts)}else{stop("Missing a simplification expression")}arcThresholds=internal.calculateVariableThresholds(lyr,arcs,getShapeThreshold);internal.applyArcThresholds(arcs,arcThresholds);arcs.setRetainedInterval(1e20);internal.finalizeSimplification(dataset,opts);arcs.flatten()};internal.getVariableIntervalFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);return function(shpId){var val=compiled(shpId);return internal.convertSimplifyInterval(val,dataset,opts)}};internal.getVariableResolutionFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);return function(shpId){var val=compiled(shpId);return internal.convertSimplifyResolution(val,dataset.arcs,opts)}};internal.getVariablePercentageFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);var pctToInterval=internal.getThresholdFunction(dataset.arcs);return function(shpId){var val=compiled(shpId);var pct=utils.parsePercent(val);return pctToInterval(pct)}};internal.compileSimplifyExpression=function(exp,lyr,arcs){return internal.compileValueExpression(exp,lyr,arcs)};internal.applyArcThresholds=function(arcs,thresholds){var zz=arcs.getVertexData().zz;arcs.forEach2(function(start,n,xx,yy,zz,arcId){var arcZ=thresholds[arcId];var z;for(var i=1;i=arcZ){zz[start+i]=Infinity}}})};internal.calculateVariableThresholds=function(lyr,arcs,getShapeThreshold){var thresholds=new Float64Array(arcs.size());var UNUSED=-1;var currThresh;utils.initializeArray(thresholds,UNUSED);lyr.shapes.forEach(function(shp,shpId){currThresh=getShapeThreshold(shpId);internal.forEachArcId(shp||[],procArc)});for(var i=0,n=thresholds.length;icurrThresh||savedThresh==UNUSED){thresholds[i]=currThresh}}};api.splitLayerOnGrid=function(lyr,arcs,opts){var shapes=lyr.shapes,type=lyr.geometry_type,setId=!!opts.id_field,fieldName=opts.id_field||"__split__",classify=getShapeClassifier(internal.getLayerBounds(lyr,arcs),opts.cols,opts.rows),properties,layers;if(!type){stop("Layer has no geometry")}if(!lyr.data){lyr.data=new DataTable(shapes.length)}properties=lyr.data.getRecords();lyr.shapes.forEach(function(shp,i){var bounds=type=="point"?internal.getPointBounds([shp]):arcs.getMultiShapeBounds(shp);var name=bounds.hasBounds()?classify(bounds):"";var rec=properties[i]=properties[i]||{};rec[fieldName]=name});if(setId)return lyr;return api.splitLayer(lyr,fieldName).filter(function(lyr){var name=lyr.data.getRecordAt(0)[fieldName];lyr.name=name;lyr.data.deleteField(fieldName);return!!name});function getShapeClassifier(bounds,cols,rows){var xmin=bounds.xmin,ymin=bounds.ymin,w=bounds.width(),h=bounds.height();if(rows>0===false||cols>0===false){stop("Invalid grid parameters")}if(w>0===false||h>0===false){cols=1;rows=1}return function(bounds){var c=Math.floor((bounds.centerX()-xmin)/w*cols),r=Math.floor((bounds.centerY()-ymin)/h*rows);c=utils.clamp(c,0,cols-1)||0;r=utils.clamp(r,0,rows-1)||0;return"r"+r+"c"+c}}};api.subdivideLayer=function(lyr,arcs,exp){return internal.subdivide(lyr,arcs,exp)};internal.subdivide=function(lyr,arcs,exp){var divide=internal.evalCalcExpression(lyr,arcs,exp),subdividedLayers=[],tmp,bounds,lyr1,lyr2;if(!utils.isBoolean(divide)){stop("Expression must evaluate to true or false")}if(divide){bounds=internal.getLayerBounds(lyr,arcs);tmp=internal.divideLayer(lyr,arcs,bounds);lyr1=tmp[0];if(lyr1.shapes.length>1&&lyr1.shapes.length1&&lyr2.shapes.lengthbounds.height();var centers=shapes.map(function(shp){var bounds=arcs.getMultiShapeBounds(shp);return useX?bounds.centerX():bounds.centerY()});var ids=utils.range(centers.length);ids.sort(function(a,b){return centers[a]-centers[b]});ids.forEach(function(shapeId,i){var dest=i1&&name=="merge-layers"){targets=internal.mergeCommandTargets(targets,catalog)}if(targets.length==1){targetDataset=targets[0].dataset;arcs=targetDataset.arcs;targetLayers=targets[0].layers;catalog.setDefaultTarget(targetLayers,targetDataset)}else if(targets.length>1){stop("This command does not support targetting layers from different datasets")}}if(targets.length===0){if(opts.target){stop(utils.format("Missing target: %s\nAvailable layers: %s",opts.target,internal.getFormattedLayerList(catalog)))}if(!(name=="help"||name=="graticule"||name=="i"||name=="point-grid"||name=="shape"||name=="rectangle"||name=="polygon-grid"||name=="include")){throw new UserError("No data is available")}}if(opts.source){source=internal.findCommandSource(opts.source,catalog,opts)}if(name=="affine"){api.affine(targetLayers,targetDataset,opts)}else if(name=="data-fill"){internal.applyCommand(api.dataFill,targetLayers,arcs,opts)}else if(name=="cluster"){internal.applyCommand(api.cluster,targetLayers,arcs,opts)}else if(name=="calc"){internal.applyCommand(api.calc,targetLayers,arcs,opts)}else if(name=="clean"){api.cleanLayers(targetLayers,targetDataset,opts)}else if(name=="clip"){outputLayers=api.clipLayers(targetLayers,source,targetDataset,opts)}else if(name=="colorizer"){outputLayers=api.colorizer(opts)}else if(name=="dissolve"){outputLayers=internal.applyCommand(api.dissolve,targetLayers,arcs,opts)}else if(name=="dissolve2"){outputLayers=api.dissolve2(targetLayers,targetDataset,opts)}else if(name=="drop"){api.drop2(catalog,targets,opts)}else if(name=="each"){internal.applyCommand(api.evaluateEachFeature,targetLayers,arcs,opts.expression,opts)}else if(name=="erase"){outputLayers=api.eraseLayers(targetLayers,source,targetDataset,opts)}else if(name=="explode"){outputLayers=internal.applyCommand(api.explodeFeatures,targetLayers,arcs,opts)}else if(name=="filter"){outputLayers=internal.applyCommand(api.filterFeatures,targetLayers,arcs,opts)}else if(name=="filter-fields"){internal.applyCommand(api.filterFields,targetLayers,opts.fields)}else if(name=="filter-geom"){internal.applyCommand(api.filterGeom,targetLayers,arcs,opts)}else if(name=="filter-islands"){internal.applyCommand(api.filterIslands,targetLayers,targetDataset,opts)}else if(name=="filter-slivers"){internal.applyCommand(api.filterSlivers,targetLayers,targetDataset,opts)}else if(name=="frame"){api.frame(catalog,source,opts)}else if(name=="fuzzy-join"){internal.applyCommand(api.fuzzyJoin,targetLayers,arcs,source,opts)}else if(name=="graticule"){catalog.addDataset(api.graticule(targetDataset,opts))}else if(name=="help"){internal.getOptionParser().printHelp(opts.command)}else if(name=="i"){if(opts.replace)catalog=new Catalog;targetDataset=api.importFiles(cmd.options);if(targetDataset){catalog.addDataset(targetDataset);outputLayers=targetDataset.layers}}else if(name=="include"){internal.include(opts)}else if(name=="info"){internal.printInfo(catalog.getLayers(),targetLayers)}else if(name=="inspect"){internal.applyCommand(api.inspect,targetLayers,arcs,opts)}else if(name=="innerlines"){outputLayers=internal.applyCommand(api.innerlines,targetLayers,arcs,opts)}else if(name=="join"){internal.applyCommand(api.join,targetLayers,targetDataset,source,opts)}else if(name=="lines"){outputLayers=internal.applyCommand(api.lines,targetLayers,arcs,opts)}else if(name=="merge-layers"){outputLayers=api.mergeLayers(targetLayers,opts)}else if(name=="mosaic"){opts.no_replace=true;outputLayers=internal.mosaic(targetDataset,opts)}else if(name=="o"){outputFiles=internal.exportTargetLayers(targets,opts);if(opts.final){catalog=null}return internal.writeFiles(outputFiles,opts,done)}else if(name=="point-grid"){outputLayers=[api.pointGrid(targetDataset,opts)];if(!targetDataset){catalog.addDataset({layers:outputLayers})}}else if(name=="polygon-grid"){catalog.addDataset(api.polygonGrid(targetDataset,opts))}else if(name=="points"){outputLayers=internal.applyCommand(api.createPointLayer,targetLayers,targetDataset,opts)}else if(name=="polygons"){outputLayers=api.polygons(targetLayers,targetDataset,opts)}else if(name=="proj"){internal.initProjLibrary(opts,function(){var err=null;try{targets.forEach(function(targ){var destArg=opts.match||opts.crs||opts.projection;var srcInfo,destInfo;if(opts.from){srcInfo=internal.getCrsInfo(opts.from,catalog);if(!srcInfo.crs)stop("Unknown projection source:",opts.from);internal.setDatasetCRS(targ.dataset,srcInfo)}if(destArg){destInfo=internal.getCrsInfo(destArg,catalog);api.proj(targ.dataset,destInfo,opts)}})}catch(e){err=e}done(err)});return}else if(name=="rectangle"){if(source||opts.bbox||targets.length===0){catalog.addDataset(api.rectangle(source,opts))}else{outputLayers=api.rectangle2(targets[0],opts)}}else if(name=="rectangles"){outputLayers=internal.applyCommand(api.rectangles,targetLayers,targetDataset,opts)}else if(name=="rename-fields"){internal.applyCommand(api.renameFields,targetLayers,opts.fields)}else if(name=="rename-layers"){api.renameLayers(targetLayers,opts.names)}else if(name=="require"){api.require(targets,opts)}else if(name=="run"){api.run(targets,catalog,opts,done);return}else if(name=="scalebar"){api.scalebar(catalog,opts)}else if(name=="shape"){catalog.addDataset(api.shape(opts))}else if(name=="simplify"){if(opts.variable){api.variableSimplify(targetLayers,targetDataset,opts)}else{api.simplify(targetDataset,opts)}}else if(name=="slice"){outputLayers=api.sliceLayers(targetLayers,source,targetDataset,opts)}else if(name=="sort"){internal.applyCommand(api.sortFeatures,targetLayers,arcs,opts)}else if(name=="split"){outputLayers=internal.applyCommand(api.splitLayer,targetLayers,opts.field,opts)}else if(name=="split-on-grid"){outputLayers=internal.applyCommand(api.splitLayerOnGrid,targetLayers,arcs,opts)}else if(name=="stitch"){api.stitch(targetDataset)}else if(name=="style"){internal.applyCommand(api.svgStyle,targetLayers,targetDataset,opts)}else if(name=="symbols"){internal.applyCommand(api.symbols,targetLayers,opts)}else if(name=="subdivide"){outputLayers=internal.applyCommand(api.subdivideLayer,targetLayers,arcs,opts.expression)}else if(name=="target"){internal.target(catalog,opts)}else if(name=="uniq"){internal.applyCommand(api.uniq,targetLayers,arcs,opts)}else{error("Unhandled command: ["+name+"]")}if("name"in opts&&outputLayers){outputLayers.forEach(function(lyr){lyr.name=opts.name})}if(targetDataset){internal.cleanupArcs(targetDataset)}if(outputLayers&&targetDataset&&outputLayers!=targetDataset.layers){if(opts.no_replace){targetDataset.layers=targetDataset.layers.concat(outputLayers)}else{internal.replaceLayers(targetDataset,targetLayers,outputLayers);if((name=="clip"||name=="erase"||name=="rectangle"||name=="rectangles"||name=="filter"&&opts.cleanup)&&!opts.no_cleanup){internal.dissolveArcs(targetDataset)}}catalog.setDefaultTarget(outputLayers,targetDataset)}}catch(e){return done(e)}done(null);function done(err){T.stop("-");cb(err,err?null:catalog)}};internal.applyCommand=function(func,targetLayers){var args=utils.toArray(arguments).slice(2);return targetLayers.reduce(function(memo,lyr){var result=func.apply(null,[lyr].concat(args));if(utils.isArray(result)){memo=memo.concat(result)}else if(result){memo.push(result)}return memo},[])};internal.findCommandSource=function(sourceName,catalog,opts){var sources=catalog.findCommandTargets(sourceName);var sourceDataset,source;if(sources.length>1||sources.length==1&&sources[0].layers.length>1){stop(utils.format("Source [%s] matched multiple layers",sourceName))}else if(sources.length==1){source={dataset:sources[0].dataset,layer:sources[0].layers[0]}}else{sourceDataset=api.importFile(sourceName,utils.defaults({no_topology:true},opts));if(!sourceDataset){stop(utils.format("Unable to find source [%s]",sourceName))}else if(sourceDataset.layers.length>1){stop("Multiple-layer sources are not supported")}source={dataset:sourceDataset,layer:sourceDataset.layers[0],disposable:true}}return source};internal.splitShellTokens=function(str){return internal.splitTokens(str,"\\s")};internal.splitTokens=function(str,delimChars){var BAREWORD="([^"+delimChars+"'\"])+";var SINGLE_QUOTE='"((\\\\"|[^"])*?)"';var DOUBLE_QUOTE="'((\\\\'|[^'])*?)'";var rxp=new RegExp("("+BAREWORD+"|"+SINGLE_QUOTE+"|"+DOUBLE_QUOTE+")*","g");var matches=str.match(rxp)||[];var chunks=matches.filter(function(chunk){return!!chunk&&chunk!="\\"}).map(utils.trimQuotes);return chunks};utils.trimQuotes=function(raw){var len=raw.length,first,last;if(len>=2){first=raw.charAt(0);last=raw.charAt(len-1);if(first=='"'&&last=='"'||first=="'"&&last=="'"){return raw.substr(1,len-2)}}return raw};function CommandParser(){var commandRxp=/^--?([a-z][\w-]*)$/i,assignmentRxp=/^([a-z0-9_+-]+)=(?!\=)(.*)$/i,_usage="",_examples=[],_commands=[],_default=null,_note;if(this instanceof CommandParser===false)return new CommandParser;this.usage=function(str){_usage=str;return this};this.note=function(str){_note=str;return this};this.default=function(str){_default=str};this.example=function(str){_examples.push(str)};this.command=function(name){var opts=new CommandOptions(name);_commands.push(opts);return opts};this.section=function(name){return this.command("").title(name)};this.parseArgv=function(raw){var commandDefs=getCommands(),commands=[],cmd,argv=internal.cleanArgv(raw),cmdName,cmdDef,opt;if(argv.length==1&&tokenIsCommandName(argv[0])){argv.unshift("-help")}else if(argv.length>0&&!tokenLooksLikeCommand(argv[0])&&_default){argv.unshift("-"+_default)}while(argv.length>0){cmdName=readCommandName(argv);if(!cmdName){stop("Invalid command:",argv[0])}cmdDef=findCommandDefn(cmdName,commandDefs);if(!cmdDef){stop("Unknown command:",cmdName)}cmd={name:cmdDef.name,options:{},_:[]};while(argv.length>0&&!tokenLooksLikeCommand(argv[0])){readOption(cmd,argv,cmdDef)}try{if(cmd._.length>0&&cmdDef.no_arg){error("Received one or more unexpected parameters:",cmd._.join(" "))}if(cmd._.length>1&&!cmdDef.multi_arg){error("Command expects a single value. Received:",cmd._.join(" "))}if(cmdDef.default&&cmd._.length==1){readDefaultOptionValue(cmd,cmdDef)}if(cmdDef.validate){cmdDef.validate(cmd)}}catch(e){stop("["+cmdName+"] "+e.message)}commands.push(cmd)}return commands;function tokenLooksLikeCommand(s){return commandRxp.test(s)}function readOption(cmd,argv,cmdDef){var token=argv.shift(),optName,optDef,parts;if(assignmentRxp.test(token)){parts=splitAssignment(token);optDef=findOptionDefn(parts[0],cmdDef);if(!optDef){}else if(optDef.type=="flag"||optDef.assign_to){stop("-"+cmdDef.name+" "+parts[0]+" option doesn't take a value")}else{argv.unshift(parts[1])}}else{optDef=findOptionDefn(token,cmdDef)}if(!optDef){cmd._.push(token);return}if(optDef.alias_to){optDef=findOptionDefn(optDef.alias_to,cmdDef)}optName=optDef.name;optName=optName.replace(/-/g,"_");if(optDef.assign_to){cmd.options[optDef.assign_to]=optDef.name}else if(optDef.type=="flag"){cmd.options[optName]=true}else{cmd.options[optName]=readOptionValue(argv,optDef)}}function splitAssignment(token){var match=assignmentRxp.exec(token),name=match[1],val=utils.trimQuotes(match[2]);return[name,val]}function readOptionValue(argv,optDef){if(argv.length===0||tokenLooksLikeCommand(argv[0])){stop("Missing value for "+optDef.name+" option")}return parseOptionValue(argv.shift(),optDef)}function readDefaultOptionValue(cmd,cmdDef){var optDef=findOptionDefn(cmdDef.default,cmdDef);cmd.options[cmdDef.default]=readOptionValue(cmd._,optDef)}function parseOptionValue(token,optDef){var type=optDef.type;var val,err;if(type=="number"){val=Number(token)}else if(type=="integer"){val=Math.round(Number(token))}else if(type=="colors"){val=internal.parseColorList(token)}else if(type=="strings"){val=internal.parseStringList(token)}else if(type=="bbox"||type=="numbers"){val=token.split(",").map(parseFloat)}else if(type=="percent"){val=token}else if(type=="distance"||type=="area"){val=token}else{val=token}if(val!==val){err="Invalid numeric value"}if(err){stop(err+" for "+optDef.name+" option")}return val}function readCommandName(args){var match=commandRxp.exec(args[0]);if(match){args.shift();return match[1]}return null}};this.getHelpMessage=function(cmdName){var helpCommands,singleCommand,lines;if(cmdName){singleCommand=findCommandDefn(cmdName,getCommands());if(!singleCommand){stop(cmdName,"is not a known command")}lines=getSingleCommandLines(singleCommand)}else{helpCommands=getCommands().filter(function(cmd){return cmd.name&&cmd.describe||cmd.title});lines=getMultiCommandLines(helpCommands)}return formatLines(lines);function formatLines(lines){var colWidth=calcColWidth(lines);var gutter=" ";var helpStr=lines.map(function(line){if(Array.isArray(line)){line=" "+utils.rpad(line[0],colWidth," ")+gutter+line[1]}return line}).join("\n");return helpStr}function getSingleCommandLines(cmd){var lines=[];lines.push("Command",getCommandLine(cmd));if(cmd.options.length>0){lines.push("","Options");cmd.options.forEach(function(opt){lines=lines.concat(getOptionLines(opt,cmd))})}if(cmd.examples){lines.push("","Example"+(cmd.examples.length>1?"s":""));cmd.examples.forEach(function(ex,i){if(i>0)lines.push("");ex.split("\n").forEach(function(line,i){lines.push(" "+line)})})}return lines}function getOptionLines(opt,cmd){var lines=[];var description=opt.describe;var label;if(!description){}else if(opt.label){lines.push([opt.label,description])}else if(opt.name==cmd.default){label="<"+opt.name+">";lines.push([label,description]);lines.push([opt.name+"=","equivalent to "+label])}else{label=opt.name;if(opt.alias)label+=", "+opt.alias;if(opt.type!="flag"&&!opt.assign_to)label+="=";lines.push([label,description])}return lines}function getCommandLine(cmd){var name=cmd.name?"-"+cmd.name:"";if(cmd.alias)name+=", -"+cmd.alias;return[name,cmd.describe||"(undocumented command)"]}function getMultiCommandLines(commands){var lines=[];if(_usage)lines.push(_usage);commands.forEach(function(cmd){if(cmd.title){lines.push("",cmd.title)}else{lines.push(getCommandLine(cmd))}});if(_examples.length>0){lines.push("","Examples");_examples.forEach(function(str){lines.push("",str)})}if(_note){lines.push("",_note)}return lines}function calcColWidth(lines){var w=0;lines.forEach(function(line){if(Array.isArray(line)){w=Math.max(w,line[0].length)}});return w}};this.printHelp=function(command){message(this.getHelpMessage(command))};function getCommands(){return _commands.map(function(cmd){return cmd.done()})}function tokenIsCommandName(s){var cmd=findCommandDefn(s,getCommands());return!!cmd}function findCommandDefn(name,arr){return utils.find(arr,function(cmd){return cmd.name===name||cmd.alias===name||cmd.old_alias===name})}function findOptionDefn(name,cmdDef){return utils.find(cmdDef.options,function(o){return o.name===name||o.alias===name})}}function CommandOptions(name){var _command={name:name,options:[]};this.validate=function(f){_command.validate=f;return this};this.describe=function(str){_command.describe=str;return this};this.example=function(str){if(!_command.examples){_command.examples=[]}_command.examples.push(str);return this};this.alias=function(name){_command.alias=name;return this};this.oldAlias=function(name){_command.old_alias=name;return this};this.title=function(str){_command.title=str;return this};this.flag=function(name){_command[name]=true;return this};this.option=function(name,opts){opts=opts||{};if(!utils.isString(name)||!name)error("Missing option name");if(!utils.isObject(opts))error("Invalid option definition:",opts);if(opts.DEFAULT)_command.default=name;opts.name=name;_command.options.push(opts);return this};this.done=function(){return _command}}internal.parseStringList=function(token){var delim=",";var list=internal.splitTokens(token,delim);if(list.length==1){list=internal.splitTokens(list[0],delim)}return list};internal.parseColorList=function(token){var delim=", ";var token2=token.replace(/, *(?=[^(]*\))/g,"~~~");var list=internal.splitTokens(token2,delim);if(list.length==1){list=internal.splitTokens(list[0],delim)}list=list.map(function(str){return str.replace(/~~~/g,",")});return list};internal.cleanArgv=function(argv){argv=argv.map(function(s){return s.trim()});argv=argv.filter(function(s){return s!==""});argv=argv.map(utils.trimQuotes);return argv};function validateInputOpts(cmd){var o=cmd.options,_=cmd._;if(_.length>0&&!o.files){o.files=_}if(o.files){o.files=cli.expandInputFiles(o.files);if(o.files[0]=="-"||o.files[0]=="/dev/stdin"){delete o.files;o.stdin=true}}if("precision"in o&&o.precision>0===false){error("precision= option should be a positive number")}if(o.encoding){o.encoding=internal.validateEncoding(o.encoding)}}function validateSimplifyOpts(cmd){var o=cmd.options,arg=cmd._[0];if(arg){if(/^[0-9.]+%?$/.test(arg)){o.percentage=utils.parsePercent(arg)}else{error("Unparsable option:",arg)}}if(!o.interval&&!o.percentage&&!o.resolution){error("Command requires an interval, percentage or resolution parameter")}}function validateProjOpts(cmd){var _=cmd._,proj4=[];_=_.filter(function(arg){if(/^\+[a-z]/i.test(arg)){proj4.push(arg);return false}return true});if(proj4.length>0){cmd.options.crs=proj4.join(" ")}else if(_.length>0){cmd.options.crs=_.shift()}if(_.length>0){error("Received one or more unexpected parameters: "+_.join(", "))}if(!(cmd.options.crs||cmd.options.match||cmd.options.from)){stop("Missing projection data")}}function validateClipOpts(cmd){var opts=cmd.options;if(opts.cleanup){delete opts.cleanup;opts.remove_slivers=true}if(!opts.source&&!opts.bbox){error("Command requires a source file, layer id or bbox")}}function validateGridOpts(cmd){var o=cmd.options;if(cmd._.length==1){var tmp=cmd._[0].split(",");o.cols=parseInt(tmp[0],10);o.rows=parseInt(tmp[1],10)||o.cols}}function validateExpressionOpt(cmd){if(!cmd.options.expression){error("Command requires a JavaScript expression")}}function validateOutputOpts(cmd){var _=cmd._,o=cmd.options,arg=_[0]||"",pathInfo=utils.parseLocalPath(arg);if(_.length>1){error("Command takes one file or directory argument")}if(arg=="-"||arg=="/dev/stdout"){o.stdout=true}else if(arg&&!pathInfo.extension){if(!cli.isDirectory(arg)){error("Unknown output option:",arg)}o.directory=arg}else if(arg){if(pathInfo.directory){o.directory=pathInfo.directory;cli.validateOutputDir(o.directory)}o.file=pathInfo.filename;if(internal.filenameIsUnsupportedOutputType(o.file)){error("Output file looks like an unsupported file type:",o.file)}}if(o.format){o.format=o.format.toLowerCase();if(o.format=="csv"){o.format="dsv";o.delimiter=o.delimiter||","}else if(o.format=="tsv"){o.format="dsv";o.delimiter=o.delimiter||"\t"}if(!internal.isSupportedOutputFormat(o.format)){error("Unsupported output format:",o.format)}}if(o.delimiter){o.delimiter=o.delimiter.replace(/^["']?\\t["']?$/,"\t");if(!internal.isSupportedDelimiter(o.delimiter)){error("Unsupported delimiter:",o.delimiter)}}if(o.encoding){o.encoding=internal.validateEncoding(o.encoding)}if(o.field_order&&o.field_order!="ascending"){error("Unsupported field order:",o.field_order)}if("quantization"in o&&o.quantization>0===false){error("quantization= option should be a nonnegative integer")}if("topojson_precision"in o&&o.topojson_precision>0===false){error("topojson-precision= option should be a positive number")}}internal.getOptionParser=function(){var targetOpt={describe:"layer(s) to target (comma-sep. list)"},nameOpt={describe:"rename the edited layer(s)"},noReplaceOpt={alias:"+",type:"flag",describe:"retain the original layer(s) instead of replacing"},noSnapOpt={type:"flag"},encodingOpt={describe:"text encoding (applies to .dbf and delimited text files)"},snapIntervalOpt={describe:"snapping distance in source units (default is tiny)",type:"distance"},minGapAreaOpt={describe:"smaller gaps than this are filled (default is small)",type:"area"},sumFieldsOpt={describe:"fields to sum when dissolving (comma-sep. list)",type:"strings"},copyFieldsOpt={describe:"fields to copy when dissolving (comma-sep. list)",type:"strings"},dissolveFieldsOpt={DEFAULT:true,type:"strings",describe:"(optional) field or fields to dissolve on (comma-sep. list)"},fieldTypesOpt={describe:"type hints for csv source files, e.g. FIPS:str,STATE_FIPS:str",type:"strings"},stringFieldsOpt={describe:"csv field(s) to import as strings, e.g. FIPS,ZIPCODE",type:"strings"},bboxOpt={type:"bbox",describe:"comma-sep. bounding box: xmin,ymin,xmax,ymax"},whereOpt={describe:"use a JS expression to select a subset of features"},whereOpt2={describe:"use a JS expression to filter lines (using A and B)"},eachOpt2={describe:"apply a JS expression to each line (using A and B)"},aspectRatioOpt={describe:"aspect ratio as a number or range (e.g. 2 0.8,1.6 ,2)"},offsetOpt={describe:"padding as distance or pct of h/w (single value or list)",type:"distance"};var parser=new CommandParser;parser.usage("Usage: mapshaper - [options] ...");parser.note("Enter mapshaper -help to view options for a single command");parser.section("I/O commands");parser.default("i");parser.command("i").describe("input one or more files").validate(validateInputOpts).flag("multi_arg").option("files",{DEFAULT:true,type:"strings",describe:"one or more files to import, or - to use stdin"}).option("combine-files",{describe:"import files to separate layers with shared topology",type:"flag"}).option("merge-files",{type:"flag"}).option("no-topology",{describe:"treat each shape as topologically independent",type:"flag"}).option("precision",{describe:"coordinate precision in source units, e.g. 0.001",type:"number"}).option("snap",{type:"flag",describe:"snap nearly identical points to fix minor topology errors"}).option("auto-snap",{alias_to:"snap"}).option("snap-interval",snapIntervalOpt).option("encoding",encodingOpt).option("id-field",{describe:"import Topo/GeoJSON id property to this field"}).option("string-fields",stringFieldsOpt).option("field-types",fieldTypesOpt).option("name",{describe:"Rename the imported layer(s)"}).option("geometry-type",{}).option("json-path",{}).option("csv-filter",{describe:"[CSV] JS expression for filtering records"}).option("csv-fields",{type:"strings",describe:"[CSV] comma-sep. list of fields to import"});parser.command("o").describe("output edited content").validate(validateOutputOpts).option("_",{label:"",describe:"(optional) name of output file or directory, - for stdout"}).option("format",{describe:"options: shapefile,geojson,topojson,json,dbf,csv,tsv,svg"}).option("target",targetOpt).option("force",{describe:"allow overwriting input files",type:"flag"}).option("dry-run",{type:"flag"}).option("ldid",{type:"number"}).option("precision",{describe:"coordinate precision in source units, e.g. 0.001",type:"number"}).option("bbox-index",{describe:"export a .json file with bbox of each layer",type:"flag"}).option("cut-table",{describe:"detach data attributes from shapes and save as a JSON file",type:"flag"}).option("drop-table",{describe:"remove data attributes from output",type:"flag"}).option("encoding",{describe:"(Shapefile/CSV) text encoding (default is utf8)"}).option("field-order",{describe:"(Shapefile/CSV) field-order=ascending sorts columns A-Z"}).option("id-field",{describe:"(Topo/GeoJSON/SVG) field to use for id property",type:"strings"}).option("bbox",{type:"flag",describe:"(Topo/GeoJSON) add bbox property"}).option("extension",{describe:'(Topo/GeoJSON) set file extension (default is ".json")'}).option("prettify",{type:"flag",describe:"(Topo/GeoJSON) format output for readability"}).option("singles",{describe:"(TopoJSON) save each target layer as a separate file",type:"flag"}).option("quantization",{describe:"(TopoJSON) specify quantization (auto-set by default)",type:"integer"}).option("no-quantization",{describe:"(TopoJSON) export coordinates without quantization",type:"flag"}).option("no-point-quantization",{type:"flag"}).option("presimplify",{describe:"(TopoJSON) add per-vertex data for dynamic simplification",type:"flag"}).option("topojson-precision",{type:"number"}).option("rfc7946",{describe:"(GeoJSON) follow RFC 7946 (CCW outer ring order, etc.)",type:"flag"}).option("combine-layers",{describe:"(GeoJSON) output layers as a single file",type:"flag"}).option("geojson-type",{describe:"(GeoJSON) FeatureCollection, GeometryCollection or Feature"}).option("width",{describe:"(SVG/TopoJSON) pixel width of output (SVG default is 800)",type:"number"}).option("height",{describe:"(SVG/TopoJSON) pixel height of output (optional)",type:"number"}).option("max-height",{describe:"(SVG/TopoJSON) max pixel height of output (optional)",type:"number"}).option("margin",{describe:"(SVG/TopoJSON) space betw. data and viewport (default is 1)"}).option("pixels",{describe:"(SVG/TopoJSON) output area in pixels (alternative to width=)",type:"number"}).option("svg-scale",{describe:"(SVG) source units per pixel (alternative to width= option)",type:"number"}).option("point-symbol",{describe:"(SVG) circle or square (default is circle)"}).option("id-prefix",{describe:"(SVG) prefix for namespacing layer and feature ids"}).option("delimiter",{describe:"(CSV) field delimiter"}).option("final",{type:"flag"}).option("metadata",{type:"flag"});parser.section("Editing commands");parser.command("clean").describe("repairs overlaps and small gaps in polygon layers").option("min-gap-area",minGapAreaOpt).option("snap-interval",snapIntervalOpt).option("no-snap",noSnapOpt).option("allow-empty",{describe:"allow null geometries (removed by default)",type:"flag"}).option("no-arc-dissolve",{type:"flag"}).option("target",targetOpt);parser.command("clip").describe("use a polygon layer to clip another layer").example("$ mapshaper states.shp -clip land_area.shp -o clipped.shp").validate(validateClipOpts).option("source",{DEFAULT:true,describe:"file or layer containing clip polygons"}).option("remove-slivers",{describe:"remove sliver polygons created by clipping",type:"flag"}).option("cleanup",{type:"flag"}).option("bbox",bboxOpt).option("name",nameOpt).option("no-replace",noReplaceOpt).option("no-snap",noSnapOpt).option("target",targetOpt);parser.command("dissolve").describe("merge features within a layer").example("Dissolve all polygons in a feature layer into a single polygon\n"+"$ mapshaper states.shp -dissolve -o country.shp").example("Generate state-level polygons by dissolving a layer of counties\n"+"(STATE_FIPS, POPULATION and STATE_NAME are attribute field names)\n"+"$ mapshaper counties.shp -dissolve STATE_FIPS copy-fields=STATE_NAME sum-fields=POPULATION -o states.shp").option("field",{}).option("fields",dissolveFieldsOpt).option("calc",{describe:"use a JS expression to aggregate data values"}).option("sum-fields",sumFieldsOpt).option("copy-fields",copyFieldsOpt).option("weight",{describe:"[points] field or expression to use for weighting centroid"}).option("planar",{type:"flag",describe:"[points] use 2D math to find centroids of latlong points"}).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("dissolve2").describe("merge adjacent polygons (repairs overlaps and gaps)").option("field",{}).option("fields",dissolveFieldsOpt).option("calc",{describe:"use a JS expression to aggregate data values"}).option("sum-fields",sumFieldsOpt).option("copy-fields",copyFieldsOpt).option("min-gap-area",minGapAreaOpt).option("name",nameOpt).option("no-replace",noReplaceOpt).option("no-snap",noSnapOpt).option("target",targetOpt);parser.command("drop").describe("delete layer(s) or elements within the target layer(s)").flag("no_arg").option("geometry",{describe:"delete all geometry from the target layer(s)",type:"flag"}).option("fields",{type:"strings",describe:"delete a list of attribute data fields, e.g. 'id,name' '*'"}).option("target",targetOpt);parser.command("each").describe("create/update/delete data fields using a JS expression").example("Add two calculated data fields to a layer of U.S. counties\n"+"$ mapshaper counties.shp -each 'STATE_FIPS=CNTY_FIPS.substr(0, 2), AREA=$.area'").option("expression",{DEFAULT:true,describe:"JS expression to apply to each target feature"}).option("where",whereOpt).option("target",targetOpt);parser.command("erase").describe("use a polygon layer to erase another layer").example("$ mapshaper land_areas.shp -erase water_bodies.shp -o erased.shp").validate(validateClipOpts).option("source",{DEFAULT:true,describe:"file or layer containing erase polygons"}).option("remove-slivers",{describe:"remove sliver polygons created by erasing",type:"flag"}).option("cleanup",{type:"flag"}).option("bbox",bboxOpt).option("name",nameOpt).option("no-replace",noReplaceOpt).option("no-snap",noSnapOpt).option("target",targetOpt);parser.command("explode").describe("divide multi-part features into single-part features").option("naive",{type:"flag"}).option("target",targetOpt);parser.command("filter").describe("delete features using a JS expression").option("expression",{DEFAULT:true,describe:"delete features that evaluate to false"}).option("remove-empty",{type:"flag",describe:"delete features with null geometry"}).option("keep-shapes",{type:"flag"}).option("cleanup",{type:"flag"}).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("filter-fields").describe("retain a subset of data fields").option("fields",{DEFAULT:true,type:"strings",describe:"fields to retain (comma-sep.), e.g. 'fips,name'"}).option("target",targetOpt);parser.command("filter-geom").describe("").option("bbox",{type:"bbox",describe:"remove non-intersecting geometry (xmin,ymin,xmax,ymax)"}).option("target",targetOpt);parser.command("filter-islands").describe("remove small detached polygon rings (islands)").option("min-area",{type:"area",describe:"remove small-area islands (sq meters or projected units)"}).option("min-vertices",{type:"integer",describe:"remove low-vertex-count islands"}).option("remove-empty",{type:"flag",describe:"delete features with null geometry"}).option("target",targetOpt);parser.command("filter-slivers").describe("remove small polygon rings").option("min-area",{type:"area",describe:"remove small-area rings (sq meters or projected units)"}).option("weighted",{type:"flag",describe:"multiply min-area by Polsby-Popper compactness (0-1)"}).option("target",targetOpt);parser.command("graticule").describe("create a graticule layer");parser.command("innerlines").describe("convert polygons to polylines along shared edges").flag("no_arg").option("where",whereOpt2).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("intersect").option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("join").describe("join data records from a file or layer to a layer").example("Join a csv table to a Shapefile (don't auto-convert FIPS column to numbers)\n"+"$ mapshaper states.shp -join data.csv keys=STATE_FIPS,FIPS string-fields=FIPS -o joined.shp").validate(function(cmd){if(!cmd.options.source){error("Command requires the name of a layer or file to join")}}).option("source",{DEFAULT:true,describe:"file or layer containing data records"}).option("keys",{describe:"join by matching target,source key fields; e.g. keys=FIPS,ID",type:"strings"}).option("calc",{describe:"use a JS expression to assign values in many-to-one joins"}).option("where",{describe:"use a JS expression to filter source records"}).option("fields",{describe:"fields to copy (comma-sep.) (default is all but key field)",type:"strings"}).option("string-fields",stringFieldsOpt).option("field-types",fieldTypesOpt).option("sum-fields",{describe:"fields to sum in a many-to-one join (or use calc= for this)",type:"strings"}).option("force",{describe:"replace values from same-named fields",type:"flag"}).option("unjoined",{describe:'copy unjoined records from source table to "unjoined" layer',type:"flag"}).option("unmatched",{describe:'copy unmatched records in target table to "unmatched" layer',type:"flag"}).option("encoding",encodingOpt).option("target",targetOpt);parser.command("lines").describe("convert polygons to polylines, classified by edge type").option("fields",{DEFAULT:true,describe:"optional comma-sep. list of fields to create a hierarchy",type:"strings"}).option("where",whereOpt2).option("each",eachOpt2).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("merge-layers").describe("merge multiple layers into as few layers as possible").flag("no_arg").option("force",{type:"flag",describe:"merge layers with inconsistent data fields"}).option("name",nameOpt).option("target",targetOpt);parser.command("mosaic").option("debug",{type:"flag"}).option("target",targetOpt);parser.command("point-grid").describe("create a rectangular grid of points").validate(validateGridOpts).option("-",{label:"",describe:"size of the grid, e.g. -point-grid 100,100"}).option("interval",{describe:"distance between adjacent points, in source units",type:"distance"}).option("cols",{type:"integer"}).option("rows",{type:"integer"}).option("bbox",{type:"bbox",describe:"xmin,ymin,xmax,ymax (default is bbox of data)"}).option("name",nameOpt);parser.command("points").describe("create a point layer from a different layer type").flag("no_arg").option("x",{describe:"field containing x coordinate"}).option("y",{describe:"field containing y coordinate"}).option("inner",{describe:"create an interior point for each polygon's largest ring",type:"flag"}).option("centroid",{describe:"create a centroid point for each polygon's largest ring",type:"flag"}).option("vertices",{describe:"capture unique vertices of polygons and polylines",type:"flag"}).option("vertices2",{describe:"like vertices, but without removal of duplicate coordinates",type:"flag"}).option("endpoints",{describe:"capture unique endpoints of polygons and polylines",type:"flag"}).option("intersections",{type:"flag"}).option("interpolated",{describe:"interpolate points along polylines; requires interval=",type:"flag"}).option("interval",{describe:"distance between interpolated points (meters or projected units)",type:"distance"}).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("polygon-grid").validate(validateGridOpts).option("-",{label:"",describe:"size of the grid, e.g. -point-grid 100,100"}).option("interval",{describe:"distance between adjacent points, in source units",type:"number"}).option("cols",{type:"integer"}).option("rows",{type:"integer"}).option("bbox",{type:"bbox",describe:"xmin,ymin,xmax,ymax (default is bbox of data)"}).option("name",nameOpt);parser.command("proj").describe("project your data (using Proj.4)").flag("multi_arg").option("crs",{DEFAULT:true,describe:"set destination CRS using a Proj.4 definition or alias"}).option("projection",{alias_to:"crs"}).option("match",{describe:"set destination CRS using a .prj file or layer id"}).option("source",{alias_to:"match"}).option("from",{describe:"set source CRS (if unset) using a string, .prj or layer id"}).option("densify",{type:"flag",describe:"add points along straight segments to approximate curves"}).option("target",targetOpt).validate(validateProjOpts);parser.command("rename-fields").describe("rename data fields").option("fields",{DEFAULT:true,type:"strings",describe:"fields to rename (comma-sep.), e.g. 'fips=STATE_FIPS,st=state'"}).option("target",targetOpt);parser.command("rename-layers").describe("assign new names to layers").option("names",{DEFAULT:true,type:"strings",describe:"new layer name(s) (comma-sep. list)"}).option("target",targetOpt);parser.command("simplify").validate(validateSimplifyOpts).example("Retain 10% of removable vertices\n$ mapshaper input.shp -simplify 10%").describe("simplify the geometry of polygon and polyline features").option("percentage",{DEFAULT:true,alias:"p",type:"percent",describe:"percentage of removable points to retain, e.g. 10%"}).option("dp",{alias:"rdp",describe:"use Ramer-Douglas-Peucker simplification",assign_to:"method"}).option("visvalingam",{describe:'use Visvalingam simplification with "effective area" metric',assign_to:"method"}).option("weighted",{describe:"use weighted Visvalingam simplification (default)",assign_to:"method"}).option("method",{}).option("weighting",{type:"number",describe:"weighted Visvalingam coefficient (default is 0.7)"}).option("resolution",{describe:"output resolution as a grid (e.g. 1000x500)"}).option("interval",{describe:"output resolution as a distance (e.g. 100)",type:"distance"}).option("variable",{describe:"expect an expression with interval=, percentage= or resolution=",type:"flag"}).option("planar",{describe:"simplify decimal degree coords in 2D space (default is 3D)",type:"flag"}).option("cartesian",{alias_to:"planar"}).option("keep-shapes",{describe:"prevent small polygon features from disappearing",type:"flag"}).option("lock-box",{type:"flag"}).option("no-repair",{describe:"don't remove intersections introduced by simplification",type:"flag"}).option("stats",{describe:"display simplification statistics",type:"flag"}).option("target",targetOpt);parser.command("slice").option("source",{DEFAULT:true,describe:"file or layer containing clip polygons"}).option("id-field",{describe:"slice id field (from source layer)"}).option("name",nameOpt).option("no-replace",noReplaceOpt).option("no-snap",noSnapOpt).option("target",targetOpt);parser.command("sort").describe("sort features using a JS expression").option("expression",{DEFAULT:true,describe:"JS expression to generate a sort key for each feature"}).option("ascending",{describe:"sort in ascending order (default)",type:"flag"}).option("descending",{describe:"sort in descending order",type:"flag"}).option("target",targetOpt);parser.command("split").describe("split features into separate layers using a data field").option("field",{DEFAULT:true,describe:"name of an attribute field (omit to split all features)"}).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("split-on-grid").describe("split features into separate layers using a grid").validate(validateGridOpts).option("-",{label:"",describe:"size of the grid, e.g. -split-on-grid 12,10"}).option("cols",{type:"integer"}).option("rows",{type:"integer"}).option("id-field",{describe:"assign each feature a cell id instead of splitting layer"}).option("target",targetOpt);parser.command("style").oldAlias("svg-style").describe("set SVG style properties using JS or literal values").option("where",whereOpt).option("class",{describe:"name of CSS class or classes (space-separated)"}).option("fill",{describe:"fill color; examples: #eee pink rgba(0, 0, 0, 0.2)"}).option("stroke",{describe:"stroke color"}).option("stroke-width",{describe:"stroke width"}).option("stroke-dasharray",{describe:'stroke dashes. Examples: "4" "2 4"'}).option("opacity",{describe:"opacity; example: 0.5"}).option("r",{describe:"symbol radius (set this to export points as circles)"}).option("label-text",{describe:"label text (set this to export points as labels)"}).option("text-anchor",{describe:"label alignment; one of: start, end, middle (default)"}).option("dx",{describe:"x offset of labels (default is 0)"}).option("dy",{describe:"y offset of labels (default is 0/baseline-aligned)"}).option("font-size",{describe:"size of label text (default is 12)"}).option("font-family",{describe:"CSS font family of labels (default is sans-serif)"}).option("font-weight",{describe:"CSS font weight property of labels (e.g. bold, 700)"}).option("font-style",{describe:"CSS font style property of labels (e.g. italic)"}).option("letter-spacing",{describe:"CSS letter-spacing property of labels"}).option("line-height",{describe:"line spacing of multi-line labels (default is 1.1em)"}).option("target",targetOpt);parser.command("symbols").option("type",{describe:"symbol type"}).option("stroke",{}).option("stroke-width",{}).option("fill",{}).option("length",{}).option("rotation",{}).option("where",whereOpt).option("target",targetOpt);parser.command("target").describe("set active layer (or layers)").option("target",{DEFAULT:true,describe:"name or index of layer to target"}).option("type",{describe:"type of layer to target (polygon|polyline|point)"}).option("name",{describe:"rename the target layer"});parser.command("uniq").describe("delete features with the same id as a previous feature").option("expression",{DEFAULT:true,describe:"JS expression to obtain the id of a feature"}).option("max-count",{type:"number",describe:"max features with the same id (default is 1)"}).option("invert",{type:"flag",describe:"retain only features that would have been deleted"}).option("verbose",{describe:"print each removed feature",type:"flag"}).option("target",targetOpt);parser.section("Experimental commands (may give unexpected results)");parser.command("affine").describe("transform coordinates by shifting, scaling and rotating").flag("no_args").option("shift",{type:"strings",describe:"x,y offsets in source units (e.g. 5000,-5000)"}).option("scale",{type:"number",describe:"scale (default is 1)"}).option("rotate",{type:"number",describe:"angle of rotation in degrees (default is 0)"}).option("anchor",{type:"numbers",describe:"center of rotation/scaling (default is center of selected shapes)"}).option("where",whereOpt).option("target",targetOpt);parser.command("cluster").describe("group polygons into compact clusters").option("id-field",{describe:'field name of cluster id (default is "cluster")'}).option("pct",{alias:"p",type:"percent",describe:"percentage of shapes to retain, e.g. 50%"}).option("max-width",{describe:"max width of cluster bounding box",type:"number"}).option("max-height",{describe:"max height of cluster bounding box",type:"number"}).option("max-area",{describe:"max area of a cluster",type:"number"}).option("group-by",{describe:"field name; only same-value shapes will be grouped"}).option("target",targetOpt);parser.command("colorizer").describe("define a function to convert data values to color classes").flag("no_arg").option("colors",{describe:"comma-separated list of CSS colors",type:"colors"}).option("breaks",{describe:"ascending-order list of breaks for sequential color scheme",type:"numbers"}).option("categories",{describe:"comma-sep. list of keys for categorical color scheme",type:"strings"}).option("other",{describe:"default color for categorical scheme (defaults to no-data color)"}).option("nodata",{describe:"color to use for invalid or missing data (default is white)"}).option("name",{describe:"function name to use in -each and -svg-style commands"}).option("precision",{describe:"rounding precision to apply before classification (e.g. 0.1)",type:"number"}).example("Define a sequential color scheme and use it to create a new field\n"+"$ mapshaper data.json -colorizer name=getColor nodata=#eee breaks=20,40 \\\n"+' colors=#e0f3db,#a8ddb5,#43a2ca -each "fill = getColor(RATING)" -o output.json');parser.command("data-fill").option("field",{describe:"name of field to fill out"}).option("postprocess",{describe:"remove data islands",type:"flag"});parser.command("frame").option("bbox",{describe:"frame coordinates (xmin,ymin,xmax,ymax)",type:"bbox"}).option("offset",offsetOpt).option("width",{describe:"pixel width of output (default is 800)"}).option("height",{describe:"pixel height of output (may be a range)"}).option("pixels",{describe:"area of output in pixels (alternative to width and height)",type:"number"}).option("source",{describe:"name of layer to enclose"}).option("name",nameOpt);parser.command("include").describe("import JS data and functions for use in JS expressions").option("file",{DEFAULT:true,describe:"file containing a JS object with key:value pairs to import"});parser.command("fuzzy-join").describe("join points to polygons, with data fill and fuzzy match").option("source",{DEFAULT:true,describe:"file or layer containing data records"}).option("field",{describe:"field to join"}).option("dedup-points",{describe:"uniqify points with the same location and field value",type:"flag"}).option("target",targetOpt);parser.command("polygons").describe("convert polylines to polygons").option("gap-tolerance",{describe:"specify gap tolerance in source units",type:"distance"}).option("target",targetOpt);parser.command("rectangle").describe("create a rectangle from a bbox or target layer extent").option("bbox",{describe:"rectangle coordinates (xmin,ymin,xmax,ymax)",type:"bbox"}).option("offset",offsetOpt).option("aspect-ratio",aspectRatioOpt).option("source",{describe:"name of layer to enclose"}).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("rectangles").describe("create a rectangle around each feature in the target layer").option("offset",offsetOpt).option("aspect-ratio",aspectRatioOpt).option("name",nameOpt).option("no-replace",noReplaceOpt).option("target",targetOpt);parser.command("require").describe("require a Node module for use in -each expressions").option("module",{DEFAULT:true,describe:"name of Node module or path to module file"}).option("alias",{describe:"Set the module name to an alias"}).option("init",{describe:"JS expression to run after the module loads"});parser.command("run").describe("create commands on-the-fly and run them").option("include",{}).option("commands",{DEFAULT:true,describe:"command string or JS expresson to generate command(s)"}).option("target",targetOpt);parser.command("scalebar").option("top",{}).option("right",{}).option("bottom",{}).option("left",{}).option("font-size",{}).option("label-position",{}).option("label-text",{});parser.command("shape").describe("create a polyline or polygon from coordinates").option("coordinates",{describe:"list of vertices as x,y,x,y...",type:"numbers"}).option("offsets",{describe:"list of vertices as offsets from coordinates list",type:"numbers"}).option("closed",{describe:"close an open path to create a polygon",type:"flag"}).option("name",nameOpt);parser.command("subdivide").describe("recursively split a layer using a JS expression").validate(validateExpressionOpt).option("expression",{DEFAULT:true,describe:"boolean JS expression"}).option("target",targetOpt);parser.section("Informational commands");parser.command("calc").describe("calculate statistics about the features in a layer").example("Calculate the total area of a polygon layer\n"+"$ mapshaper polygons.shp -calc 'sum($.area)'").example("Count census blocks in NY with zero population\n"+"$ mapshaper ny-census-blocks.shp -calc 'count()' where='POPULATION == 0'").validate(validateExpressionOpt).option("expression",{DEFAULT:true,describe:"functions: sum() average() median() max() min() count()"}).option("where",whereOpt).option("target",targetOpt);parser.command("encodings").describe("print list of supported text encodings (for .dbf import)");parser.command("help").alias("h").describe("print help; takes optional command name").option("command",{DEFAULT:true,describe:"view detailed information about a command"});parser.command("info").describe("print information about data layers");parser.command("inspect").describe("print information about a feature").option("expression",{DEFAULT:true,describe:"boolean JS expression for selecting a feature"}).option("target",targetOpt).validate(validateExpressionOpt);parser.command("projections").describe("print list of supported projections");parser.command("quiet").describe("inhibit console messages");parser.command("verbose").describe("print verbose processing messages");parser.command("version").alias("v").describe("print mapshaper version");parser.command("debug");return parser};internal.parseCommands=function(tokens){if(Array.isArray(tokens)&&utils.isObject(tokens[0])){return tokens.map(function(cmd){return{name:cmd.name,options:utils.extend({},cmd.options)}})}if(utils.isString(tokens)){tokens=internal.splitShellTokens(tokens)}return internal.getOptionParser().parseArgv(tokens)};internal.parseConsoleCommands=function(raw){var blocked=["i","include","require"];var str=raw.replace(/^mapshaper\b/,"").trim();var parsed;if(/^[a-z]/.test(str)){str="-"+str}parsed=internal.parseCommands(str);parsed.forEach(function(cmd){var i=blocked.indexOf(cmd.name);if(i>-1){stop("The -"+blocked[i]+" command cannot be run in the browser")}});return parsed};internal.findCommandTargets=function(catalog,pattern,type){var targets=[];var layers=utils.pluck(catalog.getLayers(),"layer");var matches=internal.findMatchingLayers(layers,pattern);if(type)matches=matches.filter(function(lyr){return lyr.geometry_type==type});catalog.getDatasets().forEach(function(dataset){var layers=dataset.layers.filter(function(lyr){return matches.indexOf(lyr)>-1});if(layers.length>0){targets.push({layers:layers,dataset:dataset})}});return targets};internal.findMatchingLayers=function(layers,pattern){var matches=[];var index={};pattern.split(",").forEach(function(subpattern,i){var test=internal.getLayerMatch(subpattern);layers.forEach(function(lyr,layerId){if(layerId in index)return;if(test(lyr,layerId+1)){lyr.target_id=matches.length;matches.push(lyr);index[layerId]=true}else{lyr.target_id=-1}})});return matches};internal.getLayerMatch=function(pattern){var isIndex=utils.isInteger(Number(pattern));var nameRxp=isIndex?null:utils.wildcardToRegExp(pattern);return function(lyr,i){return isIndex?String(i)==pattern:nameRxp.test(lyr.name||"")}};function Catalog(){var datasets=[],defaultTargets=[];this.forEachLayer=function(cb){var i=0;datasets.forEach(function(dataset){dataset.layers.forEach(function(lyr){cb(lyr,dataset,i++)})})};this.deleteLayer=function(lyr,dataset){if(this.getActiveLayer().layer==lyr){defaultTargets=[]}dataset.layers.splice(dataset.layers.indexOf(lyr),1);if(dataset.layers.length===0){this.removeDataset(dataset)}defaultTargets=defaultTargets.filter(function(targ){var i=targ.layers.indexOf(lyr);if(i==-1)return true;targ.layers.splice(i,1);return targ.layers.length>0})};this.findLayer=function(arg){var test=typeof arg=="function"?arg:null;var found=null;this.forEachLayer(function(lyr,dataset){if(test?test(lyr,dataset):lyr==arg){found=layerObject(lyr,dataset)}});return found};this.findCommandTargets=function(pattern,type){if(pattern){return internal.findCommandTargets(this,pattern,type)}return this.getDefaultTargets()||[]};this.removeDataset=function(dataset){defaultTargets=defaultTargets.filter(function(targ){return targ.dataset!=dataset});datasets=datasets.filter(function(d){return d!=dataset})};this.getDatasets=function(){return datasets};this.getLayers=function(){var layers=[];this.forEachLayer(function(lyr,dataset){layers.push(layerObject(lyr,dataset))});return layers};this.addDataset=function(dataset){this.setDefaultTarget(dataset.layers,dataset);return this};this.findNextLayer=function(lyr){var layers=this.getLayers(),idx=indexOfLayer(lyr,layers);return idx>-1?layers[(idx+1)%layers.length]:null};this.findPrevLayer=function(lyr){var layers=this.getLayers(),idx=indexOfLayer(lyr,layers);return idx>-1?layers[(idx-1+layers.length)%layers.length]:null};this.isEmpty=function(){return datasets.length===0};this.getDefaultTargets=function(){if(defaultTargets.length===0&&!this.isEmpty()){defaultTargets=[{dataset:datasets[0],layers:datasets[0].layers.slice(0,1)}]}return defaultTargets};this.setDefaultTarget=function(layers,dataset){if(datasets.indexOf(dataset)==-1){datasets.push(dataset)}defaultTargets=[{layers:layers,dataset:dataset}]};this.setDefaultTargets=function(arr){defaultTargets=arr};this.getActiveLayer=function(){var targ=(this.getDefaultTargets()||[])[0];return targ?{layer:targ.layers[0],dataset:targ.dataset}:null};function layerObject(lyr,dataset){return{layer:lyr,dataset:dataset}}function indexOfLayer(lyr,layers){var idx=-1;layers.forEach(function(o,i){if(o.layer==lyr)idx=i});return idx}}internal.getFormattedLayerList=function(catalog){var lines=[];catalog.forEachLayer(function(lyr,dataset,i){lines.push(" ["+(i+1)+"] "+(lyr.name||"[unnamed]"))});return lines.length>0?lines.join("\n"):"[none]"};api.runCommands=function(){internal.unifiedRun(arguments,"run")};api.applyCommands=function(){internal.unifiedRun(arguments,"apply")};internal.unifiedRun=function(args,mode){var outputArr=mode=="apply"?[]:null;var inputObj,inputType,done,commands;if(utils.isFunction(args[1])){done=args[1]}else if(utils.isFunction(args[2])){done=args[2];inputObj=args[1];inputType=internal.guessInputContentType(inputObj)}else{error("Expected an optional input object and a callback")}try{commands=internal.parseCommands(args[0])}catch(e){return done(e)}if(inputType=="text"||inputType=="json"){message("Warning: deprecated input format");return internal.applyCommandsOld(commands,inputObj,done)}commands.forEach(function(cmd){if(internal.commandTakesFileInput(cmd.name)&&inputObj){cmd.options.input=inputObj}if(cmd.name=="o"&&outputArr){cmd.options.output=outputArr}});internal.runParsedCommands(commands,null,function(err){var outputObj;if(err||!outputArr){return done(err)}outputObj=outputArr.reduce(function(memo,o){memo[o.filename]=o.content;return memo},{});done(null,outputObj)})};internal.commandTakesFileInput=function(name){return name=="i"||name=="join"||name=="erase"||name=="clip"||name=="include"};internal.applyCommandsOld=function(commands,content,done){var output=[],lastCmd;commands=internal.runAndRemoveInfoCommands(commands);if(commands.length===0||commands[0].name!="i"){commands.unshift({name:"i",options:{}})}commands[0].options.input={input:content};commands[0].options.files=["input"];lastCmd=commands.pop();if(lastCmd.name!="o"){commands.push(lastCmd);lastCmd={name:"o",options:{}}}commands.push(lastCmd);lastCmd.options.output=output;internal.runParsedCommands(commands,null,function(err){var data=output.map(function(o){return o.content});if(data.length==1){data=data[0]}done(err,data)})};internal.testCommands=function(argv,done){internal.runParsedCommands(internal.parseCommands(argv),null,function(err,catalog){var targets=catalog?catalog.getDefaultTargets():[];var output;if(!err&&targets.length>0){output=targets[0].dataset}done(err,output)})};internal.runParsedCommands=function(commands,catalog,cb){if(!catalog){cb=createAsyncContext(cb);catalog=new Catalog}else if(catalog instanceof Catalog===false){error("Changed in v0.4: runParsedCommands() takes a Catalog object")}if(!utils.isFunction(done)){error("Missing a callback function")}if(!utils.isArray(commands)){error("Expected an array of parsed commands")}if(commands.length===0){return done(new UserError("No commands to run"))}commands=internal.runAndRemoveInfoCommands(commands);if(commands.length===0){return done(null)}commands=internal.divideImportCommand(commands);utils.reduceAsync(commands,catalog,nextCommand,done);function nextCommand(catalog,cmd,next){internal.setStateVar("current_command",cmd.name);api.runCommand(cmd,catalog,next)}function done(err,catalog){cb(err,catalog);internal.setStateVar("current_command",null)}};internal.divideImportCommand=function(commands){var firstCmd=commands[0],lastCmd=commands[commands.length-1],opts=firstCmd.options;if(lastCmd.name=="o"){lastCmd.options.final=true}if(firstCmd.name!="i"||opts.stdin||opts.merge_files||opts.combine_files||!opts.files||opts.files.length<2){return commands}return opts.files.reduce(function(memo,file){var importCmd={name:"i",options:utils.defaults({files:[file],replace:true},opts)};memo.push(importCmd);memo.push.apply(memo,commands.slice(1));return memo},[])};utils.reduceAsync=function(arr,memo,iter,done){var i=0;next(null,memo);function next(err,memo){if(err){return done(err,null)}(function(){if(i 90","squared eccentricity < 0","major axis or radius = 0 or not given","latitude or longitude exceeded limits","invalid x or y","improperly formed DMS value","non-convergent inverse meridional dist","non-convergent inverse phi2","acos/asin: |arg| >1+1e-14","tolerance condition error","conic lat_1 = -lat_2","lat_1 >= 90","lat_1 = 0","lat_ts >= 90","no distance between control points","projection not selected to be rotated","W <= 0 or M <= 0","lsat not in 1-5 range","path not in range","h <= 0","k <= 0","lat_0 = 0 or 90 or alpha = 90","lat_1=lat_2 or lat_1=0 or lat_2=90","elliptical usage required","invalid UTM zone number","arg(s) out of range for Tcheby eval","failed to find projection to be rotated","failed to load datum shift file","both n & m must be spec'd and > 0","n <= 0, n > 1 or not specified","lat_1 or lat_2 not specified","|lat_1| == |lat_2|","lat_0 is pi/2 from mean lat","unparseable coordinate system definition","geocentric transformation missing z or ellps","unknown prime meridian conversion id","illegal axis orientation combination","point not within available datum shift grids","invalid sweep axis, choose x or y"];function check_fatal_error(){var code=ctx.last_errno;if(!code)return;if(code>0||!is_transient_error(code)){e_error(code)}else{}}function is_transient_error(code){return transient_error.indexOf(code)>-1}var transient_error=[-14,-15,-17,-18,-19,-20,-27,-48];function pj_ctx_set_errno(code){ctx.last_errno=code}function f_error(){pj_ctx_set_errno(-20)}function i_error(){pj_ctx_set_errno(-20)}function error_msg(code){return pj_err_list[~code]||"unknown error"}function error(code){e_error(code)}function e_error(code){pj_ctx_set_errno(code);fatal()}function fatal(msg,o){if(!o)o={};if(!o.code)o.code=ctx.last_errno||0;if(!msg)msg=error_msg(o.code);throw new ProjError(msg,o)}function ProjError(msg,o){var err=new Error(msg);err.name="ProjError";Object.keys(o).forEach(function(k){err[k]=o[k]});return err}function dmstor(str){return dmstod(str)*DEG_TO_RAD}function dmstod(str){var match=/(-?[0-9.]+)d?([0-9.]*)'?([0-9.]*)"?([nsew]?)$/i.exec(str);var d=NaN;var deg,min,sec;if(match){deg=match[1]||"0";min=match[2]||"0";sec=match[3]||"0";d=+deg+ +min/60+ +sec/3600;if(/[ws]/i.test(match[4])){d=-d}}if(isNaN(d)){e_error(-16)}return d}function pj_atof(str){return pj_strtod(str)}function pj_strtod(str){return parseFloat(str)}function pj_param(params,code){var type=code[0],name=code.substr(1),obj=params[name],isset=obj!==void 0,val,param;if(type=="t"){val=isset}else if(isset){param=obj.param;obj.used=true;if(type=="i"){val=parseInt(param)}else if(type=="d"){val=pj_atof(param)}else if(type=="r"){val=dmstor(param)}else if(type=="s"){val=String(param)}else if(type=="b"){if(param=="T"||param=="t"||param===true){val=true}else if(param=="F"||param=="f"){val=false}else{pj_ctx_set_errno(-8);val=false}}}else{val={i:0,b:false,d:0,r:0,s:""}[type]}if(val===void 0){fatal("invalid request to pj_param, fatal")}return val}function pj_get_params(args){var rxp=/\+([a-z][a-z0-9_]*(?:=[^\s]*)?)/gi;var params={};var match;while(match=rxp.exec(args)){pj_mkparam(params,match[1])}return params}function pj_mkparam(params,token){var parts=token.split("=");var name,val;if(parts.length==1){name=token;val=true}else{name=parts[0];val=token.substr(parts[0].length+1)}params[name]={used:false,param:val}}var pj_list={};function pj_add(func,key,name,desc){pj_list[key]={init:func,name:name,description:desc}}function pj_is_latlong(P){return!P||P.is_latlong}function pj_is_geocent(P){return!P||P.is_geocent}function get_geod_defn(P){var got_datum=false,defn="";if("datum"in P.params){got_datum=true;defn+=get_param(P,"datum")}else if("ellps"in P.params){defn+=get_param(P,"ellps")}else if("a"in P.params){defn+=get_param(P,"a");if("b"in P.params){defn+=get_param(P,"b")}else if("es"in P.params){defn+=get_param(P,"es")}else if("f"in P.params){defn+=get_param(P,"f")}else{defn+=" +es="+P.es}}else{error(-13)}if(!got_datum){defn+=get_param(P,"towgs84");defn+=get_param(P,"nadgrids")}defn+=get_param(P,"R");defn+=get_param(P,"R_A");defn+=get_param(P,"R_V");defn+=get_param(P,"R_a");defn+=get_param(P,"R_lat_a");defn+=get_param(P,"R_lat_g");defn+=get_param(P,"pm");return defn}function get_proj_defn(P){var skip="datum,ellps,a,b,es,rf,f,towgs84,nadgrids,R,R_A,R_V,R_a,R_lat_a,R_lat_g,pm,init,no_defs".split(",");var defn="";Object.keys(P.params).forEach(function(name){if(skip.indexOf(name)==-1){defn+=get_param(P,name)}});defn+=get_geod_defn(P);return defn.trim()}function get_param(P,name){var param="";if(name in P.params){param=" +"+name;if(P.params[name].param!==true){param+="="+pj_param(P.params,"s"+name)}}return param}var pj_datums=[["WGS84","towgs84=0,0,0","WGS84","WGS_1984"],["GGRS87","towgs84=-199.87,74.79,246.62","GRS80","Greek_Geodetic_Reference_System_1987"],["NAD83","towgs84=0,0,0","GRS80","North_American_Datum_1983"],["NAD27","nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat","clrk66","North_American_Datum_1927"],["potsdam","towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7","bessel","Potsdam Rauenberg 1950 DHDN"],["carthage","towgs84=-263.0,6.0,431.0","clrk80ign","Carthage 1934 Tunisia"],["hermannskogel","towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232","bessel","Hermannskogel"],["ire65","towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15","mod_airy","Ireland 1965"],["nzgd49","towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993","intl","New Zealand Geodetic Datum 1949"],["OSGB36","towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894","airy","OSGB 1936"],[null,null,null,null]];var pj_prime_meridians=[["greenwich","0dE"],["lisbon","9d07'54.862\"W"],["paris","2d20'14.025\"E"],["bogota","74d04'51.3\"W"],["madrid","3d41'16.58\"W"],["rome","12d27'8.4\"E"],["bern","7d26'22.5\"E"],["jakarta","106d48'27.79\"E"],["ferro","17d40'W"],["brussels","4d22'4.71\"E"],["stockholm","18d3'29.8\"E"],["athens","23d42'58.815\"E"],["oslo","10d43'22.5\"E"],[null,null]];function find_prime_meridian(id){var defn=pj_prime_meridians.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],definition:defn[1]}:null}function find_datum(id){var defn=pj_datums.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],defn:defn[1],ellipse_id:defn[2],name:defn[3]}:null}function pj_datum_set(P){var SEC_TO_RAD=484813681109536e-20;var params=P.datum_params=[0,0,0,0,0,0,0];var name,datum,nadgrids,catalog,towgs84;P.datum_type=PJD_UNKNOWN;if(name=pj_param(P.params,"sdatum")){datum=find_datum(name);if(!datum){error(-9)}if(datum.ellipse_id){pj_mkparam(P.params,"ellps="+datum.ellipse_id)}if(datum.defn){pj_mkparam(P.params,datum.defn)}}nadgrids=pj_param(P.params,"snadgrids");if(nadgrids&&nadgrids!="@null"){fatal("+nadgrids is not implemented")}if(catalog=pj_param(P.params,"scatalog")){fatal("+catalog is not implemented")}if(towgs84=pj_param(P.params,"stowgs84")){towgs84.split(",").forEach(function(s,i){params[i]=pj_atof(s)||0});if(params[3]!=0||params[4]!=0||params[5]!=0||params[6]!=0){P.datum_type=PJD_7PARAM;params[3]*=SEC_TO_RAD;params[4]*=SEC_TO_RAD;params[5]*=SEC_TO_RAD;params[6]=params[6]/1e6+1}else{P.datum_type=PJD_3PARAM}}}var pj_ellps=[["MERIT","a=6378137.0","rf=298.257","MERIT 1983"],["SGS85","a=6378136.0","rf=298.257","Soviet Geodetic System 85"],["GRS80","a=6378137.0","rf=298.257222101","GRS 1980(IUGG, 1980)"],["IAU76","a=6378140.0","rf=298.257","IAU 1976"],["airy","a=6377563.396","b=6356256.910","Airy 1830"],["APL4.9","a=6378137.0","rf=298.25","Appl. Physics. 1965"],["NWL9D","a=6378145.0","rf=298.25","Naval Weapons Lab., 1965"],["mod_airy","a=6377340.189","b=6356034.446","Modified Airy"],["andrae","a=6377104.43","rf=300.0","Andrae 1876 (Den., Iclnd.)"],["aust_SA","a=6378160.0","rf=298.25","Australian Natl & S. Amer. 1969"],["GRS67","a=6378160.0","rf=298.2471674270","GRS 67(IUGG 1967)"],["bessel","a=6377397.155","rf=299.1528128","Bessel 1841"],["bess_nam","a=6377483.865","rf=299.1528128","Bessel 1841 (Namibia)"],["clrk66","a=6378206.4","b=6356583.8","Clarke 1866"],["clrk80","a=6378249.145","rf=293.4663","Clarke 1880 mod."],["clrk80ign","a=6378249.2","rf=293.4660212936269","Clarke 1880 (IGN)."],["CPM","a=6375738.7","rf=334.29","Comm. des Poids et Mesures 1799"],["delmbr","a=6376428","rf=311.5","Delambre 1810 (Belgium)"],["engelis","a=6378136.05","rf=298.2566","Engelis 1985"],["evrst30","a=6377276.345","rf=300.8017","Everest 1830"],["evrst48","a=6377304.063","rf=300.8017","Everest 1948"],["evrst56","a=6377301.243","rf=300.8017","Everest 1956"],["evrst69","a=6377295.664","rf=300.8017","Everest 1969"],["evrstSS","a=6377298.556","rf=300.8017","Everest (Sabah & Sarawak)"],["fschr60","a=6378166","rf=298.3","Fischer (Mercury Datum) 1960"],["fschr60m","a=6378155","rf=298.3","Modified Fischer 1960"],["fschr68","a=6378150","rf=298.3","Fischer 1968"],["helmert","a=6378200","rf=298.3","Helmert 1906"],["hough","a=6378270.0","rf=297","Hough"],["intl","a=6378388.0","rf=297","International 1909 (Hayford)"],["krass","a=6378245.0","rf=298.3","Krasovsky 1940"],["kaula","a=6378163","rf=298.24","Kaula 1961"],["lerch","a=6378139","rf=298.257","Lerch 1979"],["mprts","a=6397300","rf=191","Maupertius 1738"],["new_intl","a=6378157.5","b=6356772.2","New International 1967"],["plessis","a=6376523","b=6355863","Plessis 1817 (France)"],["SEasia","a=6378155.0","b=6356773.3205","Southeast Asia"],["walbeck","a=6376896.0","b=6355834.8467","Walbeck"],["WGS60","a=6378165.0","rf=298.3","WGS 60"],["WGS66","a=6378145.0","rf=298.25","WGS 66"],["WGS72","a=6378135.0","rf=298.26","WGS 72"],["WGS84","a=6378137.0","rf=298.257223563","WGS 84"],["sphere","a=6370997.0","b=6370997.0","Normal Sphere (r=6370997)"],[null,null,null,null]];function find_ellps(id){var defn=pj_ellps.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],major:defn[1],ell:defn[2],name:defn[3]}:null}function pj_ell_set(P){var SIXTH=.16666666666666666,RA4=.04722222222222222,RA6=.022156084656084655,RV4=.06944444444444445,RV6=.04243827160493827;var params=P.params;var a=0;var es=0;var name,ellps,tmp,b,i;if(pj_param(params,"tR")){a=pj_param(params,"dR")}else{if(name=pj_param(params,"sellps")){ellps=find_ellps(name);if(!ellps){error(-9)}pj_mkparam(params,ellps.major);pj_mkparam(params,ellps.ell)}a=pj_param(params,"da");if(pj_param(params,"tes")){es=pj_param(params,"des")}else if(pj_param(params,"te")){tmp=pj_param(params,"de");es=tmp*tmp}else if(pj_param(params,"trf")){tmp=pj_param(params,"drf");if(!tmp){error(-10)}tmp=1/tmp;es=tmp*(2-tmp)}else if(pj_param(params,"tf")){tmp=pj_param(params,"df");es=tmp*(2-tmp)}else if(pj_param(params,"tb")){b=pj_param(params,"db");es=1-b*b/(a*a)}if(!b){b=a*sqrt(1-es)}if(pj_param(params,"bR_A")){a*=1-es*(SIXTH+es*(RA4+es*RA6));es=0}else if(pj_param(params,"bR_V")){a*=1-es*(SIXTH+es*(RV4+es*RV6))}else if(pj_param(params,"bR_a")){a=.5*(a+b);es=0}else if(pj_param(params,"bR_g")){a=sqrt(a*b);es=0}else if(pj_param(params,"bR_h")){if(a+b===0){error(-20)}a=2*a*b/(a+b);es=0}else if(i=pj_param(params,"tR_lat_a")||pj_param(params,"tR_lat_g")){tmp=sin(pj_param(params,i?"rR_lat_a":"rR_lat_g"));if(fabs(tmp)>M_HALFPI){error(-11)}tmp=1-es*tmp*tmp;a*=i?.5*(1-es+tmp)/(tmp*sqrt(tmp)):sqrt(1-es)/tmp;es=0}}if(es<0)error(-12);if(a<=0)error(-13);P.es=es;P.a=a}var pj_units=[["km","1000","Kilometer"],["m","1","Meter"],["dm","1/10","Decimeter"],["cm","1/100","Centimeter"],["mm","1/1000","Millimeter"],["kmi","1852.0","International Nautical Mile"],["in","0.0254","International Inch"],["ft","0.3048","International Foot"],["yd","0.9144","International Yard"],["mi","1609.344","International Statute Mile"],["fath","1.8288","International Fathom"],["ch","20.1168","International Chain"],["link","0.201168","International Link"],["us-in","1/39.37","U.S. Surveyor's Inch"],["us-ft","0.304800609601219","U.S. Surveyor's Foot"],["us-yd","0.914401828803658","U.S. Surveyor's Yard"],["us-ch","20.11684023368047","U.S. Surveyor's Chain"],["us-mi","1609.347218694437","U.S. Surveyor's Statute Mile"],["ind-yd","0.91439523","Indian Yard"],["ind-ft","0.30479841","Indian Foot"],["ind-ch","20.11669506","Indian Chain"],[null,null,null]];function find_units_by_value(val){return pj_units.reduce(function(memo,defn){if(val==+defn[1]){memo=find_units(defn[0])}return memo},null)}function find_units(id){var arr=pj_units.reduce(function(memo,defn){return id===defn[0]?defn:memo},null);return arr?{id:arr[0],to_meter:arr[1],name:arr[2]}:null}var initcache={};function pj_search_initcache(key){return initcache[key.toLowerCase()]||null}function pj_insert_initcache(key,defn){initcache[key.toLowerCase()]=defn}var libcache={};function mproj_insert_libcache(libId,contents){libcache[libId]=contents}function mproj_search_libcache(libId){return libcache[libId]||null}function mproj_read_lib_anycase(libFile){var fs=require("fs"),path=require("path"),dir=path.join(path.dirname(__filename),"../nad"),pathUC=path.join(dir,libFile.toUpperCase()),pathLC=path.join(dir,libFile.toLowerCase()),contents;if(fs.existsSync(pathUC)){contents=fs.readFileSync(pathUC,"utf8")}else if(fs.existsSync(pathLC)){contents=fs.readFileSync(pathLC,"utf8")}else{fatal("unable to read from 'init' file named "+libFile)}return contents}function pj_read_init_opts(initStr){var parts=initStr.split(":"),libId=parts[0],crsId=parts[1],libStr,o;if(!crsId||!libId){error(-3)}libId=libId.toLowerCase();libStr=mproj_search_libcache(libId);if(!libStr){libStr=mproj_read_lib_anycase(libId);libcache[libId]=libStr}return libStr?pj_find_opts(libStr,crsId):null}function pj_find_opts(contents,id){var opts="",comment="",idx,idx2;idx=contents.indexOf("<"+id+">");if(idx>-1){idx2=contents.lastIndexOf("#",idx);if(idx2>-1){comment=contents.substring(idx2+1,idx).trim();if(/\n/.test(comment)){comment=""}}opts=contents.substr(idx+id.length+2);opts=opts.substr(0,opts.indexOf("<"));opts=opts.replace(/#.*/g,"");opts=opts.replace(/[\s]+/g," ");opts=opts.replace(/\+title=[^+]*[^ +]/g,function(match){return match.replace(/ /g,"\t")});opts=" "+opts;opts=opts.replace(/ (?=[a-z])/gi," +");opts=opts.replace(/\t/g," ").trim()}return opts?{opts:opts,comment:comment}:null}function pj_init(args){var params=pj_get_params(args);var P={params:params,is_latlong:false,is_geocent:false,is_long_wrap_set:false,long_wrap_center:0,axis:"enu",gridlist:null,gridlist_count:0,vgridlist_geoid:null,vgridlist_geoid_count:0};var name,defn;if(!Object.keys(params).length){error(-1)}if(pj_param(params,"tinit")){get_init(params,pj_param(params,"sinit"))}name=pj_param(params,"sproj");if(!name){error(-4)}defn=pj_list[name];if(!defn){error(-5)}if(!pj_param(params,"bno_defs")){get_defaults(P.params,name)}pj_datum_set(P);pj_ell_set(P);P.a_orig=P.a;P.es_orig=P.es;P.e=sqrt(P.es);P.ra=1/P.a;P.one_es=1-P.es;if(!P.one_es){error(-6)}P.rone_es=1/P.one_es;if(is_wgs84(P)){P.datum_type=PJD_WGS84}P.geoc=!!P.es&&pj_param(params,"bgeoc");P.over=pj_param(params,"bover");P.has_geoid_vgrids=pj_param(params,"tgeoidgrids");if(P.has_geoid_vgrids){pj_param(params,"sgeoidgrids")}P.is_long_wrap_set=pj_param(params,"tlon_wrap");if(P.is_long_wrap_set){P.long_wrap_center=pj_param(params,"rlon_wrap");if(fabs(P.long_wrap_center)<10*M_TWOPI===false){error(-14)}}if(pj_param(params,"saxis")){init_axis(P)}P.lam0=pj_param(params,"rlon_0");P.phi0=pj_param(params,"rlat_0");P.x0=pj_param(params,"dx_0");P.y0=pj_param(params,"dy_0");if(pj_param(params,"tk_0")){P.k0=pj_param(params,"dk_0")}else if(pj_param(params,"tk")){P.k0=pj_param(params,"dk")}else{P.k0=1}if(P.k0<=0){error(-31)}init_units(P);init_prime_meridian(P);defn.init(P);return P}function get_defaults(params,name){get_opt(params,"+ellps=WGS84")}function get_init(params,initStr){var defn=pj_search_initcache(initStr);if(!defn){defn=pj_read_init_opts(initStr);pj_insert_initcache(initStr,defn)}if(!defn){error(-2)}get_opt(params,defn.opts)}function get_opt(params,args){var newParams=pj_get_params(args);var geoIsSet=["datum","ellps","a","b","rf","f"].reduce(function(memo,key){return memo||key in params},false);Object.keys(newParams).forEach(function(key){if(key in params)return;if(key=="ellps"&&geoIsSet)return;params[key]=newParams[key]})}function init_prime_meridian(P){var params=P.params,name,pm,offs;name=pj_param(params,"spm");if(name){pm=find_prime_meridian(name);offs=dmstor(pm?pm.definition:name);if(isNaN(offs)){error(-46)}P.from_greenwich=offs}else{P.from_greenwich=0}}function init_units(P){var params=P.params;var name,s,units;if(name=pj_param(params,"sunits")){units=find_units(name);if(!units){error(-7)}s=units.to_meter}if(s||(s=pj_param(params,"sto_meter"))){P.to_meter=parse_to_meter(s);P.fr_meter=1/P.to_meter}else{P.to_meter=P.fr_meter=1}s=null;if(name=pj_param(params,"svunits")){units=find_units(name);if(!units){error(-7)}s=units.to_meter}if(s||pj_param(params,"svto_meter")){P.vto_meter=parse_to_meter(s);P.vfr_meter=1/P.vto_meter}else{P.vto_meter=P.to_meter;P.vfr_meter=P.fr_meter}}function parse_to_meter(s){var parts=s.split("/");var val=pj_strtod(parts[0]);if(parts.length>1){val/=pj_strtod(parts[1])}return val}function init_axis(P){var axis_legal="ewnsud";var axis=pj_param(P.params,"saxis");if(axis.length!=3){error(PJD_ERR_AXIS)}if(axis_legal.indexOf(axis[0])==-1||axis_legal.indexOf(axis[1])==-1||axis_legal.indexOf(axis[2])==-1){error(PJD_ERR_AXIS)}P.axis=axis}function is_wgs84(P){return P.datum_type==PJD_3PARAM&&P.datum_params[0]==P.datum_params[1]==P.datum_params[2]===0&&P.a==6378137&&Math.abs(P.es-.00669437999)<5e-11}var GEOCENT_NO_ERROR=0,GEOCENT_LAT_ERROR=1,GEOCENT_LON_ERROR=2,GEOCENT_A_ERROR=4,GEOCENT_B_ERROR=8,GEOCENT_A_LESS_B_ERROR=16;function pj_Set_Geocentric_Parameters(a,b){var err=GEOCENT_NO_ERROR,a2=a*a,b2=b*b;if(a<=0)err|=GEOCENT_A_ERROR;if(b<=0)err|=GEOCENT_B_ERROR;if(a-1.001*M_HALFPI){lat=-M_HALFPI}else if(lat>M_HALFPI&&lat<1.001*M_HALFPI){lat=M_HALFPI}else if(lat<-M_HALFPI||lat>M_HALFPI){err|=GEOCENT_LAT_ERROR}if(!err){if(lng>M_PI)lng-=2*M_PI;sinlat=sin(lat);coslat=cos(lat);sin2lat=sinlat*sinlat;rn=gi.a/sqrt(1-gi.e2*sin2lat);xx[i]=(rn+height)*coslat*cos(lng);yy[i]=(rn+height)*coslat*sin(lng);zz[i]=(rn*(1-gi.e2)+height)*sinlat}return err}function pj_Convert_Geocentric_To_Geodetic(gi,i,xx,yy,zz){var EPS=1e-12,EPS2=EPS*EPS,MAXITER=30,x=xx[i],y=yy[i],z=zz[i],lat,lng,height,p,rr,ct,st,rx,rn,rk,cphi0,sphi0,cphi,sphi,sdphi,iter;p=sqrt(x*x+y*y);rr=sqrt(x*x+y*y+z*z);if(p/gi.aEPS2&&iter2,xx=[p[0]],yy=[p[1]],zz=[z?p[2]:0];if(srcdefn.is_latlong){xx[0]*=DEG_TO_RAD;yy[0]*=DEG_TO_RAD}ctx.last_errno=0;pj_transform(srcdefn,dstdefn,xx,yy,zz);if(ctx.last_errno||xx[0]==HUGE_VAL){fatal(null,{point:p})}if(dstdefn.is_latlong){xx[0]*=RAD_TO_DEG;yy[0]*=RAD_TO_DEG}p[0]=xx[0];p[1]=yy[0];if(z)p[2]=zz[0]}function pj_transform(srcdefn,dstdefn,xx,yy,zz){var point_count=xx.length;var lp={};var xy={};var err,i,tmp;if(srcdefn.axis!="enu"){pj_adjust_axis(srcdefn.axis,false,xx,yy,zz)}if(srcdefn.vto_meter!=1&&zz){for(i=0;idstdefn.long_wrap_center+M_PI){xx[i]-=M_TWOPI}}}if(dstdefn.vto_meter!=1&&zz){for(i=0;i5e-11){return false}if(srcdefn.datum_type==PJD_3PARAM){return srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]}if(srcdefn.datum_type==PJD_7PARAM){return srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]&&srcdefn.datum_params[3]==dstdefn.datum_params[3]&&srcdefn.datum_params[4]==dstdefn.datum_params[4]&&srcdefn.datum_params[5]==dstdefn.datum_params[5]&&srcdefn.datum_params[6]==dstdefn.datum_params[6]}if(srcdefn.datum_type==PJD_GRIDSHIFT){return pj_param(srcdefn.params,"snadgrids")==pj_param(dstdefn.params,"snadgrids")}return true}function pj_geocentric_to_wgs84(defn,xx,yy,zz){var point_count=xx.length,pp=defn.datum_params,Dx_BF=pp[0],Dy_BF=pp[1],Dz_BF=pp[2],x,y,z,Rx_BF,Ry_BF,Rz_BF,M_BF,i;if(defn.datum_type==PJD_3PARAM){for(i=0;iSPI){lon+=ONEPI;lon-=TWOPI*floor(lon/TWOPI);lon-=ONEPI}return lon}function pj_fwd_deg(lp,P){var lp2={lam:lp.lam*DEG_TO_RAD,phi:lp.phi*DEG_TO_RAD};return pj_fwd(lp2,P)}function pj_fwd(lp,P){var xy={x:0,y:0};var EPS=1e-12;var t=fabs(lp.phi)-M_HALFPI;if(!(t<=EPS&&fabs(lp.lam)<=10)){pj_ctx_set_errno(-14)}else{ctx.last_errno=0;if(fabs(t)<=EPS){lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else if(P.geoc){lp.phi=atan(P.rone_es*tan(lp.phi))}lp.lam-=P.lam0;if(!P.over){lp.lam=adjlon(lp.lam)}if(P.fwd){P.fwd(lp,xy);xy.x=P.fr_meter*(P.a*xy.x+P.x0);xy.y=P.fr_meter*(P.a*xy.y+P.y0)}else{xy.x=xy.y=HUGE_VAL}}if(ctx.last_errno||!isFinite(xy.x)||!isFinite(xy.y)){xy.x=xy.y=HUGE_VAL}return xy}function pj_inv_deg(xy,P){var lp=pj_inv(xy,P);return{lam:lp.lam*RAD_TO_DEG,phi:lp.phi*RAD_TO_DEG}}function pj_inv(xy,P){var EPS=1e-12;var lp={lam:0,phi:0};if(!(xy.xEPS){lp.phi=atan(P.one_es*tan(lp.phi))}}else{lp.lam=lp.phi=HUGE_VAL}}if(ctx.last_errno||!isFinite(lp.lam)||!isFinite(lp.phi)){lp.lam=lp.phi=HUGE_VAL}return lp}function get_rtodms(decimals,fixedWidth,pos,neg){var dtodms=get_dtodms(decimals,fixedWidth,pos,neg);return function(r){return dtodms(r*RAD_TO_DEG)}}function get_dtodms(decimals,fixedWidth,pos,neg){var RES,CONV,i;if(decimals<0||decimals>=9){decimals=3}RES=1;for(i=0;i2){out.z=array[2]}if(array.length>3){out.m=array[3]}return out};function get_proj4js_transform(P1,P2){return function(p){var useArray=Array.isArray(p);p=useArray?p.concat():[p.x,p.y];pj_transform_point(P1,P2,p);if(!useArray){p={x:p[0],y:p[1]}}return p}}var wkt_makers=[];var wkt_parsers=[];function wkt_is_object(val){return!!val&&typeof val=="object"&&!Array.isArray(val)}function wkt_is_string(val){return typeof val=="string"}function find_wkt_parser(projcs){var parser=find_wkt_conversion_function(projcs,wkt_parsers);if(!parser){wkt_error("unsupported WKT definition: "+get_wkt_label(projcs))}return parser}function find_wkt_maker(P){var marker=find_wkt_conversion_function(P,wkt_makers);if(!marker){wkt_error("unsupported projection: "+get_proj_label(P))}return marker}function find_wkt_conversion_function(o,arr){for(var i=0;i0){arr=names.split(",")}return arr}function wkt_error(msg){throw new Error(msg)}function wkt_warn(msg){console.error("[wkt] "+msg)}function wkt_get_unit_defn(projcs){return{to_meter:projcs.UNIT[1]}}function wkt_convert_unit(PROJCS){var defn=wkt_get_unit_defn(PROJCS);var proj4="";if(defn.to_meter!=1){proj4="+to_meter="+defn.to_meter}else if(!WKT_OMIT_DEFAULTS){proj4="+units=m"}return proj4}function wkt_make_unit(P){return["Meter",P.to_meter||1]}function wkt_convert_geogcs(geogcs,opts){var datum=geogcs.DATUM,spheroid=datum.SPHEROID,datumId=wkt_find_datum_id(datum),ellId=wkt_find_ellps_id(spheroid),aux_sphere=opts&&opts.aux_sphere,a=spheroid[1],rf=spheroid[2],str,pm;wkt_check_units(geogcs.UNIT,"degree");if(aux_sphere){str="+a="+spheroid[1]}else if(datumId){str="+datum="+datumId}else if(ellId){str="+ellps="+ellId}else{str="+a="+a;if(rf>0){str+=" +rf="+rf}}if(datum.TOWGS84&&!aux_sphere&&!datumId){str+=" +towgs84="+datum.TOWGS84.join(",")}pm=geogcs.PRIMEM?geogcs.PRIMEM[1]:0;if(pm>0||pm<0){str+=" +pm="+pm}return str}function wkt_find_ellps_id(spheroid){var aliases={international1924:"intl"};var key=wkt_harmonize_geo_name(spheroid[0]);var defn;if(key in aliases){return aliases[key]}if(/^grs1980/.test(key)){return"GRS80"}if(key=="sphere"){return null}for(var i=0;i-1}}function get_simple_maker_test(projId){return function(P){var id=get_proj_id(P);return id&&id==projId}}function add_wkt_parser(is_match,parse){if(typeof is_match!="function")wkt_error("Missing WKT parser test");if(typeof parse!="function")wkt_error("Missing WKT parse function");wkt_parsers.push([is_match,parse])}function add_wkt_maker(is_match,make){if(typeof is_match!="function")wkt_error("Missing WKT maker test");if(typeof make!="function")wkt_error("Missing WKT maker function");wkt_makers.push([is_match,make])}add_wkt_parser(wkt_is_utm,wkt_to_utm);add_wkt_parser(wkt_is_ups,wkt_to_ups);add_wkt_maker(get_simple_maker_test("utm"),wkt_from_utm);add_wkt_maker(get_simple_maker_test("ups"),wkt_from_ups);var WKT_UTM=/UTM_zone_([0-9]{1,2})(N|S)/i;var WKT_UPS=/UPS_(North|South)/i;function wkt_is_utm(projcs){return WKT_UTM.test(wkt_name_to_slug(projcs.NAME))}function wkt_is_ups(projcs){return WKT_UPS.test(wkt_name_to_slug(projcs.NAME))}function wkt_to_utm(projcs){return wkt_projcs_converter({PROJECTION:wkt_simple_projection_converter("utm"),PARAMETER:utm_params})(projcs);function utm_params(projcs){var match=WKT_UTM.exec(wkt_name_to_slug(projcs.NAME));var params="+zone="+match[1];if(match[2]=="S")params+=" +south";return params}}function wkt_to_ups(projcs){return wkt_projcs_converter({PROJECTION:wkt_simple_projection_converter("ups"),PARAMETER:ups_params})(projcs);function ups_params(projcs){var match=WKT_UPS.exec(wkt_name_to_slug(projcs.NAME));return match[1].toLowerCase()=="south"?"+south":""}}function wkt_from_utm(P){return wkt_projcs_maker({NAME:wkt_make_utm_name,PROJECTION:function(){return"Transverse_Mercator"},PARAMETER:wkt_make_utm_params})(P)}function wkt_from_ups(P){return wkt_projcs_maker({NAME:wkt_make_ups_name,PROJECTION:function(){return"Polar_Stereographic"},PARAMETER:wkt_make_ups_params})(P)}function wkt_make_utm_name(P,projcs){return projcs.GEOGCS.NAME+" / UTM zone "+pj_param(P.params,"szone")+(pj_param(P.params,"tsouth")?"S":"N")}function wkt_make_ups_name(P,projcs){return projcs.GEOGCS.NAME+" / UPS "+(pj_param(P.params,"tsouth")?"South":"North")}function wkt_make_utm_params(P){var lon0=P.lam0*180/M_PI;return[["latitude_of_origin",0],["central_meridian",lon0],["scale_factor",P.k0],["false_easting",P.x0],["false_northing",P.y0]]}function wkt_make_ups_params(P){return[["latitude_of_origin",-90],["central_meridian",0],["scale_factor",.994],["false_easting",2e6],["false_northing",2e6]]}add_wkt_parser(get_simple_parser_test("Mercator_2SP,Mercator_1SP,Mercator,Mercator_Auxiliary_Sphere"),wkt_projcs_converter({GEOGCS:wkt_convert_merc_geogcs,PROJECTION:wkt_simple_projection_converter("merc"),PARAMETER:wkt_convert_merc_params}));add_wkt_maker(get_simple_maker_test("merc"),wkt_projcs_maker({GEOGCS:wkt_make_merc_geogcs,PROJECTION:wkt_make_merc_projection,PARAMETER:wkt_make_merc_params,NAME:wkt_make_merc_name}));function wkt_make_merc_name(P){return wkt_proj4_is_webmercator(P)?"WGS 84 / Pseudo-Mercator":null}function wkt_make_merc_geogcs(P){if(wkt_proj4_is_webmercator(P)){return wkt_make_geogcs(pj_init("+proj=longlat +datum=WGS84"))}return null}function wkt_convert_merc_geogcs(projcs){var opts=wkt_projcs_is_webmercator(projcs)?{aux_sphere:true}:null;return wkt_convert_geogcs(projcs.GEOGCS,opts)}function wkt_make_merc_projection(P){return wkt_proj4_is_merc_2sp(P)?"Mercator_2SP":"Mercator_1SP"}function wkt_convert_merc_params(projcs){var rules=wkt_projcs_is_merc_2sp(projcs)?"lat_ts,lat_0b":"lat_tsb,lat_ts";return wkt_parameter_converter(rules)(projcs)}function wkt_make_merc_params(P){var rules=wkt_proj4_is_merc_2sp(P)?"lat_ts,lat_0b":"lat_tsb";return wkt_parameter_maker(rules)(P)}function wkt_projcs_is_merc_2sp(projcs){var param=wkt_find_parameter_by_name(projcs,"standard_parallel_1");return param&¶m[1]!=0}function wkt_proj4_is_merc_2sp(P){return pj_param(P.params,"tlat_ts")&&pj_param(P.params,"dlat_ts")!=0}function wkt_projcs_is_webmercator(projcs){return/(Web_Mercator|Pseudo_Mercator)/i.test(wkt_name_to_slug(projcs.NAME))}function wkt_proj4_is_webmercator(P){return P.es===0&&P.a==6378137}var wkt_common_params=[["x_0","false_easting","m"],["y_0","false_northing","m"],["k_0","scale_factor","f"],["lat_0","latitude_of_center"],["lon_0","central_meridian"]];var wkt_param_table={lat_0b:["lat_0","latitude_of_origin"],lat_0c:["lat_0",null],lat_0d:["lat_0","standard_parallel_1"],lat_1:["lat_1","standard_parallel_1"],lat_1b:["lat_1","latitude_of_point_1"],lat_1c:["lat_1","latitude_of_origin"],lat_2:["lat_2","standard_parallel_2"],lat_2b:["lat_2","latitude_of_point_2"],lat_ts:["lat_ts","standard_parallel_1"],lat_tsb:["lat_ts","latitude_of_origin"],lonc:["lonc","central_meridian"],lon_1:["lon_1","longitude_of_point_1"],lon_2:["lon_2","longitude_of_point_2"],alpha:["alpha","azimuth"],gamma:["gamma","rectified_grid_angle"],h:["h","height","f"]};var wkt_param_aliases={longitude_of_center:"central_meridian",latitude_of_origin:"latitude_of_center",latitude_of_center:"latitude_of_origin",longitude_of_1st_point:"longitude_of_point_1",longitude_of_2nd_point:"longitude_of_point_2",latitude_of_1st_point:"latitude_of_point_1",latitude_of_2nd_point:"latitude_of_point_2",k:"k_0"};function wkt_convert_param_name_old(wktName,proj){var defn=wkt_find_param_defn_old(proj,function(defn){return defn[1]==wktName});return defn?defn[0]:""}function wkt_find_param_defn_old(proj,test){var defn,projs;for(var i=0;i-1&&value===0||name=="k_0"&&value==1){return}}return"+"+name+"="+value}function wkt_make_parameter(defn,strVal,toMeter){var type=defn[2],val;if(type=="m"){val=parseFloat(strVal)/toMeter}else if(type=="f"){val=parseFloat(strVal)}else{val=dmstod(strVal)}return[defn[1],val]}function wkt_find_parameter_by_name(projcs,name){var params=projcs.PARAMETER||[];var paramName;for(var i=0;i=EPS){con=e*sinphi;return one_es*(sinphi/(1-con*con)-.5/e*log((1-con)/(1+con)))}else return sinphi+sinphi}function pj_msfn(sinphi,cosphi,es){return cosphi/sqrt(1-es*sinphi*sinphi)}pj_add(pj_aea,"aea","Albers Equal Area","\n\tConic Sph&Ell\n\tlat_1= lat_2=");pj_add(pj_leac,"leac","Lambert Equal Area Conic","\n\tConic, Sph&Ell\n\tlat_1= south");function pj_aea(P){var phi1=pj_param(P.params,"rlat_1");var phi2=pj_param(P.params,"rlat_2");pj_aea_init(P,phi1,phi2)}function pj_leac(P){var phi1=pj_param(P.params,"rlat_1");var phi2=pj_param(P.params,"bsouth")?-M_HALFPI:M_HALFPI;pj_aea_init(P,phi1,phi2)}function pj_aea_init(P,phi1,phi2){var ec,n,c,dd,n2,rho0,rho,en,ellips,cosphi,sinphi,secant,ml2,m2,ml1,m1;P.fwd=e_fwd;P.inv=e_inv;if(fabs(phi1+phi2)=EPS10;if(ellips=P.es>0){en=pj_enfn(P.es);m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_qsfn(sinphi,P.e,P.one_es);if(secant){sinphi=sin(phi2);cosphi=cos(phi2);m2=pj_msfn(sinphi,cosphi,P.es);ml2=pj_qsfn(sinphi,P.e,P.one_es);n=(m1*m1-m2*m2)/(ml2-ml1)}ec=1-.5*P.one_es*log((1-P.e)/(1+P.e))/P.e;c=m1*m1+n*ml1;dd=1/n;rho0=dd*sqrt(c-n*pj_qsfn(sin(P.phi0),P.e,P.one_es))}else{if(secant)n=.5*(n+sin(phi2));n2=n+n;c=cosphi*cosphi+n2*sinphi;dd=1/n;rho0=dd*sqrt(c-n2*sin(P.phi0))}function e_fwd(lp,xy){var lam=lp.lam;var rho;if((rho=c-(ellips?n*pj_qsfn(sin(lp.phi),P.e,P.one_es):n2*sin(lp.phi)))<0)f_error();rho=dd*sqrt(rho);xy.x=rho*sin(lam*=n);xy.y=rho0-rho*cos(lam)}function e_inv(xy,lp){var TOL7=1e-7,x=xy.x,y=rho0-xy.y,rho=hypot(x,y);if(rho!=0){if(n<0){rho=-rho;x=-x;y=-y}lp.phi=rho/dd;if(ellips){lp.phi=(c-lp.phi*lp.phi)/n;if(fabs(ec-fabs(lp.phi))>TOL7){if((lp.phi=phi1_(lp.phi,P.e,P.one_es))==HUGE_VAL)i_error()}else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else if(fabs(lp.phi=(c-lp.phi*lp.phi)/n2)<=1)lp.phi=asin(lp.phi);else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;lp.lam=atan2(x,y)/n}else{lp.lam=0;lp.phi=n>0?M_HALFPI:-M_HALFPI}}function phi1_(qs,Te,Tone_es){var N_ITER=15,EPSILON=1e-7,TOL=1e-10;var Phi,sinpi,cospi,con,com,dphi,i;Phi=asin(.5*qs);if(TeTOL&&--i);return i?Phi:HUGE_VAL}}function pj_enfn(es){var C00=1,C02=.25,C04=.046875,C06=.01953125,C08=.01068115234375,C22=.75,C44=.46875,C46=.013020833333333334,C48=.007120768229166667,C66=.3645833333333333,C68=.005696614583333333,C88=.3076171875;var en=[],t;en[0]=C00-es*(C02+es*(C04+es*(C06+es*C08)));en[1]=es*(C22-es*(C04+es*(C06+es*C08)));en[2]=(t=es*es)*(C44-es*(C46+es*C48));en[3]=(t*=es)*(C66-es*C68);en[4]=t*es*C88;return en}function pj_mlfn(phi,sphi,cphi,en){cphi*=sphi;sphi*=sphi;return en[0]*phi-cphi*(en[1]+sphi*(en[2]+sphi*(en[3]+sphi*en[4])))}function pj_inv_mlfn(arg,es,en){var EPS=1e-11,MAX_ITER=10,EN_SIZE=5;var k=1/(1-es),s,t,phi;phi=arg;for(var i=MAX_ITER;i>0;--i){s=sin(phi);t=1-es*s*s;phi-=t=(pj_mlfn(phi,s,cos(phi),en)-arg)*(t*sqrt(t))*k;if(fabs(t)=1){if(av>ONE_TOL)pj_ctx_set_errno(-19);return v<0?-M_HALFPI:M_HALFPI}return asin(v)}function aacos(v){var ONE_TOL=1.00000000000001;var av=fabs(v);if(av>=1){if(av>ONE_TOL)pj_ctx_set_errno(-19);return v<0?M_PI:0}return acos(v)}function asqrt(v){return v<=0?0:sqrt(v)}function aatan2(n,d){var ATOL=1e-50;return fabs(n)=0)y=y*x+p[s++];return y};m.AngRound=function(x){if(x===0)return x;var z=1/16,y=Math.abs(x);y=y90?Number.NaN:x};m.AngDiff=function(x,y){var r=m.sum(m.AngNormalize(-x),m.AngNormalize(y)),d=m.AngNormalize(r.s),t=r.t;return m.sum(d===180&&t>0?-180:d,t)};m.sincosd=function(x){var r,q,s,c,sinx,cosx;r=x%360;q=Math.floor(r/90+.5);r-=90*q;r*=this.degree;s=Math.sin(r);c=Math.cos(r);switch(q&3){case 0:sinx=s;cosx=c;break;case 1:sinx=c;cosx=-s;break;case 2:sinx=-s;cosx=-c;break;default:sinx=-c;cosx=s;break}if(x){sinx+=0;cosx+=0}return{s:sinx,c:cosx}};m.atan2d=function(y,x){var q=0,t,ang;if(Math.abs(y)>Math.abs(x)){t=x;x=y;y=t;q=2}if(x<0){x=-x;++q}ang=Math.atan2(y,x)/this.degree;switch(q){case 1:ang=(y>=0?180:-180)-ang;break;case 2:ang=90-ang;break;case 3:ang=-90+ang;break}return ang}})(GeographicLib.Math);(function(a,m){a.Accumulator=function(y){this.Set(y)};a.Accumulator.prototype.Set=function(y){if(!y)y=0;if(y.constructor===a.Accumulator){this._s=y._s;this._t=y._t}else{this._s=y;this._t=0}};a.Accumulator.prototype.Add=function(y){var u=m.sum(y,this._t),v=m.sum(u.s,this._s);u=u.t;this._s=v.s;this._t=v.t;if(this._s===0)this._s=u;else this._t+=u};a.Accumulator.prototype.Sum=function(y){var b;if(!y)return this._s;else{b=new a.Accumulator(this);b.Add(y);return b._s}};a.Accumulator.prototype.Negate=function(){this._s*=-1;this._t*=-1}})(GeographicLib.Accumulator,GeographicLib.Math);GeographicLib.Geodesic={};GeographicLib.GeodesicLine={};GeographicLib.PolygonArea={};(function(g,l,p,m,c){var GEOGRAPHICLIB_GEODESIC_ORDER=6,nA1_=GEOGRAPHICLIB_GEODESIC_ORDER,nA2_=GEOGRAPHICLIB_GEODESIC_ORDER,nA3_=GEOGRAPHICLIB_GEODESIC_ORDER,nA3x_=nA3_,nC3x_,nC4x_,maxit1_=20,maxit2_=maxit1_+m.digits+10,tol0_=m.epsilon,tol1_=200*tol0_,tol2_=Math.sqrt(tol0_),tolb_=tol0_*tol1_,xthresh_=1e3*tol2_,CAP_NONE=0,CAP_ALL=31,CAP_MASK=CAP_ALL,OUT_ALL=32640,astroid,A1m1f_coeff,C1f_coeff,C1pf_coeff,A2m1f_coeff,C2f_coeff,A3_coeff,C3_coeff,C4_coeff;g.tiny_=Math.sqrt(Number.MIN_VALUE);g.nC1_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC1p_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC2_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC3_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC4_=GEOGRAPHICLIB_GEODESIC_ORDER;nC3x_=g.nC3_*(g.nC3_-1)/2;nC4x_=g.nC4_*(g.nC4_+1)/2;g.CAP_C1=1<<0;g.CAP_C1p=1<<1;g.CAP_C2=1<<2;g.CAP_C3=1<<3;g.CAP_C4=1<<4;g.NONE=0;g.ARC=1<<6;g.LATITUDE=1<<7|CAP_NONE;g.LONGITUDE=1<<8|g.CAP_C3;g.AZIMUTH=1<<9|CAP_NONE;g.DISTANCE=1<<10|g.CAP_C1;g.STANDARD=g.LATITUDE|g.LONGITUDE|g.AZIMUTH|g.DISTANCE;g.DISTANCE_IN=1<<11|g.CAP_C1|g.CAP_C1p;g.REDUCEDLENGTH=1<<12|g.CAP_C1|g.CAP_C2;g.GEODESICSCALE=1<<13|g.CAP_C1|g.CAP_C2;g.AREA=1<<14|g.CAP_C4;g.ALL=OUT_ALL|CAP_ALL;g.LONG_UNROLL=1<<15;g.OUT_MASK=OUT_ALL|g.LONG_UNROLL;g.SinCosSeries=function(sinp,sinx,cosx,c){var k=c.length,n=k-(sinp?1:0),ar=2*(cosx-sinx)*(cosx+sinx),y0=n&1?c[--k]:0,y1=0;n=Math.floor(n/2);while(n--){y1=ar*y0-y1+c[--k];y0=ar*y1-y0+c[--k]}return sinp?2*sinx*cosx*y0:cosx*(y0-y1)};astroid=function(x,y){var k,p=m.sq(x),q=m.sq(y),r=(p+q-1)/6,S,r2,r3,disc,u,T3,T,ang,v,uv,w;if(!(q===0&&r<=0)){S=p*q/4;r2=m.sq(r);r3=r*r2;disc=S*(S+2*r3);u=r;if(disc>=0){T3=S+r3;T3+=T3<0?-Math.sqrt(disc):Math.sqrt(disc);T=m.cbrt(T3);u+=T+(T!==0?r2/T:0)}else{ang=Math.atan2(Math.sqrt(-disc),-(S+r3));u+=2*r*Math.cos(ang/3)}v=Math.sqrt(m.sq(u)+q);uv=u<0?q/(v-u):u+v;w=(uv-q)/(2*v);k=uv/(Math.sqrt(uv+m.sq(w))+w)}else{k=0}return k};A1m1f_coeff=[+1,4,64,0,256];g.A1m1f=function(eps){var p=Math.floor(nA1_/2),t=m.polyval(p,A1m1f_coeff,0,m.sq(eps))/A1m1f_coeff[p+1];return(t+eps)/(1-eps)};C1f_coeff=[-1,6,-16,32,-9,64,-128,2048,+9,-16,768,+3,-5,512,-7,1280,-7,2048];g.C1f=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC1_;++l){p=Math.floor((g.nC1_-l)/2);c[l]=d*m.polyval(p,C1f_coeff,o,eps2)/C1f_coeff[o+p+1];o+=p+2;d*=eps}};C1pf_coeff=[+205,-432,768,1536,+4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,+3467,7680,+38081,61440];g.C1pf=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC1p_;++l){p=Math.floor((g.nC1p_-l)/2);c[l]=d*m.polyval(p,C1pf_coeff,o,eps2)/C1pf_coeff[o+p+1];o+=p+2;d*=eps}};A2m1f_coeff=[-11,-28,-192,0,256];g.A2m1f=function(eps){var p=Math.floor(nA2_/2),t=m.polyval(p,A2m1f_coeff,0,m.sq(eps))/A2m1f_coeff[p+1];return(t-eps)/(1+eps)};C2f_coeff=[+1,2,16,32,+35,64,384,2048,+15,80,768,+7,35,512,+63,1280,+77,2048];g.C2f=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC2_;++l){p=Math.floor((g.nC2_-l)/2);c[l]=d*m.polyval(p,C2f_coeff,o,eps2)/C2f_coeff[o+p+1];o+=p+2;d*=eps}};g.Geodesic=function(a,f){this.a=a;this.f=f;this._f1=1-this.f;this._e2=this.f*(2-this.f);this._ep2=this._e2/m.sq(this._f1);this._n=this.f/(2-this.f);this._b=this.a*this._f1;this._c2=(m.sq(this.a)+m.sq(this._b)*(this._e2===0?1:(this._e2>0?m.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2;this._etol2=.1*tol2_/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2);if(!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(nA3x_);this._C3x=new Array(nC3x_);this._C4x=new Array(nC4x_);this.A3coeff();this.C3coeff();this.C4coeff()};A3_coeff=[-3,128,-2,-3,64,-1,-3,-1,16,+3,-1,-2,8,+1,-1,2,+1,1];g.Geodesic.prototype.A3coeff=function(){var o=0,k=0,j,p;for(j=nA3_-1;j>=0;--j){p=Math.min(nA3_-j-1,j);this._A3x[k++]=m.polyval(p,A3_coeff,o,this._n)/A3_coeff[o+p+1];o+=p+2}};C3_coeff=[+3,128,+2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,+5,256,+1,3,128,-3,-2,3,64,+1,-3,2,32,+7,512,-10,9,384,+5,-9,5,192,+7,512,-14,7,512,+21,2560];g.Geodesic.prototype.C3coeff=function(){var o=0,k=0,l,j,p;for(l=1;l=l;--j){p=Math.min(g.nC3_-j-1,j);this._C3x[k++]=m.polyval(p,C3_coeff,o,this._n)/C3_coeff[o+p+1];o+=p+2}}};C4_coeff=[+97,15015,+1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,+64,624,-4576,6864,-3003,15015,+100,208,572,3432,-12012,30030,45045,+1,9009,-2944,468,135135,+5792,1040,-1287,135135,+5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,+8,10725,+1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,+1024,-208,105105,+3584,-3328,1144,315315,-128,135135,-2560,832,405405,+128,99099];g.Geodesic.prototype.C4coeff=function(){var o=0,k=0,l,j,p;for(l=0;l=l;--j){p=g.nC4_-j-1;this._C4x[k++]=m.polyval(p,C4_coeff,o,this._n)/C4_coeff[o+p+1];o+=p+2}}};g.Geodesic.prototype.A3f=function(eps){return m.polyval(nA3x_-1,this._A3x,0,eps)};g.Geodesic.prototype.C3f=function(eps,c){var mult=1,o=0,l,p;for(l=1;l=0&&sbet12<.5&&cbet2*lam12<.5;if(shortline){sbetm2=m.sq(sbet1+sbet2);sbetm2/=sbetm2+m.sq(cbet1+cbet2);vals.dnm=Math.sqrt(1+this._ep2*sbetm2);omg12=lam12/(this._f1*vals.dnm);somg12=Math.sin(omg12);comg12=Math.cos(omg12)}else{somg12=slam12;comg12=clam12}vals.salp1=cbet2*somg12;vals.calp1=comg12>=0?sbet12+cbet2*sbet1*m.sq(somg12)/(1+comg12):sbet12a-cbet2*sbet1*m.sq(somg12)/(1-comg12);ssig12=m.hypot(vals.salp1,vals.calp1);csig12=sbet1*sbet2+cbet1*cbet2*comg12;if(shortline&&ssig12=0?m.sq(somg12)/(1+comg12):1-comg12);t=m.hypot(vals.salp2,vals.calp2);vals.salp2/=t;vals.calp2/=t;vals.sig12=Math.atan2(ssig12,csig12)}else if(Math.abs(this._n)>.1||csig12>=0||ssig12>=6*Math.abs(this._n)*Math.PI*m.sq(cbet1)){}else{lam12x=Math.atan2(-slam12,-clam12);if(this.f>=0){k2=m.sq(sbet1)*this._ep2;eps=k2/(2*(1+Math.sqrt(1+k2))+k2);lamscale=this.f*cbet1*this.A3f(eps)*Math.PI;betscale=lamscale*cbet1;x=lam12x/lamscale;y=sbet12a/betscale}else{cbet12a=cbet2*cbet1-sbet2*sbet1;bet12a=Math.atan2(sbet12a,cbet12a);nvals=this.Lengths(this._n,Math.PI+bet12a,sbet1,-cbet1,dn1,sbet2,cbet2,dn2,cbet1,cbet2,g.REDUCEDLENGTH,C1a,C2a);m12b=nvals.m12b;m0=nvals.m0;x=-1+m12b/(cbet1*cbet2*m0*Math.PI);betscale=x<-.01?sbet12a/x:-this.f*m.sq(cbet1)*Math.PI;lamscale=betscale/cbet1;y=lam12/lamscale}if(y>-tol1_&&x>-1-xthresh_){if(this.f>=0){vals.salp1=Math.min(1,-x);vals.calp1=-Math.sqrt(1-m.sq(vals.salp1))}else{vals.calp1=Math.max(x>-tol1_?0:-1,x);vals.salp1=Math.sqrt(1-m.sq(vals.calp1))}}else{k=astroid(x,y);omg12a=lamscale*(this.f>=0?-x*k/(1+k):-y*(1+k)/k);somg12=Math.sin(omg12a);comg12=-Math.cos(omg12a);vals.salp1=cbet2*somg12;vals.calp1=sbet12a-cbet2*sbet1*m.sq(somg12)/(1-comg12)}}if(!(vals.salp1<=0)){t=m.hypot(vals.salp1,vals.calp1);vals.salp1/=t;vals.calp1/=t}else{vals.salp1=1;vals.calp1=0}return vals};g.Geodesic.prototype.Lambda12=function(sbet1,cbet1,dn1,sbet2,cbet2,dn2,salp1,calp1,slam120,clam120,diffp,C1a,C2a,C3a){var vals={},t,salp0,calp0,somg1,comg1,somg2,comg2,somg12,comg12,B312,eta,k2,nvals;if(sbet1===0&&calp1===0)calp1=-g.tiny_;salp0=salp1*cbet1;calp0=m.hypot(calp1,salp1*sbet1);vals.ssig1=sbet1;somg1=salp0*sbet1;vals.csig1=comg1=calp1*cbet1;t=m.hypot(vals.ssig1,vals.csig1);vals.ssig1/=t;vals.csig1/=t;vals.salp2=cbet2!==cbet1?salp0/cbet2:salp1;vals.calp2=cbet2!==cbet1||Math.abs(sbet2)!==-sbet1?Math.sqrt(m.sq(calp1*cbet1)+(cbet1<-sbet1?(cbet2-cbet1)*(cbet1+cbet2):(sbet1-sbet2)*(sbet1+sbet2)))/cbet2:Math.abs(calp1);vals.ssig2=sbet2;somg2=salp0*sbet2;vals.csig2=comg2=vals.calp2*cbet2;t=m.hypot(vals.ssig2,vals.csig2);vals.ssig2/=t;vals.csig2/=t;vals.sig12=Math.atan2(Math.max(0,vals.csig1*vals.ssig2-vals.ssig1*vals.csig2),vals.csig1*vals.csig2+vals.ssig1*vals.ssig2);somg12=Math.max(0,comg1*somg2-somg1*comg2);comg12=comg1*comg2+somg1*somg2;eta=Math.atan2(somg12*clam120-comg12*slam120,comg12*clam120+somg12*slam120);k2=m.sq(calp0)*this._ep2;vals.eps=k2/(2*(1+Math.sqrt(1+k2))+k2);this.C3f(vals.eps,C3a);B312=g.SinCosSeries(true,vals.ssig2,vals.csig2,C3a)-g.SinCosSeries(true,vals.ssig1,vals.csig1,C3a);vals.domg12=-this.f*this.A3f(vals.eps)*salp0*(vals.sig12+B312);vals.lam12=eta+vals.domg12;if(diffp){if(vals.calp2===0)vals.dlam12=-2*this._f1*dn1/sbet1;else{nvals=this.Lengths(vals.eps,vals.sig12,vals.ssig1,vals.csig1,dn1,vals.ssig2,vals.csig2,dn2,cbet1,cbet2,g.REDUCEDLENGTH,C1a,C2a);vals.dlam12=nvals.m12b;vals.dlam12*=this._f1/(vals.calp2*cbet2)}}return vals};g.Geodesic.prototype.Inverse=function(lat1,lon1,lat2,lon2,outmask){var r,vals;if(!outmask)outmask=g.STANDARD;if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;outmask&=g.OUT_MASK;r=this.InverseInt(lat1,lon1,lat2,lon2,outmask);vals=r.vals;if(outmask&g.AZIMUTH){vals.azi1=m.atan2d(r.salp1,r.calp1);vals.azi2=m.atan2d(r.salp2,r.calp2)}return vals};g.Geodesic.prototype.InverseInt=function(lat1,lon1,lat2,lon2,outmask){var vals={},lon12,lon12s,lonsign,t,swapp,latsign,sbet1,cbet1,sbet2,cbet2,s12x,m12x,dn1,dn2,lam12,slam12,clam12,sig12,calp1,salp1,calp2,salp2,C1a,C2a,C3a,meridian,nvals,ssig1,csig1,ssig2,csig2,eps,omg12,dnm,numit,salp1a,calp1a,salp1b,calp1b,tripn,tripb,v,dv,dalp1,sdalp1,cdalp1,nsalp1,lengthmask,salp0,calp0,alp12,k2,A4,C4a,B41,B42,somg12,comg12,domg12,dbet1,dbet2,salp12,calp12,sdomg12,cdomg12;vals.lat1=lat1=m.LatFix(lat1);vals.lat2=lat2=m.LatFix(lat2);lat1=m.AngRound(lat1);lat2=m.AngRound(lat2);lon12=m.AngDiff(lon1,lon2);lon12s=lon12.t;lon12=lon12.s;if(outmask&g.LONG_UNROLL){vals.lon1=lon1;vals.lon2=lon1+lon12+lon12s}else{vals.lon1=m.AngNormalize(lon1);vals.lon2=m.AngNormalize(lon2)}lonsign=lon12>=0?1:-1;lon12=lonsign*m.AngRound(lon12);lon12s=m.AngRound(180-lon12-lonsign*lon12s);lam12=lon12*m.degree;t=m.sincosd(lon12>90?lon12s:lon12);slam12=t.s;clam12=(lon12>90?-1:1)*t.c;swapp=Math.abs(lat1)=0){if(sig12<3*g.tiny_)sig12=m12x=s12x=0;m12x*=this._b;s12x*=this._b;vals.a12=sig12/m.degree}else meridian=false}somg12=2;if(!meridian&&sbet1===0&&(this.f<=0||lon12s>=this.f*180)){calp1=calp2=0;salp1=salp2=1;s12x=this.a*lam12;sig12=omg12=lam12/this._f1;m12x=this._b*Math.sin(sig12);if(outmask&g.GEODESICSCALE)vals.M12=vals.M21=Math.cos(sig12);vals.a12=lon12/this._f1}else if(!meridian){nvals=this.InverseStart(sbet1,cbet1,dn1,sbet2,cbet2,dn2,lam12,slam12,clam12,C1a,C2a);sig12=nvals.sig12;salp1=nvals.salp1;calp1=nvals.calp1;if(sig12>=0){salp2=nvals.salp2;calp2=nvals.calp2;dnm=nvals.dnm;s12x=sig12*this._b*dnm;m12x=m.sq(dnm)*this._b*Math.sin(sig12/dnm);if(outmask&g.GEODESICSCALE)vals.M12=vals.M21=Math.cos(sig12/dnm);vals.a12=sig12/m.degree;omg12=lam12/(this._f1*dnm)}else{numit=0;salp1a=g.tiny_;calp1a=1;salp1b=g.tiny_;calp1b=-1;for(tripn=false,tripb=false;numit=(tripn?8:1)*tol0_))break;if(v>0&&(numitcalp1b/salp1b)){salp1b=salp1;calp1b=calp1}else if(v<0&&(numit0){dalp1=-v/dv;sdalp1=Math.sin(dalp1);cdalp1=Math.cos(dalp1);nsalp1=salp1*cdalp1+calp1*sdalp1;if(nsalp1>0&&Math.abs(dalp1)1){somg12=Math.sin(omg12);comg12=Math.cos(omg12)}if(!meridian&&comg12>-.7071&&sbet2-sbet1<1.75){domg12=1+comg12;dbet1=1+cbet1;dbet2=1+cbet2;alp12=2*Math.atan2(somg12*(sbet1*dbet2+sbet2*dbet1),domg12*(sbet1*sbet2+dbet1*dbet2))}else{salp12=salp2*calp1-calp2*salp1;calp12=calp2*calp1+salp2*salp1;if(salp12===0&&calp12<0){salp12=g.tiny_*calp1;calp12=-1}alp12=Math.atan2(salp12,calp12)}vals.S12+=this._c2*alp12;vals.S12*=swapp*lonsign*latsign;vals.S12+=0}if(swapp<0){t=salp1;salp1=salp2;salp2=t;t=calp1;calp1=calp2;calp2=t;if(outmask&g.GEODESICSCALE){t=vals.M12;vals.M12=vals.M21;vals.M21=t}}salp1*=swapp*lonsign;calp1*=swapp*latsign;salp2*=swapp*lonsign;calp2*=swapp*latsign;return{vals:vals,salp1:salp1,calp1:calp1,salp2:salp2,calp2:calp2}};g.Geodesic.prototype.GenDirect=function(lat1,lon1,azi1,arcmode,s12_a12,outmask){var line;if(!outmask)outmask=g.STANDARD;else if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;if(!arcmode)outmask|=g.DISTANCE_IN;line=new l.GeodesicLine(this,lat1,lon1,azi1,outmask);return line.GenPosition(arcmode,s12_a12,outmask)};g.Geodesic.prototype.Direct=function(lat1,lon1,azi1,s12,outmask){return this.GenDirect(lat1,lon1,azi1,false,s12,outmask)};g.Geodesic.prototype.ArcDirect=function(lat1,lon1,azi1,a12,outmask){return this.GenDirect(lat1,lon1,azi1,true,a12,outmask)};g.Geodesic.prototype.Line=function(lat1,lon1,azi1,caps){return new l.GeodesicLine(this,lat1,lon1,azi1,caps)};g.Geodesic.prototype.DirectLine=function(lat1,lon1,azi1,s12,caps){return this.GenDirectLine(lat1,lon1,azi1,false,s12,caps)};g.Geodesic.prototype.ArcDirectLine=function(lat1,lon1,azi1,a12,caps){return this.GenDirectLine(lat1,lon1,azi1,true,a12,caps)};g.Geodesic.prototype.GenDirectLine=function(lat1,lon1,azi1,arcmode,s12_a12,caps){var t;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;if(!arcmode)caps|=g.DISTANCE_IN;t=new l.GeodesicLine(this,lat1,lon1,azi1,caps);t.GenSetDistance(arcmode,s12_a12);return t};g.Geodesic.prototype.InverseLine=function(lat1,lon1,lat2,lon2,caps){var r,t,azi1;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;r=this.InverseInt(lat1,lon1,lat2,lon2,g.ARC);azi1=m.atan2d(r.salp1,r.calp1);if(caps&(g.OUT_MASK&g.DISTANCE_IN))caps|=g.DISTANCE;t=new l.GeodesicLine(this,lat1,lon1,azi1,caps,r.salp1,r.calp1);t.SetArc(r.vals.a12);return t};g.Geodesic.prototype.Polygon=function(polyline){return new p.PolygonArea(this,polyline)};g.WGS84=new g.Geodesic(c.WGS84.a,c.WGS84.f)})(GeographicLib.Geodesic,GeographicLib.GeodesicLine,GeographicLib.PolygonArea,GeographicLib.Math,GeographicLib.Constants);(function(g,l,m){l.GeodesicLine=function(geod,lat1,lon1,azi1,caps,salp1,calp1){var t,cbet1,sbet1,eps,s,c;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;this.a=geod.a;this.f=geod.f;this._b=geod._b;this._c2=geod._c2;this._f1=geod._f1;this.caps=caps|g.LATITUDE|g.AZIMUTH|g.LONG_UNROLL;this.lat1=m.LatFix(lat1);this.lon1=lon1;if(typeof salp1==="undefined"||typeof calp1==="undefined"){this.azi1=m.AngNormalize(azi1);t=m.sincosd(m.AngRound(this.azi1));this.salp1=t.s;this.calp1=t.c}else{this.azi1=azi1;this.salp1=salp1;this.calp1=calp1}t=m.sincosd(m.AngRound(this.lat1));sbet1=this._f1*t.s;cbet1=t.c;t=m.hypot(sbet1,cbet1);sbet1/=t;cbet1/=t;cbet1=Math.max(g.tiny_,cbet1);this._dn1=Math.sqrt(1+geod._ep2*m.sq(sbet1));this._salp0=this.salp1*cbet1;this._calp0=m.hypot(this.calp1,this.salp1*sbet1);this._ssig1=sbet1;this._somg1=this._salp0*sbet1;this._csig1=this._comg1=sbet1!==0||this.calp1!==0?cbet1*this.calp1:1;t=m.hypot(this._ssig1,this._csig1);this._ssig1/=t;this._csig1/=t;this._k2=m.sq(this._calp0)*geod._ep2;eps=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2);if(this.caps&g.CAP_C1){this._A1m1=g.A1m1f(eps);this._C1a=new Array(g.nC1_+1);g.C1f(eps,this._C1a);this._B11=g.SinCosSeries(true,this._ssig1,this._csig1,this._C1a);s=Math.sin(this._B11);c=Math.cos(this._B11);this._stau1=this._ssig1*c+this._csig1*s;this._ctau1=this._csig1*c-this._ssig1*s}if(this.caps&g.CAP_C1p){this._C1pa=new Array(g.nC1p_+1);g.C1pf(eps,this._C1pa)}if(this.caps&g.CAP_C2){this._A2m1=g.A2m1f(eps);this._C2a=new Array(g.nC2_+1);g.C2f(eps,this._C2a);this._B21=g.SinCosSeries(true,this._ssig1,this._csig1,this._C2a)}if(this.caps&g.CAP_C3){this._C3a=new Array(g.nC3_);geod.C3f(eps,this._C3a);this._A3c=-this.f*this._salp0*geod.A3f(eps);this._B31=g.SinCosSeries(true,this._ssig1,this._csig1,this._C3a)}if(this.caps&g.CAP_C4){this._C4a=new Array(g.nC4_);geod.C4f(eps,this._C4a);this._A4=m.sq(this.a)*this._calp0*this._salp0*geod._e2;this._B41=g.SinCosSeries(false,this._ssig1,this._csig1,this._C4a)}this.a13=this.s13=Number.NaN};l.GeodesicLine.prototype.GenPosition=function(arcmode,s12_a12,outmask){var vals={},sig12,ssig12,csig12,B12,AB1,ssig2,csig2,tau12,s,c,serr,omg12,lam12,lon12,E,sbet2,cbet2,somg2,comg2,salp2,calp2,dn2,B22,AB2,J12,t,B42,salp12,calp12;if(!outmask)outmask=g.STANDARD;else if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;outmask&=this.caps&g.OUT_MASK;vals.lat1=this.lat1;vals.azi1=this.azi1;vals.lon1=outmask&g.LONG_UNROLL?this.lon1:m.AngNormalize(this.lon1);if(arcmode)vals.a12=s12_a12;else vals.s12=s12_a12;if(!(arcmode||this.caps&g.DISTANCE_IN&g.OUT_MASK)){vals.a12=Number.NaN;return vals}B12=0;AB1=0;if(arcmode){sig12=s12_a12*m.degree;t=m.sincosd(s12_a12);ssig12=t.s;csig12=t.c}else{tau12=s12_a12/(this._b*(1+this._A1m1));s=Math.sin(tau12);c=Math.cos(tau12);B12=-g.SinCosSeries(true,this._stau1*c+this._ctau1*s,this._ctau1*c-this._stau1*s,this._C1pa);sig12=tau12-(B12-this._B11);ssig12=Math.sin(sig12);csig12=Math.cos(sig12);if(Math.abs(this.f)>.01){ssig2=this._ssig1*csig12+this._csig1*ssig12;csig2=this._csig1*csig12-this._ssig1*ssig12;B12=g.SinCosSeries(true,ssig2,csig2,this._C1a);serr=(1+this._A1m1)*(sig12+(B12-this._B11))-s12_a12/this._b;sig12=sig12-serr/Math.sqrt(1+this._k2*m.sq(ssig2));ssig12=Math.sin(sig12);csig12=Math.cos(sig12)}}ssig2=this._ssig1*csig12+this._csig1*ssig12;csig2=this._csig1*csig12-this._ssig1*ssig12;dn2=Math.sqrt(1+this._k2*m.sq(ssig2));if(outmask&(g.DISTANCE|g.REDUCEDLENGTH|g.GEODESICSCALE)){if(arcmode||Math.abs(this.f)>.01)B12=g.SinCosSeries(true,ssig2,csig2,this._C1a);AB1=(1+this._A1m1)*(B12-this._B11)}sbet2=this._calp0*ssig2;cbet2=m.hypot(this._salp0,this._calp0*csig2);if(cbet2===0)cbet2=csig2=g.tiny_;salp2=this._salp0;calp2=this._calp0*csig2;if(arcmode&&outmask&g.DISTANCE)vals.s12=this._b*((1+this._A1m1)*sig12+AB1);if(outmask&g.LONGITUDE){somg2=this._salp0*ssig2;comg2=csig2;E=m.copysign(1,this._salp0);omg12=outmask&g.LONG_UNROLL?E*(sig12-(Math.atan2(ssig2,csig2)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(E*somg2,comg2)-Math.atan2(E*this._somg1,this._comg1))):Math.atan2(somg2*this._comg1-comg2*this._somg1,comg2*this._comg1+somg2*this._somg1);lam12=omg12+this._A3c*(sig12+(g.SinCosSeries(true,ssig2,csig2,this._C3a)-this._B31));lon12=lam12/m.degree;vals.lon2=outmask&g.LONG_UNROLL?this.lon1+lon12:m.AngNormalize(m.AngNormalize(this.lon1)+m.AngNormalize(lon12))}if(outmask&g.LATITUDE)vals.lat2=m.atan2d(sbet2,this._f1*cbet2);if(outmask&g.AZIMUTH)vals.azi2=m.atan2d(salp2,calp2);if(outmask&(g.REDUCEDLENGTH|g.GEODESICSCALE)){B22=g.SinCosSeries(true,ssig2,csig2,this._C2a);AB2=(1+this._A2m1)*(B22-this._B21);J12=(this._A1m1-this._A2m1)*sig12+(AB1-AB2);if(outmask&g.REDUCEDLENGTH)vals.m12=this._b*(dn2*(this._csig1*ssig2)-this._dn1*(this._ssig1*csig2)-this._csig1*csig2*J12);if(outmask&g.GEODESICSCALE){t=this._k2*(ssig2-this._ssig1)*(ssig2+this._ssig1)/(this._dn1+dn2);vals.M12=csig12+(t*ssig2-csig2*J12)*this._ssig1/this._dn1;vals.M21=csig12-(t*this._ssig1-this._csig1*J12)*ssig2/dn2}}if(outmask&g.AREA){B42=g.SinCosSeries(false,ssig2,csig2,this._C4a);if(this._calp0===0||this._salp0===0){salp12=salp2*this.calp1-calp2*this.salp1;calp12=calp2*this.calp1+salp2*this.salp1}else{salp12=this._calp0*this._salp0*(csig12<=0?this._csig1*(1-csig12)+ssig12*this._ssig1:ssig12*(this._csig1*ssig12/(1+csig12)+this._ssig1));calp12=m.sq(this._salp0)+m.sq(this._calp0)*this._csig1*csig2}vals.S12=this._c2*Math.atan2(salp12,calp12)+this._A4*(B42-this._B41)}if(!arcmode)vals.a12=sig12/m.degree;return vals};l.GeodesicLine.prototype.Position=function(s12,outmask){return this.GenPosition(false,s12,outmask)};l.GeodesicLine.prototype.ArcPosition=function(a12,outmask){return this.GenPosition(true,a12,outmask)};l.GeodesicLine.prototype.GenSetDistance=function(arcmode,s13_a13){if(arcmode)this.SetArc(s13_a13);else this.SetDistance(s13_a13)};l.GeodesicLine.prototype.SetDistance=function(s13){var r;this.s13=s13;r=this.GenPosition(false,this.s13,g.ARC);this.a13=0+r.a12};l.GeodesicLine.prototype.SetArc=function(a13){var r;this.a13=a13;r=this.GenPosition(true,this.a13,g.DISTANCE);this.s13=0+r.s12}})(GeographicLib.Geodesic,GeographicLib.GeodesicLine,GeographicLib.Math);pj_add(pj_aeqd,"aeqd","Azimuthal Equidistant","\n\tAzi, Sph&Ell\n\tlat_0 guam");function pj_aeqd(P){var EPS10=1e-10,TOL=1e-14,N_POLE=0,S_POLE=1,EQUIT=2,OBLIQ=3;var sinph0,cosph0,M1,N1,Mp,He,G,mode,en,g;P.phi0=pj_param(P.params,"rlat_0");if(fabs(fabs(P.phi0)-M_HALFPI)M_PI){if(c_rh-EPS10>M_PI)i_error();c_rh=M_PI}else if(c_rhEPS){t=.5*(1+cosz);Krho=-log(t)/s-Cb/t}else{Krho=.5-Cb}xy.x=Krho*cosphi*sinlam;if(mode==OBLIQ)xy.y=Krho*(cosph0*sinphi-sinph0*cosphi*coslam);else xy.y=Krho*sinphi;break;case S_POLE:case N_POLE:lp.phi=fabs(p_halfpi-lp.phi);if(!no_cut&&lp.phi-EPS>M_HALFPI)f_error();if((lp.phi*=.5)>EPS){t=tan(lp.phi);Krho=-2*(log(cos(lp.phi))/t+t*Cb);xy.x=Krho*sinlam;xy.y=Krho*coslam;if(mode==N_POLE)xy.y=-xy.y}else xy.x=xy.y=0}}}pj_add(pj_wintri,"wintri","Winkel Tripel","\n\tMisc Sph\n\tlat_1");pj_add(pj_aitoff,"aitoff","Aitoff","\n\tMisc Sph");function pj_wintri(P){var Q=P.opaque={mode:1};if(pj_param(P.params,"tlat_1")){if((Q.cosphi1=cos(pj_param(P.params,"rlat_1")))===0){e_error(-22)}}else{Q.cosphi1=.6366197723675814}pj_aitoff(P)}function pj_aitoff(P){var Q=P.opaque||{mode:0};P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var c,d;if(d=acos(cos(lp.phi)*cos(c=.5*lp.lam))){xy.x=2*d*cos(lp.phi)*sin(c)*(xy.y=1/sin(d));xy.y*=d*sin(lp.phi)}else xy.x=xy.y=0;if(Q.mode){xy.x=(xy.x+lp.lam*Q.cosphi1)*.5;xy.y=(xy.y+lp.phi)*.5}}function s_inv(xy,lp){var MAXITER=10,MAXROUND=20,EPSILON=1e-12,round=0,iter,D,C,f1,f2,f1p,f1l,f2p,f2l,dp,dl,sl,sp,cp,cl,x,y;if(fabs(xy.x)M_PI)dl-=M_PI;while(dl<-M_PI)dl+=M_PI;lp.phi-=dp;lp.lam-=dl}while((fabs(dp)>EPSILON||fabs(dl)>EPSILON)&&iter++M_HALFPI)lp.phi-=2*(lp.phi-M_HALFPI);if(lp.phi<-M_HALFPI)lp.phi-=2*(lp.phi+M_HALFPI);if(fabs(fabs(lp.phi)-M_HALFPI)EPSILON||fabs(xy.y-y)>EPSILON)&&round++=EPS){if(ortl&&ax>=M_HALFPI)xy.x=sqrt(HLFPI2-lp.phi*lp.phi+EPS)+ax-M_HALFPI;else{f=.5*(HLFPI2/ax+ax);xy.x=ax-f+sqrt(f*f-xy.y*xy.y)}if(lp.lam<0)xy.x=-xy.x}else xy.x=0}}pj_add(pj_bertin1953,"bertin1953","Bertin 1953","\n\tMisc Sph no inv.");function pj_bertin1953(P){var cos_delta_phi,sin_delta_phi,cos_delta_gamma,sin_delta_gamma;P.es=0;P.fwd=s_fwd;P.lam0=0;P.phi0=DEG_TO_RAD*-42;cos_delta_phi=cos(P.phi0);sin_delta_phi=sin(P.phi0);cos_delta_gamma=1;sin_delta_gamma=0;function s_fwd(lp,xy){var fu=1.4,k=12,w=1.68,d;var cosphi,x,y,z,z0;lp.lam+=DEG_TO_RAD*-16.5;cosphi=cos(lp.phi);x=cos(lp.lam)*cosphi;y=sin(lp.lam)*cosphi;z=sin(lp.phi);z0=z*cos_delta_phi+x*sin_delta_phi;lp.lam=atan2(y*cos_delta_gamma-z0*sin_delta_gamma,x*cos_delta_phi-z*sin_delta_phi);z0=z0*cos_delta_gamma+y*sin_delta_gamma;lp.phi=asin(z0);lp.lam=adjlon(lp.lam);if(lp.lam+lp.phi<-fu){d=(lp.lam-lp.phi+1.6)*(lp.lam+lp.phi+fu)/8;lp.lam+=d;lp.phi-=.8*d*sin(lp.phi+M_PI/2)}cosphi=cos(lp.phi);d=sqrt(2/(1+cosphi*cos(lp.lam/2)));xy.x=w*d*cosphi*sin(lp.lam/2);xy.y=d*sin(lp.phi);d=(1-cos(lp.lam*lp.phi))/k;if(xy.y<0){xy.x*=1+d}if(xy.y>0){xy.x*=1+d/1.5*xy.x*xy.x}return xy}}pj_add(pj_boggs,"boggs","Boggs Eumorphic","\n\tPCyl., no inv., Sph.");function pj_boggs(P){var NITER=20,EPS=1e-7,ONETOL=1.000001,M_SQRT2=sqrt(2),FXC=2.00276,FXC2=1.11072,FYC=.49931;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var theta,th1,c,i;theta=lp.phi;if(fabs(fabs(lp.phi)-M_HALFPI)=M_HALFPI)cphi1=0;else cphi1=1/tan(phi1);P.inv=s_inv;P.fwd=s_fwd}function e_fwd(lp,xy){var rh,E,c;rh=am1+m1-pj_mlfn(lp.phi,E=sin(lp.phi),c=cos(lp.phi),en);E=c*lp.lam/(rh*sqrt(1-P.es*E*E));xy.x=rh*sin(E);xy.y=am1-rh*cos(E)}function e_inv(xy,lp){var s,rh;rh=hypot(xy.x,xy.y=am1-xy.y);lp.phi=pj_inv_mlfn(am1+m1-rh,P.es,en);if((s=fabs(lp.phi))EPS10){xy.x=rh*sin(E=lp.lam*cos(lp.phi)/rh);xy.y=cphi1-rh*cos(E)}else xy.x=xy.y=0}function s_inv(xy,lp){var rh=hypot(xy.x,xy.y=cphi1-xy.y);lp.phi=cphi1+phi1-rh;if(fabs(lp.phi)>M_HALFPI)i_error();if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10)lp.lam=0;else lp.lam=rh*atan2(xy.x,xy.y)/cos(lp.phi)}}pj_add(pj_cass,"cass","Cassini","\n\tCyl, Sph&Ell");function pj_cass(P){var C1=.16666666666666666,C2=.008333333333333333,C3=.041666666666666664,C4=.3333333333333333,C5=.06666666666666667;var m0,en;if(P.es){en=pj_enfn(P.es);m0=pj_mlfn(P.phi0,sin(P.phi0),cos(P.phi0),en);P.fwd=e_fwd;P.inv=e_inv}else{P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){var n,t,a1,c,a2,tn;xy.y=pj_mlfn(lp.phi,n=sin(lp.phi),c=cos(lp.phi),en);n=1/sqrt(1-P.es*n*n);tn=tan(lp.phi);t=tn*tn;a1=lp.lam*c;c*=P.es*c/(1-P.es);a2=a1*a1;xy.x=n*a1*(1-a2*t*(C1-(8-t+8*c)*a2*C2));xy.y-=m0-n*tn*a2*(.5+(5-t+6*c)*a2*C3)}function e_inv(xy,lp){var n,t,r,dd,d2,tn,ph1;ph1=pj_inv_mlfn(m0+xy.y,P.es,en);tn=tan(ph1);t=tn*tn;n=sin(ph1);r=1/(1-P.es*n*n);n=sqrt(r);r*=(1-P.es)*n;dd=xy.x/n;d2=dd*dd;lp.phi=ph1-n*tn/r*d2*(.5-(1+3*t)*d2*C3);lp.lam=dd*(1+t*d2*(-C4+(1+3*t)*d2*C5))/cos(ph1)}function s_fwd(lp,xy){xy.x=asin(cos(lp.phi)*sin(lp.lam));xy.y=atan2(tan(lp.phi),cos(lp.lam))-P.phi0}function s_inv(xy,lp){var dd=xy.y+P.phi0;lp.phi=asin(sin(dd)*cos(xy.x));lp.lam=atan2(tan(xy.x),cos(dd))}}function pj_authset(es){var P00=.3333333333333333,P01=.17222222222222222,P02=.10257936507936508,P10=.06388888888888888,P11=.0664021164021164,P20=.01677689594356261,APA=[];var t;APA[0]=es*P00;t=es*es;APA[0]+=t*P01;APA[1]=t*P10;t*=es;APA[0]+=t*P02;APA[1]+=t*P11;APA[2]=t*P20;return APA}function pj_authlat(beta,APA){var t=beta+beta;return beta+APA[0]*sin(t)+APA[1]*sin(t+t)+APA[2]*sin(t+t+t)}pj_add(pj_cea,"cea","Equal Area Cylindrical","\n\tCyl, Sph&Ell\n\tlat_ts=");function pj_cea(P){var t=0,qp,apa;if(pj_param(P.params,"tlat_ts")){P.k0=cos(t=pj_param(P.params,"rlat_ts"));if(P.k0<0){e_error(-24)}}if(P.es){t=sin(t);P.k0/=sqrt(1-P.es*t*t);P.e=sqrt(P.es);if(!(apa=pj_authset(P.es)))e_error_0();qp=pj_qsfn(1,P.e,P.one_es);P.fwd=e_fwd;P.inv=e_inv}else{P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){xy.x=P.k0*lp.lam;xy.y=.5*pj_qsfn(sin(lp.phi),P.e,P.one_es)/P.k0}function e_inv(xy,lp){lp.phi=pj_authlat(asin(2*xy.y*P.k0/qp),apa);lp.lam=xy.x/P.k0}function s_fwd(lp,xy){xy.x=P.k0*lp.lam;xy.y=sin(lp.phi)/P.k0}function s_inv(xy,lp){var x=xy.x,y=xy.y;var t;if((t=fabs(y*=P.k0))-EPS10<=1){if(t>=1)lp.phi=y<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(y);lp.lam=x/P.k0}else i_error()}}pj_add(pj_chamb,"chamb","Chamberlin Trimetric","\n\tMisc Sph, no inv.\n\tlat_1= lon_1= lat_2= lon_2= lat_3= lon_3=");function pj_chamb(P){var THIRD=1/3,TOL=1e-9,c=[],x0,y0,v,beta_0,beta_1,beta_2,i,j;for(i=0;i<3;++i){c[i]={p:{}};c[i].phi=pj_param(P.params,"rlat_"+(i+1));c[i].lam=pj_param(P.params,"rlon_"+(i+1));c[i].lam=adjlon(c[i].lam-P.lam0);c[i].cosphi=cos(c[i].phi);c[i].sinphi=sin(c[i].phi)}for(i=0;i<3;++i){j=i==2?0:i+1;c[i].v=vect(c[j].phi-c[i].phi,c[i].cosphi,c[i].sinphi,c[j].cosphi,c[j].sinphi,c[j].lam-c[i].lam);if(!c[i].v.r)e_error(-25)}beta_0=lc(c[0].v.r,c[2].v.r,c[1].v.r);beta_1=lc(c[0].v.r,c[1].v.r,c[2].v.r);beta_2=M_PI-beta_0;y0=2*(c[0].p.y=c[1].p.y=c[2].v.r*sin(beta_0));c[2].p.y=0;c[0].p.x=-(c[1].p.x=.5*c[0].v.r);x0=c[2].p.x=c[0].p.x+c[2].v.r*cos(beta_0);P.es=0;P.fwd=s_fwd;function s_fwd(lp,xy){var sinphi,cosphi,a,i,j,x,y;var v=[];sinphi=sin(lp.phi);cosphi=cos(lp.phi);for(i=0;i<3;++i){v[i]=vect(lp.phi-c[i].phi,c[i].cosphi,c[i].sinphi,cosphi,sinphi,lp.lam-c[i].lam);if(!v[i].r)break;v[i].Az=adjlon(v[i].Az-c[i].v.Az)}if(i<3){x=c[i].p.x;y=c[i].p.y}else{x=x0;y=y0;for(i=0;i<3;++i){j=i==2?0:i+1;a=lc(c[i].v.r,v[i].r,v[j].r);if(v[i].Az<0)a=-a;if(!i){x+=v[i].r*cos(a);y-=v[i].r*sin(a)}else if(i==1){a=beta_1-a;x-=v[i].r*cos(a);y-=v[i].r*sin(a)}else{a=beta_2-a;x+=v[i].r*cos(a);y+=v[i].r*sin(a)}}x*=THIRD;y*=THIRD}xy.x=x;xy.y=y}function vect(dphi,c1,s1,c2,s2,dlam){var v={};var cdl,dp,dl;cdl=cos(dlam);if(fabs(dphi)>1||fabs(dlam)>1)v.r=aacos(cs1*s2+c1*c2*cdl);else{dp=sin(.5*dphi);dl=sin(.5*dlam);v.r=2*aasin(sqrt(dp*dp+c1*c2*dl*dl))}if(fabs(v.r)>TOL)v.Az=atan2(c2*sin(dlam),c1*s2-s1*c2*cdl);else v.r=v.Az=0;return v}function lc(b,c,a){return aacos(.5*(b*b+c*c-a*a)/(b*c))}}pj_add(pj_crast,"crast","Craster Parabolic (Putnins P4)","\n\tPCyl., Sph.");function pj_crast(P){var XM=.9772050238058398;var RXM=1.0233267079464885;var YM=3.0699801238394655;var RYM=.32573500793527993;var THIRD=1/3;P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){lp.phi*=THIRD;xy.x=XM*lp.lam*(2*cos(lp.phi+lp.phi)-1);xy.y=YM*sin(lp.phi)}function s_inv(xy,lp){lp.phi=3*asin(xy.y*RYM);lp.lam=xy.x*RXM/(2*cos((lp.phi+lp.phi)*THIRD)-1)}}pj_add(pj_denoy,"denoy","Denoyer Semi-Elliptical","\n\tPCyl, Sph., no inv.");function pj_denoy(P){P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var C0=.95;var C1=-.08333333333333333;var C3=.0016666666666666666;var D1=.9;var D5=.03;var lam=fabs(lp.lam);xy.y=lp.phi;xy.x=lp.lam;xy.x*=cos((C0+lam*(C1+lam*lam*C3))*(lp.phi*(D1+D5*lp.phi*lp.phi*lp.phi*lp.phi)))}}pj_add(pj_eck1,"eck1","Eckert I","\n\tPCyl Sph");pj_add(pj_eck2,"eck2","Eckert II","\n\tPCyl Sph");pj_add(pj_eck3,"eck3","Eckert III","\n\tPCyl Sph");pj_add(pj_wag6,"wag6","Wagner VI","\n\tPCyl Sph");pj_add(pj_kav7,"kav7","Kavraisky VII","\n\tPCyl Sph");pj_add(pj_putp1,"putp1","Putnins P1","\n\tPCyl Sph");pj_add(pj_eck4,"eck4","Eckert IV","\n\tPCyl Sph");pj_add(pj_eck5,"eck5","Eckert V","\n\tPCyl Sph");function pj_eck1(P){var FC=.9213177319235613,RP=.3183098861837907;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.x=FC*lp.lam*(1-RP*fabs(lp.phi));xy.y=FC*lp.phi}function s_inv(xy,lp){lp.phi=xy.y/FC;lp.lam=xy.x/(FC*(1-RP*fabs(lp.phi)))}}function pj_eck2(P){var FXC=.46065886596178063,FYC=1.4472025091165353,C13=.3333333333333333,ONEEPS=1.0000001;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.x=FXC*lp.lam*(xy.y=sqrt(4-3*sin(fabs(lp.phi))));xy.y=FYC*(2-xy.y);if(lp.phi<0)xy.y=-xy.y}function s_inv(xy,lp){lp.lam=xy.x/(FXC*(lp.phi=2-fabs(xy.y)/FYC));lp.phi=(4-lp.phi*lp.phi)*C13;if(fabs(lp.phi)>=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi);if(xy.y<0)lp.phi=-lp.phi}}function pj_eck3(P){var Q={C_x:.4222382003157712,C_y:.8444764006315424,A:1,B:.4052847345693511};pj_eck3_init(P,Q)}function pj_kav7(P){var Q={C_x:.8660254037844,C_y:1,A:0,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_wag6(P){var Q={C_x:.94745,C_y:.94745,A:0,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_putp1(P){var Q={C_x:1.8949,C_y:.94745,A:-.5,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_eck3_init(P,Q){P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.y=Q.C_y*lp.phi;xy.x=Q.C_x*lp.lam*(Q.A+asqrt(1-Q.B*lp.phi*lp.phi))}function s_inv(xy,lp){lp.phi=xy.y/Q.C_y;lp.lam=xy.x/(Q.C_x*(Q.A+asqrt(1-Q.B*lp.phi*lp.phi)))}}function pj_eck4(P){var C_x=.4222382003157712,C_y=1.3265004281770023,RC_y=.7538633073600218,C_p=3.5707963267948966,RC_p=.2800495767557787,EPS=1e-7,NITER=6;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var p,V,s,c,i;p=C_p*sin(lp.phi);V=lp.phi*lp.phi;lp.phi*=.895168+V*(.0218849+V*.00826809);for(i=NITER;i;--i){c=cos(lp.phi);s=sin(lp.phi);lp.phi-=V=(lp.phi+s*(c+2)-p)/(1+c*(c+2)-s*s);if(fabs(V)=EPS10;if(ellips=P.es>0){m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_mlfn(phi1,sinphi,cosphi,en);if(secant){sinphi=sin(phi2);cosphi=cos(phi2);n=(m1-pj_msfn(sinphi,cosphi,P.es))/(pj_mlfn(phi2,sinphi,cosphi,en)-ml1)}c=ml1+m1/n;rho0=c-pj_mlfn(P.phi0,sin(P.phi0),cos(P.phi0),en)}else{if(secant)n=(cosphi-cos(phi2))/(phi2-phi1);c=phi1+cos(phi1)/n;rho0=c-P.phi0}P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){rho=c-(ellips?pj_mlfn(lp.phi,sin(lp.phi),cos(lp.phi),en):lp.phi);xy.x=rho*sin(lp.lam*=n);xy.y=rho0-rho*cos(lp.lam)}function e_inv(xy,lp){if((rho=hypot(xy.x,xy.y=rho0-xy.y))!=0){if(n<0){rho=-rho;xy.x=-xy.x;xy.y=-xy.y}lp.phi=c-rho;if(ellips)lp.phi=pj_inv_mlfn(lp.phi,P.es,en);lp.lam=atan2(xy.x,xy.y)/n}else{lp.lam=0;lp.phi=n>0?M_HALFPI:-M_HALFPI}}}pj_add(pj_eqearth,"eqearth","Equal Earth","\n\tPCyl., Sph.");function pj_eqearth(P){var A1=1.340264,A2=-.081106,A3=893e-6,A4=.003796,M=Math.sqrt(3)/2;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var paramLat=Math.asin(M*Math.sin(lp.phi)),paramLatSq=paramLat*paramLat,paramLatPow6=paramLatSq*paramLatSq*paramLatSq;xy.x=lp.lam*Math.cos(paramLat)/(M*(A1+3*A2*paramLatSq+paramLatPow6*(7*A3+9*A4*paramLatSq)));xy.y=paramLat*(A1+A2*paramLatSq+paramLatPow6*(A3+A4*paramLatSq))}function s_inv(xy,lp){var EPS=1e-9,NITER=12,paramLat=xy.y,paramLatSq,paramLatPow6,fy,fpy,dlat,i;for(i=0;i0&&zone<=60)--zone;else e_error(-35)}else{zone=floor((adjlon(P.lam0)+M_PI)*30/M_PI);if(zone<0)zone=0;else if(zone>=60)zone=59}P.lam0=(zone+.5)*M_PI/30-M_PI;P.k0=.9996;P.phi0=0;pj_etmerc(P)}function pj_etmerc(P){var cgb=[],cbg=[],utg=[],gtu=[],Qn,Zb,f,n,np,Z;if(P.es<=0)e_error(-34);f=P.es/(1+sqrt(1-P.es));np=n=f/(2-f);cgb[0]=n*(2+n*(-2/3+n*(-2+n*(116/45+n*(26/45+n*(-2854/675))))));cbg[0]=n*(-2+n*(2/3+n*(4/3+n*(-82/45+n*(32/45+n*(4642/4725))))));np*=n;cgb[1]=np*(7/3+n*(-8/5+n*(-227/45+n*(2704/315+n*(2323/945)))));cbg[1]=np*(5/3+n*(-16/15+n*(-13/9+n*(904/315+n*(-1522/945)))));np*=n;cgb[2]=np*(56/15+n*(-136/35+n*(-1262/105+n*(73814/2835))));cbg[2]=np*(-26/15+n*(34/21+n*(8/5+n*(-12686/2835))));np*=n;cgb[3]=np*(4279/630+n*(-332/35+n*(-399572/14175)));cbg[3]=np*(1237/630+n*(-12/5+n*(-24832/14175)));np*=n;cgb[4]=np*(4174/315+n*(-144838/6237));cbg[4]=np*(-734/315+n*(109598/31185));np*=n;cgb[5]=np*(601676/22275);cbg[5]=np*(444337/155925);np=n*n;Qn=P.k0/(1+n)*(1+np*(1/4+np*(1/64+np/256)));utg[0]=n*(-.5+n*(2/3+n*(-37/96+n*(1/360+n*(81/512+n*(-96199/604800))))));gtu[0]=n*(.5+n*(-2/3+n*(5/16+n*(41/180+n*(-127/288+n*(7891/37800))))));utg[1]=np*(-1/48+n*(-1/15+n*(437/1440+n*(-46/105+n*(1118711/3870720)))));gtu[1]=np*(13/48+n*(-3/5+n*(557/1440+n*(281/630+n*(-1983433/1935360)))));np*=n;utg[2]=np*(-17/480+n*(37/840+n*(209/4480+n*(-5569/90720))));gtu[2]=np*(61/240+n*(-103/140+n*(15061/26880+n*(167603/181440))));np*=n;utg[3]=np*(-4397/161280+n*(11/504+n*(830251/7257600)));gtu[3]=np*(49561/161280+n*(-179/168+n*(6601661/7257600)));np*=n;utg[4]=np*(-4583/161280+n*(108847/3991680));gtu[4]=np*(34729/80640+n*(-3418889/1995840));np*=n;utg[5]=np*(-20648693/638668800);gtu[5]=np*(212378941/319334400);Z=gatg(cbg,P.phi0);Zb=-Qn*(Z+clens(gtu,2*Z));P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var sin_Cn,cos_Cn,cos_Ce,sin_Ce,tmp;var Cn=lp.phi,Ce=lp.lam;Cn=gatg(cbg,Cn);sin_Cn=sin(Cn);cos_Cn=cos(Cn);sin_Ce=sin(Ce);cos_Ce=cos(Ce);Cn=atan2(sin_Cn,cos_Ce*cos_Cn);Ce=atan2(sin_Ce*cos_Cn,hypot(sin_Cn,cos_Cn*cos_Ce));Ce=asinhy(tan(Ce));tmp=clenS(gtu,2*Cn,2*Ce);Cn+=tmp[0];Ce+=tmp[1];if(fabs(Ce)<=2.623395162778){xy.y=Qn*Cn+Zb;xy.x=Qn*Ce}else{xy.x=xy.y=HUGE_VAL}}function e_inv(xy,lp){var sin_Cn,cos_Cn,cos_Ce,sin_Ce,tmp;var Cn=xy.y,Ce=xy.x;Cn=(Cn-Zb)/Qn;Ce=Ce/Qn;if(fabs(Ce)<=2.623395162778){tmp=clenS(utg,2*Cn,2*Ce);Cn+=tmp[0];Ce+=tmp[1];Ce=atan(sinh(Ce));sin_Cn=sin(Cn);cos_Cn=cos(Cn);sin_Ce=sin(Ce);cos_Ce=cos(Ce);Ce=atan2(sin_Ce,cos_Ce*cos_Cn);Cn=atan2(sin_Cn*cos_Ce,hypot(sin_Ce,cos_Ce*cos_Cn));lp.phi=gatg(cgb,Cn);lp.lam=Ce}else{lp.phi=lp.lam=HUGE_VAL}}function log1py(x){var y=1+x,z=y-1;return z===0?x:x*log(y)/z}function asinhy(x){var y=fabs(x);y=log1py(y*(1+y/(hypot(1,y)+1)));return x<0?-y:y}function gatg(pp,B){var cos_2B=2*cos(2*B),i=pp.length-1,h1=pp[i],h2=0,h;while(--i>=0){h=-h2+cos_2B*h1+pp[i];h2=h1;h1=h}return B+h*sin(2*B)}function clens(pp,arg_r){var r=2*cos(arg_r),i=pp.length-1,hr1=pp[i],hr2=0,hr;while(--i>=0){hr=-hr2+r*hr1+pp[i];hr2=hr1;hr1=hr}return sin(arg_r)*hr}function clenS(pp,arg_r,arg_i){var sin_arg_r=sin(arg_r),cos_arg_r=cos(arg_r),sinh_arg_i=sinh(arg_i),cosh_arg_i=cosh(arg_i),r=2*cos_arg_r*cosh_arg_i,i=-2*sin_arg_r*sinh_arg_i,j=pp.length-1,hr=pp[j],hi1=0,hr1=0,hi=0,hr2,hi2;while(--j>=0){hr2=hr1;hi2=hi1;hr1=hr;hi1=hi;hr=-hr2+r*hr1-i*hi1+pp[j];hi=-hi2+i*hr1+r*hi1}r=sin_arg_r*cosh_arg_i;i=cos_arg_r*sinh_arg_i;return[r*hr-i*hi,r*hi+i*hr]}}pj_add(pj_gall,"gall","Gall (Gall Stereographic)","\n\tCyl, Sph");function pj_gall(P){var YF=1.7071067811865475,XF=.7071067811865476,RYF=.585786437626905,RXF=1.4142135623730951;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){xy.x=XF*lp.lam;xy.y=YF*tan(.5*lp.phi)}function s_inv(xy,lp){lp.lam=RXF*xy.x;lp.phi=2*atan(xy.y*RYF)}}pj_add(pj_geocent,"geocent","Geocentric","\n\t");function pj_geocent(P){P.is_geocent=true;P.x0=0;P.y0=0;P.fwd=function(lp,xy){xy.x=lp.lam;xy.y=lp.phi};P.inv=function(xy,lp){lp.phi=xy.y;lp.lam=xy.x}}pj_add(pj_gilbert,"gilbert","Gilbert Two World Perspective","\n\tPCyl., Sph., NoInv.\n\tlat_1=");function pj_gilbert(P){var lat1=pj_param(P.params,"tlat_1")?pj_param(P.params,"rlat_1"):0,phi1=phiprime(lat1),sp1=sin(phi1),cp1=cos(phi1);P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var lam=lp.lam*.5,phi=phiprime(lp.phi),sp=sin(phi),cp=cos(phi),cl=cos(lam);if(sp1*sp+cp1*cp*cl>=0){xy.x=cp*sin(lam);xy.y=cp1*sp-sp1*cp*cl}else{f_error()}}function phiprime(phi){return aasin(tan(.5*phi))}}pj_add(pj_gins8,"gins8","Ginsburg VIII (TsNIIGAiK)","\n\tPCyl, Sph., no inv.");function pj_gins8(P){P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var Cl=952426e-9;var Cp=.162388;var C12=.08333333333333333;var t=lp.phi*lp.phi;xy.y=lp.phi*(1+t*C12);xy.x=lp.lam*(1-Cp*t);t=lp.lam*lp.lam;xy.x*=.87-Cl*t*t}}pj_add(pj_gn_sinu,"gn_sinu","General Sinusoidal Series","\n\tPCyl, Sph.\n\tm= n=");pj_add(pj_sinu,"sinu","Sinusoidal (Sanson-Flamsteed)","\n\tPCyl, Sph&Ell");pj_add(pj_eck6,"eck6","Eckert VI","\n\tPCyl, Sph.\n\tm= n=");pj_add(pj_mbtfps,"mbtfps","McBryde-Thomas Flat-Polar Sinusoidal","\n\tPCyl, Sph.");function pj_gn_sinu(P){if(pj_param(P.params,"tn"),pj_param(P.params,"tm")){pj_sinu_init(P,pj_param(P.params,"dm"),pj_param(P.params,"dn"))}else{e_error(-99)}}function pj_sinu(P){var en;if(P.es){en=pj_enfn(P.es);P.fwd=e_fwd;P.inv=e_inv}else{pj_sinu_init(P,0,1)}function e_fwd(lp,xy){var s,c;xy.y=pj_mlfn(lp.phi,s=sin(lp.phi),c=cos(lp.phi),en);xy.x=lp.lam*c/sqrt(1-P.es*s*s)}function e_inv(xy,lp){var s=fabs(lp.phi=pj_inv_mlfn(xy.y,P.es,en));if(s=1)lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI;else lp.phi=asin(lp.phi);y=(cosz-sinph0*sin(lp.phi))*rh;x*=sinz*cosph0;break;case EQUIT:lp.phi=y*sinz/rh;if(fabs(lp.phi)>=1)lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI;else lp.phi=asin(lp.phi);y=cosz*rh;x*=sinz;break;case S_POLE:lp.phi-=M_HALFPI;break;case N_POLE:lp.phi=M_HALFPI-lp.phi;y=-y;break}lp.lam=atan2(x,y)}}}pj_add(pj_moll,"moll","Mollweide","\n\tPCyl Sph");pj_add(pj_wag4,"wag4","Wagner IV","\n\tPCyl Sph");pj_add(pj_wag5,"wag5","Wagner V","\n\tPCyl Sph");function pj_moll(P){pj_moll_init(P,pj_moll_init_Q(P,M_HALFPI))}function pj_wag4(P){pj_moll_init(P,pj_moll_init_Q(P,M_PI/3))}function pj_wag5(P){var Q={C_x:.90977,C_y:1.65014,C_p:3.00896};pj_moll_init(P,Q)}function pj_moll_init_Q(P,p){var sp=sin(p),p2=p+p,r=sqrt(M_TWOPI*sp/(p2+sin(p2)));return{C_x:2*r/M_PI,C_y:r/sp,C_p:p2+sin(p2)}}function pj_moll_init(P,Q){var MAX_ITER=10,LOOP_TOL=1e-7;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var k,V,i;k=Q.C_p*sin(lp.phi);for(i=MAX_ITER;i;--i){lp.phi-=V=(lp.phi+sin(lp.phi)-k)/(1+cos(lp.phi));if(fabs(V)0?Y_COR:-Y_COR}};P.inv=function(xy,lp){if(fabs(xy.y)<=PHI_LIM){sinuInv(xy,lp)}else{xy.y+=xy.y>0?Y_COR:-Y_COR;mollInv(xy,lp)}}}pj_add(pj_hammer,"hammer","Hammer & Eckert-Greifendorff","\n\tMisc Sph, \n\tW= M=");function pj_hammer(P){var w,m,rm;var EPS=1e-10;P.inv=s_inv;P.fwd=s_fwd;P.es=0;if(pj_param(P.params,"tW")){if((w=fabs(pj_param(P.params,"dW")))<=0)e_error(-27)}else w=.5;if(pj_param(P.params,"tM")){if((m=fabs(pj_param(P.params,"dM")))<=0)e_error(-27)}else m=1;rm=1/m;m/=w;function s_fwd(lp,xy){var cosphi,d;d=sqrt(2/(1+(cosphi=cos(lp.phi))*cos(lp.lam*=w)));xy.x=m*d*cosphi*sin(lp.lam);xy.y=rm*d*sin(lp.phi)}function s_inv(xy,lp){var z=sqrt(1-.25*w*w*xy.x*xy.x-.25*xy.y*xy.y);if(fabs(2*z*z-1)1){if(fabs(th)>ONETOL){i_error()}else{th=th>0?M_HALFPI:-M_HALFPI}}else{th=asin(th)}lp.lam=RXC*xy.x/cos(th);th+=th;lp.phi=(th+sin(th))*(xy.y<0?RCS:RCN);if(fabs(lp.phi)>1){if(fabs(lp.phi)>ONETOL){i_error()}else{lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI}}else{lp.phi=asin(lp.phi)}}}pj_add(pj_healpix,"healpix","HEALPix","\n\tSph., Ellps.");pj_add(pj_rhealpix,"rhealpix","rHEALPix","\n\tSph., Ellps.\n\tnorth_square= south_square=");function pj_rhealpix(P){pj_healpix(P,true)}function pj_healpix(P,rhealpix){var R1=[[0,-1],[1,0]];var R2=[[-1,0],[0,-1]];var R3=[[0,1],[-1,0]];var IDENT=[[1,0],[0,1]];var rot=[IDENT,R1,R2,R3,R3,R2,R1];var EPS=1e-15;var north_square;var south_square;var qp;var apa;var vertsJit;if(rhealpix){north_square=pj_param(P.params,"inorth_square");south_square=pj_param(P.params,"isouth_square");if(north_square<0||north_square>3){e_error(-47)}if(south_square<0||south_square>3){e_error(-47)}vertsJit=[[-M_PI-EPS,M_FORTPI+EPS],[-M_PI+north_square*M_HALFPI-EPS,M_FORTPI+EPS],[-M_PI+north_square*M_HALFPI-EPS,3*M_FORTPI+EPS],[-M_PI+(north_square+1)*M_HALFPI+EPS,3*M_FORTPI+EPS],[-M_PI+(north_square+1)*M_HALFPI+EPS,M_FORTPI+EPS],[M_PI+EPS,M_FORTPI+EPS],[M_PI+EPS,-M_FORTPI-EPS],[-M_PI+(south_square+1)*M_HALFPI+EPS,-M_FORTPI-EPS],[-M_PI+(south_square+1)*M_HALFPI+EPS,-3*M_FORTPI-EPS],[-M_PI+south_square*M_HALFPI-EPS,-3*M_FORTPI-EPS],[-M_PI+south_square*M_HALFPI-EPS,-M_FORTPI-EPS],[-M_PI-EPS,-M_FORTPI-EPS]];if(P.es!=0){apa=pj_authset(P.es);qp=pj_qsfn(1,P.e,P.one_es);P.a=P.a*sqrt(.5*qp);P.ra=1/P.a;P.fwd=e_rhealpix_forward;P.inv=e_rhealpix_inverse}else{P.fwd=s_rhealpix_forward;P.inv=s_rhealpix_inverse}}else{vertsJit=[[-M_PI-EPS,M_FORTPI],[-3*M_FORTPI,M_HALFPI+EPS],[-M_HALFPI,M_FORTPI+EPS],[-M_FORTPI,M_HALFPI+EPS],[0,M_FORTPI+EPS],[M_FORTPI,M_HALFPI+EPS],[M_HALFPI,M_FORTPI+EPS],[3*M_FORTPI,M_HALFPI+EPS],[M_PI+EPS,M_FORTPI],[M_PI+EPS,-M_FORTPI],[3*M_FORTPI,-M_HALFPI-EPS],[M_HALFPI,-M_FORTPI-EPS],[M_FORTPI,-M_HALFPI-EPS],[0,-M_FORTPI-EPS],[-M_FORTPI,-M_HALFPI-EPS],[-M_HALFPI,-M_FORTPI-EPS],[-3*M_FORTPI,-M_HALFPI-EPS],[-M_PI-EPS,-M_FORTPI]];if(P.es!=0){apa=pj_authset(P.es);qp=pj_qsfn(1,P.e,P.one_es);P.a=P.a*sqrt(.5*qp);P.ra=1/P.a;P.fwd=e_healpix_forward;P.inv=e_healpix_inverse}else{P.fwd=s_healpix_forward;P.inv=s_healpix_inverse}}function s_healpix_forward(lp,xy){healpix_sphere(lp,xy)}function e_healpix_forward(lp,xy){lp.phi=auth_lat(P,lp.phi,0);healpix_sphere(lp,xy)}function s_healpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}healpix_sphere_inverse(xy,lp)}function e_healpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}healpix_sphere_inverse(xy,lp);lp.phi=auth_lat(P,lp.phi,1)}function s_rhealpix_forward(lp,xy){healpix_sphere(lp,xy);combine_caps(xy,north_square,south_square,0)}function e_rhealpix_forward(lp,xy){lp.phi=auth_lat(P,lp.phi,0);healpix_sphere(lp,xy);return combine_caps(xy,north_square,south_square,0)}function s_rhealpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}combine_caps(xy,north_square,south_square,1);healpix_sphere_inverse(xy,lp)}function e_rhealpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}combine_caps(xy,north_square,south_square,1);healpix_sphere_inverse(xy,lp);lp.phi=auth_lat(P,lp.phi,1)}function healpix_sphere(lp,xy){var lam=lp.lam;var phi=lp.phi;var phi0=asin(2/3);if(fabs(phi)<=phi0){xy.x=lam;xy.y=3*M_PI/8*sin(phi)}else{var lamc;var sigma=sqrt(3*(1-fabs(sin(phi))));var cn=floor(2*lam/M_PI+2);if(cn>=4){cn=3}lamc=-3*M_FORTPI+M_HALFPI*cn;xy.x=lamc+(lam-lamc)*sigma;xy.y=pj_sign(phi)*M_FORTPI*(2-sigma)}}function healpix_sphere_inverse(xy,lp){var x=xy.x;var y=xy.y;var y0=M_FORTPI;if(fabs(y)<=y0){lp.lam=x;lp.phi=asin(8*y/(3*M_PI))}else if(fabs(y)=4){cn=3}xc=-3*M_FORTPI+M_HALFPI*cn;tau=2-4*fabs(y)/M_PI;lp.lam=xc+(x-xc)/tau;lp.phi=pj_sign(y)*asin(1-pow(tau,2)/3)}else{lp.lam=-M_PI;lp.phi=pj_sign(y)*M_HALFPI}}function pj_sign(v){return v>0?1:v<0?-1:0}function get_rotate_index(index){switch(index){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case-1:return 4;case-2:return 5;case-3:return 6}return 0}function pnpoly(vert,testx,testy){var counter=0;var nvert=vert.length;var x1,y1,x2,y2;var xinters;var i;for(i=0;iMIN(y1,y2)&&testy<=MAX(y1,y2)&&testx<=MAX(x1,x2)&&y1!=y2){xinters=(testy-y1)*(x2-x1)/(y2-y1)+x1;if(x1==x2||testx<=xinters)counter++}x1=x2;y1=y2}return counter%2!=0}function in_image(x,y){return pnpoly(vertsJit,x,y)}function auth_lat(P,alpha,inverse){if(!inverse){var q=pj_qsfn(sin(alpha),P.e,1-P.es);var ratio=q/qp;if(fabs(ratio)>1){ratio=pj_sign(ratio)}return asin(ratio)}else{return pj_authlat(alpha,apa)}}function vector_add(a,b){return[a[0]+b[0],a[1]+b[1]]}function vector_sub(a,b){return[a[0]-b[0],a[1]-b[1]]}function dot_product(a,b){var i,j;var ret=[0,0];for(i=0;i<2;i++){for(j=0;j<2;j++){ret[i]+=a[i][j]*b[j]}}return ret}function get_cap(x,y,north_square,south_square,inverse){var capmap={};var c;capmap.x=x;capmap.y=y;if(!inverse){if(y>M_FORTPI){capmap.region="north";c=M_HALFPI}else if(y<-M_FORTPI){capmap.region="south";c=-M_HALFPI}else{capmap.region="equatorial";capmap.cn=0;return capmap}if(x<-M_HALFPI){capmap.cn=0;capmap.x=-3*M_FORTPI;capmap.y=c}else if(x>=-M_HALFPI&&x<0){capmap.cn=1;capmap.x=-M_FORTPI;capmap.y=c}else if(x>=0&&xM_FORTPI){capmap.region="north";capmap.x=-3*M_FORTPI+north_square*M_HALFPI;capmap.y=M_HALFPI;x=x-north_square*M_HALFPI}else if(y<-M_FORTPI){capmap.region="south";capmap.x=-3*M_FORTPI+south_square*M_HALFPI;capmap.y=-M_HALFPI;x=x-south_square*M_HALFPI}else{capmap.region="equatorial";capmap.cn=0;return capmap}if(capmap.region=="north"){if(y>=-x-M_FORTPI-EPS&&y-x-M_FORTPI+EPS&&y>=x+5*M_FORTPI-EPS){capmap.cn=(north_square+2)%4}else if(y<=-x-M_FORTPI+EPS&&y>x+5*M_FORTPI+EPS){capmap.cn=(north_square+3)%4}else{capmap.cn=north_square}}else if(capmap.region=="south"){if(y<=x+M_FORTPI+EPS&&y>-x-5*M_FORTPI+EPS){capmap.cn=(south_square+1)%4}else if(y=x+M_FORTPI-EPS&&y<-x-5*M_FORTPI-EPS){capmap.cn=(south_square+3)%4}else{capmap.cn=south_square}}}return capmap}function combine_caps(xy,north_square,south_square,inverse){var v,c,vector,v_min_c,ret_dot,tmpRot,a;var pole=0;var capmap=get_cap(xy.x,xy.y,north_square,south_square,inverse);if(capmap.region=="equatorial"){xy.x=capmap.x;xy.y=capmap.y;return}v=[xy.x,xy.y];c=[capmap.x,capmap.y];if(!inverse){if(capmap.region=="north"){pole=north_square;tmpRot=rot[get_rotate_index(capmap.cn-pole)]}else{pole=south_square;tmpRot=rot[get_rotate_index(-1*(capmap.cn-pole))]}}else{if(capmap.region=="north"){pole=north_square;tmpRot=rot[get_rotate_index(-1*(capmap.cn-pole))]}else{pole=south_square;tmpRot=rot[get_rotate_index(capmap.cn-pole)]}}v_min_c=vector_sub(v,c);ret_dot=dot_product(tmpRot,v_min_c);a=[-3*M_FORTPI+(!inverse?0:capmap.cn)*M_HALFPI,M_HALFPI];vector=vector_add(ret_dot,a);xy.x=vector[0];xy.y=vector[1]}}pj_add(pj_krovak,"krovak","Krovak","\n\tPCyl., Ellps.");function pj_krovak(P){var u0,n0,g;var alpha,k,n,rho0,ad,czech;var EPS=1e-15;var S45=.785398163397448;var S90=1.570796326794896;var UQ=1.04216856380474;var S0=1.37008346281555;P.a=6377397.155;P.e=sqrt(P.es=.006674372230614);if(!pj_param(P.params,"tlat_0"))P.phi0=.863937979737193;if(!pj_param(P.params,"tlon_0"))P.lam0=.7417649320975901-.308341501185665;if(!pj_param(P.params,"tk"))P.k0=.9999;czech=1;if(!pj_param(P.params,"tczech"))czech=-1;alpha=sqrt(1+P.es*pow(cos(P.phi0),4)/(1-P.es));u0=asin(sin(P.phi0)/alpha);g=pow((1+P.e*sin(P.phi0))/(1-P.e*sin(P.phi0)),alpha*P.e/2);k=tan(u0/2+S45)/pow(tan(P.phi0/2+S45),alpha)*g;n0=sqrt(1-P.es)/(1-P.es*pow(sin(P.phi0),2));n=sin(S0);rho0=P.k0*n0/tan(S0);ad=S90-UQ;P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var gfi,u,deltav,s,d,eps,rho;gfi=pow((1+P.e*sin(lp.phi))/(1-P.e*sin(lp.phi)),alpha*P.e/2);u=2*(atan(k*pow(tan(lp.phi/2+S45),alpha)/gfi)-S45);deltav=-lp.lam*alpha;s=asin(cos(ad)*sin(u)+sin(ad)*cos(u)*cos(deltav));d=asin(cos(u)*sin(deltav)/cos(s));eps=n*d;rho=rho0*pow(tan(S0/2+S45),n)/pow(tan(s/2+S45),n);xy.y=rho*cos(eps);xy.x=rho*sin(eps);xy.y*=czech;xy.x*=czech}function e_inv(xy,lp){var u,deltav,s,d,eps,rho,fi1,xy0;var ok;xy0=xy.x;xy.x=xy.y;xy.y=xy0;xy.x*=czech;xy.y*=czech;rho=sqrt(xy.x*xy.x+xy.y*xy.y);eps=atan2(xy.y,xy.x);d=eps/sin(S0);s=2*(atan(pow(rho0/rho,1/n)*tan(S0/2+S45))-S45);u=asin(cos(ad)*sin(s)-sin(ad)*cos(s)*cos(d));deltav=asin(cos(s)*sin(d)/cos(u));lp.lam=P.lam0-deltav/alpha;fi1=u;ok=0;do{lp.phi=2*(atan(pow(k,-1/alpha)*pow(tan(u/2+S45),1/alpha)*pow((1+P.e*sin(fi1))/(1-P.e*sin(fi1)),P.e/2))-S45);if(fabs(fi1-lp.phi)=0){b=sqrt(q);xy.x=b*sinlam;xy.y=coslam*(mode==S_POLE?b:-b)}else xy.x=xy.y=0;break}}function e_inv(xy,lp){var cCe,sCe,q,rho,ab=0;switch(mode){case EQUIT:case OBLIQ:xy.x/=dd;xy.y*=dd;rho=hypot(xy.x,xy.y);if(rho1)i_error();lp.phi=2*asin(lp.phi);if(mode==OBLIQ||mode==EQUIT){sinz=sin(lp.phi);cosz=cos(lp.phi)}switch(mode){case EQUIT:lp.phi=fabs(rh)<=EPS10?0:asin(xy.y*sinz/rh);xy.x*=sinz;xy.y=cosz*rh;break;case OBLIQ:lp.phi=fabs(rh)<=EPS10?P.phi0:asin(cosz*sinb1+xy.y*sinz*cosb1/rh);xy.x*=sinz*cosb1;xy.y=(cosz-sin(lp.phi)*sinb1)*rh;break;case N_POLE:xy.y=-xy.y;lp.phi=M_HALFPI-lp.phi;break;case S_POLE:lp.phi-=M_HALFPI;break}lp.lam=xy.y==0&&(mode==EQUIT||mode==OBLIQ)?0:atan2(xy.x,xy.y)}}pj_add(pj_lonlat,"lonlat","Lat/long (Geodetic)","\n\t");pj_add(pj_lonlat,"longlat","Lat/long (Geodetic alias)","\n\t");pj_add(pj_lonlat,"latlon","Lat/long (Geodetic alias)","\n\t");pj_add(pj_lonlat,"latlong","Lat/long (Geodetic alias)","\n\t");function pj_lonlat(P){P.x0=0;P.y0=0;P.is_latlong=true;P.fwd=function(lp,xy){xy.x=lp.lam/P.a;xy.y=lp.phi/P.a};P.inv=function(xy,lp){lp.lam=xy.x*P.a;lp.phi=xy.y*P.a}}function pj_tsfn(phi,sinphi,e){sinphi*=e;return tan(.5*(M_HALFPI-phi))/pow((1-sinphi)/(1+sinphi),.5*e)}pj_add(pj_lcc,"lcc","Lambert Conformal Conic","\n\tConic, Sph&Ell\n\tlat_1= and lat_2= or lat_0=");function pj_lcc(P){var EPS10=1e-10;var cosphi,sinphi,secant;var phi1,phi2,n,rho0,c,ellips,ml1,m1;P.inv=e_inv;P.fwd=e_fwd;phi1=pj_param(P.params,"rlat_1");if(pj_param(P.params,"tlat_2"))phi2=pj_param(P.params,"rlat_2");else{phi2=phi1;if(!pj_param(P.params,"tlat_0"))P.phi0=phi1}if(fabs(phi1+phi2)=EPS10;if(ellips=P.es!=0){P.e=sqrt(P.es);m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_tsfn(phi1,sinphi,P.e);if(secant){sinphi=sin(phi2);n=log(m1/pj_msfn(sinphi,cos(phi2),P.es));n/=log(ml1/pj_tsfn(phi2,sinphi,P.e))}c=rho0=m1*pow(ml1,-n)/n;rho0*=fabs(fabs(P.phi0)-M_HALFPI)0?M_HALFPI:-M_HALFPI}}}pj_add(pj_loxim,"loxim","Loximuthal","\n\tPCyl Sph");function pj_loxim(P){var EPS=1e-8;var phi1,cosphi1,tanphi1;phi1=pj_param(P.params,"rlat_1");cosphi1=cos(phi1);tanphi1=tan(M_FORTPI+.5*phi1);if(cosphi1=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi);lp.lam=xy.x/(FXC*(2*cos(C23*(lp.phi*=3))-1));if(fabs(lp.phi=sin(lp.phi)/CS)>=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi)}}pj_add(pj_mbt_fpq,"mbt_fpq","McBryde-Thomas Flat-Polar Quartic","\n\tCyl., Sph.");function pj_mbt_fpq(P){var NITER=20,EPS=1e-7,ONETOL=1.000001,C=1.7071067811865475,RC=.585786437626905,FYC=1.874758284622695,RYC=.533402096794177,FXC=.3124597141037825,RXC=3.2004125807650623;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var th1,c,i;c=C*sin(lp.phi);for(i=NITER;i;--i){lp.phi-=th1=(sin(.5*lp.phi)+sin(lp.phi)-c)/(.5*cos(.5*lp.phi)+cos(lp.phi));if(fabs(th1)1){if(fabs(lp.phi)>ONETOL)i_error();else if(lp.phi<0){t=-1;lp.phi=-M_PI}else{t=1;lp.phi=M_PI}}else lp.phi=2*asin(t=lp.phi);lp.lam=RXC*xy.x/(1+2*cos(lp.phi)/cos(.5*lp.phi));lp.phi=RC*(t+sin(lp.phi));if(fabs(lp.phi)>1)if(fabs(lp.phi)>ONETOL)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(lp.phi)}}pj_add(pj_mbt_fps,"mbt_fps","McBryde-Thomas Flat-Pole Sine (No. 2)","\n\tCyl., Sph.");function pj_mbt_fps(P){var MAX_ITER=10,LOOP_TOL=1e-7,C1=.45503,C2=1.36509,C3=1.41546,C_x=.22248,C_y=1.44492,C1_2=1/3;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var k,V,t,i;k=C3*sin(lp.phi);for(i=MAX_ITER;i;--i){t=lp.phi/C2;lp.phi-=V=(C1*sin(t)+sin(lp.phi)-k)/(C1_2*cos(t)+cos(lp.phi));if(fabs(V)TOL&&--i);if(i<=0){pj_ctx_set_errno(-18)}return Phi}pj_add(pj_merc,"merc","Mercator","\n\tCyl, Sph&Ell\n\tlat_ts=");function pj_merc(P){var EPS10=1e-10;var phits=0;var is_phits=pj_param(P.params,"tlat_ts");if(is_phits){phits=pj_param(P.params,"rlat_ts");if(phits>=M_HALFPI){e_error(-24)}}if(P.es){if(is_phits){P.k0=pj_msfn(sin(phits),cos(phits),P.es)}P.inv=e_inv;P.fwd=e_fwd}else{P.inv=s_inv;P.fwd=s_fwd}function e_fwd(lp,xy){if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10){f_error()}xy.x=P.k0*lp.lam;xy.y=-P.k0*log(pj_tsfn(lp.phi,sin(lp.phi),P.e))}function e_inv(xy,lp){lp.phi=pj_phi2(exp(-xy.y/P.k0),P.e);if(lp.phi===HUGE_VAL){i_error()}lp.lam=xy.x/P.k0}function s_fwd(lp,xy){if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10){f_error()}xy.x=P.k0*lp.lam;xy.y=P.k0*log(tan(M_FORTPI+.5*lp.phi))}function s_inv(xy,lp){lp.phi=M_HALFPI-2*atan(exp(-xy.y/P.k0));lp.lam=xy.x/P.k0}}pj_add(pj_mill,"mill","Miller Cylindrical","\n\tCyl, Sph");function pj_mill(P){P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){xy.x=lp.lam;xy.y=log(tan(M_FORTPI+lp.phi*.4))*1.25}function s_inv(xy,lp){lp.lam=xy.x;lp.phi=2.5*(atan(exp(.8*xy.y))-M_FORTPI)}}function pj_zpoly1(z,C){var t,r,i;var n=C.length-1;r=C[n][0];i=C[n][1];while(--n>=0){t=r;r=C[n][0]+z.r*t-z.i*i;i=C[n][1]+z.r*i+z.i*t}return{r:z.r*r-z.i*i,i:z.r*i+z.i*r}}function pj_zpolyd1(z,C,der){var ai,ar,bi,br,t;var first=true;var n=C.length-1;ar=br=C[n][0];ai=bi=C[n][1];while(--n>=0){if(first){first=false}else{br=ar+z.r*(t=br)-z.i*bi;bi=ai+z.r*bi+z.i*t}ar=C[n][0]+z.r*(t=ar)-z.i*ai;ai=C[n][1]+z.r*ai+z.i*t}der.r=ar+z.r*br-z.i*bi;der.i=ai+z.r*bi+z.i*br;return{r:z.r*ar-z.i*ai,i:z.r*ai+z.i*ar}}pj_add(pj_mil_os,"mil_os","Miller Oblated Stereographic","\n\tAzi(mod)");pj_add(pj_lee_os,"lee_os","Lee Oblated Stereographic","\n\tAzi(mod)");pj_add(pj_gs48,"gs48","Mod Stereographic of 48 U.S.","\n\tAzi(mod)");pj_add(pj_alsk,"alsk","Mod Stereographic of Alaska","\n\tAzi(mod)");pj_add(pj_gs50,"gs50","Mod Stereographic of 50 U.S.","\n\tAzi(mod)");function pj_mil_os(P){var AB=[[.9245,0],[0,0],[.01943,0]];P.lam0=DEG_TO_RAD*20;P.phi0=DEG_TO_RAD*18;P.es=0;pj_mod_ster(P,AB)}function pj_lee_os(P){var AB=[[.721316,0],[0,0],[-.0088162,-.00617325]];P.lam0=DEG_TO_RAD*-165;P.phi0=DEG_TO_RAD*-10;P.es=0;pj_mod_ster(P,AB)}function pj_gs48(P){var AB=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]];P.lam0=DEG_TO_RAD*-96;P.phi0=DEG_TO_RAD*39;P.es=0;P.a=6370997;pj_mod_ster(P,AB)}function pj_alsk(P){var ABe=[[.9945303,0],[.0052083,-.0027404],[.0072721,.0048181],[-.0151089,-.1932526],[.0642675,-.1381226],[.3582802,-.2884586]];var ABs=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]];var AB;P.lam0=DEG_TO_RAD*-152;P.phi0=DEG_TO_RAD*64;if(P.es!=0){AB=ABe;P.a=6378206.4;P.e=sqrt(P.es=.00676866)}else{AB=ABs;P.a=6370997}pj_mod_ster(P,AB)}function pj_gs50(P){var ABe=[[.9827497,0],[.0210669,.0053804],[-.1031415,-.0571664],[-.0323337,-.0322847],[.0502303,.1211983],[.0251805,.0895678],[-.0012315,-.1416121],[.0072202,-.1317091],[-.0194029,.0759677],[-.0210072,.0834037]];var ABs=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]];var AB;P.lam0=DEG_TO_RAD*-120;P.phi0=DEG_TO_RAD*45;if(P.es!=0){AB=ABe;P.a=6378206.4;P.e=sqrt(P.es=.00676866)}else{AB=ABs;P.a=6370997}pj_mod_ster(P,AB)}function pj_mod_ster(P,zcoeff){var EPSLN=1e-12;var esphi,chio;var cchio,schio;if(P.es!=0){esphi=P.e*sin(P.phi0);chio=2*atan(tan((M_HALFPI+P.phi0)*.5)*pow((1-esphi)/(1+esphi),P.e*.5))-M_HALFPI}else chio=P.phi0;schio=sin(chio);cchio=cos(chio);P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var sinlon,coslon,esphi,chi,schi,cchi,s;var p={};sinlon=sin(lp.lam);coslon=cos(lp.lam);esphi=P.e*sin(lp.phi);chi=2*atan(tan((M_HALFPI+lp.phi)*.5)*pow((1-esphi)/(1+esphi),P.e*.5))-M_HALFPI;schi=sin(chi);cchi=cos(chi);s=2/(1+schio*schi+cchio*cchi*coslon);p.r=s*cchi*sinlon;p.i=s*(cchio*schi-schio*cchi*coslon);p=pj_zpoly1(p,zcoeff);xy.x=p.r;xy.y=p.i}function e_inv(xy,lp){var nn;var p={},fxy,fpxy={},dp={};var den,rh=0,z,sinz=0,cosz=0,chi,phi=0,esphi;var dphi;p.r=xy.x;p.i=xy.y;for(nn=20;nn;--nn){fxy=pj_zpolyd1(p,zcoeff,fpxy);fxy.r-=xy.x;fxy.i-=xy.y;den=fpxy.r*fpxy.r+fpxy.i*fpxy.i;dp.r=-(fxy.r*fpxy.r+fxy.i*fpxy.i)/den;dp.i=-(fxy.i*fpxy.r-fxy.r*fpxy.i)/den;p.r+=dp.r;p.i+=dp.i;if(fabs(dp.r)+fabs(dp.i)<=EPSLN)break}if(nn){rh=hypot(p.r,p.i);z=2*atan(.5*rh);sinz=sin(z);cosz=cos(z);lp.lam=P.lam0;if(fabs(rh)<=EPSLN){lp.lam=0;lp.phi=P.phi0;return}chi=aasin(cosz*schio+p.i*sinz*cchio/rh);phi=chi;for(nn=20;nn;--nn){esphi=P.e*sin(phi);dphi=2*atan(tan((M_HALFPI+chi)*.5)*pow((1+esphi)/(1-esphi),P.e*.5))-M_HALFPI-phi;phi+=dphi;if(fabs(dphi)<=EPSLN)break}}if(nn){lp.phi=phi;lp.lam=atan2(p.r*sinz,rh*cchio*cosz-p.i*schio*sinz)}else lp.lam=lp.phi=HUGE_VAL}}pj_add(pj_natearth,"natearth","Natural Earth","\n\tPCyl., Sph.");pj_add(pj_natearth2,"natearth2","Natural Earth 2","\n\tPCyl., Sph.");function pj_natearth(P){var A0=.8707,A1=-.131979,A2=-.013791,A3=.003971,A4=-.001529,B0=1.007226,B1=.015085,B2=-.044475,B3=.028874,B4=-.005916,C0=B0,C1=3*B1,C2=7*B2,C3=9*B3,C4=11*B4,EPS=1e-11,MAX_Y=.8707*.52*M_PI;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var phi2,phi4;phi2=lp.phi*lp.phi;phi4=phi2*phi2;xy.x=lp.lam*(A0+phi2*(A1+phi2*(A2+phi4*phi2*(A3+phi2*A4))));xy.y=lp.phi*(B0+phi2*(B1+phi4*(B2+B3*phi2+B4*phi4)))}function s_inv(xy,lp){var x=xy.x,y=xy.y;var yc,tol,y2,y4,f,fder;if(y>MAX_Y){y=MAX_Y}else if(y<-MAX_Y){y=-MAX_Y}yc=y;for(;;){y2=yc*yc;y4=y2*y2;f=yc*(B0+y2*(B1+y4*(B2+B3*y2+B4*y4)))-y;fder=C0+y2*(C1+y4*(C2+C3*y2+C4*y4));yc-=tol=f/fder;if(fabs(tol)MAX_Y){y=MAX_Y}else if(y<-MAX_Y){y=-MAX_Y}yc=y;for(;;){y2=yc*yc;y4=y2*y2;f=yc*(B0+y4*y4*(B1+B2*y2+B3*y4))-y;fder=C0+y4*y4*(C1+C2*y2+C3*y4);yc-=tol=f/fder;if(fabs(tol)0;--i){c=cos(.5*lp.phi);lp.phi-=V=(lp.phi-tan(lp.phi/2)-p)/(1-.5/(c*c));if(fabs(V)=0;--i)p.r=tpsi[i]+phi*p.r;p.r*=phi;p.i=lp.lam;p=pj_zpoly1(p,bf);xy.x=p.i;xy.y=p.r}function e_inv(xy,lp){var nn,i,dr,di,f,den;var p={r:xy.y,i:xy.x};var fp={};for(nn=20;nn>0;--nn){f=pj_zpolyd1(p,bf,fp);f.r-=xy.y;f.i-=xy.x;den=fp.r*fp.r+fp.i*fp.i;p.r+=dr=-(f.r*fp.r+f.i*fp.i)/den;p.i+=di=-(f.i*fp.r-f.r*fp.i)/den;if(fabs(dr)+fabs(di)<=EPSLN)break}if(nn>0){lp.lam=p.i;i=tphi.length-1;lp.phi=tphi[i];for(--i;i>=0;--i)lp.phi=tphi[i]+p.r*lp.phi;lp.phi=P.phi0+p.r*lp.phi*SEC5_TO_RAD}else lp.lam=lp.phi=HUGE_VAL}}pj_add(pj_ob_tran,"ob_tran","General Oblique Transformation","\n\tMisc Sph"+"\n\to_proj= plus parameters for projection"+"\n\to_lat_p= o_lon_p= (new pole) or"+"\n\to_alpha= o_lon_c= o_lat_c= or"+"\n\to_lon_1= o_lat_1= o_lon_2= o_lat_2=");function pj_ob_tran(P){var name,defn,P2;var lamp,cphip,sphip,phip;var lamc,phic,alpha;var lam1,lam2,phi1,phi2,con;var TOL=1e-10;name=pj_param(P.params,"so_proj");defn=pj_list[name];if(!name)e_error(-26);if(!defn||name=="ob_tran")e_error(-37);P.es=0;P2={};Object.keys(P).forEach(function(key){P2[key]=P[key]});defn.init(P2);if(P2.is_latlong&&P.to_meter==1){P.to_meter=DEG_TO_RAD;P.fr_meter=RAD_TO_DEG}if(pj_param(P.params,"to_alpha")){lamc=pj_param(P.params,"ro_lon_c");phic=pj_param(P.params,"ro_lat_c");alpha=pj_param(P.params,"ro_alpha");if(fabs(fabs(phic)-M_HALFPI)<=TOL)e_error(-32);lamp=lamc+aatan2(-cos(alpha),-sin(alpha)*sin(phic));phip=aasin(cos(phic)*sin(alpha))}else if(pj_param(P.params,"to_lat_p")){lamp=pj_param(P.params,"ro_lon_p");phip=pj_param(P.params,"ro_lat_p")}else{lam1=pj_param(P.params,"ro_lon_1");phi1=pj_param(P.params,"ro_lat_1");lam2=pj_param(P.params,"ro_lon_2");phi2=pj_param(P.params,"ro_lat_2");if(fabs(phi1-phi2)<=TOL||(con=fabs(phi1))<=TOL||fabs(con-M_HALFPI)<=TOL||fabs(fabs(phi2)-M_HALFPI)<=TOL)e_error(-33);lamp=atan2(cos(phi1)*sin(phi2)*cos(lam1)-sin(phi1)*cos(phi2)*cos(lam2),sin(phi1)*cos(phi2)*sin(lam2)-cos(phi1)*sin(phi2)*sin(lam1));phip=atan(-cos(lamp-lam1)/tan(phi1))}if(fabs(phip)>TOL){cphip=cos(phip);sphip=sin(phip);P.fwd=o_fwd;P.inv=P2.inv?o_inv:null}else{P.fwd=t_fwd;P.inv=P2.inv?t_inv:null}function o_fwd(lp,xy){var coslam,sinphi,cosphi;coslam=cos(lp.lam);sinphi=sin(lp.phi);cosphi=cos(lp.phi);lp.lam=adjlon(aatan2(cosphi*sin(lp.lam),sphip*cosphi*coslam+cphip*sinphi)+lamp);lp.phi=aasin(sphip*sinphi-cphip*cosphi*coslam);P2.fwd(lp,xy)}function t_fwd(lp,xy){var cosphi,coslam;cosphi=cos(lp.phi);coslam=cos(lp.lam);lp.lam=adjlon(aatan2(cosphi*sin(lp.lam),sin(lp.phi))+lamp);lp.phi=aasin(-cosphi*coslam);P2.fwd(lp,xy)}function o_inv(xy,lp){var coslam,sinphi,cosphi;P2.inv(xy,lp);if(lp.lam!=HUGE_VAL){coslam=cos(lp.lam-=lamp);sinphi=sin(lp.phi);cosphi=cos(lp.phi);lp.phi=aasin(sphip*sinphi+cphip*cosphi*coslam);lp.lam=aatan2(cosphi*sin(lp.lam),sphip*cosphi*coslam-cphip*sinphi)}}function t_inv(xy,lp){var cosphi,t;P2.inv(xy,lp);if(lp.lam!=HUGE_VAL){cosphi=cos(lp.phi);t=lp.lam-lamp;lp.lam=aatan2(cosphi*sin(t),-sin(lp.phi));lp.phi=aasin(cosphi*cos(t))}}}pj_add(pj_ocea,"ocea","Oblique Cylindrical Equal Area","\n\tCyl, Sph lonc= alpha= or\n\tlat_1= lat_2= lon_1= lon_2=");function pj_ocea(P){var phi_0=0,phi_1,phi_2,lam_1,lam_2,lonz,alpha,rok,rtk,sinphi,cosphi,singam,cosgam;rok=1/P.k0;rtk=P.k0;if(pj_param(P.params,"talpha")){alpha=pj_param(P.params,"ralpha");lonz=pj_param(P.params,"rlonc");singam=atan(-cos(alpha)/(-sin(phi_0)*sin(alpha)))+lonz;sinphi=asin(cos(phi_0)*sin(alpha))}else{phi_1=pj_param(P.params,"rlat_1");phi_2=pj_param(P.params,"rlat_2");lam_1=pj_param(P.params,"rlon_1");lam_2=pj_param(P.params,"rlon_2");singam=atan2(cos(phi_1)*sin(phi_2)*cos(lam_1)-sin(phi_1)*cos(phi_2)*cos(lam_2),sin(phi_1)*cos(phi_2)*sin(lam_2)-cos(phi_1)*sin(phi_2)*sin(lam_1));if(lam_1==-M_HALFPI)singam=-singam;sinphi=atan(-cos(singam-lam_1)/tan(phi_1))}P.lam0=singam+M_HALFPI;cosphi=cos(sinphi);sinphi=sin(sinphi);cosgam=cos(singam);singam=sin(singam);P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var t;xy.y=sin(lp.lam);t=cos(lp.lam);xy.x=atan((tan(lp.phi)*cosphi+sinphi*xy.y)/t);if(t<0)xy.x+=M_PI;xy.x*=rtk;xy.y=rok*(sinphi*sin(lp.phi)-cosphi*cos(lp.phi)*xy.y)}function s_inv(xy,lp){var t,s;xy.y/=rok;xy.x/=rtk;t=sqrt(1-xy.y*xy.y);lp.phi=asin(xy.y*sinphi+t*cosphi*(s=sin(xy.x)));lp.lam=atan2(t*sinphi*s-xy.y*cosphi,t*cos(xy.x))}}pj_add(pj_omerc,"omerc","Oblique Mercator","\n\tCyl, Sph&Ell no_rot"+"\n\talpha= [gamma=] [no_off] lonc= or\n\t lon_1= lat_1= lon_2= lat_2=");function pj_omerc(P){var TOL=1e-7;var con,com,cosph0,D,F,H,L,sinph0,p,J,gamma=0,gamma0,lamc=0,lam1=0,lam2=0,phi1=0,phi2=0,alpha_c=0;var alp,gam,no_off=0;var A,B,E,AB,ArB,BrA,rB,singam,cosgam,sinrot,cosrot;var v_pole_n,v_pole_s,u_0;var no_rot;no_rot=pj_param(P.params,"tno_rot");if((alp=pj_param(P.params,"talpha"))!=0)alpha_c=pj_param(P.params,"ralpha");if((gam=pj_param(P.params,"tgamma"))!=0)gamma=pj_param(P.params,"rgamma");if(alp||gam){lamc=pj_param(P.params,"rlonc");no_off=pj_param(P.params,"tno_off")||pj_param(P.params,"tno_uoff");if(no_off){pj_param(P.params,"sno_uoff");pj_param(P.params,"sno_off")}}else{lam1=pj_param(P.params,"rlon_1");phi1=pj_param(P.params,"rlat_1");lam2=pj_param(P.params,"rlon_2");phi2=pj_param(P.params,"rlat_2");if(fabs(phi1-phi2)<=TOL||(con=fabs(phi1))<=TOL||fabs(con-M_HALFPI)<=TOL||fabs(fabs(P.phi0)-M_HALFPI)<=TOL||fabs(fabs(phi2)-M_HALFPI)<=TOL)e_error(-33)}com=sqrt(P.one_es);if(fabs(P.phi0)>EPS10){sinph0=sin(P.phi0);cosph0=cos(P.phi0);con=1-P.es*sinph0*sinph0;B=cosph0*cosph0;B=sqrt(1+P.es*B*B/P.one_es);A=B*P.k0*com/con;D=B*com/(cosph0*sqrt(con));if((F=D*D-1)<=0)F=0;else{F=sqrt(F);if(P.phi0<0)F=-F}E=F+=D;E*=pow(pj_tsfn(P.phi0,sinph0,P.e),B)}else{B=1/com;A=P.k0;E=D=F=1}if(alp||gam){if(alp){gamma0=asin(sin(alpha_c)/D);if(!gam)gamma=alpha_c}else alpha_c=asin(D*sin(gamma0=gamma));P.lam0=lamc-asin(.5*(F-1/F)*tan(gamma0))/B}else{H=pow(pj_tsfn(phi1,sin(phi1),P.e),B);L=pow(pj_tsfn(phi2,sin(phi2),P.e),B);F=E/H;p=(L-H)/(L+H);J=E*E;J=(J-L*H)/(J+L*H);if((con=lam1-lam2)<-M_PI)lam2-=M_TWOPI;else if(con>M_PI)lam2+=M_TWOPI;P.lam0=adjlon(.5*(lam1+lam2)-atan(J*tan(.5*B*(lam1-lam2))/p)/B);gamma0=atan(2*sin(B*adjlon(lam1-P.lam0))/(F-1/F));gamma=alpha_c=asin(D*sin(gamma0))}singam=sin(gamma0);cosgam=cos(gamma0);sinrot=sin(gamma);cosrot=cos(gamma);BrA=1/(ArB=A*(rB=1/B));AB=A*B;if(no_off)u_0=0;else{u_0=fabs(ArB*atan(sqrt(D*D-1)/cos(alpha_c)));if(P.phi0<0)u_0=-u_0}F=.5*gamma0;v_pole_n=ArB*log(tan(M_FORTPI-F));v_pole_s=ArB*log(tan(M_FORTPI+F));P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var S,T,U,V,W,temp,u,v;if(fabs(fabs(lp.phi)-M_HALFPI)>EPS10){W=E/pow(pj_tsfn(lp.phi,sin(lp.phi),P.e),B);temp=1/W;S=.5*(W-temp);T=.5*(W+temp);V=sin(B*lp.lam);U=(S*singam-V*cosgam)/T;if(fabs(fabs(U)-1)0?v_pole_n:v_pole_s;u=ArB*lp.phi}if(no_rot){xy.x=u;xy.y=v}else{u-=u_0;xy.x=v*cosrot+u*sinrot;xy.y=u*cosrot-v*sinrot}}function e_inv(xy,lp){var u,v,Qp,Sp,Tp,Vp,Up;if(no_rot){v=xy.y;u=xy.x}else{v=xy.x*cosrot-xy.y*sinrot;u=xy.y*cosrot+xy.x*sinrot+u_0}Qp=exp(-BrA*v);Sp=.5*(Qp-1/Qp);Tp=.5*(Qp+1/Qp);Vp=sin(BrA*u);Up=(Vp*cosgam+Sp*singam)/Tp;if(fabs(fabs(Up)-1)EPS10){Q.mode=OBLIQ;Q.sinph0=sin(P.phi0);Q.cosph0=cos(P.phi0)}else Q.mode=EQUIT;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var coslam,cosphi,sinphi;cosphi=cos(lp.phi);coslam=cos(lp.lam);switch(Q.mode){case EQUIT:if(cosphi*coslam<-EPS10)f_error();xy.y=sin(lp.phi);break;case OBLIQ:if(Q.sinph0*(sinphi=sin(lp.phi))+Q.cosph0*cosphi*coslam<-EPS10)f_error();xy.y=Q.cosph0*sinphi-Q.sinph0*cosphi*coslam;break;case N_POLE:coslam=-coslam;case S_POLE:if(fabs(lp.phi-P.phi0)-EPS10>M_HALFPI)f_error();xy.y=cosphi*coslam;break}xy.x=cosphi*sin(lp.lam)}function s_inv(xy,lp){var rh,cosc,sinc;if((sinc=rh=hypot(xy.x,xy.y))>1){if(sinc-1>EPS10)i_error();sinc=1}cosc=sqrt(1-sinc*sinc);if(fabs(rh)<=EPS10){lp.phi=P.phi0;lp.lam=0}else{switch(Q.mode){case N_POLE:xy.y=-xy.y;lp.phi=acos(sinc);break;case S_POLE:lp.phi=-acos(sinc);break;case EQUIT:case OBLIQ:if(Q.mode==EQUIT){lp.phi=xy.y*sinc/rh;xy.x*=sinc;xy.y=cosc*rh}else{lp.phi=cosc*Q.sinph0+xy.y*sinc*Q.cosph0/rh;xy.y=(cosc-Q.sinph0*lp.phi)*rh;xy.x*=sinc*Q.cosph0}if(fabs(lp.phi)>=1)lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(lp.phi);break}lp.lam=xy.y==0&&(Q.mode==OBLIQ||Q.mode==EQUIT)?xy.x==0?0:xy.x<0?-M_HALFPI:M_HALFPI:atan2(xy.x,xy.y)}}}pj_add(pj_poly,"poly","Polyconic (American)","\n\tConic, Sph&Ell");function pj_poly(P){var TOL=1e-10,CONV=1e-10,N_ITER=10,I_ITER=20,ITOL=1e-12,ml0,en;if(P.es){en=pj_enfn(P.es);ml0=pj_mlfn(P.phi0,sin(P.phi0),cos(P.phi0),en);P.fwd=e_fwd;P.inv=e_inv}else{ml0=-P.phi0;P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){var ms,sp,cp;if(fabs(lp.phi)<=TOL){xy.x=lp.lam;xy.y=-ml0}else{sp=sin(lp.phi);ms=fabs(cp=cos(lp.phi))>TOL?pj_msfn(sp,cp,P.es)/sp:0;xy.x=ms*sin(lp.lam*=sp);xy.y=pj_mlfn(lp.phi,sp,cp,en)-ml0+ms*(1-cos(lp.lam))}}function e_inv(xy,lp){var x=xy.x,y=xy.y;var r,c,sp,cp,s2ph,ml,mlb,mlp,dPhi,i;y+=ml0;if(fabs(y)<=TOL){lp.lam=x;lp.phi=0}else{r=y*y+x*x;for(lp.phi=y,i=I_ITER;i>0;--i){sp=sin(lp.phi);s2ph=sp*(cp=cos(lp.phi));if(fabs(cp)CONV&&--i);if(!i)i_error();lp.lam=asin(xy.x*tan(lp.phi))/sin(lp.phi)}}}pj_add(pj_putp2,"putp2","Putnins P2","\n\tPCyl., Sph.");function pj_putp2(P){var C_x=1.8949,C_y=1.71848,C_p=.6141848493043784,EPS=1e-10,NITER=10,PI_DIV_3=1.0471975511965976;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var p,c,s,V,i;p=C_p*sin(lp.phi);s=lp.phi*lp.phi;lp.phi*=.615709+s*(.00909953+s*.0046292);for(i=NITER;i;--i){c=cos(lp.phi);s=sin(lp.phi);lp.phi-=V=(lp.phi+s*(c-1)-p)/(1+c*(c-1)-s*s);if(fabs(V)=M_HALFPI-M_FORTPI/2){face=FACE_TOP}else if(P.phi0<=-(M_HALFPI-M_FORTPI/2)){face=FACE_BOTTOM}else if(fabs(P.lam0)<=M_FORTPI){face=FACE_FRONT}else if(fabs(P.lam0)<=M_HALFPI+M_FORTPI){face=P.lam0>0?FACE_RIGHT:FACE_LEFT}else{face=FACE_BACK}if(P.es!==0){a_squared=P.a*P.a;b=P.a*sqrt(1-P.es);one_minus_f=1-(P.a-b)/P.a;one_minus_f_squared=one_minus_f*one_minus_f}P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var lat,lon;var theta,phi;var t,mu;var area;var q,r,s;var sinlat,coslat;var sinlon,coslon;var tmp;if(P.es!==0){lat=atan(one_minus_f_squared*tan(lp.phi))}else{lat=lp.phi}lon=lp.lam;if(face==FACE_TOP){phi=M_HALFPI-lat;if(lon>=M_FORTPI&&lon<=M_HALFPI+M_FORTPI){area=AREA_0;theta=lon-M_HALFPI}else if(lon>M_HALFPI+M_FORTPI||lon<=-(M_HALFPI+M_FORTPI)){area=AREA_1;theta=lon>0?lon-M_PI:lon+M_PI}else if(lon>-(M_HALFPI+M_FORTPI)&&lon<=-M_FORTPI){area=AREA_2;theta=lon+M_HALFPI}else{area=AREA_3;theta=lon}}else if(face==FACE_BOTTOM){phi=M_HALFPI+lat;if(lon>=M_FORTPI&&lon<=M_HALFPI+M_FORTPI){area=AREA_0;theta=-lon+M_HALFPI}else if(lon=-M_FORTPI){area=AREA_1;theta=-lon}else if(lon<-M_FORTPI&&lon>=-(M_HALFPI+M_FORTPI)){area=AREA_2;theta=-lon-M_HALFPI}else{area=AREA_3;theta=lon>0?-lon+M_PI:-lon-M_PI}}else{if(face==FACE_RIGHT){lon=qsc_shift_lon_origin(lon,+M_HALFPI)}else if(face==FACE_BACK){lon=qsc_shift_lon_origin(lon,+M_PI)}else if(face==FACE_LEFT){lon=qsc_shift_lon_origin(lon,-M_HALFPI)}sinlat=sin(lat);coslat=cos(lat);sinlon=sin(lon);coslon=cos(lon);q=coslat*coslon;r=coslat*sinlon;s=sinlat;if(face==FACE_FRONT){phi=acos(q);tmp=qsc_fwd_equat_face_theta(phi,s,r)}else if(face==FACE_RIGHT){phi=acos(r);tmp=qsc_fwd_equat_face_theta(phi,s,-q)}else if(face==FACE_BACK){phi=acos(-q);tmp=qsc_fwd_equat_face_theta(phi,s,-r)}else if(face==FACE_LEFT){phi=acos(-r);tmp=qsc_fwd_equat_face_theta(phi,s,q)}else{phi=0;tmp={area:AREA_0,theta:0}}theta=tmp.theta;area=tmp.area}mu=atan(12/M_PI*(theta+acos(sin(theta)*cos(M_FORTPI))-M_HALFPI));t=sqrt((1-cos(phi))/(cos(mu)*cos(mu))/(1-cos(atan(1/cos(theta)))));if(area==AREA_1){mu+=M_HALFPI}else if(area==AREA_2){mu+=M_PI}else if(area==AREA_3){mu+=M_PI_HALFPI}xy.x=t*cos(mu);xy.y=t*sin(mu)}function e_inv(xy,lp){var mu,nu,cosmu,tannu;var tantheta,theta,cosphi,phi;var t;var area;nu=atan(sqrt(xy.x*xy.x+xy.y*xy.y));mu=atan2(xy.y,xy.x);if(xy.x>=0&&xy.x>=fabs(xy.y)){area=AREA_0}else if(xy.y>=0&&xy.y>=fabs(xy.x)){area=AREA_1;mu-=M_HALFPI}else if(xy.x<0&&-xy.x>=fabs(xy.y)){area=AREA_2;mu=mu<0?mu+M_PI:mu-M_PI}else{area=AREA_3;mu+=M_HALFPI}t=M_PI/12*tan(mu);tantheta=sin(t)/(cos(t)-1/sqrt(2));theta=atan(tantheta);cosmu=cos(mu);tannu=tan(nu);cosphi=1-cosmu*cosmu*tannu*tannu*(1-cos(atan(1/cos(theta))));if(cosphi<-1){cosphi=-1}else if(cosphi>+1){cosphi=+1}if(face==FACE_TOP){phi=acos(cosphi);lp.phi=M_HALFPI-phi;if(area==AREA_0){lp.lam=theta+M_HALFPI}else if(area==AREA_1){lp.lam=theta<0?theta+M_PI:theta-M_PI}else if(area==AREA_2){lp.lam=theta-M_HALFPI}else{lp.lam=theta}}else if(face==FACE_BOTTOM){phi=acos(cosphi);lp.phi=phi-M_HALFPI;if(area==AREA_0){lp.lam=-theta+M_HALFPI}else if(area==AREA_1){lp.lam=-theta}else if(area==AREA_2){lp.lam=-theta-M_HALFPI}else{lp.lam=theta<0?-theta-M_PI:-theta+M_PI}}else{var q,r,s;q=cosphi;t=q*q;if(t>=1){s=0}else{s=sqrt(1-t)*sin(theta)}t+=s*s;if(t>=1){r=0}else{r=sqrt(1-t)}if(area==AREA_1){t=r;r=-s;s=t}else if(area==AREA_2){r=-r;s=-s}else if(area==AREA_3){t=r;r=s;s=-t}if(face==FACE_RIGHT){t=q;q=-r;r=t}else if(face==FACE_BACK){q=-q;r=-r}else if(face==FACE_LEFT){t=q;q=r;r=-t}lp.phi=acos(-s)-M_HALFPI;lp.lam=atan2(r,q);if(face==FACE_RIGHT){lp.lam=qsc_shift_lon_origin(lp.lam,-M_HALFPI)}else if(face==FACE_BACK){lp.lam=qsc_shift_lon_origin(lp.lam,-M_PI)}else if(face==FACE_LEFT){lp.lam=qsc_shift_lon_origin(lp.lam,+M_HALFPI)}}if(P.es!==0){var invert_sign;var tanphi,xa;invert_sign=lp.phi<0?1:0;tanphi=tan(lp.phi);xa=b/sqrt(tanphi*tanphi+one_minus_f_squared);lp.phi=atan(sqrt(P.a*P.a-xa*xa)/(one_minus_f*xa));if(invert_sign){lp.phi=-lp.phi}}}function qsc_fwd_equat_face_theta(phi,y,x){var area,theta;if(phiM_FORTPI&&theta<=M_HALFPI+M_FORTPI){area=AREA_1;theta-=M_HALFPI}else if(theta>M_HALFPI+M_FORTPI||theta<=-(M_HALFPI+M_FORTPI)){area=AREA_2;theta=theta>=0?theta-M_PI:theta+M_PI}else{area=AREA_3;theta+=M_HALFPI}}return{area:area,theta:theta}}function qsc_shift_lon_origin(lon,offset){var slon=lon+offset;if(slon<-M_PI){slon+=M_TWOPI}else if(slon>+M_PI){slon-=M_TWOPI}return slon}}pj_add(pj_robin,"robin","Robinson","\n\tPCyl., Sph.");function pj_robin(P){var X=to_float([[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]]);var Y=to_float([[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]]);var FXC=.8487,FYC=1.3523,C1=11.459155902616464,RC1=.08726646259971647,NODES=18,ONEEPS=1.000001,EPS=1e-8;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var i,dphi;i=floor((dphi=fabs(lp.phi))*C1);if(i<0)f_error();if(i>=NODES)i=NODES-1;dphi=RAD_TO_DEG*(dphi-RC1*i);xy.x=V(X[i],dphi)*FXC*lp.lam;xy.y=V(Y[i],dphi)*FYC;if(lp.phi<0)xy.y=-xy.y}function s_inv(xy,lp){var t,t1,T,i;lp.lam=xy.x/FXC;lp.phi=fabs(xy.y/FYC);if(lp.phi>=1){if(lp.phi>ONEEPS)i_error();else{lp.phi=xy.y<0?-M_HALFPI:M_HALFPI;lp.lam/=X[NODES][0]}}else{i=floor(lp.phi*NODES);if(i<0||i>=NODES){return i_error()}for(;;){if(Y[i][0]>lp.phi)--i;else if(Y[i+1][0]<=lp.phi)++i;else break}T=new Float32Array(Y[i]);t=5*(lp.phi-T[0])/(Y[i+1][0]-T[0]);T[0]-=lp.phi;for(;;){t-=t1=V(T,t)/DV(T,t);if(fabs(t1)=M_HALFPI)e_error(-43);rho_0=c2*(c1-tan(del));break;case"VITK1":n=(cs=tan(del))*sin(sig)/del;rho_c=del/(cs*tan(sig))+sig;rho_0=rho_c-P.phi0;break}P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var rho;switch(type){case"MURD2":rho=rho_c+tan(sig-lp.phi);break;case"PCONIC":rho=c2*(c1-tan(lp.phi-sig));break;default:rho=rho_c-lp.phi;break}xy.x=rho*sin(lp.lam*=n);xy.y=rho_0-rho*cos(lp.lam)}function s_inv(xy,lp){var rho;rho=hypot(xy.x,xy.y=rho_0-xy.y);if(n<0){rho=-rho;xy.x=-xy.x;xy.y=-xy.y}lp.lam=atan2(xy.x,xy.y)/n;switch(type){case"PCONIC":lp.phi=atan(c1-rho/c2)+sig;break;case"MURD2":lp.phi=sig-atan(rho-rho_c);break;default:lp.phi=rho_c-rho}}}pj_add(pj_somerc,"somerc","Swiss. Obl. Mercator","\n\tCyl, Ell\n\tFor CH1903");function pj_somerc(P){var K,c,hlf_e,kR,cosp0,sinp0;var EPS=1e-10;var NITER=6;var cp,phip0,sp;hlf_e=.5*P.e;cp=cos(P.phi0);cp*=cp;c=sqrt(1+P.es*cp*cp*P.rone_es);sp=sin(P.phi0);cosp0=cos(phip0=aasin(sinp0=sp/c));sp*=P.e;K=log(tan(M_FORTPI+.5*phip0))-c*(log(tan(M_FORTPI+.5*P.phi0))-hlf_e*log((1+sp)/(1-sp)));kR=P.k0*sqrt(P.one_es)/(1-sp*sp);P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var phip,lamp,phipp,lampp,sp,cp;sp=P.e*sin(lp.phi);phip=2*atan(exp(c*(log(tan(M_FORTPI+.5*lp.phi))-hlf_e*log((1+sp)/(1-sp)))+K))-M_HALFPI;lamp=c*lp.lam;cp=cos(phip);phipp=aasin(cosp0*sin(phip)-sinp0*cp*cos(lamp));lampp=aasin(cp*sin(lamp)/cos(phipp));xy.x=kR*lampp;xy.y=kR*log(tan(M_FORTPI+.5*phipp))}function e_inv(xy,lp){var phip,lamp,phipp,lampp,cp,esp,con,delp;var i;phipp=2*(atan(exp(xy.y/kR))-M_FORTPI);lampp=xy.x/kR;cp=cos(phipp);phip=aasin(cosp0*sin(phipp)+sinp0*cp*cos(lampp));lamp=aasin(cp*sin(lampp)/cos(phip));con=(K-log(tan(M_FORTPI+.5*phip)))/c;for(i=NITER;i;--i){esp=P.e*sin(phip);delp=(con+log(tan(M_FORTPI+.5*phip))-hlf_e*log((1+esp)/(1-esp)))*(1-esp*esp)*cos(phip)*P.rone_es;phip-=delp;if(fabs(delp)EPS10?OBLIQ:EQUIT;phits=fabs(phits);if(P.es){switch(mode){case N_POLE:case S_POLE:if(fabs(phits-M_HALFPI)=EPS10?cos(phits)/tan(M_FORTPI-.5*phits):2*P.k0;break}P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){var coslam,sinlam,sinX=0,cosX=0,X,A,sinphi;coslam=cos(lp.lam);sinlam=sin(lp.lam);sinphi=sin(lp.phi);if(mode==OBLIQ||mode==EQUIT){sinX=sin(X=2*atan(ssfn(lp.phi,sinphi,P.e))-M_HALFPI);cosX=cos(X)}switch(mode){case OBLIQ:A=akm1/(cosX1*(1+sinX1*sinX+cosX1*cosX*coslam));xy.y=A*(cosX1*sinX-sinX1*cosX*coslam);xy.x=A*cosX;break;case EQUIT:A=akm1/(1+cosX*coslam);xy.y=A*sinX;xy.x=A*cosX;break;case S_POLE:lp.phi=-lp.phi;coslam=-coslam;sinphi=-sinphi;case N_POLE:xy.x=akm1*pj_tsfn(lp.phi,sinphi,P.e);xy.y=-xy.x*coslam;break}xy.x=xy.x*sinlam}function s_fwd(lp,xy){var phi=lp.phi,sinphi=sin(phi),cosphi=cos(phi),coslam=cos(lp.lam),sinlam=sin(lp.lam);switch(mode){case EQUIT:case OBLIQ:if(mode==EQUIT){xy.y=1+cosphi*coslam}else{xy.y=1+sinph0*sinphi+cosph0*cosphi*coslam}if(xy.y<=EPS10)f_error();xy.x=(xy.y=akm1/xy.y)*cosphi*sinlam;xy.y*=mode==EQUIT?sinphi:cosph0*sinphi-sinph0*cosphi*coslam;break;case N_POLE:coslam=-coslam;phi=-phi;case S_POLE:if(fabs(phi-M_HALFPI)0;--i){phi=2*atan(num*srat(en.e*sin(lp.phi),-.5*en.e))-M_HALFPI;if(fabs(phi-lp.phi)M_HALFPI){pj_ctx_set_errno(-14);return}sinphi=sin(lp.phi);cosphi=cos(lp.phi);t=fabs(cosphi)>EPS10?sinphi/cosphi:0;t*=t;al=cosphi*lp.lam;als=al*al;al/=sqrt(1-P.es*sinphi*sinphi);n=esp*cosphi*cosphi;xy.x=P.k0*al*(FC1+FC3*als*(1-t+n+FC5*als*(5+t*(t-18)+n*(14-58*t)+FC7*als*(61+t*(t*(179-t)-479)))));xy.y=P.k0*(pj_mlfn(lp.phi,sinphi,cosphi,en)-ml0+sinphi*al*lp.lam*FC2*(1+FC4*als*(5-t+n*(9+4*n)+FC6*als*(61+t*(t-58)+n*(270-330*t)+FC8*als*(1385+t*(t*(543-t)-3111))))))}function s_fwd(lp,xy){var b,cosphi;if(lp.lam<-M_HALFPI||lp.lam>M_HALFPI){pj_ctx_set_errno(-14);return}cosphi=cos(lp.phi);b=cosphi*sin(lp.lam);if(fabs(fabs(b)-1)<=EPS10)f_error();xy.x=ml0*log((1+b)/(1-b));xy.y=cosphi*cos(lp.lam)/sqrt(1-b*b);b=fabs(xy.y);if(b>=1){if(b-1>EPS10){f_error()}else{xy.y=0}}else xy.y=acos(xy.y);if(lp.phi<0)xy.y=-xy.y;xy.y=esp*(xy.y-P.phi0)}function e_inv(xy,lp){var n,con,cosphi,d,ds,sinphi,t;lp.phi=pj_inv_mlfn(ml0+xy.y/P.k0,P.es,en);if(fabs(lp.phi)>=M_HALFPI){lp.phi=xy.y<0?-M_HALFPI:M_HALFPI;lp.lam=0}else{sinphi=sin(lp.phi);cosphi=cos(lp.phi);t=fabs(cosphi)>1e-10?sinphi/cosphi:0;n=esp*cosphi*cosphi;d=xy.x*sqrt(con=1-P.es*sinphi*sinphi)/P.k0;con*=t;t*=t;ds=d*d;lp.phi-=con*ds/(1-P.es)*FC2*(1-ds*FC4*(5+t*(3-9*n)+n*(1-4*n)-ds*FC6*(61+t*(90-252*n+45*t)+46*n-ds*FC8*(1385+t*(3633+t*(4095+1575*t))))));lp.lam=d*(FC1-ds*FC3*(1+2*t+n-ds*FC5*(5+t*(28+24*t+8*n)+6*n-ds*FC7*(61+t*(662+t*(1320+720*t))))))/cosphi}}function s_inv(xy,lp){var h=exp(xy.x/esp);var g=.5*(h-1/h);h=cos(P.phi0+xy.y/esp);lp.phi=asin(sqrt((1-h*h)/(1+g*g)));if(xy.y<0&&-lp.phi+P.phi0<0)lp.phi=-lp.phi;lp.lam=g||h?atan2(g,h):0}}pj_add(pj_tpeqd,"tpeqd","Two Point Equidistant","\n\tMisc Sph\n\tlat_1= lon_1= lat_2= lon_2=");function pj_tpeqd(P){var cp1,sp1,cp2,sp2,ccs,cs,sc,r2z0,z02,dlam2;var hz0,thz0,rhshz0,ca,sa,lamp,lamc;var lam_1,lam_2,phi_1,phi_2,A12,pp;phi_1=pj_param(P.params,"rlat_1");lam_1=pj_param(P.params,"rlon_1");phi_2=pj_param(P.params,"rlat_2");lam_2=pj_param(P.params,"rlon_2");if(phi_1==phi_2&&lam_1==lam_2)e_error(-25);P.lam0=adjlon(.5*(lam_1+lam_2));dlam2=adjlon(lam_2-lam_1);cp1=cos(phi_1);cp2=cos(phi_2);sp1=sin(phi_1);sp2=sin(phi_2);cs=cp1*sp2;sc=sp1*cp2;ccs=cp1*cp2*sin(dlam2);z02=aacos(sp1*sp2+cp1*cp2*cos(dlam2));hz0=.5*z02;A12=atan2(cp2*sin(dlam2),cp1*sp2-sp1*cp2*cos(dlam2));ca=cos(pp=aasin(cp1*sin(A12)));sa=sin(pp);lamp=adjlon(atan2(cp1*cos(A12),sp1)-hz0);dlam2*=.5;lamc=M_HALFPI-atan2(sin(A12)*sp1,cos(A12))-dlam2;thz0=tan(hz0);rhshz0=.5/sin(hz0);r2z0=.5/z02;z02*=z02;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var t,z1,z2,dl1,dl2,sp,cp;sp=sin(lp.phi);cp=cos(lp.phi);z1=aacos(sp1*sp+cp1*cp*cos(dl1=lp.lam+dlam2));z2=aacos(sp2*sp+cp2*cp*cos(dl2=lp.lam-dlam2));z1*=z1;z2*=z2;xy.x=r2z0*(t=z1-z2);t=z02-t;xy.y=r2z0*asqrt(4*z02*z2-t*t);if(ccs*sp-cp*(cs*sin(dl1)-sc*sin(dl2))<0)xy.y=-xy.y}function s_inv(xy,lp){var cz1,cz2,s,d,cp,sp;cz1=cos(hypot(xy.y,xy.x+hz0));cz2=cos(hypot(xy.y,xy.x-hz0));s=cz1+cz2;d=cz1-cz2;lp.lam=-atan2(d,s*thz0);lp.phi=aacos(hypot(thz0*s,d)*rhshz0);if(xy.y<0)lp.phi=-lp.phi;sp=sin(lp.phi);cp=cos(lp.phi);lp.phi=aasin(sa*sp+ca*cp*(s=cos(lp.lam-=lamp)));lp.lam=atan2(cp*sin(lp.lam),sa*cp*s-ca*sp)+lamc}}pj_add(pj_urm5,"urm5","Urmaev V","\n\tPCyl., Sph., no inv.\n\tn= q= alpha=");function pj_urm5(P){var m,rmn,q3,n;var alpha,t;n=pj_param(P.params,"dn");if(n>0&&n<=1===false){e_error(-40)}q3=pj_param(P.params,"dq")/3;alpha=pj_param(P.params,"ralpha");t=n*sin(alpha);m=cos(alpha)/sqrt(1-t*t);rmn=1/(m*n);P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var t=lp.phi=aasin(n*sin(lp.phi));xy.x=m*lp.lam*cos(lp.phi);t*=t;xy.y=lp.phi*(1+t*q3)*rmn}}pj_add(pj_urmfps,"urmfps","Urmaev Flat-Polar Sinusoidal","\n\tPCyl, Sph.\n\tn=");pj_add(pj_wag1,"wag1","Wagner I (Kavraisky VI)","\n\tPCyl, Sph.");function pj_wag1(P){pj_urmfps_init(P,.8660254037844386)}function pj_urmfps(P){var n=pj_param(P.params,"dn");if(n<=0||n>1)e_error(-40);pj_urmfps_init(P,n)}function pj_urmfps_init(P,n){var C_x=.8773826753,C_y=1.139753528477/n;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var phi=aasin(n*sin(lp.phi));xy.x=C_x*lp.lam*cos(phi);xy.y=C_y*phi}function s_inv(xy,lp){xy.y/=C_y;lp.phi=aasin(sin(xy.y)/n);lp.lam=xy.x/(C_x*cos(xy.y))}}pj_add(pj_vandg,"vandg","van der Grinten (I)","\n\tMisc Sph");pj_add(pj_vandg2,"vandg2","van der Grinten II","\n\tMisc Sph, no inv.");pj_add(pj_vandg3,"vandg3","van der Grinten III","\n\tMisc Sph, no inv.");pj_add(pj_vandg4,"vandg4","van der Grinten IV","\n\tMisc Sph, no inv.");function pj_vandg(P){var TOL=1e-10,THIRD=.3333333333333333,TWO_THRD=.6666666666666666,C2_27=.07407407407407407,PI4_3=4.188790204786391,PISQ=9.869604401089358,TPISQ=19.739208802178716,HPISQ=4.934802200544679;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var al,al2,g,g2,p2;p2=fabs(lp.phi/M_HALFPI);if(p2-TOL>1)f_error();if(p2>1)p2=1;if(fabs(lp.phi)<=TOL){xy.x=lp.lam;xy.y=0}else if(fabs(lp.lam)<=TOL||fabs(p2-1)1?d>0?0:M_PI:acos(d);lp.phi=M_PI*(m*cos(d*THIRD+PI4_3)-THIRD*c2);if(xy.y<0)lp.phi=-lp.phi;t=r2+TPISQ*(x2-y2+HPISQ);lp.lam=fabs(xy.x)<=TOL?0:.5*(r-PISQ+(t<=0?0:sqrt(t)))/xy.x}else i_error()}}function pj_vandg2(P){pj_vandg2_init(P,false)}function pj_vandg3(P){pj_vandg2_init(P,true)}function pj_vandg2_init(P,vdg3){var TOL=1e-10;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var x1,at,bt,ct;bt=fabs(M_TWO_D_PI*lp.phi);if((ct=1-bt*bt)<0)ct=0;else ct=sqrt(ct);if(fabs(lp.lam)=0;--i){var obj;var root=chain[i];if(root==="[]"&&options.parseArrays){obj=[].concat(leaf)}else{obj=options.plainObjects?Object.create(null):{};var cleanRoot=root.charAt(0)==="["&&root.charAt(root.length-1)==="]"?root.slice(1,-1):root;var index=parseInt(cleanRoot,10);if(!options.parseArrays&&cleanRoot===""){obj={0:leaf}}else if(!isNaN(index)&&root!==cleanRoot&&String(index)===cleanRoot&&index>=0&&(options.parseArrays&&index<=options.arrayLimit)){obj=[];obj[index]=leaf}else{obj[cleanRoot]=leaf}}leaf=obj}return leaf};var parseKeys=function parseQueryStringKeys(givenKey,val,options){if(!givenKey){return}var key=options.allowDots?givenKey.replace(/\.([^.[]+)/g,"[$1]"):givenKey;var brackets=/(\[[^[\]]*])/;var child=/(\[[^[\]]*])/g;var segment=brackets.exec(key);var parent=segment?key.slice(0,segment.index):key;var keys=[];if(parent){if(!options.plainObjects&&has.call(Object.prototype,parent)){if(!options.allowPrototypes){return}}keys.push(parent)}var i=0;while((segment=child.exec(key))!==null&&i0?prefix+joined:""}},{"./formats":26,"./utils":30}],30:[function(require,module,exports){"use strict";var has=Object.prototype.hasOwnProperty;var hexTable=function(){var array=[];for(var i=0;i<256;++i){array.push("%"+((i<16?"0":"")+i.toString(16)).toUpperCase())}return array}();var compactQueue=function compactQueue(queue){while(queue.length>1){var item=queue.pop();var obj=item.obj[item.prop];if(Array.isArray(obj)){var compacted=[];for(var j=0;j=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122){out+=string.charAt(i);continue}if(c<128){out=out+hexTable[c];continue}if(c<2048){out=out+(hexTable[192|c>>6]+hexTable[128|c&63]);continue}if(c<55296||c>=57344){out=out+(hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|c&63]);continue}i+=1;c=65536+((c&1023)<<10|string.charCodeAt(i)&1023);out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|c&63]}return out};var compact=function compact(value){var queue=[{obj:{o:value},prop:"o"}];var refs=[];for(var i=0;i=2*(1<<30)){throw new RangeError('The value "'+size+'" is invalid for option "size"')}var buf=Buffer(size);if(!fill||fill.length===0){buf.fill(0)}else if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}return buf}}if(!safer.kStringMaxLength){try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}}if(!safer.constants){safer.constants={MAX_LENGTH:safer.kMaxLength};if(safer.kStringMaxLength){safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength}}module.exports=safer}).call(this,require("_process"))},{_process:48,buffer:45}],40:[function(require,module,exports){"use strict";exports.__esModule=true;var handle_qs_js_1=require("then-request/lib/handle-qs.js");var GenericResponse=require("http-response-object");var fd=FormData;exports.FormData=fd;function doRequest(method,url,options){var xhr=new XMLHttpRequest;if(typeof method!=="string"){throw new TypeError("The method must be a string.")}if(url&&typeof url==="object"){url=url.href}if(typeof url!=="string"){throw new TypeError("The URL/path must be a string.")}if(options===null||options===undefined){options={}}if(typeof options!=="object"){throw new TypeError("Options must be an object (or null).")}method=method.toUpperCase();options.headers=options.headers||{};var match;var crossDomain=!!((match=/^([\w-]+:)?\/\/([^\/]+)/.exec(url))&&match[2]!=location.host);if(!crossDomain)options.headers["X-Requested-With"]="XMLHttpRequest";if(options.qs){url=handle_qs_js_1["default"](url,options.qs)}if(options.json){options.body=JSON.stringify(options.json);options.headers["content-type"]="application/json"}if(options.form){options.body=options.form}xhr.open(method,url,false);for(var name in options.headers){xhr.setRequestHeader(name.toLowerCase(),""+options.headers[name])}xhr.send(options.body?options.body:null);var headers={};xhr.getAllResponseHeaders().split("\r\n").forEach(function(header){var h=header.split(":");if(h.length>1){headers[h[0].toLowerCase()]=h.slice(1).join(":").trim()}});return new GenericResponse(xhr.status,headers,xhr.responseText,url)}exports["default"]=doRequest;module.exports=doRequest;module.exports["default"]=doRequest;module.exports.FormData=fd},{"http-response-object":4,"then-request/lib/handle-qs.js":41}],41:[function(require,module,exports){"use strict";exports.__esModule=true;var qs_1=require("qs");function handleQs(url,query){var _a=url.split("?"),start=_a[0],part2=_a[1];var qs=(part2||"").split("#")[0];var end=part2&&part2.split("#").length>1?"#"+part2.split("#")[1]:"";var baseQs=qs_1.parse(qs);for(var i in query){baseQs[i]=query[i]}qs=qs_1.stringify(baseQs);if(qs!==""){qs="?"+qs}return start+qs+end}exports["default"]=handleQs},{qs:27}],42:[function(require,module,exports){},{}],43:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;for(var i=0;i>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],44:[function(require,module,exports){arguments[4][42][0].apply(exports,arguments)},{dup:42}],45:[function(require,module,exports){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,"parent",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,"offset",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;imax)str+=" ... ";return""};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}},{"base64-js":43,ieee754:46}],46:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],47:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1){return"/"}return path.slice(0,end)};function basename(path){if(typeof path!=="string")path=path+"";var start=0;var end=-1;var matchedSlash=true;var i;for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}exports.basename=function(path,ext){var f=basename(path);if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){if(typeof path!=="string")path=path+"";var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i1){for(var i=1;i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3}return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128){self.lastNeed=0;return"\ufffd"}if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self.lastNeed=1;return"\ufffd"}if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self.lastNeed=2;return"\ufffd"}}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"\ufffd";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":49}],51:[function(require,module,exports){(function(setImmediate,clearImmediate){var nextTick=require("process/browser.js").nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;exports.setTimeout=function(){return new Timeout(apply.call(setTimeout,window,arguments),clearTimeout)};exports.setInterval=function(){return new Timeout(apply.call(setInterval,window,arguments),clearInterval)};exports.clearTimeout=exports.clearInterval=function(timeout){timeout.close()};function Timeout(id,clearFn){this._id=id;this._clearFn=clearFn}Timeout.prototype.unref=Timeout.prototype.ref=function(){};Timeout.prototype.close=function(){this._clearFn.call(window,this._id)};exports.enroll=function(item,msecs){clearTimeout(item._idleTimeoutId);item._idleTimeout=msecs};exports.unenroll=function(item){clearTimeout(item._idleTimeoutId);item._idleTimeout=-1};exports._unrefActive=exports.active=function(item){clearTimeout(item._idleTimeoutId);var msecs=item._idleTimeout;if(msecs>=0){item._idleTimeoutId=setTimeout(function onTimeout(){if(item._onTimeout)item._onTimeout()},msecs)}};exports.setImmediate=typeof setImmediate==="function"?setImmediate:function(fn){var id=nextImmediateId++;var args=arguments.length<2?false:slice.call(arguments,1);immediateIds[id]=true;nextTick(function onNextTick(){if(immediateIds[id]){if(args){fn.apply(null,args)}else{fn.call(null)}exports.clearImmediate(id)}});return id};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id]}}).call(this,require("timers").setImmediate,require("timers").clearImmediate)},{"process/browser.js":48,timers:51}]},{},[1]); \ No newline at end of file +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;imax?max:val},isArray:function(obj){return Array.isArray(obj)},isNumber:function(obj){return obj!=null&&obj.constructor==Number},isInteger:function(obj){return utils.isNumber(obj)&&(obj|0)===obj},isString:function(obj){return obj!=null&&obj.toString===String.prototype.toString},isBoolean:function(obj){return obj===true||obj===false},toArray:function(obj){var arr;if(!utils.isArrayLike(obj))error("utils.toArray() requires an array-like object");try{arr=Array.prototype.slice.call(obj,0)}catch(e){arr=[];for(var i=0,n=obj.length;i0)return true;return false},addslashes:function(str){return(str+"").replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0")},regexEscape:function(str){return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},defaults:function(dest){for(var i=1,n=arguments.length;i0?values:void 0};utils.sum=function(arr,info){if(!utils.isArrayLike(arr))error("utils.sum() expects an array, received:",arr);var tot=0,nan=0,val;for(var i=0,n=arr.length;imax)max=val}return{min:min,max:max,nan:nan}};utils.uniq=function(src){var index={};return src.reduce(function(memo,el){if(el in index===false){index[el]=true;memo.push(el)}return memo},[])};utils.pluck=function(arr,key){return arr.map(function(obj){return obj[key]})};utils.countValues=function(arr){return arr.reduce(function(memo,val){memo[val]=val in memo?memo[val]+1:1;return memo},{})};utils.indexOn=function(arr,k){return arr.reduce(function(index,o){index[o[k]]=o;return index},{})};utils.groupBy=function(arr,k){return arr.reduce(function(index,o){var keyval=o[k];if(keyval in index){index[keyval].push(o)}else{index[keyval]=[o]}return index},{})};utils.arrayToIndex=function(arr,val){var init=arguments.length>1;return arr.reduce(function(index,key){index[key]=init?val:true;return index},{})};utils.forEach=function(arr,func,ctx){if(!utils.isArrayLike(arr)){throw new Error("#forEach() takes an array-like argument. "+arr)}for(var i=0,n=arr.length;istart){fmt=","+str.substring(ins,end)+fmt;end=ins;ins-=3}return str.substring(0,end)+fmt};utils.numToStr=function(num,decimals){return decimals>=0?num.toFixed(decimals):String(num)};utils.formatNumber=function(num,decimals,nullStr,showPos){var fmt;if(isNaN(num)){fmt=nullStr||"-"}else{fmt=utils.numToStr(num,decimals);fmt=utils.addThousandsSep(fmt);if(showPos&&parseFloat(fmt)>0){fmt="+"+fmt}}return fmt};function Transform(){this.mx=this.my=1;this.bx=this.by=0}Transform.prototype.isNull=function(){return!this.mx||!this.my||isNaN(this.bx)||isNaN(this.by)};Transform.prototype.invert=function(){var inv=new Transform;inv.mx=1/this.mx;inv.my=1/this.my;inv.bx=-this.bx/this.mx;inv.by=-this.by/this.my;return inv};Transform.prototype.transform=function(x,y,xy){xy=xy||[];xy[0]=x*this.mx+this.bx;xy[1]=y*this.my+this.by;return xy};Transform.prototype.toString=function(){return JSON.stringify(utils.extend({},this))};function Bounds(){if(arguments.length>0){this.setBounds.apply(this,arguments)}}Bounds.prototype.toString=function(){return JSON.stringify({xmin:this.xmin,xmax:this.xmax,ymin:this.ymin,ymax:this.ymax})};Bounds.prototype.toArray=function(){return this.hasBounds()?[this.xmin,this.ymin,this.xmax,this.ymax]:[]};Bounds.prototype.hasBounds=function(){return this.xmin<=this.xmax&&this.ymin<=this.ymax};Bounds.prototype.sameBounds=Bounds.prototype.equals=function(bb){return bb&&this.xmin===bb.xmin&&this.xmax===bb.xmax&&this.ymin===bb.ymin&&this.ymax===bb.ymax};Bounds.prototype.width=function(){return this.xmax-this.xmin||0};Bounds.prototype.height=function(){return this.ymax-this.ymin||0};Bounds.prototype.area=function(){return this.width()*this.height()||0};Bounds.prototype.empty=function(){this.xmin=this.ymin=this.xmax=this.ymax=void 0;return this};Bounds.prototype.setBounds=function(a,b,c,d){if(arguments.length==1){if(utils.isArrayLike(a)){b=a[1];c=a[2];d=a[3];a=a[0]}else{b=a.ymin;c=a.xmax;d=a.ymax;a=a.xmin}}this.xmin=a;this.ymin=b;this.xmax=c;this.ymax=d;if(a>c||b>d)this.update();return this};Bounds.prototype.centerX=function(){var x=(this.xmin+this.xmax)*.5;return x};Bounds.prototype.centerY=function(){var y=(this.ymax+this.ymin)*.5;return y};Bounds.prototype.containsPoint=function(x,y){if(x>=this.xmin&&x<=this.xmax&&y<=this.ymax&&y>=this.ymin){return true}return false};Bounds.prototype.containsBufferedPoint=Bounds.prototype.containsCircle=function(x,y,buf){if(x+buf>this.xmin&&x-bufthis.ymin){return true}}return false};Bounds.prototype.intersects=function(bb){if(bb.xmin<=this.xmax&&bb.xmax>=this.xmin&&bb.ymax>=this.ymin&&bb.ymin<=this.ymax){return true}return false};Bounds.prototype.contains=function(bb){if(bb.xmin>=this.xmin&&bb.ymax<=this.ymax&&bb.xmax<=this.xmax&&bb.ymin>=this.ymin){return true}return false};Bounds.prototype.shift=function(x,y){this.setBounds(this.xmin+x,this.ymin+y,this.xmax+x,this.ymax+y)};Bounds.prototype.padBounds=function(a,b,c,d){this.xmin-=a;this.ymin-=b;this.xmax+=c;this.ymax+=d};Bounds.prototype.scale=function(pct,pctY){var halfWidth=(this.xmax-this.xmin)*.5;var halfHeight=(this.ymax-this.ymin)*.5;var kx=pct-1;var ky=pctY===undefined?kx:pctY-1;this.xmin-=halfWidth*kx;this.ymin-=halfHeight*ky;this.xmax+=halfWidth*kx;this.ymax+=halfHeight*ky};Bounds.prototype.cloneBounds=Bounds.prototype.clone=function(){return new Bounds(this.xmin,this.ymin,this.xmax,this.ymax)};Bounds.prototype.clearBounds=function(){this.setBounds(new Bounds)};Bounds.prototype.mergePoint=function(x,y){if(this.xmin===void 0){this.setBounds(x,y,x,y)}else{if(xthis.xmax)this.xmax=x;if(ythis.ymax)this.ymax=y}};Bounds.prototype.fillOut=function(aspect,focusX,focusY){if(arguments.length<3){focusX=.5;focusY=.5}var w=this.width(),h=this.height(),currAspect=w/h,pad;if(isNaN(aspect)||aspect<=0){}else if(currAspectthis.xmax){tmp=this.xmin;this.xmin=this.xmax;this.xmax=tmp}if(this.ymin>this.ymax){tmp=this.ymin;this.ymin=this.ymax;this.ymax=tmp}};Bounds.prototype.transform=function(t){this.xmin=this.xmin*t.mx+t.bx;this.xmax=this.xmax*t.mx+t.bx;this.ymin=this.ymin*t.my+t.by;this.ymax=this.ymax*t.my+t.by;this.update();return this};Bounds.prototype.getTransform=function(b2,flipY){var t=new Transform;t.mx=b2.width()/this.width()||1;t.bx=b2.xmin-t.mx*this.xmin;if(flipY){t.my=-b2.height()/this.height()||1;t.by=b2.ymax-t.my*this.ymin}else{t.my=b2.height()/this.height()||1;t.by=b2.ymin-t.my*this.ymin}return t};Bounds.prototype.mergeCircle=function(x,y,r){if(r<0)r=-r;this.mergeBounds([x-r,y-r,x+r,y+r])};Bounds.prototype.mergeBounds=function(bb){var a,b,c,d;if(bb instanceof Bounds){a=bb.xmin;b=bb.ymin;c=bb.xmax;d=bb.ymax}else if(arguments.length==4){a=arguments[0];b=arguments[1];c=arguments[2];d=arguments[3]}else if(bb.length==4){a=bb[0];b=bb[1];c=bb[2];d=bb[3]}else{error("Bounds#mergeBounds() invalid argument:",bb)}if(this.xmin===void 0){this.setBounds(a,b,c,d)}else{if(athis.xmax)this.xmax=c;if(d>this.ymax)this.ymax=d}return this};utils.sortOn=function(arr){var comparators=[];for(var i=1;i0||cmp===0&&i>j?1:-1})};utils.reorderArray=function(arr,idxs){var len=idxs.length;var arr2=[];for(var i=0;i=len)error("Out-of-bounds array idx");arr2[i]=arr[idx]}utils.replaceArray(arr,arr2)};utils.getKeyComparator=function(key,asc){var compare=utils.getGenericComparator(asc);return function(a,b){return compare(a[key],b[key])}};utils.getGenericComparator=function(asc){asc=asc!==false;return function(a,b){var retn=0;if(b==null){retn=a==null?0:-1}else if(a==null){retn=1}else if(ab){retn=asc?1:-1}else if(a!==a){retn=1}else if(b!==b){retn=-1}return retn}};utils.quicksort=function(arr,asc){utils.quicksortPartition(arr,0,arr.length-1);if(asc===false)Array.prototype.reverse.call(arr);return arr};utils.quicksortPartition=function(a,lo,hi){var i=lo,j=hi,pivot,tmp;while(i>1];while(i<=j){while(a[i]pivot)j--;if(i<=j){tmp=a[i];a[i]=a[j];a[j]=tmp;i++;j--}}if(loarr[i])rank++}return rank};utils.findValueByPct=function(arr,pct){var rank=Math.ceil((1-pct)*arr.length);return utils.findValueByRank(arr,rank)};utils.findValueByRank=function(arr,rank){if(!arr.length||rank<1||rank>arr.length)error("[findValueByRank()] invalid input");rank=utils.clamp(rank|0,1,arr.length);var k=rank-1,n=arr.length,l=0,m=n-1,i,j,val,tmp;while(l=0?i:this._idx)},position:function(i){if(i!=null){this._idx=i;return this}return this._idx},readCString:function(fixedLen,asciiOnly){var str="",count=fixedLen>=0?fixedLen:this.bytesLeft();while(count>0){var byteVal=this.readUint8();count--;if(byteVal==0){break}else if(byteVal>127&&asciiOnly){str=null;break}str+=String.fromCharCode(byteVal)}if(fixedLen>0&&count>0){this.skipBytes(count)}return str},writeString:function(str,maxLen){var bytesWritten=0,charsToWrite=str.length,cval;if(maxLen){charsToWrite=Math.min(charsToWrite,maxLen)}for(var i=0;i127){cval="?".charCodeAt(0)}this.writeUint8(cval);bytesWritten++}return bytesWritten},writeCString:function(str,fixedLen){var maxChars=fixedLen?fixedLen-1:null,bytesWritten=this.writeString(str,maxChars);this.writeUint8(0);bytesWritten++;if(fixedLen){while(bytesWritten=1?rate:1.2,buf;return function(size){if(size>capacity){capacity=Math.ceil(size*k);buf=constructor?new constructor(capacity):utils.createBuffer(capacity)}return buf}};utils.copyElements=function(src,i,dest,j,n,rev){if(src===dest&&j>i)error("copy error");var inc=1,offs=0;if(rev){inc=-1;offs=n-1}for(var k=0;k0&&val.constructor==Number};utils.parsePercent=function(o){var str=String(o);var isPct=str.indexOf("%")>0;var pct;if(isPct){pct=Number(str.replace("%",""))/100}else{pct=Number(str)}if(!(pct>=0&&pct<=1)){stop(utils.format("Invalid percentage: %s",str))}return pct};utils.formatVersionedName=function(name,i){var suffix=String(i);if(/[0-9]$/.test(name)){suffix="-"+suffix}return name+suffix};utils.uniqifyNames=function(names,formatter){var counts=utils.countValues(names),format=formatter||utils.formatVersionedName,names2=[];names.forEach(function(name){var i=0,candidate=name,versionedName;while(names2.indexOf(candidate)>-1||candidate==name&&counts[candidate]>1||candidate!=name&&counts[candidate]>0){i++;versionedName=format(name,i);if(!versionedName||versionedName==candidate){throw new Error("Naming error")}candidate=versionedName}names2.push(candidate)});return names2};var api={};var VERSION;var internal={VERSION:VERSION,LOGGING:false,STDOUT:false,context:createContext()};var T={stack:[],start:function(){T.stack.push(+new Date)},stop:function(note){var elapsed=+new Date-T.stack.pop();var msg=elapsed+"ms";if(note){msg=note+" "+msg}verbose(msg);return elapsed}};new Float64Array(1);internal.runningInBrowser=function(){return!!api.gui};internal.getStateVar=function(key){return internal.context[key]};internal.setStateVar=function(key,val){internal.context[key]=val};function createContext(){return{DEBUG:false,QUIET:false,VERBOSE:false,defs:{},input_files:[]}}function createAsyncContext(cb){internal.context=createContext();return function(){cb.apply(null,utils.toArray(arguments));internal.context=createContext()}}function preserveContext(cb){var ctx=internal.context;return function(){internal.context=ctx;cb.apply(null,utils.toArray(arguments))}}function error(){internal.error.apply(null,utils.toArray(arguments))}function stop(){internal.stop.apply(null,utils.toArray(arguments))}function UserError(msg){var err=new Error(msg);err.name="UserError";return err}function messageArgs(args){var arr=utils.toArray(args);var cmd=internal.getStateVar("current_command");if(cmd&&cmd!="help"){arr.unshift("["+cmd+"]")}return arr}function message(){internal.message.apply(null,messageArgs(arguments))}function print(){internal.STDOUT=true;message.apply(null,arguments);internal.STDOUT=false}function verbose(){if(internal.getStateVar("VERBOSE")){internal.message.apply(null,messageArgs(arguments))}}function debug(){if(internal.getStateVar("DEBUG")){internal.logArgs(arguments)}}function absArcId(arcId){return arcId>=0?arcId:~arcId}api.enableLogging=function(){internal.LOGGING=true;return api};api.printError=function(err){var msg;if(utils.isString(err)){err=new UserError(err)}if(internal.LOGGING&&err.name=="UserError"){msg=err.message;if(!/Error/.test(msg)){msg="Error: "+msg}console.error(messageArgs([msg]).join(" "));internal.message("Run mapshaper -h to view help")}else{throw err}};internal.error=function(){var msg=utils.toArray(arguments).join(" ");throw new Error(msg)};internal.stop=function(){throw new UserError(internal.formatLogArgs(arguments))};internal.message=function(){internal.logArgs(arguments)};internal.formatLogArgs=function(args){return utils.toArray(args).join(" ")};internal.formatStringsAsGrid=function(arr){var longest=arr.reduce(function(len,str){return Math.max(len,str.length)},0),colWidth=longest+2,perLine=Math.floor(80/colWidth)||1;return arr.reduce(function(memo,name,i){var col=i%perLine;if(i>0&&col===0)memo+="\n";if(colMath.PI){a3=2*Math.PI-a3}return a3}function standardAngle(a){var twoPI=Math.PI*2;while(a<0){a+=twoPI}while(a>=twoPI){a-=twoPI}return a}function signedAngle(ax,ay,bx,by,cx,cy){if(ax==bx&&ay==by||bx==cx&&by==cy){return NaN}var abx=ax-bx,aby=ay-by,cbx=cx-bx,cby=cy-by,dotp=abx*cbx+aby*cby,crossp=abx*cby-aby*cbx,a=Math.atan2(crossp,dotp);return standardAngle(a)}function bearing2D(x1,y1,x2,y2){var val=Math.PI/2-Math.atan2(y2-y1,x2-x1);return val>Math.PI?val-2*Math.PI:val}function bearing(lng1,lat1,lng2,lat2){var D2R=Math.PI/180;lng1*=D2R;lng2*=D2R;lat1*=D2R;lat2*=D2R;var y=Math.sin(lng2-lng1)*Math.cos(lat2),x=Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lng2-lng1);return Math.atan2(y,x)}function signedAngleSph(alng,alat,blng,blat,clng,clat){if(alng==blng&&alat==blat||blng==clng&&blat==clat){return NaN}var b1=bearing(blng,blat,alng,alat),b2=bearing(blng,blat,clng,clat),a=Math.PI*2+b1-b2;return standardAngle(a)}function convLngLatToSph(xsrc,ysrc,xbuf,ybuf,zbuf){var p=[];for(var i=0,len=xsrc.length;i=1-1e-14){theta=0}else if(dotp<=-1+1e-14){theta=Math.PI}else{theta=Math.acos(dotp)}}return theta}function innerAngle3D(ax,ay,az,bx,by,bz,cx,cy,cz){var ab=distance3D(ax,ay,az,bx,by,bz),bc=distance3D(bx,by,bz,cx,cy,cz),theta,dotp;if(ab===0||bc===0){theta=0}else{dotp=((ax-bx)*(cx-bx)+(ay-by)*(cy-by)+(az-bz)*(cz-bz))/(ab*bc);if(dotp>=1){theta=0}else if(dotp<=-1){theta=Math.PI}else{theta=Math.acos(dotp)}}return theta}function triangleArea(ax,ay,bx,by,cx,cy){var area=Math.abs(((ay-cy)*(bx-cx)+(by-cy)*(cx-ax))/2);return area}function detSq(ax,ay,bx,by,cx,cy){var det=ax*by-ax*cy+bx*cy-bx*ay+cx*ay-cx*by;return det*det}function cosine(ax,ay,bx,by,cx,cy){var den=distance2D(ax,ay,bx,by)*distance2D(bx,by,cx,cy),cos=0;if(den>0){cos=((ax-bx)*(cx-bx)+(ay-by)*(cy-by))/den;if(cos>1)cos=1;else if(cos<-1)cos=-1}return cos}function cosine3D(ax,ay,az,bx,by,bz,cx,cy,cz){var den=distance3D(ax,ay,az,bx,by,bz)*distance3D(bx,by,bz,cx,cy,cz),cos=0;if(den>0){cos=((ax-bx)*(cx-bx)+(ay-by)*(cy-by)+(az-bz)*(cz-bz))/den;if(cos>1)cos=1;else if(cos<-1)cos=-1}return cos}function triangleArea3D(ax,ay,az,bx,by,bz,cx,cy,cz){var area=.5*Math.sqrt(detSq(ax,ay,bx,by,cx,cy)+detSq(ax,az,bx,bz,cx,cz)+detSq(ay,az,by,bz,cy,cz));return area}function apexDistSq(ab2,bc2,ac2){var dist2;if(ac2===0){dist2=ab2}else if(ab2>=bc2+ac2){dist2=bc2}else if(bc2>=ab2+ac2){dist2=ab2}else{var dval=ab2+ac2-bc2;dist2=ab2-dval*dval/ac2*.25}if(dist2<0){dist2=0}return dist2}function pointSegDistSq(ax,ay,bx,by,cx,cy){var ab2=distanceSq(ax,ay,bx,by),ac2=distanceSq(ax,ay,cx,cy),bc2=distanceSq(bx,by,cx,cy);return apexDistSq(ab2,ac2,bc2)}function pointSegDistSq3D(ax,ay,az,bx,by,bz,cx,cy,cz){var ab2=distanceSq3D(ax,ay,az,bx,by,bz),ac2=distanceSq3D(ax,ay,az,cx,cy,cz),bc2=distanceSq3D(bx,by,bz,cx,cy,cz);return apexDistSq(ab2,ac2,bc2)}function pointSegDistSq2(px,py,ax,ay,bx,by){var ab2=distanceSq(ax,ay,bx,by);var t=((px-ax)*(bx-ax)+(py-ay)*(by-ay))/ab2;if(ab2===0)return distanceSq(px,py,ax,ay);if(t<0)t=0;if(t>1)t=1;return distanceSq(px,py,ax+t*(bx-ax),ay+t*(by-ay))}internal.calcArcBounds=function(xx,yy,start,len){var i=start|0,n=isNaN(len)?xx.length-i:len+i,x,y,xmin,ymin,xmax,ymax;if(n>0){xmin=xmax=xx[i];ymin=ymax=yy[i]}for(i++;ixmax)xmax=x;if(yymax)ymax=y}return[xmin,ymin,xmax,ymax]};internal.reversePathCoords=function(arr,start,len){var i=start,j=start+len-1,tmp;while(ia[2])a[2]=b[2];if(b[3]>a[3])a[3]=b[3]}function containsBounds(a,b){return a[0]<=b[0]&&a[2]>=b[2]&&a[1]<=b[1]&&a[3]>=b[3]}function boundsArea(b){return(b[2]-b[0])*(b[3]-b[1])}var geom={R:R,D2R:D2R,degreesToMeters:degreesToMeters,distanceSq:distanceSq,distance2D:distance2D,distance3D:distance3D,innerAngle:innerAngle,innerAngle2:innerAngle2,signedAngle:signedAngle,bearing2D:bearing2D,bearing:bearing,signedAngleSph:signedAngleSph,standardAngle:standardAngle,convLngLatToSph:convLngLatToSph,lngLatToXYZ:lngLatToXYZ,xyzToLngLat:xyzToLngLat,sphericalDistance:sphericalDistance,greatCircleDistance:greatCircleDistance,pointSegDistSq:pointSegDistSq,pointSegDistSq3D:pointSegDistSq3D,pointSegDistSq2:pointSegDistSq2,innerAngle3D:innerAngle3D,triangleArea:triangleArea,triangleArea3D:triangleArea3D,cosine:cosine,cosine3D:cosine3D};function PointIter(points){var n=points.length,i=0,iter={x:0,y:0,hasNext:hasNext};function hasNext(){if(i>=n)return false;iter.x=points[i][0];iter.y=points[i][1];i++;return true}return iter}function ArcIter(xx,yy){this._i=0;this._n=0;this._inc=1;this._xx=xx;this._yy=yy;this.i=0;this.x=0;this.y=0}ArcIter.prototype.init=function(i,len,fw){if(fw){this._i=i;this._inc=1}else{this._i=i+len-1;this._inc=-1}this._n=len;return this};ArcIter.prototype.hasNext=function(){var i=this._i;if(this._n>0){this._i=i+this._inc;this.x=this._xx[i];this.y=this._yy[i];this.i=i;this._n--;return true}return false};function FilteredArcIter(xx,yy,zz){var _zlim=0,_i=0,_inc=1,_stop=0;this.init=function(i,len,fw,zlim){_zlim=zlim||0;if(fw){_i=i;_inc=1;_stop=i+len}else{_i=i+len-1;_inc=-1;_stop=i-1}return this};this.hasNext=function(){var zarr=zz,i=_i,j=i,zlim=_zlim,stop=_stop,inc=_inc;if(i==stop)return false;do{j+=inc}while(j!=stop&&zarr[j]0)this._arc.hasNext()}this._i=i};ShapeIter.prototype.reset=function(){this._i=-1;this.nextArc()};function ArcCollection(){var _xx,_yy,_ii,_nn,_zz,_zlimit=0,_bb,_allBounds,_arcIter,_filteredArcIter;if(arguments.length==1){initLegacyArcs(arguments[0])}else if(arguments.length==3){initXYData.apply(this,arguments)}else{error("ArcCollection() Invalid arguments")}function initLegacyArcs(arcs){var xx=[],yy=[];var nn=arcs.map(function(points){var n=points?points.length:0;for(var i=0;i0){j=i*4;b=internal.calcArcBounds(xx,yy,arcOffs,arcLen);bb[j++]=b[0];bb[j++]=b[1];bb[j++]=b[2];bb[j]=b[3];arcOffs+=arcLen;bounds.mergeBounds(b)}}return{bb:bb,bounds:bounds}}this.updateVertexData=function(nn,xx,yy,zz){initXYData(nn,xx,yy);initZData(zz||null)};this.getVertexData=function(){return{xx:_xx,yy:_yy,zz:_zz,bb:_bb,nn:_nn,ii:_ii}};this.getCopy=function(){var copy=new ArcCollection(new Int32Array(_nn),new Float64Array(_xx),new Float64Array(_yy));if(_zz){copy.setThresholds(new Float64Array(_zz));copy.setRetainedInterval(_zlimit)}return copy};function getFilteredPointCount(){var zz=_zz,z=_zlimit;if(!zz||!z)return this.getPointCount();var count=0;for(var i=0,n=zz.length;i=z)count++}return count}function getFilteredVertexData(){var len2=getFilteredPointCount();var arcCount=_nn.length;var xx2=new Float64Array(len2),yy2=new Float64Array(len2),zz2=new Float64Array(len2),nn2=new Int32Array(arcCount),i=0,i2=0,n,n2;for(var arcId=0;arcId=_zlimit){xx2[i2]=_xx[i];yy2[i2]=_yy[i];zz2[i2]=_zz[i];i2++;n2++}}if(n2==1){error("Collapsed arc")}else if(n2===0){}nn2[arcId]=n2}return{xx:xx2,yy:yy2,zz:zz2,nn:nn2}}this.getFilteredCopy=function(){if(!_zz||_zlimit===0)return this.getCopy();var data=getFilteredVertexData();var copy=new ArcCollection(data.nn,data.xx,data.yy);copy.setThresholds(data.zz);return copy};this.toArray=function(){var arr=[];this.forEach(function(iter){var arc=[];while(iter.hasNext()){arc.push([iter.x,iter.y])}arr.push(arc)});return arr};this.toJSON=function(){return this.toArray()};this.forEachArcSegment=function(arcId,cb){var fw=arcId>=0,absId=fw?arcId:~arcId,zlim=this.getRetainedInterval(),n=_nn[absId],step=fw?1:-1,v1=fw?_ii[absId]:_ii[absId]+n-1,v2=v1,xx=_xx,yy=_yy,zz=_zz,count=0;for(var j=1;j=zlim){cb(v1,v2,xx,yy);v1=v2;count++}}return count};this.forEachSegment=function(cb){var count=0;for(var i=0,n=this.size();i-1){copyElements(_xx,_ii[i],_xx,goodPoints,arcLen);copyElements(_yy,_ii[i],_yy,goodPoints,arcLen);if(_zz)copyElements(_zz,_ii[i],_zz,goodPoints,arcLen);_nn[k]=arcLen;goodPoints+=arcLen;goodArcs++}}initXYData(_nn.subarray(0,goodArcs),_xx.subarray(0,goodPoints),_yy.subarray(0,goodPoints));if(_zz)initZData(_zz.subarray(0,goodPoints))}this.dedupCoords=function(){var arcId=0,i=0,i2=0,arcCount=this.size(),zz=_zz,arcLen,arcLen2;while(arcIdi2){initXYData(_nn,_xx.subarray(0,i2),_yy.subarray(0,i2));if(zz)initZData(zz.subarray(0,i2))}return i-i2};this.getVertex=function(arcId,nth){var i=this.indexOfVertex(arcId,nth);return{x:_xx[i],y:_yy[i]}};this.indexOfVertex=function(arcId,nth){var absId=arcId<0?~arcId:arcId,len=_nn[absId];if(nth<0)nth=len+nth;if(absId!=arcId)nth=len-nth-1;if(nth<0||nth>=len)error("[ArcCollection] out-of-range vertex id");return _ii[absId]+nth};this.pointIsEndpoint=function(idx){var ii=_ii,nn=_nn;for(var j=0,n=ii.length;j0){if(x!=iter.x||y!=iter.y)return false}x=iter.x;y=iter.y;i++}return true};this.getArcLength=function(arcId){return _nn[absArcId(arcId)]};this.getArcIter=function(arcId){var fw=arcId>=0,i=fw?arcId:~arcId,iter=_zz&&_zlimit?_filteredArcIter:_arcIter;if(i>=_nn.length){error("#getArcId() out-of-range arc id:",arcId)}return iter.init(_ii[i],_nn[i],fw,_zlimit)};this.getShapeIter=function(ids){return new ShapeIter(this).init(ids)};this.setThresholds=function(thresholds){var n=this.getPointCount(),zz=null;if(!thresholds){}else if(thresholds.length==n){zz=thresholds}else if(thresholds.length==this.size()){zz=flattenThresholds(thresholds,n)}else{error("Invalid threshold data")}initZData(zz);return this};function flattenThresholds(arr,n){var zz=new Float64Array(n),i=0;arr.forEach(function(arr){for(var j=0,n=arr.length;j0){var data=getFilteredVertexData();this.updateVertexData(data.nn,data.xx,data.yy);_zlimit=0}else{_zz=null}};this.getRetainedInterval=function(){return _zlimit};this.setRetainedInterval=function(z){_zlimit=z;return this};this.getRetainedPct=function(){return this.getPctByThreshold(_zlimit)};this.setRetainedPct=function(pct){if(pct>=1){_zlimit=0}else{_zlimit=this.getThresholdByPct(pct);_zlimit=internal.clampIntervalByPct(_zlimit,pct)}return this};this.getRemovableThresholds=function(nth){if(!_zz)error("[arcs] Missing simplification data.");var skip=nth|1,arr=new Float64Array(Math.ceil(_zz.length/skip)),z;for(var i=0,j=0,n=this.getPointCount();i=0&&arcId0){arr=this.getRemovableThresholds(nth);rank=utils.findRankByValue(arr,val);pct=arr.length>0?1-(rank-1)/arr.length:1}else{pct=1}return pct};this.getThresholdByPct=function(pct,nth){return internal.getThresholdByPct(pct,this,nth)};this.arcIntersectsBBox=function(i,b1){var b2=_bb,j=i*4;return b2[j]<=b1[2]&&b2[j+2]>=b1[0]&&b2[j+3]>=b1[1]&&b2[j+1]<=b1[3]};this.arcIsContained=function(i,b1){var b2=_bb,j=i*4;return b2[j]>=b1[0]&&b2[j+2]<=b1[2]&&b2[j+1]>=b1[1]&&b2[j+3]<=b1[3]};this.arcIsSmaller=function(i,units){var bb=_bb,j=i*4;return bb[j+2]-bb[j]bbox[2])bbox[2]=bb[id];if(bb[++id]>bbox[3])bbox[3]=bb[id]}return bbox};this.getMultiShapeBounds=function(shapeIds,bounds){bounds=bounds||new Bounds;if(shapeIds){for(var i=0,n=shapeIds.length;i0&&(keep||zz[j]>zz[i])){zz[i]=zz[j]}n++}return n2>1?n2:0};internal.getAvgSegment=function(arcs){var sum=0;var count=arcs.forEachSegment(function(i,j,xx,yy){var dx=xx[i]-xx[j],dy=yy[i]-yy[j];sum+=Math.sqrt(dx*dx+dy*dy)});return sum/count||0};internal.getAvgSegment2=function(arcs){var dx=0,dy=0;var count=arcs.forEachSegment(function(i,j,xx,yy){dx+=Math.abs(xx[i]-xx[j]);dy+=Math.abs(yy[i]-yy[j])});return[dx/count||0,dy/count||0]};internal.getDirectedArcPresenceTest=function(shapes,n){var flags=new Uint8Array(n);internal.forEachArcId(shapes,function(id){var absId=absArcId(id);if(absId0}};internal.getArcPresenceTest2=function(layers,arcs){var counts=internal.countArcsInLayers(layers,arcs);return function(arcId){return counts[absArcId(arcId)]>0}};internal.countArcsInShapes=function(shapes,counts){internal.traversePaths(shapes,null,function(obj){var arcs=obj.arcs,id;for(var i=0;i=1)z=0;return z};internal.findNextRemovableVertices=function(zz,zlim,start,end){var i=internal.findNextRemovableVertex(zz,zlim,start,end),arr,k;if(i>-1){k=zz[i];arr=[i];while(++iend){tmp=start;start=end;end=tmp}for(var i=start+1;ijz){j=i;jz=z}}return j};internal.forEachArcId=function(arr,cb){var item;for(var i=0;i0)shape2.push(path)});return shape2.length>0?shape2:null};internal.groupPolygonRings=function(paths,reverseWinding){var holes=[],groups=[],sign=reverseWinding?-1:1,boundsQuery;(paths||[]).forEach(function(path){if(path.area*sign>0){groups.push([path])}else if(path.area*sign<0){holes.push(path)}else{}});if(holes.length===0){return groups}boundsQuery=internal.getBoundsSearchFunction(groups.map(function(group,i){return{bounds:group[0].bounds,idx:i}}));holes.forEach(function(hole){var containerId=-1,containerArea=0,holeArea=hole.area*-sign,b=hole.bounds,candidates=boundsQuery(b.xmin,b.ymin,b.xmax,b.ymax),ring,ringId,ringArea,isContained;for(var i=0,n=candidates.length;iholeArea;if(isContained&&(containerArea===0||ringArea0){return parts.filter(function(part){return!!part})}else{return parts}};internal.findMaxPartCount=function(shapes){var maxCount=0,shp;for(var i=0,n=shapes.length;imaxCount){maxCount=shp.length}}return maxCount};api.affine=function(targetLayers,dataset,opts){var rotateArg=opts.rotate||0;var scaleArg=opts.scale||1;var shiftArg=opts.shift?internal.convertIntervalPair(opts.shift,internal.getDatasetCRS(dataset)):[0,0];var arcs=dataset.arcs;var targetShapes=[];var otherShapes=[];var targetPoints=[];var targetFlags,otherFlags,transform,transformOpts;dataset.layers.filter(internal.layerHasGeometry).forEach(function(lyr){var hits=[],misses=[],test;if(targetLayers.indexOf(lyr)==-1){misses=lyr.shapes}else if(opts.where){test=internal.compileValueExpression(opts.where,lyr,dataset.arcs);lyr.shapes.forEach(function(shp,i){(test(i)?hits:misses).push(shp)})}else{hits=lyr.shapes}if(lyr.geometry_type=="point"){targetPoints=targetPoints.concat(hits)}else{targetShapes=targetShapes.concat(hits);otherShapes=otherShapes.concat(misses)}});var anchorArg=internal.getAffineAnchor({arcs:dataset.arcs,layers:[{geometry_type:"point",shapes:targetPoints},{geometry_type:"polyline",shapes:targetShapes}]},opts);transform=internal.getAffineTransform(rotateArg,scaleArg,shiftArg,anchorArg);if(targetShapes.length>0){targetFlags=new Uint8Array(arcs.size());otherFlags=new Uint8Array(arcs.size());internal.countArcsInShapes(targetShapes,targetFlags);if(otherShapes.length>0){internal.countArcsInShapes(otherShapes,otherFlags);internal.applyArrayMask(otherFlags,targetFlags);dataset.arcs=internal.duplicateSelectedArcs(otherShapes,arcs,otherFlags)}dataset.arcs.transformPoints(function(x,y,arcId){if(arcId0){return transform(x,y)}})}internal.forEachPoint(targetPoints,function(p){var p2=transform(p[0],p[1]);p[0]=p2[0];p[1]=p2[1]})};internal.getAffineAnchor=function(dataset,opts){var anchor,bounds;if(opts.anchor){anchor=opts.anchor}else{bounds=internal.getDatasetBounds(dataset);anchor=[bounds.centerX(),bounds.centerY()]}return anchor};internal.getAffineTransform=function(rotation,scale,shift,anchor){var angle=rotation*Math.PI/180;var a=scale*Math.cos(angle);var b=-scale*Math.sin(angle);return function(x,y){var x2=a*(x-anchor[0])-b*(y-anchor[1])+shift[0]+anchor[0];var y2=b*(x-anchor[0])+a*(y-anchor[1])+shift[1]+anchor[1];return[x2,y2]}};internal.applyArrayMask=function(destArr,maskArr){for(var i=0,n=destArr.length;i0){map[i]=arcs.size()+arcCount;n=data.nn[i];utils.copyElements(data.xx,data.ii[i],xx,vertexCount,n);utils.copyElements(data.yy,data.ii[i],yy,vertexCount,n);nn.push(n);vertexCount+=n;arcCount++}}internal.forEachArcId(shapes,function(id){var absId=absArcId(id);if(flags[absId]>0){return id<0?~map[absId]:map[absId]}});return internal.mergeArcs([arcs,new ArcCollection(nn,xx,yy)])};internal.makePointBuffer=function(lyr,dataset,opts){var geojson=internal.makePointBufferGeoJSON(lyr,dataset,opts);return internal.importGeoJSON(geojson,{})};internal.makePointBufferGeoJSON=function(lyr,dataset,opts){var vertices=opts.vertices||72;var distanceFn=internal.getBufferDistanceFunction(lyr,dataset,opts);var geod=internal.getGeodeticSegmentFunction(dataset);var geometries=lyr.shapes.map(function(shape,i){var dist=distanceFn(i);if(!dist||!shape)return null;return internal.getPointBufferGeometry(shape,dist,vertices,geod)});return{type:"GeometryCollection",geometries:geometries}};internal.getPointBufferGeometry=function(points,distance,vertices,geod){var coordinates=[];if(!points||!points.length)return null;for(var i=0;i-1||utils.difference(fields,list).length===0};internal.getColumnType=function(key,records){var type=null,rec;for(var i=0,n=records.length;i=0){buf=buf.slice(start,end)}return internal.decodeString(buf,enc)};internal.getNativeEncoder=function(enc){var encoder=null;enc=internal.standardizeEncodingName(enc);if(enc!="utf8"){return null}if(typeof TextEncoder!="undefined"){encoder=new TextEncoder(enc)}return function(str){return encoder?Buffer.from(encoder.encode(str).buffer):utils.createBuffer(str,enc)}};internal.encodeString=function(){var iconv=require("iconv-lite");var toUtf8=internal.getNativeEncoder("utf8");return function(str,enc){var buf;if(internal.encodingIsUtf8(enc)){buf=toUtf8(str)}else{buf=iconv.encode(str,enc)}return buf}}();internal.getNativeDecoder=function(enc){var decoder=null;enc=internal.standardizeEncodingName(enc);if(enc!="utf8"){return null}if(typeof TextDecoder!="undefined"){decoder=new TextDecoder(enc)}return function(buf){return decoder?decoder.decode(buf):buf.toString(enc)}};internal.decodeString=function(){var iconv=require("iconv-lite");var fromUtf8=internal.getNativeDecoder("utf8");return function(buf,enc){var str;if(internal.encodingIsUtf8(enc)){str=fromUtf8(buf)}else{str=iconv.decode(buf,enc)}return str}}();internal.encodingIsSupported=function(raw){var enc=internal.standardizeEncodingName(raw);return utils.contains(internal.getEncodings(),enc)};internal.trimBOM=function(str){if(str.charCodeAt(0)==65279){str=str.substr(1)}return str};internal.printEncodings=function(){var encodings=internal.getEncodings().filter(function(name){return!/^(_|cs|internal|ibm|isoir|singlebyte|table|[0-9]|l[0-9]|windows)/.test(name)});encodings.sort();print("Supported encodings:\n"+internal.formatStringsAsGrid(encodings))};internal.detectEncoding=function(samples){var encoding=null;if(internal.looksLikeUtf8(samples)){encoding="utf8"}else if(internal.looksLikeWin1252(samples)){encoding="win1252"}return encoding};internal.decodeSamples=function(enc,samples){return samples.map(function(buf){return internal.decodeString(buf,enc).trim()}).join("\n")};internal.formatSamples=function(str){return internal.formatStringsAsGrid(str.split("\n"))};internal.looksLikeWin1252=function(samples){var ascii="abcdefghijklmnopqrstuvwxyz0123456789.'\"?+-\n,:;/|_$% ",extended="\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf8\xf9\xfa\xfb\xfc\xfd\xff\xb0\u2013\xb1\u2019\u2018",str=internal.decodeSamples("win1252",samples),asciiScore=internal.getCharScore(str,ascii),totalScore=internal.getCharScore(str,extended+ascii);return totalScore>.97&&asciiScore>=.6};internal.looksLikeUtf8=function(samples){var str=internal.decodeSamples("utf8",samples);return str.indexOf("\ufffd")==-1};internal.replaceUtf8ReplacementChar=function(buf){var isCopy=false;for(var i=0,n=buf.length;i0||c!=32){buf[count++]=c}}while(count>0&&buf[count-1]==32){count--}return count};Dbf.getStringReader=function(arg){var encoding=arg||"ascii";var slug=internal.standardizeEncodingName(encoding);var buf=utils.createBuffer(256);var inNode=typeof module=="object";if(inNode&&(slug=="utf8"||slug=="ascii")){return function(bin,size){var n=Dbf.readStringBytes(bin,size,buf);return buf.toString(slug,0,n)}}return function readEncodedString(bin,size){var n=Dbf.readStringBytes(bin,size,buf),str="",i,c;for(i=0;i127){return internal.bufferToString(buf,encoding,0,n)}str+=String.fromCharCode(c)}return str}};Dbf.bufferContainsHighBit=function(buf,n){for(var i=0;i=128)return true}return false};Dbf.getNumberReader=function(){var read=Dbf.getStringReader("ascii");return function readNumber(bin,size){var str=read(bin,size);var val;if(str.indexOf(",")>=0){str=str.replace(",",".")}val=parseFloat(str);return isNaN(val)?null:val}};Dbf.readInt=function(bin,size){return bin.readInt32()};Dbf.readBool=function(bin,size){var c=bin.readCString(size),val=null;if(/[ty]/i.test(c))val=true;else if(/[fn]/i.test(c))val=false;return val};Dbf.readDate=function(bin,size){var str=bin.readCString(size),yr=str.substr(0,4),mo=str.substr(4,2),day=str.substr(6,2);return new Date(Date.UTC(+yr,+mo-1,+day))};function DbfReader(src,encodingArg){if(utils.isString(src)){error("[DbfReader] Expected a buffer, not a string")}var bin=new BinArray(src);var header=readHeader(bin);var encoding=encodingArg||null;this.size=function(){return header.recordCount};this.readRow=function(i){return getRecordReader(header.fields)(i)};this.getFields=getFieldNames;this.getBuffer=function(){return bin.buffer()};this.deleteField=function(f){header.fields=header.fields.filter(function(field){return field.name!=f})};this.readRows=function(){var reader=getRecordReader(header.fields);var data=[];for(var r=0,n=this.size();reofOffs){stop("Invalid DBF file: encountered end-of-file while reading data")}bin.position(fieldOffs);values[c]=readers[c](bin,field.size)}return create.apply(null,values)}}function getFieldReader(f){var type=f.type,r=null;if(type=="I"){r=Dbf.readInt}else if(type=="F"||type=="N"){r=Dbf.getNumberReader()}else if(type=="L"){r=Dbf.readBool}else if(type=="D"){r=Dbf.readDate}else if(type=="C"){r=Dbf.getStringReader(getEncoding())}else{message('Field "'+field.name+'" has an unsupported type ('+field.type+") -- converting to null values");r=function(){return null}}return r}function findStringEncoding(){var ldid=header.ldid,codepage=Dbf.lookupCodePage(ldid),samples=getNonAsciiSamples(50),only7bit=samples.length===0,encoding,msg;if(codepage&&ldid!=87){encoding=codepage}else if(only7bit){encoding="ascii"}if(!encoding){encoding=internal.detectEncoding(samples)}if(encoding&&samples.length>0){msg=internal.decodeSamples(encoding,samples);msg=internal.formatStringsAsGrid(msg.split("\n"));msg="\nSample text containing non-ascii characters:"+(msg.length>60?"\n":"")+msg;msg="Detected DBF text encoding: "+encoding+(encoding in Dbf.encodingNames?" ("+Dbf.encodingNames[encoding]+")":"")+msg;message(msg)}return encoding}function getNonAsciiSamples(size){var samples=[];var stringFields=header.fields.filter(function(f){return f.type=="C"});var buf=utils.createBuffer(256);var index={};var f,chars,sample,hash;for(var r=0,rows=header.recordCount;r=size)break;f=stringFields[c];bin.position(getRowOffset(r)+f.columnOffset);chars=Dbf.readStringBytes(bin,f.size,buf);if(chars>0&&Dbf.bufferContainsHighBit(buf,chars)){sample=utils.createBuffer(buf.slice(0,chars));hash=sample.toString("hex");if(hash in index===false){index[hash]=true;samples.push(sample)}}}}return samples}}Dbf.MAX_STRING_LEN=254;function BufferPool(){var n=5e3,pool,i;newPool();function newPool(){pool=new Uint8Array(n);i=0}return{reserve:function(bytes){if(i+bytes>n)newPool();i+=bytes;return pool.subarray(i-bytes,i)},putBack:function(bytes){i-=bytes}}}Dbf.bufferPool=new BufferPool;Dbf.exportRecords=function(records,encoding,fieldOrder){var rows=records.length;var fields=internal.findFieldNames(records,fieldOrder);var dbfFields=Dbf.convertFieldNames(fields);var fieldData=fields.map(function(name,i){var info=Dbf.getFieldInfo(records,name,encoding||"utf8");var name2=dbfFields[i];info.name=name2;if(name!=name2){message('Changed field name from "'+name+'" to "'+name2+'"')}if(info.warning){message("["+name+"] "+info.warning)}return info});var headerBytes=Dbf.getHeaderSize(fieldData.length),recordBytes=Dbf.getRecordSize(utils.pluck(fieldData,"size")),fileBytes=headerBytes+rows*recordBytes+1;var buffer=new ArrayBuffer(fileBytes);var bin=new BinArray(buffer).littleEndian();var now=new Date;bin.writeUint8(3);bin.writeUint8(now.getFullYear()-1900);bin.writeUint8(now.getMonth()+1);bin.writeUint8(now.getDate());bin.writeUint32(rows);bin.writeUint16(headerBytes);bin.writeUint16(recordBytes);bin.skipBytes(17);bin.writeUint8(0);bin.skipBytes(2);fieldData.reduce(function(recordOffset,obj){bin.writeCString(obj.name,11);bin.writeUint8(obj.type.charCodeAt(0));bin.writeUint32(recordOffset);bin.writeUint8(obj.size);bin.writeUint8(obj.decimals);bin.skipBytes(14);return recordOffset+obj.size},1);bin.writeUint8(13);if(bin.position()!=headerBytes){error("Dbf#exportRecords() header size mismatch; expected:",headerBytes,"written:",bin.position())}records.forEach(function(rec,i){var start=bin.position();bin.writeUint8(32);for(var j=0,n=fieldData.length;jMAX_FIELD_SIZE){size=MAX_FIELD_SIZE;info.decimals-=size-MAX_FIELD_SIZE;if(info.decimals<0){error("Dbf#getFieldInfo() Out-of-range error.")}}info.size=size;var formatter=Dbf.getDecimalFormatter(size,info.decimals);info.write=function(i,bin){var rec=arr[i],str=formatter(rec[name]);if(str.lengthDbf.MAX_STRING_LEN){if(encoding=="ascii"){buf=buf.subarray(0,Dbf.MAX_STRING_LEN)}else{buf=Dbf.truncateEncodedString(buf,encoding,Dbf.MAX_STRING_LEN)}truncated++}size=Math.max(size,buf.length);return buf});info.size=size;info.write=function(i,bin){var buf=buffers[i],n=Math.min(size,buf.length),dest=bin._bytes,pos=bin.position(),j;for(j=0;j0){info.warning="Truncated "+truncated+" string"+(truncated==1?"":"s")+" to fit the 254-byte limit"}};Dbf.convertFieldNames=function(names){return internal.getUniqFieldNames(names.map(Dbf.cleanFieldName),10)};Dbf.cleanFieldName=function(name){return name.replace(/[^A-Za-z0-9]+/g,"_")};Dbf.getFieldInfo=function(arr,name,encoding){var type=this.discoverFieldType(arr,name),info={type:type,decimals:0};if(type=="N"){Dbf.initNumericField(info,arr,name)}else if(type=="C"){Dbf.initStringField(info,arr,name,encoding)}else if(type=="L"){Dbf.initBooleanField(info,arr,name)}else if(type=="D"){Dbf.initDateField(info,arr,name)}else{info.size=0;info.type="N";if(type){info.warning="Unable to export "+type+"-type data, writing null values"}info.write=function(){}}return info};Dbf.discoverFieldType=function(arr,name){var val;for(var i=0,n=arr.length;imax){if(valmax)max=val;while(Math.abs(val)>=power){power*=10;eps*=10}}while(Math.abs(Math.round(val*k)-val*k)>eps){if(decimals==15){break}decimals++;eps*=10;k*=10}}return{decimals:decimals,min:min,max:max}};Dbf.encodeValueAsAscii=function(val,strict){var str=String(val),n=str.length,view=Dbf.bufferPool.reserve(n),i,c;for(i=0;i127){if(strict){view=null;i=0;break}c="?".charCodeAt(0)}view[i]=c}Dbf.bufferPool.putBack(n-i);return view?view.subarray(0,i):null};Dbf.getStringWriterEncoded=function(encoding){return function(val){var buf=Dbf.encodeValueAsAscii(val,true);if(buf===null){buf=internal.encodeString(String(val),encoding)}return buf}};Dbf.truncateEncodedString=function(buf,encoding,maxLen){var truncated=buf.slice(0,maxLen);var len=maxLen;var tmp,str;while(len>0&&len>=maxLen-3){tmp=len==maxLen?truncated:buf.slice(0,len);str=internal.decodeString(tmp,encoding);if(str.charAt(str.length-1)!="\ufffd"){truncated=tmp;break}len--}return truncated};function DataTable(obj){var records;if(utils.isArray(obj)){records=obj}else{records=[];if(utils.isInteger(obj)){for(var i=0;i0===false){length=DEFAULT_BUFFER_LEN;if(start+length>fileLen){length=fileLen-start}if(length===0){return utils.createBuffer(0)}}updateCache(start,length);return cache.slice(start-cacheOffs,start-cacheOffs+length)};this.size=function(){return fileLen};this.toString=function(enc){return cli.readFile(path,enc||"utf8")};this.close=function(){if(fd){fs.closeSync(fd);fd=null;cache=null}};function updateCache(fileOffs,bufLen){var headroom=fileLen-fileOffs,bytesRead,bytesToRead;if(headroom=cacheOffs&&cacheOffs+cache.length>=fileOffs+bufLen){return false}bytesToRead=Math.max(DEFAULT_CACHE_LEN,bufLen);if(headroom=opts.csv_lines){return records.slice(0,opts.csv_lines)}}return records};internal.readDelimRecordsFromString=function(str,delim,opts){var header=internal.parseDelimHeaderSection(str,delim,opts);if(header.import_fields.length===0||!header.remainder)return[];var convert=internal.getRowConverter(header.import_fields);var records=internal.parseDelimText(header.remainder,delim,convert,header.column_filter,header.row_filter);if(opts.csv_lines>0){records=records.slice(0,opts.csv_lines)}return records};internal.indexOfLine=function(str,nth){var rxp=/\r\n|[\r\n]|.$/g;var i=1;if(nth===1)return 0;if(nth>1===false)return-1;while(rxp.exec(str)){i++;if(i0){i=internal.indexOfLine(str,opts.csv_skip_lines+1);if(i===-1)return nodata;str=str.substr(i)}if(opts.csv_field_names){retn.headers=opts.csv_field_names}else{i=internal.indexOfLine(str,2);if(i===-1)return nodata;retn.headers=internal.parseDelimText(str.slice(0,i),delim)[0];str=str.substr(i)}if(opts.csv_filter){retn.row_filter=internal.getDelimRecordFilterFunction(opts.csv_filter)}if(opts.csv_fields){retn.column_filter=internal.getDelimFieldFilter(retn.headers,opts.csv_fields);retn.import_fields=retn.headers.filter(function(name,i){return retn.column_filter(i)})}else{retn.import_fields=retn.headers}retn.remainder=str;return retn};internal.getDelimRecordFilterFunction=function(expression){var rowFilter=internal.compileExpressionToFunction(expression,{returns:true});var ctx=internal.getBaseContext();return function(rec){var val;try{val=rowFilter.call(null,rec,ctx)}catch(e){stop(e.name,"in expression ["+exp+"]:",e.message)}if(val!==true&&val!==false){stop("Filter expression must return true or false")}return val}};internal.getDelimFieldFilter=function(header,fieldsToKeep){var index=utils.arrayToIndex(fieldsToKeep);var map=header.map(function(name){return name in index});var missing=utils.difference(fieldsToKeep,header);if(missing.length>0){var foundStr=[""].concat(header).join("\n ");var missingStr=[""].concat(missing).join("\n ");stop("csv-fields option has",missing.length==1?"a name":missing.length+" names","not found in the file\nFields:",foundStr,"\nMissing:",missingStr)}return function(colIdx){return map[colIdx]}};internal.skipDelimLines=function(reader,lines){var buf=reader.readSync();var retn=internal.readLinesFromBuffer(buf,lines);if(retn.bytesRead==buf.length&&retn.bytesRead0?internal.decodeString(retn.buffer,encoding):"";if(reader.position()===0){str=internal.trimBOM(str)}reader.advance(retn.bytesRead);return str};internal.readLinesFromBuffer=function(buf,linesToRead){var CR=13,LF=10,DQUOTE=34,inQuotedText=false,lineCount=0,bufLen=buf.length,i,c;lineCount++;for(i=0;i-1){if(capturing)captureField(fieldStart,i);endLine()}return records};utils.replaceFileExtension=function(path,ext){var info=utils.parseLocalPath(path);return info.pathbase+"."+ext};utils.getPathSep=function(path){return path.indexOf("/")==-1&&path.indexOf("\\")!=-1?"\\":"/"};utils.parseLocalPath=function(path){var obj={},sep=utils.getPathSep(path),parts=path.split(sep),i;if(parts.length==1){obj.filename=parts[0];obj.directory=""}else{obj.filename=parts.pop();obj.directory=parts.join(sep)}i=obj.filename.lastIndexOf(".");if(i>-1){obj.extension=obj.filename.substr(i+1);obj.basename=obj.filename.substr(0,i);obj.pathbase=path.substr(0,path.lastIndexOf("."))}else{obj.extension="";obj.basename=obj.filename;obj.pathbase=path}return obj};utils.getFileBase=function(path){return utils.parseLocalPath(path).basename};utils.getFileExtension=function(path){return utils.parseLocalPath(path).extension};utils.getPathBase=function(path){return utils.parseLocalPath(path).pathbase};utils.getCommonFileBase=function(names){return names.reduce(function(memo,name,i){if(i===0){memo=utils.getFileBase(name)}else{memo=utils.mergeNames(memo,name)}return memo},"")};utils.getOutputFileBase=function(dataset){var inputFiles=dataset.info&&dataset.info.input_files;return inputFiles&&utils.getCommonFileBase(inputFiles)||"output"};internal.guessInputFileType=function(file){var ext=utils.getFileExtension(file||"").toLowerCase(),type=null;if(ext=="dbf"||ext=="shp"||ext=="prj"||ext=="shx"){type=ext}else if(/json$/.test(ext)){type="json"}else if(ext=="csv"||ext=="tsv"||ext=="txt"||ext=="tab"){type="text"}return type};internal.guessInputContentType=function(content){var type=null;if(utils.isString(content)){type=internal.stringLooksLikeJSON(content)?"json":"text"}else if(utils.isObject(content)&&content.type||utils.isArray(content)){type="json"}return type};internal.guessInputType=function(file,content){return internal.guessInputFileType(file)||internal.guessInputContentType(content)};internal.stringLooksLikeJSON=function(str){return/^\s*[{[]/.test(String(str))};internal.couldBeDsvFile=function(name){var ext=utils.getFileExtension(name).toLowerCase();return/csv|tsv|txt$/.test(ext)};internal.isZipFile=function(file){return/\.zip$/i.test(file)};internal.isSupportedOutputFormat=function(fmt){var types=["geojson","topojson","json","dsv","dbf","shapefile","svg"];return types.indexOf(fmt)>-1};internal.getFormatName=function(fmt){return{geojson:"GeoJSON",topojson:"TopoJSON",json:"JSON records",dsv:"CSV",dbf:"DBF",shapefile:"Shapefile",svg:"SVG"}[fmt]||""};internal.isSupportedBinaryInputType=function(path){var ext=utils.getFileExtension(path).toLowerCase();return ext=="shp"||ext=="shx"||ext=="dbf"};internal.filenameIsUnsupportedOutputType=function(file){var rxp=/\.(shx|prj|xls|xlsx|gdb|sbn|sbx|xml|kml)$/i;return rxp.test(file)};var cli={};cli.isFile=function(path,cache){var ss=cli.statSync(path);return cache&&path in cache||ss&&ss.isFile()||false};cli.fileSize=function(path){var ss=cli.statSync(path);return ss&&ss.size||0};cli.isDirectory=function(path){var ss=cli.statSync(path);return ss&&ss.isDirectory()||false};cli.readFile=function(fname,encoding,cache){var content;if(cache&&fname in cache){content=cache[fname];delete cache[fname]}else if(fname=="/dev/stdin"){content=require("rw").readFileSync(fname)}else{internal.getStateVar("input_files").push(fname);content=require("fs").readFileSync(fname)}if(encoding&&Buffer.isBuffer(content)){content=internal.trimBOM(internal.decodeString(content,encoding))}return content};cli.writeFile=function(path,content,cb){var fs=require("rw");if(cb){fs.writeFile(path,content,preserveContext(cb))}else{fs.writeFileSync(path,content)}};cli.convertArrayBuffer=function(buf){var src=new Uint8Array(buf),dest=utils.createBuffer(src.length);for(var i=0,n=src.length;i-1){memo=memo.concat(cli.expandFileName(name))}else{memo.push(name)}return memo},[])};cli.validateOutputDir=function(name){if(!cli.isDirectory(name)){error("Output directory not found:",name)}};cli.checkFileExists=function(path,cache){if(!cli.isFile(path,cache)&&path!="/dev/stdin"){stop("File not found ("+path+")")}};cli.statSync=function(fpath){var obj=null;try{obj=require("fs").statSync(fpath)}catch(e){}return obj};internal.importDelim=function(str,opts){return internal.importDelim2({content:str},opts)};internal.importDelim2=function(data,opts){var readFromFile=!data.content&&data.content!=="",content=data.content,filter,reader,records,delimiter,table;opts=opts||{};if(readFromFile){reader=new FileReader(data.filename)}else if(content instanceof ArrayBuffer||content instanceof Buffer){reader=new BufferReader(content);content=null}else if(utils.isString(content)){}else{error("Unexpected object type")}if(reader&&!internal.encodingIsAsciiCompat(opts.encoding)){content=reader.toString(opts.encoding);reader=null}if(reader){delimiter=internal.guessDelimiter(internal.readFirstChars(reader,2e3));records=internal.readDelimRecords(reader,delimiter,opts)}else{delimiter=internal.guessDelimiter(content);records=internal.readDelimRecordsFromString(content,delimiter,opts)}if(records.length===0){message("Unable to read any data records")}internal.adjustRecordTypes(records,opts);table=new DataTable(records);internal.deleteFields(table,internal.isInvalidFieldName);return{layers:[{data:table}],info:{input_delimiter:delimiter}}};internal.supportedDelimiters=["|","\t",",",";"];internal.isSupportedDelimiter=function(d){return utils.contains(internal.supportedDelimiters,d)};internal.guessDelimiter=function(content){return utils.find(internal.supportedDelimiters,function(delim){var rxp=internal.getDelimiterRxp(delim);return rxp.test(content)})||","};internal.getDelimiterRxp=function(delim){var rxp="^[^\\n\\r]+"+utils.regexEscape(delim);return new RegExp(rxp)};internal.getFieldTypeHints=function(opts){var hints={};opts=opts||{};if(opts.string_fields){opts.string_fields.forEach(function(f){hints[f]="string"})}if(opts.field_types){opts.field_types.forEach(function(raw){var parts,name,type;if(raw.indexOf(":")!=-1){parts=raw.split(":");name=parts[0];type=internal.validateFieldType(parts[1])}else if(raw[0]==="+"){name=raw.substr(1);type="number"}if(type){hints[name]=type}else{message("Invalid type hint (expected :str or :num) ["+raw+"]")}})}return hints};internal.adjustRecordTypes=function(records,opts){var typeIndex=internal.getFieldTypeHints(opts),singleType=typeIndex["*"],fields=Object.keys(records[0]||[]),detectedNumFields=[],replacements={};fields.forEach(function(key){var typeHint=typeIndex[key];var values=null;if(typeHint=="number"||singleType=="number"){values=internal.convertDataField(key,records,utils.parseNumber)}else if(typeHint=="string"||singleType=="string"){values=null}else{values=internal.tryNumericField(key,records);if(values)detectedNumFields.push(key)}if(values)replacements[key]=values});if(Object.keys(replacements).length>0){internal.updateFieldsInRecords(fields,records,replacements)}if(detectedNumFields.length>0){message(utils.format("Auto-detected number field%s: %s",detectedNumFields.length==1?"":"s",detectedNumFields.join(", ")))}};internal.updateFieldsInRecords=function(fields,records,replacements){var convertBody="return {"+fields.map(function(name){var key=JSON.stringify(name);return key+": "+(replacements[name]?"replacements["+key+"][i]":"rec["+key+"]")}).join(", ")+"}";var convert=new Function("rec","replacements","i",convertBody);records.forEach(function(rec,i){records[i]=convert(rec,replacements,i)})};internal.tryNumericField=function(key,records){var arr=[],count=0,raw,str,num;for(var i=0,n=records.length;i0&&str!="NA"&&str!="NaN"){return null}}else{count++}arr.push(num)}return count>0?arr:null};internal.convertDataField=function(name,records,f){var values=[];for(var i=0,n=records.length;i0?str.replace(/,([0-9]{3})/g,"$1"):str};utils.parseString=function(raw){return raw?raw:""};utils.parseNumber=function(raw){var str=String(raw).trim();var parsed=str?Number(utils.cleanNumericString(str)):NaN;return isNaN(parsed)?null:parsed};internal.parseCustomProjection=function(str){var parts=str.trim().split(/ +/);var params=[];var names=parts.filter(function(part){if(/^\+/.test(part)){params.push(part.substr(1));return false}return true});var name=names[0];var opts=internal.parseCustomParams(params);if(names.length!=1)return null;return internal.getCustomProjection(name,opts)};internal.getCustomProjection=function(name,opts){if(name=="albersusa"){return new AlbersUSA(opts)}return null};function AlbersUSA(optsArg){var opts=optsArg||{};var main={proj:"+proj=aea +lon_0=-96 +lat_0=37.5 +lat_1=29.5 +lat_2=45.5",bbox:[-129,23,-62,52]};var AK={name:"AK",proj:"+proj=aea +lat_1=55 +lat_2=70 +lat_0=65 +lon_0=-148 +x_0=0 +y_0=0",bbox:[-172.26,50.89,-127,73.21],origin:[-152,63],placement:[-1882782,-969242],scale:.37};var HI={name:"HI",proj:"+proj=aea +lat_1=19 +lat_2=24 +lat_0=20.9 +lon_0=-156.5 +x_0=0 +y_0=0",bbox:[-160.5,18.72,-154.57,22.58],origin:[-157,21],placement:[-1050326,-1055362]};var PR={name:"PR",proj:"+proj=aea +lat_1=18 +lat_2=18.43 +lat_0=17.83 +lon_0=-66.43 +x_0=0 +y_0=0",bbox:[-68.092,17.824,-65.151,18.787],origin:[-66.431,18.228],placement:[1993101,-1254517]};var VI={name:"VI",proj:"+proj=aea +lat_1=18 +lat_2=18.43 +lat_0=17.83 +lon_0=-66.43 +x_0=0 +y_0=0",bbox:[-65.104,17.665,-64.454,18.505],origin:[-66.431,18.228],placement:[1993101,-1254517]};var mixed=new MixedProjection(main,opts).addFrame(AK).addFrame(HI);if(opts.PR){mixed.addFrame(PR)}if(opts.VI){mixed.addFrame(VI)}return mixed}internal.parseCustomParams=function(arr){var opts={};arr.forEach(function(str){internal.parseCustomParam(str,opts)});return opts};internal.parseCustomParam=function(str,opts){var parts=str.split("=");var path=parts[0].split(".");var key=path.pop();var obj=path.reduce(function(memo,name){if(name in memo===false){memo[name]={}}else if(!utils.isObject(memo[name])){return{}}return memo[name]},opts);if(parts.length>1){obj[key]=internal.parseCustomParamValue(parts[1])}else if(key in obj===false&&!path.length){obj[key]={}}};internal.parseCustomParamValue=function(str){var val;if(str.indexOf(",")>0){val=str.split(",").map(parseFloat);return val}val=utils.parseNumber(str);if(val===null){val=str}return val};internal.projectionAliases={robinson:"+proj=robin +datum=WGS84",webmercator:"+proj=merc +a=6378137 +b=6378137",wgs84:"+proj=longlat +datum=WGS84",albersusa:new AlbersUSA};internal.initProjLibrary=function(opts,done){done()};internal.findProjLibs=function(str){var matches=str.match(/\b(esri|epsg|nad83|nad27)(?=:[0-9]+\b)/gi)||[];return utils.uniq(matches.map(function(str){return str.toLowerCase()}))};internal.looksLikeInitString=function(str){return/^(esri|epsg|nad83|nad27):[0-9]+$/i.test(String(str))};internal.getProjTransform=function(src,dest){var mproj=require("mproj");var clampSrc=internal.isLatLngCRS(src);dest=dest.__mixed_crs||dest;return function(x,y){var xy;if(clampSrc){if(x<-180)x=-180;else if(x>180)x=180}xy=[x,y];mproj.pj_transform_point(src,dest,xy);return xy}};internal.getProjTransform2=function(src,dest){var mproj=require("mproj"),xx=[0],yy=[0],preK=src.is_latlong?mproj.internal.DEG_TO_RAD:1,postK=dest.is_latlong?mproj.internal.RAD_TO_DEG:1,clampSrc=internal.isLatLngCRS(src);return function(x,y){var fail;if(clampSrc){if(x<-180)x=-180;else if(x>180)x=180}xx[0]=x*preK;yy[0]=y*preK;try{dest=dest.__mixed_crs||dest;mproj.pj_transform(src,dest,xx,yy);fail=xx[0]==Infinity}catch(e){fail=true}return fail?null:[xx[0]*postK,yy[0]*postK]}};internal.toLngLat=function(xy,P){var proj;if(isLatLngCRS(P)){return xy.concat()}proj=internal.getProjInfo(P,internal.getCRS("wgs84"));return proj(xy)};internal.getProjInfo=function(dataset){var P,info;try{P=internal.getDatasetCRS(dataset);if(P){info=internal.crsToProj4(P)}}catch(e){}return info||"[unknown]"};internal.crsToProj4=function(P){return require("mproj").internal.get_proj_defn(P)};internal.crsToPrj=function(P){var wkt;try{wkt=require("mproj").internal.wkt_from_proj4(P)}catch(e){}return wkt};internal.crsAreEqual=function(a,b){var str=internal.crsToProj4(a);return!!str&&str==internal.crsToProj4(b)};internal.getProjDefn=function(str){var mproj=require("mproj");var defn;if(internal.looksLikeProj4String(str)){defn=str}else if(str in mproj.internal.pj_list){defn="+proj="+str}else if(str in internal.projectionAliases){defn=internal.projectionAliases[str]}else if(internal.looksLikeInitString(str)){defn="+init="+str.toLowerCase()}else{defn=internal.parseCustomProjection(str)}if(!defn){stop("Unknown projection definition:",str)}return defn};internal.looksLikeProj4String=function(str){return/^(\+[^ ]+ *)+$/.test(str)};internal.getCRS=function(str){var defn=internal.getProjDefn(str);var P;if(!utils.isString(defn)){P=defn}else{try{P=require("mproj").pj_init(defn)}catch(e){stop("Unable to use projection",defn,"("+e.message+")")}}return P||null};internal.setDatasetCRS=function(dataset,info){dataset.info=dataset.info||{};dataset.info.crs=info.crs;dataset.info.prj=info.prj};internal.getDatasetCRS=function(dataset){var info=dataset.info||{},P=info.crs;if(!P&&info.prj){P=internal.parsePrj(info.prj)}if(!P&&internal.probablyDecimalDegreeBounds(internal.getDatasetBounds(dataset))){P=internal.getCRS("wgs84")}return P};internal.getScaleFactorAtXY=function(x,y,crs){var proj=require("mproj");var dist=1;var lp=proj.pj_inv_deg({x:x,y:y},crs);var lp2=proj.pj_inv_deg({x:x+dist,y:y},crs);var k=dist/greatCircleDistance(lp.lam,lp.phi,lp2.lam,lp2.phi);return k};internal.isProjectedCRS=function(P){return!internal.isLatLngCRS(P)};internal.isLatLngCRS=function(P){return P&&P.is_latlong||false};internal.printProjections=function(){var index=require("mproj").internal.pj_list;var msg="Proj4 projections\n";Object.keys(index).sort().forEach(function(id){msg+=" "+utils.rpad(id,7," ")+" "+index[id].name+"\n"});msg+="\nAliases";Object.keys(internal.projectionAliases).sort().forEach(function(n){msg+="\n "+n});print(msg)};internal.translatePrj=function(str){var proj4;try{proj4=require("mproj").internal.wkt_to_proj4(str)}catch(e){stop("Unusable .prj file ("+e.message+")")}return proj4};internal.parsePrj=function(str){return internal.getCRS(internal.translatePrj(str))};var UNITS_LOOKUP={m:"meters",meter:"meters",meters:"meters",mi:"miles",mile:"miles",miles:"miles",km:"kilometers",ft:"feet",feet:"feet"};var TO_METERS={meters:1,kilometers:1e3,feet:.3048,miles:1609.344};internal.getIntervalConversionFactor=function(paramUnits,crs){var fromParam=0,fromCRS=0,k;if(crs){if(crs.is_latlong){fromCRS=1}else if(crs.to_meter>0){fromCRS=crs.to_meter}else{error("Invalid CRS")}}if(paramUnits){fromParam=TO_METERS[paramUnits];if(!fromParam)error("Unknown units:",paramUnits)}if(fromParam&&fromCRS){k=fromParam/fromCRS}else if(!fromParam&&!fromCRS){k=1}else if(fromParam&&!fromCRS){stop("Unable to convert",paramUnits,"to unknown coordinates")}else if(!fromParam&&fromCRS){k=1/fromCRS}return k};internal.parseMeasure=function(m){var o=internal.parseMeasure2(m);if(isNaN(o.value)){stop("Invalid parameter:",m)}return o};internal.parseMeasure2=function(m){var s=utils.isString(m)?m:"";var match=/(sq|)([a-z]+)(2|)$/i.exec(s);var o={};if(utils.isNumber(m)){o.value=m}else if(s===""){o.value=NaN}else if(match){o.units=UNITS_LOOKUP[match[2].toLowerCase()];o.areal=!!(match[1]||match[3]);o.value=Number(s.substring(0,s.length-match[0].length));if(!o.units&&!isNaN(o.value)){stop("Unknown units: "+match[0])}}else{o.value=Number(s)}return o};internal.convertAreaParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);return o.value*k*k};internal.convertDistanceParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);if(o.areal){stop("Expected a distance, received an area:",opt)}return o.value*k};internal.convertIntervalParam=function(opt,crs){var o=internal.parseMeasure(opt);var k=internal.getIntervalConversionFactor(o.units,crs);if(o.units&&crs&&crs.is_latlong){stop("Parameter does not support distance units with latlong datasets")}if(o.areal){stop("Expected a distance, received an area:",opt)}return o.value*k};internal.convertIntervalPair=function(opt,crs){var a,b;if(!Array.isArray(opt)||opt.length!=2){stop("Expected two distance parameters, received",opt)}a=internal.parseMeasure(opt[0]);b=internal.parseMeasure(opt[1]);if(a.units&&!b.units||b.units&&!a.units){stop("Both parameters should have units:",opt)}return[internal.convertIntervalParam(opt[0],crs),internal.convertIntervalParam(opt[1],crs)]};internal.convertFourSides=function(opt,crs,bounds){var arr=opt.split(",");if(arr.length==1){arr=[arr[0],arr[0],arr[0],arr[0]]}else if(arr.length!=4){stop("Expected a distance parameter or a list of four params")}return arr.map(function(param,i){var tmp;if(param.indexOf("%")>0){tmp=parseFloat(param)/100||0;return tmp*(i==1||i==3?bounds.height():bounds.width())}return internal.convertIntervalParam(opt,crs)})};internal.getAreaLabel=function(area,crs){var sqm=crs&&crs.to_meter?area*crs.to_meter*crs.to_meter:area;var sqkm=sqm/1e6;return sqkm<.01?Math.round(sqm)+" sqm":sqkm+" sqkm"};function dissolvePolygonGeometry(shapes,getGroupId){var segments=dissolveFirstPass(shapes,getGroupId);return dissolveSecondPass(segments,shapes,getGroupId)}function dissolveFirstPass(shapes,getGroupId){var groups=[],largeGroups=[],segments=[],ids=shapes.map(function(shp,i){return getGroupId(i)});internal.traversePaths(shapes,procArc);largeGroups.forEach(splitGroup);return segments;function procArc(obj){var arcId=obj.arcId,idx=arcId<0?~arcId:arcId,segId=segments.length,group=groups[idx];if(!group){group=[];groups[idx]=group}group.push(segId);obj.group=group;segments.push(obj);if(group.length==3){largeGroups.push(group)}}function findMatchingPair(group,cb){var arc1,arc2;for(var i=0;i2)splitGroup(group)}}}function dissolveSecondPass(segments,shapes,getGroupId){var dissolveShapes=[];segments.forEach(procSegment);return dissolveShapes;function procSegment(obj){if(obj.used)return;var match=findDissolveArc(obj);if(!match)buildRing(obj)}function addRing(arcs,i){if(i in dissolveShapes===false){dissolveShapes[i]=[]}dissolveShapes[i].push(arcs)}function buildRing(firstArc){var newArcs=[firstArc.arcId],nextArc=getNextArc(firstArc);firstArc.used=true;while(nextArc&&nextArc!=firstArc){newArcs.push(nextArc.arcId);nextArc.used=true;nextArc=getNextArc(nextArc);if(nextArc&&nextArc!=firstArc&&nextArc.used)error("buildRing() topology error")}if(!nextArc)error("buildRing() traversal error");firstArc.used=true;addRing(newArcs,getGroupId(firstArc.shapeId))}function getNextArc(obj,depth){var next=getNextSegment(obj,segments,shapes),match;depth=depth||0;if(next!=obj){match=findDissolveArc(next);if(match){if(depth>100){error("deep recursion -- unhandled topology problem")}if(shapes[match.shapeId][match.partId].length==1){next=getNextArc(next,depth+1)}else{next=getNextArc(match,depth+1)}}}return next}function findDissolveArc(obj){var dissolveId=getGroupId(obj.shapeId),match,matchId;matchId=utils.find(obj.group,function(i){var a=obj,b=segments[i];if(a==b||b.used||getGroupId(b.shapeId)!==dissolveId||a.arcId!=~b.arcId)return false;return true});match=matchId===null?null:segments[matchId];return match}}function getNextSegment(seg,segments,shapes){return getSegmentByOffs(seg,segments,shapes,1)}function getPrevSegment(seg,segments,shapes){return getSegmentByOffs(seg,segments,shapes,-1)}function getSegmentByOffs(seg,segments,shapes,offs){var arcs=shapes[seg.shapeId][seg.partId],partLen=arcs.length,nextOffs=(seg.i+offs)%partLen,nextSeg;if(nextOffs<0)nextOffs+=partLen;nextSeg=segments[seg.segId-seg.i+nextOffs];if(!nextSeg||nextSeg.shapeId!=seg.shapeId)error("index error");return nextSeg}function NodeCollection(arcs,filter){if(utils.isArray(arcs)){arcs=new ArcCollection(arcs)}var arcData=arcs.getVertexData(),nn=arcData.nn,xx=arcData.xx,yy=arcData.yy,nodeData;Object.defineProperty(this,"arcs",{value:arcs});var toArray=this.toArray=function(){var chains=getNodeChains(),flags=new Uint8Array(chains.length),arr=[];utils.forEach(chains,function(nextIdx,thisIdx){var node,x,y,p;if(flags[thisIdx]==1)return;p=getEndpoint(thisIdx);if(!p)return;node={coordinates:p,arcs:[]};arr.push(node);while(flags[thisIdx]!=1){node.arcs.push(chainToArcId(thisIdx));flags[thisIdx]=1;thisIdx=chains[thisIdx]}});return arr};this.size=function(){return this.toArray().length};this.findDanglingEndpoints=function(){var chains=getNodeChains(),arr=[],p;for(var i=0,n=chains.length;i0){count+=this.detachAcyclicArcs()}return count};this.detachArc=function(arcId){unlinkDirectedArc(arcId);unlinkDirectedArc(~arcId)};this.forEachConnectedArc=function(arcId,cb){var nextId=nextConnectedArc(arcId),i=0;while(nextId!=arcId){cb(nextId,i++);nextId=nextConnectedArc(nextId)}};this.getConnectedArcs=function(arcId,filter){var ids=[];var filtered=!!filter;var nextId=nextConnectedArc(arcId);if(filtered&&!filter(arcId)){}while(nextId!=arcId){if(!filtered||filter(nextId)){ids.push(nextId)}nextId=nextConnectedArc(nextId)}return ids};this.findDuplicateArc=function(arcId){var nextId=nextConnectedArc(arcId),match=arcId;while(nextId!=arcId){if(testArcMatch(arcId,nextId)){if(absArcId(nextId)>1;return chainId&1==1?absId:~absId}function arcToChainId(arcId){var fw=arcId>=0;return fw?arcId*2+1:~arcId*2}function getNodeChains(){if(!nodeData){nodeData=internal.findNodeTopology(arcs,filter);if(nn.length*2!=nodeData.chains.length)error("[NodeCollection] count error")}return nodeData.chains}function testArcMatch(a,b){var absA=a>=0?a:~a,absB=b>=0?b:~b,lenA=nn[absA];if(lenA<2){return false}if(lenA!=nn[absB])return false;if(testVertexMatch(a,b,-1)&&testVertexMatch(a,b,1)&&testVertexMatch(a,b,-2)){return true}return false}function testVertexMatch(a,b,i){var ai=arcs.indexOfVertex(a,i),bi=arcs.indexOfVertex(b,i);return xx[ai]==xx[bi]&&yy[ai]==yy[bi]}function nextConnectedArc(arcId){var chainId=arcToChainId(arcId),chains=getNodeChains(),nextChainId=chains[chainId];if(!(nextChainId>=0&&nextChainId0){stop("Table is missing one or more fields:\n",missingFields,"\nExisting fields:","\n"+internal.formatStringsAsGrid(dataFields))}};internal.layerTypeMessage=function(lyr,defaultMsg,customMsg){var msg;if(customMsg&&utils.isString(customMsg)){msg=customMsg}else{msg=defaultMsg+", ";if(!lyr||!lyr.geometry_type){msg+="received a layer with no geometry"}else{msg+="received a "+lyr.geometry_type+" layer"}}return msg};internal.requirePointLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="point")stop(internal.layerTypeMessage(lyr,"Expected a point layer",msg))};internal.requirePolylineLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="polyline")stop(internal.layerTypeMessage(lyr,"Expected a polyline layer",msg))};internal.requirePolygonLayer=function(lyr,msg){if(!lyr||lyr.geometry_type!=="polygon")stop(internal.layerTypeMessage(lyr,"Expected a polygon layer",msg))};internal.requirePathLayer=function(lyr,msg){if(!lyr||!internal.layerHasPaths(lyr))stop(internal.layerTypeMessage(lyr,"Expected a polygon or polyline layer",msg))};internal.getLayerSourceFile=function(lyr,dataset){var inputs=dataset.info&&dataset.info.input_files;return inputs&&inputs[0]||""};internal.divideFeaturesByType=function(shapes,properties,types){var typeSet=utils.uniq(types);var layers=typeSet.map(function(geoType){var p=[],s=[],dataNulls=0,rec;for(var i=0,n=shapes.length;i1)count++}return count};internal.getLayerBounds=function(lyr,arcs){var bounds=null;if(lyr.geometry_type=="point"){bounds=internal.getPointBounds(lyr.shapes)}else if(lyr.geometry_type=="polygon"||lyr.geometry_type=="polyline"){bounds=internal.getPathBounds(lyr.shapes,arcs)}else{}return bounds};internal.getPathBounds=function(shapes,arcs){var bounds=new Bounds;internal.forEachArcId(shapes,function(id){arcs.mergeArcBounds(id,bounds)});return bounds};internal.isolateLayer=function(layer,dataset){return utils.defaults({layers:dataset.layers.filter(function(lyr){return lyr==layer})},dataset)};internal.initDataTable=function(lyr){lyr.data=new DataTable(internal.getFeatureCount(lyr))};internal.mergeDatasetsForExport=function(arr){var copy=arr.map(function(dataset){return utils.defaults({layers:dataset.layers.map(internal.copyLayerShapes)},dataset)});return internal.mergeDatasets(copy)};internal.mergeCommandTargets=function(targets,catalog){var targetLayers=[];var targetDatasets=[];var datasetsWithArcs=0;var merged;targets.forEach(function(target){targetLayers=targetLayers.concat(target.layers);targetDatasets=targetDatasets.concat(target.dataset);if(target.dataset.arcs&&target.dataset.arcs.size()>0)datasetsWithArcs++});merged=internal.mergeDatasets(targetDatasets);if(datasetsWithArcs>1){api.buildTopology(merged)}targetDatasets.forEach(catalog.removeDataset);catalog.addDataset(merged);catalog.setDefaultTarget(targetLayers,merged);return[{layers:targetLayers,dataset:merged}]};internal.mergeDatasets=function(arr){var arcSources=[],arcCount=0,mergedLayers=[],mergedInfo={},mergedArcs;internal.requireDatasetsHaveCompatibleCRS(arr);arr.forEach(function(dataset){var n=dataset.arcs?dataset.arcs.size():0;if(n>0){arcSources.push(dataset.arcs)}internal.mergeDatasetInfo(mergedInfo,dataset);dataset.layers.forEach(function(lyr){if(lyr.geometry_type=="polygon"||lyr.geometry_type=="polyline"){internal.forEachArcId(lyr.shapes,function(id){return id<0?id-arcCount:id+arcCount})}mergedLayers.push(lyr)});arcCount+=n});mergedArcs=internal.mergeArcs(arcSources);if(mergedArcs.size()!=arcCount){error("[mergeDatasets()] Arc indexing error")}return{info:mergedInfo,arcs:mergedArcs,layers:mergedLayers}};internal.requireDatasetsHaveCompatibleCRS=function(arr){arr.reduce(function(memo,dataset){var P=internal.getDatasetCRS(dataset);if(memo&&P){if(internal.isLatLngCRS(memo)!=internal.isLatLngCRS(P)){stop("Unable to combine projected and unprojected datasets")}}return P||memo},null)};internal.mergeDatasetInfo=function(merged,dataset){var info=dataset.info||{};merged.input_files=utils.uniq((merged.input_files||[]).concat(info.input_files||[]));merged.input_formats=utils.uniq((merged.input_formats||[]).concat(info.input_formats||[]));utils.defaults(merged,info)};internal.mergeArcs=function(arr){var dataArr=arr.map(function(arcs){if(arcs.getRetainedInterval()>0){verbose("Baking-in simplification setting.");arcs.flatten()}return arcs.getVertexData()});var xx=utils.mergeArrays(utils.pluck(dataArr,"xx"),Float64Array),yy=utils.mergeArrays(utils.pluck(dataArr,"yy"),Float64Array),nn=utils.mergeArrays(utils.pluck(dataArr,"nn"),Int32Array);return new ArcCollection(nn,xx,yy)};utils.countElements=function(arrays){return arrays.reduce(function(memo,arr){return memo+(arr.length||0)},0)};utils.mergeArrays=function(arrays,TypedArr){var size=utils.countElements(arrays),Arr=TypedArr||Array,merged=new Arr(size),offs=0;arrays.forEach(function(src){var n=src.length;for(var i=0;i0){arcLen--}newArc.push(arcId);arcStatus[absId]=1}else{newArc=[arcId];arcIndex[absId]=newArcs.length;newArcs.push(newArc);arcStatus[absId]=fw?2:3}pointCount+=arcLen}if(arcStatus[absId]>1){newArcId=arcIndex[absId];if(fw&&arcStatus[absId]==3||!fw&&arcStatus[absId]==2){newArcId=~newArcId}newPath.push(newArcId)}}totalPoints+=pointCount;return newPath}};internal.dissolveArcCollection=function(arcs,newArcs,newLen){var nn2=new Uint32Array(newArcs.length),xx2=new Float64Array(newLen),yy2=new Float64Array(newLen),src=arcs.getVertexData(),zz2=src.zz?new Float64Array(newLen):null,interval=arcs.getRetainedInterval(),offs=0;newArcs.forEach(function(newArc,newId){newArc.forEach(function(oldId,i){extendDissolvedArc(oldId,newId)})});return new ArcCollection(nn2,xx2,yy2).setThresholds(zz2).setRetainedInterval(interval);function extendDissolvedArc(oldId,newId){var absId=absArcId(oldId),rev=oldId<0,n=src.nn[absId],i=src.ii[absId],n2=nn2[newId];if(n>0){if(n2>0){n--;if(!rev)i++}utils.copyElements(src.xx,i,xx2,offs,n,rev);utils.copyElements(src.yy,i,yy2,offs,n,rev);if(zz2)utils.copyElements(src.zz,i,zz2,offs,n,rev);nn2[newId]+=n;offs+=n}}};internal.getArcDissolveTest=function(layers,arcs){var nodes=new NodeCollection(arcs,internal.getArcPresenceTest2(layers,arcs)),lineLayers=layers.filter(function(lyr){return lyr.geometry_type=="polyline"}),testLineEndpoint=internal.getPathEndpointTest(lineLayers,arcs),linkCount,lastId;return function(id1,id2){if(id1==id2||id1==~id2){verbose("Unexpected arc sequence:",id1,id2);return false}linkCount=0;nodes.forEachConnectedArc(id1,countLink);return linkCount==1&&lastId==~id2&&!testLineEndpoint(id1)&&!testLineEndpoint(~id2)};function countLink(arcId,i){linkCount++;lastId=arcId}};internal.dissolveBufferDataset=function(dataset,optsArg){var opts=optsArg||{};var lyr=dataset.layers[0];var tmp;var nodes=internal.addIntersectionCuts(dataset,{});if(opts.debug_division){return internal.debugBufferDivision(lyr,nodes)}var mosaicIndex=new MosaicIndex(lyr,nodes,{flat:false,no_holes:false});if(opts.debug_mosaic){tmp=internal.composeMosaicLayer(lyr,mosaicIndex.mosaic);lyr.shapes=tmp.shapes;lyr.data=tmp.data;return}var pathfind=internal.getRingIntersector(mosaicIndex.nodes);var shapes2=lyr.shapes.map(function(shp,shapeId){var tiles=mosaicIndex.getTilesByShapeIds([shapeId]);var rings=[];for(var i=0;i=4&&first[0]==last[0]&&first[1]==last[1]};internal.GeoJSONReader=GeoJSONReader;function GeoJSONReader(reader){this.readObjects=function(onObject){var bytesToSearch=5e3;var start=reader.findString('"features"',bytesToSearch)||reader.findString('"geometries"',bytesToSearch);var offset=start?start.offset:0;readObjects(offset,onObject)};this.readObject=readObject;function readObjects(offset,cb){var obj=readObject(offset);var json;while(obj){try{json=JSON.parse(obj.text)}catch(e){stop("JSON parsing error --",adjustPositionMessage(e.message,offset+obj.start))}cb(json);offset=obj.end;obj=readObject(obj.end)}}function adjustPositionMessage(msg,offset){var rxp=/position (\d+)/;var match=rxp.exec(msg);if(match){msg=msg.replace(rxp,"position "+(offset+parseInt(match[1])))}return msg}function readObject(offs){var LBRACE=123,RBRACE=125,RBRACK=93,BSLASH=92,DQUOTE=34,level=0,inString=false,escapeNext=false,buf=reader.readSync(offs),retn=null,startPos,i,n,c;for(i=0,n=buf.length;i1)inv=Math.round(inv);return function(x){return Math.round(x*inv)/inv}};utils.roundToSignificantDigits=function(n,d){return+n.toPrecision(d)};geom.pathIsClosed=function(ids,arcs){var firstArc=ids[0];var lastArc=ids[ids.length-1];var p1=arcs.getVertex(firstArc,0);var p2=arcs.getVertex(lastArc,-1);var closed=p1.x===p2.x&&p1.y===p2.y;return closed};geom.getPointToPathDistance=function(px,py,ids,arcs){return geom.getPointToPathInfo(px,py,ids,arcs).distance};geom.getPointToPathInfo=function(px,py,ids,arcs){var iter=arcs.getShapeIter(ids);var pPathSq=Infinity;var ax,ay,bx,by,axmin,aymin,bxmin,bymin,pabSq;if(iter.hasNext()){ax=axmin=bxmin=iter.x;ay=aymin=bymin=iter.y}while(iter.hasNext()){bx=iter.x;by=iter.y;pabSq=pointSegDistSq2(px,py,ax,ay,bx,by);if(pabSqmaxArea){maxArea=bbArea;maxPath=path}return maxPath},null)};geom.countVerticesInPath=function(ids,arcs){var iter=arcs.getShapeIter(ids),count=0;while(iter.hasNext())count++;return count};geom.getPathBounds=function(points){var bounds=new Bounds;for(var i=0,n=points.length;i-1&&a>-1?[a,b]:null};var classify=internal.getArcClassifier(shapes,arcs)(getKey);var arr=[];var index={};var onArc=function(arcId){var obj=classify(arcId);var key;if(obj){key=obj.join("~");if(key in index===false){arr.push(obj);index[key]=true}}};internal.forEachArcId(shapes,onArc);return arr};geom.calcPolsbyPopperCompactness=function(area,perimeter){if(perimeter<=0)return 0;return Math.abs(area)*Math.PI*4/(perimeter*perimeter)};geom.calcSchwartzbergCompactness=function(area,perimeter){if(perimeter<=0)return 0;return 2*Math.PI*Math.sqrt(Math.abs(area)/Math.PI)/perimeter};geom.getPathWinding=function(ids,arcs){var area=geom.getPathArea(ids,arcs);return area>0&&1||area<0&&-1||0};geom.getShapeArea=function(shp,arcs){return(shp||[]).reduce(function(area,ids){return area+geom.getPathArea(ids,arcs)},0)};geom.getPlanarShapeArea=function(shp,arcs){return(shp||[]).reduce(function(area,ids){return area+geom.getPlanarPathArea(ids,arcs)},0)};geom.getSphericalShapeArea=function(shp,arcs){if(arcs.isPlanar()){error("[getSphericalShapeArea()] Function requires decimal degree coordinates")}return(shp||[]).reduce(function(area,ids){return area+geom.getSphericalPathArea(ids,arcs)},0)};geom.testPointInPolygon=function(x,y,shp,arcs){var isIn=false,isOn=false;if(shp){shp.forEach(function(ids){var inRing=geom.testPointInRing(x,y,ids,arcs);if(inRing==1){isIn=!isIn}else if(inRing==-1){isOn=true}})}return isOn||isIn};geom.getYIntercept=function(x,ax,ay,bx,by){return ay+(x-ax)*(by-ay)/(bx-ax)};geom.getXIntercept=function(y,ax,ay,bx,by){return ax+(y-ay)*(bx-ax)/(by-ay)};geom.testPointInRing=function(x,y,ids,arcs){var isIn=false,isOn=false;internal.forEachSegmentInPath(ids,arcs,function(a,b,xx,yy){var result=geom.testRayIntersection(x,y,xx[a],yy[a],xx[b],yy[b]);if(result==1){isIn=!isIn}else if(isNaN(result)){isOn=true}});return isOn?-1:isIn?1:0};geom.testRayIntersection=function(x,y,ax,ay,bx,by){var val=geom.getRayIntersection(x,y,ax,ay,bx,by);if(val!=val){return NaN}return val==-Infinity?0:1};geom.getRayIntersection=function(x,y,ax,ay,bx,by){var hit=-Infinity,yInt;if(xax&&x>bx||y>ay&&y>by){}else if(x===ax||x===bx){if(x===ax&&x===bx){if(y==ay||y==by||y>ay!=y>by){hit=NaN}}else if(x===ax){if(y===ay){hit=NaN}else if(bxy){hit=yInt}else if(yInt==y){hit=NaN}}return hit};geom.getPathArea=function(ids,arcs){return(arcs.isPlanar()?geom.getPlanarPathArea:geom.getSphericalPathArea)(ids,arcs)};geom.getSphericalPathArea=function(ids,arcs){var iter=arcs.getShapeIter(ids),sum=0,started=false,deg2rad=Math.PI/180,x,y,xp,yp;while(iter.hasNext()){x=iter.x*deg2rad;y=Math.sin(iter.y*deg2rad);if(started){sum+=(x-xp)*(2+y+yp)}else{started=true}xp=x;yp=y}return sum/2*6378137*6378137};geom.getPlanarPathArea2=function(points){var sum=0,ax,ay,bx,by,dx,dy,p;for(var i=0,n=points.length;i0===false){throw new Error("Invalid size param: "+size)}return function(x,y){var u=uints,h;floats[0]=x;floats[1]=y;h=u[0]^u[1];h=h<<5^h>>7^u[2]^u[3];return(h&2147483647)%lim}}function getXHash(size){var buf=new ArrayBuffer(8),floats=new Float64Array(buf),uints=new Uint32Array(buf),lim=size|0;if(lim>0===false){throw new Error("Invalid size param: "+size)}return function(x){var h;floats[0]=x;h=uints[0]^uints[1];h=h<<5^h>>7;return(h&2147483647)%lim}}function ArcIndex(pointCount){var hashTableSize=Math.floor(pointCount*.25+1),hash=getXYHash(hashTableSize),hashTable=new Int32Array(hashTableSize),chainIds=[],arcs=[],arcPoints=0;utils.initializeArray(hashTable,-1);this.addArc=function(xx,yy){var end=xx.length-1,key=hash(xx[end],yy[end]),chainId=hashTable[key],arcId=arcs.length;hashTable[key]=arcId;arcs.push([xx,yy]);arcPoints+=xx.length;chainIds.push(chainId);return arcId};this.findDuplicateArc=function(xx,yy,start,end,getNext,getPrev){var arcId=findArcNeighbor(xx,yy,start,end,getNext);if(arcId===null){arcId=findArcNeighbor(xx,yy,end,start,getPrev)}else{arcId=~arcId}return arcId};function findArcNeighbor(xx,yy,start,end,getNext){var next=getNext(start),key=hash(xx[start],yy[start]),arcId=hashTable[key],arcX,arcY,len;while(arcId!=-1){arcX=arcs[arcId][0];arcY=arcs[arcId][1];len=arcX.length;if(arcX[0]===xx[end]&&arcX[len-1]===xx[start]&&arcX[len-2]===xx[next]&&arcY[0]===yy[end]&&arcY[len-1]===yy[start]&&arcY[len-2]===yy[next]){return arcId}arcId=chainIds[arcId]}return null}this.getVertexData=function(){var xx=new Float64Array(arcPoints),yy=new Float64Array(arcPoints),nn=new Uint32Array(arcs.length),copied=0,arc,len;for(var i=0,n=arcs.length;i=0?j:i}return chainIds}function initPointChains(xx,yy){var chainIds=initHashChains(xx,yy),j,next,prevMatchId,prevUnmatchId;for(var i=xx.length-1;i>=0;i--){next=chainIds[i];if(next>=i)continue;prevMatchId=i;prevUnmatchId=-1;do{j=next;next=chainIds[j];if(yy[j]==yy[i]&&xx[j]==xx[i]){chainIds[j]=prevMatchId;prevMatchId=j}else{if(prevUnmatchId>-1){chainIds[prevUnmatchId]=j}prevUnmatchId=j}}while(next-1){chainIds[prevUnmatchId]=prevUnmatchId}chainIds[i]=prevMatchId}return chainIds}api.buildTopology=function(dataset){if(!dataset.arcs)return;var raw=dataset.arcs.getVertexData(),cooked=internal.buildPathTopology(raw.nn,raw.xx,raw.yy);dataset.arcs.updateVertexData(cooked.nn,cooked.xx,cooked.yy);dataset.layers.forEach(function(lyr){if(lyr.geometry_type=="polyline"||lyr.geometry_type=="polygon"){lyr.shapes=internal.replaceArcIds(lyr.shapes,cooked.paths)}})};internal.buildPathTopology=function(nn,xx,yy){var pointCount=xx.length,chainIds=initPointChains(xx,yy),pathIds=initPathIds(pointCount,nn),index=new ArcIndex(pointCount),slice=usingTypedArrays()?xx.subarray:Array.prototype.slice,paths,retn;paths=convertPaths(nn);retn=index.getVertexData();retn.paths=paths;return retn;function usingTypedArrays(){return!!(xx.subarray&&yy.subarray)}function convertPaths(nn){var paths=[],pointId=0,pathLen;for(var i=0,len=nn.length;i=0&&pathIds[prevId]===partId){return id-1}var len=nn[partId];return sameXY(id,id+len-1)?id+len-2:-1}function sameXY(a,b){return xx[a]==xx[b]&&yy[a]==yy[b]}function convertPath(start,end){var arcIds=[],firstNodeId=-1,arcStartId;for(var i=start;i-1){arcIds.push(addEdge(arcStartId,i))}else{firstNodeId=i}arcStartId=i}}if(firstNodeId==-1){arcIds.push(addRing(start,end))}else if(firstNodeId==start){if(!pointIsArcEndpoint(end)){error("Topology error")}arcIds.push(addEdge(arcStartId,i))}else{arcIds.push(addSplitEdge(arcStartId,end,start+1,firstNodeId))}return arcIds}function pointIsArcEndpoint(id){var id2=chainIds[id],prev=prevPoint(id),next=nextPoint(id),prev2,next2;if(prev==-1||next==-1){return true}while(id!=id2){prev2=prevPoint(id2);next2=nextPoint(id2);if(prev2==-1||next2==-1||brokenEdge(prev,next,prev2,next2)){return true}id2=chainIds[id2]}return false}function brokenEdge(aprev,anext,bprev,bnext){var apx=xx[aprev],anx=xx[anext],bpx=xx[bprev],bnx=xx[bnext],apy=yy[aprev],any=yy[anext],bpy=yy[bprev],bny=yy[bnext];if(apx==bnx&&anx==bpx&&apy==bny&&any==bpy||apx==bpx&&anx==bnx&&apy==bpy&&any==bny){return false}return true}function mergeArcParts(src,startId,endId,startId2,endId2){var len=endId-startId+endId2-startId2+2,ArrayClass=usingTypedArrays()?Float64Array:Array,dest=new ArrayClass(len),j=0,i;for(i=startId;i<=endId;i++){dest[j++]=src[i]}for(i=startId2;i<=endId2;i++){dest[j++]=src[i]}return dest}function addSplitEdge(start1,end1,start2,end2){var arcId=index.findDuplicateArc(xx,yy,start1,end2,nextPoint,prevPoint);if(arcId===null){arcId=index.addArc(mergeArcParts(xx,start1,end1,start2,end2),mergeArcParts(yy,start1,end1,start2,end2))}return arcId}function addEdge(start,end){var arcId=index.findDuplicateArc(xx,yy,start,end,nextPoint,prevPoint);if(arcId===null){arcId=index.addArc(slice.call(xx,start,end+1),slice.call(yy,start,end+1))}return arcId}function addRing(startId,endId){var chainId=chainIds[startId],pathId=pathIds[startId],arcId;while(chainId!=startId){if(pathIds[chainId]0){snapDist=threshold;message(utils.format("Applying snapping threshold of %s -- %.6f times avg. segment length",threshold,threshold/avgDist))}var snapCount=internal.snapCoordsByInterval(arcs,snapDist);if(snapCount>0)arcs.dedupCoords();message(utils.format("Snapped %s point%s",snapCount,utils.pluralSuffix(snapCount)))};internal.snapCoordsByInterval=function(arcs,snapDist){var snapCount=0,data=arcs.getVertexData(),ids;if(snapDist>0){ids=utils.sortCoordinateIds(data.xx);for(var i=0,n=ids.length;ilimit)break;dy=yy[id2]-y;if(dx===0&&dy===0||dx*dx+dy*dy>limit*limit)continue;xx[id2]=x;yy[id2]=y;snaps++}return snaps}};utils.sortCoordinateIds=function(a){var n=a.length,ids=new Uint32Array(n);for(var i=0;i24){var pivot=a[ids[lo+hi>>1]],i=lo,j=hi,tmp;while(i<=j){while(a[ids[i]]pivot)j--;if(i<=j){tmp=ids[i];ids[i]=ids[j];ids[j]=tmp;i++;j--}}if(j>lo)utils.quicksortIds(a,ids,lo,j);if(i=start&&arr[id]0?[path]:[]}function dividePathAtNode(path,enterId){var nodeIds=nodes.getConnectedArcs(enterId,filter),exitArcIndexes,exitArcId,idx;if(nodeIds.length<2)return null;exitArcIndexes=[];for(var i=0;i-1){pathIndex.clearId(exitArcId);exitArcIndexes.push(idx)}else{}}if(exitArcIndexes.length<2){return null}var subPaths=internal.splitPathByIds(path,exitArcIndexes);return subPaths.reduce(accumulatePaths,null)}function accumulatePaths(memo,path){var subPaths=dividePath(path);if(memo===null){return subPaths}memo.push.apply(memo,subPaths);return memo}function indexOf(arr,el){for(var i=0,n=arr.length;i0){subPaths.push(path.slice(0,indexes[0]))}for(var i=0,n=indexes.length;iindexes.length){utils.merge(subPaths[0],subPaths.pop())}return subPaths};internal.deleteHoles=function(lyr,arcs){internal.editShapes(lyr.shapes,function(path){if(geom.getPathArea(path,arcs)<=0){return null}})};internal.getHoleDivider=function(nodes,spherical){var split=internal.getSelfIntersectionSplitter(nodes);return function(rings,cw,ccw){var pathArea=spherical?geom.getSphericalPathArea:geom.getPlanarPathArea;internal.forEachShapePart(rings,function(ringIds){var splitRings=split(ringIds);if(splitRings.length===0){debug("[getRingDivider()] Defective path:",ringIds)}splitRings.forEach(function(ringIds,i){var ringArea=pathArea(ringIds,nodes.arcs);if(ringArea>0){cw.push(ringIds)}else if(ringArea<0){ccw.push(ringIds)}})})}};internal.cleanShapes=function(shapes,arcs,type){for(var i=0,n=shapes.length;i0?path.filter(function(id){return id!==null}):path};internal.removeSpikesInPath=function(ids){var n=ids.length;if(n>=2){if(ids[0]==~ids[n-1]){ids.pop();ids.shift()}else{for(var i=1;i0?1:-1,mainRing;var maxArea=splitIds.reduce(function(max,ringIds,i){var pathArea=geom.getPlanarPathArea(ringIds,nodes.arcs)*sign;if(pathArea>max){mainRing=ringIds;max=pathArea}return max},0);if(mainRing){cleanedPolygon.push(mainRing)}}});return cleanedPolygon.length>0?cleanedPolygon:null}};internal.cleanPathsAfterImport=function(dataset,opts){var arcs=dataset.arcs;var snapDist;if(opts.snap||opts.auto_snap||opts.snap_interval){if(opts.snap_interval){snapDist=internal.convertIntervalParam(opts.snap_interval,internal.getDatasetCRS(dataset))}if(arcs){internal.snapCoords(arcs,snapDist)}}dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.cleanShapes(lyr.shapes,arcs,lyr.geometry_type)}})};internal.pointHasValidCoords=function(p){return p[0]>-1e38&&p[1]>-1e38};function PathImportStream(drain){var buflen=1e4,xx=new Float64Array(buflen),yy=new Float64Array(buflen),i=0;this.endPath=function(){drain(xx,yy,i);i=0};this.addPoint=function(x,y){if(i>=buflen){buflen=Math.ceil(buflen*1.3);xx=utils.extendBuffer(xx,buflen);yy=utils.extendBuffer(yy,buflen)}xx[i]=x;yy[i]=y;i++}}function PathImporter(opts){var bufSize=opts.reserved_points>0?opts.reserved_points:2e4,xx=new Float64Array(bufSize),yy=new Float64Array(bufSize),shapes=[],properties=[],nn=[],types=[],collectionType=opts.type||null,round=null,pathId=-1,shapeId=-1,pointId=0,dupeCount=0,openRingCount=0;if(opts.precision){round=utils.getRoundingFunction(opts.precision)}utils.extend(this,new PathImportStream(importPathCoords));this.startShape=function(d){shapes[++shapeId]=null;if(d)properties[shapeId]=d};this.importLine=function(points){if(points.length<2){verbose("Skipping a defective line");return}setShapeType("polyline");this.importPath(points)};this.importPoints=function(points){setShapeType("point");points=points.filter(internal.pointHasValidCoords);if(round){points.forEach(function(p){p[0]=round(p[0]);p[1]=round(p[1])})}points.forEach(appendToShape)};this.importRing=function(points,isHole){var area=geom.getPlanarPathArea2(points);if(!area||points.length<4){verbose("Skipping a defective ring");return}setShapeType("polygon");if(isHole===true&&area>0||isHole===false&&area<0){verbose("Warning: reversing",isHole?"a CW hole":"a CCW ring");points.reverse()}this.importPath(points)};this.importPath=function importPath(points){var p;for(var i=0,n=points.length;i0){verbose(utils.format("Removed %,d duplicate point%s",dupeCount,utils.pluralSuffix(dupeCount)))}if(openRingCount>0){message(utils.format("Closed %,d open polygon ring%s",openRingCount,utils.pluralSuffix(openRingCount)))}if(pointId>0){if(pointId0){lyr.data=new DataTable(properties)}layers=[lyr]}layers.forEach(function(lyr){if(lyr.data){internal.fixInconsistentFields(lyr.data.getRecords())}});return{arcs:arcs||null,info:{},layers:layers}};function setShapeType(t){var currType=shapeIdxx.length){var newLen=Math.max(needed,Math.ceil(xx.length*1.5));xx=utils.extendBuffer(xx,newLen,pointId);yy=utils.extendBuffer(yy,newLen,pointId)}}function appendToShape(part){var currShape=shapes[shapeId]||(shapes[shapeId]=[]);currShape.push(part)}function appendPath(n){pathId++;nn[pathId]=n;appendToShape([pathId])}function importPathCoords(xsrc,ysrc,n){var count=0;var x,y,prevX,prevY;checkBuffers(pointId+n);for(var i=0;i0&&x==prevX&&y==prevY){dupeCount++}else{xx[pointId]=x;yy[pointId]=y;pointId++;count++}prevY=y;prevX=x}if(collectionType=="polygon"&&count>0){if(xsrc[0]!=xsrc[n-1]||ysrc[0]!=ysrc[n-1]){checkBuffers(pointId+1);xx[pointId]=xsrc[0];yy[pointId]=ysrc[0];openRingCount++;pointId++;count++}}appendPath(count)}}function GeoJSONParser(opts){var idField=opts.id_field||GeoJSON.ID_FIELD,importer=new PathImporter(opts),dataset;this.parseObject=function(o){var geom,rec;if(!o||!o.type){geom=null}else if(o.type=="Feature"){geom=o.geometry;rec=o.properties||{};if("id"in o){rec[idField]=o.id}}else{geom=o}importer.startShape(rec);if(geom)GeoJSON.importGeometry(geom,importer,opts)};this.done=function(){return importer.done()}}internal.importGeoJSON=function(src,optsArg){var opts=optsArg||{};var supportedGeometries=Object.keys(GeoJSON.pathImporters),srcObj=utils.isString(src)?JSON.parse(src):src,importer=new GeoJSONParser(opts),srcCollection,dataset;if(srcObj.type=="Feature"){srcCollection={type:"FeatureCollection",features:[srcObj]}}else if(utils.contains(supportedGeometries,srcObj.type)){srcCollection={type:"GeometryCollection",geometries:[srcObj]}}else{srcCollection=srcObj}(srcCollection.features||srcCollection.geometries||[]).forEach(importer.parseObject);dataset=importer.done();internal.importCRS(dataset,srcObj);return dataset};GeoJSON.importGeometry=function(geom,importer,opts){var type=geom.type;if(type in GeoJSON.pathImporters){if(opts.geometry_type&&opts.geometry_type!=GeoJSON.translateGeoJSONType(type)){return}GeoJSON.pathImporters[type](geom.coordinates,importer)}else if(type=="GeometryCollection"){geom.geometries.forEach(function(geom){GeoJSON.importGeometry(geom,importer,opts)})}else{verbose("GeoJSON.importGeometry() Unsupported geometry type:",geom.type)}};GeoJSON.pathImporters={LineString:function(coords,importer){importer.importLine(coords)},MultiLineString:function(coords,importer){for(var i=0;i0)}},MultiPolygon:function(coords,importer){for(var i=0;i3&&path.area!==0}else if(type=="polyline"){valid=path.pointCount>1}if(valid){pointCount+=path.pointCount;path.bounds=geom.getPathBounds(path.points);bounds.mergeBounds(path.bounds);paths.push(path)}else{verbose("Skipping a collapsed",type,"path")}})}return{pointCount:pointCount,pathData:paths,pathCount:paths.length,bounds:bounds}};internal.exportPathCoords=function(iter){var points=[],i=0,x,y,prevX,prevY;while(iter.hasNext()){x=iter.x;y=iter.y;if(i===0||prevX!=x||prevY!=y){points.push([x,y]);i++}prevX=x;prevY=y}return{points:points,pointCount:points.length}};api.mergeLayers=function(layersArg,opts){var layers=layersArg.filter(internal.getFeatureCount);var merged={};opts=opts||{};if(!layers.length)return null;if(layers.length==1){message("Use the target= option to specify multiple layers for merging");return layers.concat()}merged.data=internal.mergeDataFromLayers(layers,opts.force);merged.name=internal.mergeLayerNames(layers);merged.geometry_type=internal.getMergedLayersGeometryType(layers);if(merged.geometry_type){merged.shapes=internal.mergeShapesFromLayers(layers)}if(merged.shapes&&merged.data&&merged.shapes.length!=merged.data.size()){error("Mismatch between geometry and attribute data")}return[merged]};internal.getMergedLayersGeometryType=function(layers){var geoTypes=utils.uniq(utils.pluck(layers,"geometry_type")).filter(function(type){return!!type});if(geoTypes.length>1){stop("Incompatible geometry types:",geoTypes.join(", "))}return geoTypes[0]||null};internal.mergeShapesFromLayers=function(layers){return layers.reduce(function(memo,lyr){return memo.concat(lyr.shapes)},[])};internal.mergeDataFromLayers=function(layers,force){var allFields=utils.uniq(layers.reduce(function(memo,lyr){return memo.concat(lyr.data?lyr.data.getFields():[])},[]));if(allFields.length===0)return null;var missingFields=internal.checkMergeLayersInconsistentFields(allFields,layers,force);var mergedRecords=layers.reduce(function(memo,lyr){var records=lyr.data?lyr.data.getRecords():new DataTable(internal.getFeatureCount(lyr)).getRecords();return memo.concat(records)},[]);if(missingFields.length>0){internal.fixInconsistentFields(mergedRecords)}return new DataTable(mergedRecords)};internal.checkMergeLayersInconsistentFields=function(allFields,layers,force){var msg;var missingFields=utils.uniq(layers.reduce(function(memo,lyr){return memo.concat(utils.difference(allFields,lyr.data?lyr.data.getFields():[]))},[]));if(missingFields.length>0){msg="["+missingFields.join(", ")+"]";msg=(missingFields.length==1?"Field "+msg+" is missing":"Fields "+msg+" are missing")+" from one or more layers";if(force){message("Warning: "+msg)}else{stop(msg)}}internal.checkMergeLayersFieldTypes(allFields,layers);return missingFields};internal.checkMergeLayersFieldTypes=function(fields,layers){fields.forEach(function(key){var types=internal.checkFieldTypes(key,layers);if(types.length>1){stop('Inconsistent data types in "'+key+'" field:',types.join(", "))}})};internal.checkFieldTypes=function(key,layers){return layers.reduce(function(memo,lyr){var type=lyr.data?internal.getColumnType(key,lyr.data.getRecords()):null;if(type&&memo.indexOf(type)==-1){memo.push(type)}return memo},[])};internal.mergeLayerNames=function(layers){return layers.reduce(function(memo,lyr){if(memo===null){memo=lyr.name||null}else if(memo&&lyr.name){memo=utils.mergeNames(memo,lyr.name)}return memo},null)||""};internal.exportGeoJSON=function(dataset,opts){opts=opts||{};var extension=opts.extension||"json";var layerGroups,warn;if(opts.precision||opts.rfc7946){dataset=internal.copyDatasetForExport(dataset);internal.setCoordinatePrecision(dataset,opts.precision||1e-6)}if(opts.rfc7946){warn=internal.getRFC7946Warnings(dataset);if(warn)message(warn)}if(opts.file){extension=utils.getFileExtension(opts.file)}if(opts.combine_layers){layerGroups=[dataset.layers]}else{layerGroups=dataset.layers.map(function(lyr){return[lyr]})}return layerGroups.map(function(layers){var name=internal.mergeLayerNames(layers)||"output";var d=utils.defaults({layers:layers},dataset);return{content:internal.exportDatasetAsGeoJSON(d,opts,"geojson"),filename:name+"."+extension}})};internal.exportLayerAsGeoJSON=function(lyr,dataset,opts,asFeatures,ofmt){var properties=internal.exportProperties(lyr.data,opts),shapes=lyr.shapes,ids=internal.exportIds(lyr.data,opts),items,stringify;if(ofmt){stringify=opts.prettify?internal.getFormattedStringify(["bbox","coordinates"]):JSON.stringify}if(properties&&shapes&&properties.length!==shapes.length){error("Mismatch between number of properties and number of shapes")}return(shapes||properties||[]).reduce(function(memo,o,i){var shape=shapes?shapes[i]:null,exporter=GeoJSON.exporters[lyr.geometry_type],obj=shape?exporter(shape,dataset.arcs,opts):null;if(asFeatures){obj={type:"Feature",geometry:obj,properties:properties?properties[i]:null};if(ids){obj.id=ids[i]}}else if(!obj){return memo}if(ofmt){obj=stringify(obj);if(ofmt=="buffer"){obj=internal.encodeString(obj,"utf8")}}memo.push(obj);return memo},[])};internal.getRFC7946Warnings=function(dataset){var P=internal.getDatasetCRS(dataset);var str;if(!P||!internal.isLatLngCRS(P)){str="RFC 7946 warning: non-WGS84 coordinates.";if(P)str+=' Use "-proj wgs84" to convert.'}return str};internal.getDatasetBbox=function(dataset,rfc7946){var P=internal.getDatasetCRS(dataset),wrapped=rfc7946&&P&&internal.isLatLngCRS(P),westBounds=new Bounds,eastBounds=new Bounds,mergedBounds,gutter,margins,bbox;dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.traversePaths(lyr.shapes,null,function(o){var bounds=dataset.arcs.getSimpleShapeBounds(o.arcs);(bounds.centerX()<0?westBounds:eastBounds).mergeBounds(bounds)})}else if(internal.layerHasPoints(lyr)){internal.forEachPoint(lyr.shapes,function(p){(p[0]<0?westBounds:eastBounds).mergePoint(p[0],p[1])})}});mergedBounds=(new Bounds).mergeBounds(eastBounds).mergeBounds(westBounds);if(mergedBounds.hasBounds()){bbox=mergedBounds.toArray()}if(wrapped&&eastBounds.hasBounds()&&westBounds.hasBounds()){gutter=eastBounds.xmin-westBounds.xmax;margins=360+westBounds.xmin-eastBounds.xmax;if(gutter>0&&gutter>margins){bbox[0]=eastBounds.xmin;bbox[2]=westBounds.xmax}}return bbox||null};internal.exportDatasetAsGeoJSON=function(dataset,opts,ofmt){var geojson={};var layers=dataset.layers;var useFeatures=internal.useFeatureCollection(layers,opts);var parts,collection,bbox,collname;if(useFeatures){geojson.type="FeatureCollection";collname="features"}else{geojson.type="GeometryCollection";collname="geometries"}if(!opts.rfc7946){internal.exportCRS(dataset,geojson)}if(opts.bbox){bbox=internal.getDatasetBbox(dataset,opts.rfc7946);if(bbox){geojson.bbox=bbox}}collection=layers.reduce(function(memo,lyr,i){var items=internal.exportLayerAsGeoJSON(lyr,dataset,opts,useFeatures,ofmt);return memo.length>0?memo.concat(items):items},[]);if(opts.geojson_type=="Feature"&&collection.length==1){return collection[0]}else if(ofmt){return GeoJSON.formatGeoJSON(geojson,collection,collname,ofmt)}else{geojson[collname]=collection;return geojson}};GeoJSON.formatGeoJSON=function(container,collection,collType,ofmt){var head=JSON.stringify(container).replace(/\}$/,', "'+collType+'": [\n');var tail="\n]}";if(ofmt=="buffer"){return GeoJSON.joinOutputBuffers(head,tail,collection)}return head+collection.join(",\n")+tail};GeoJSON.joinOutputBuffers=function(head,tail,collection){var comma=utils.createBuffer(",\n","utf8");var parts=collection.reduce(function(memo,buf,i){if(i>0)memo.push(comma);memo.push(buf);return memo},[utils.createBuffer(head,"utf8")]);parts.push(utils.createBuffer(tail,"utf8"));return Buffer.concat(parts)};GeoJSON.exportPointGeom=function(points,arcs){var geom=null;if(points.length==1){geom={type:"Point",coordinates:points[0]}}else if(points.length>1){geom={type:"MultiPoint",coordinates:points}}return geom};GeoJSON.exportLineGeom=function(ids,arcs){var obj=internal.exportPathData(ids,arcs,"polyline");if(obj.pointCount===0)return null;var coords=obj.pathData.map(function(path){return path.points});return coords.length==1?{type:"LineString",coordinates:coords[0]}:{type:"MultiLineString",coordinates:coords}};GeoJSON.exportPolygonGeom=function(ids,arcs,opts){var obj=internal.exportPathData(ids,arcs,"polygon");if(obj.pointCount===0)return null;var groups=internal.groupPolygonRings(obj.pathData,opts.invert_y);var reverse=opts.rfc7946&&!opts.invert_y;var coords=groups.map(function(paths){return paths.map(function(path){if(reverse)path.points.reverse();return path.points})});return coords.length==1?{type:"Polygon",coordinates:coords[0]}:{type:"MultiPolygon",coordinates:coords}};GeoJSON.exporters={polygon:GeoJSON.exportPolygonGeom,polyline:GeoJSON.exportLineGeom,point:GeoJSON.exportPointGeom};internal.exportCRS=function(dataset,jsonObj){var info=dataset.info||{};if(!info.crs&&"input_geojson_crs"in info){jsonObj.crs=info.input_geojson_crs}else if(info.crs&&!internal.isLatLngCRS(info.crs)){jsonObj.crs=null}else{}};internal.useFeatureCollection=function(layers,opts){var type=opts.geojson_type||"";if(type=="Feature"||type=="FeatureCollection"){return true}else if(type=="GeometryCollection"){return false}else if(type){stop("Unsupported GeoJSON type:",opts.geojson_type)}return utils.some(layers,function(lyr){var fields=lyr.data?lyr.data.getFields():[];var haveData=internal.useFeatureProperties(fields,opts);var haveId=!!internal.getIdField(fields,opts);return haveData||haveId})};internal.useFeatureProperties=function(fields,opts){return!(opts.drop_table||opts.cut_table||fields.length===0||fields.length==1&&fields[0]==GeoJSON.ID_FIELD)};internal.exportProperties=function(table,opts){var fields=table?table.getFields():[],idField=internal.getIdField(fields,opts),properties,records;if(!internal.useFeatureProperties(fields,opts)){return null}records=table.getRecords();if(idField==GeoJSON.ID_FIELD){properties=records.map(function(rec){rec=utils.extend({},rec);delete rec[idField];return rec})}else{properties=records}return properties};internal.getIdField=function(fields,opts){var ids=[];var opt=opts.id_field;if(utils.isString(opt)){ids.push(opt)}else if(utils.isArray(opt)){ids=opt}ids.push(GeoJSON.ID_FIELD);return utils.find(ids,function(name){return utils.contains(fields,name)})};internal.exportIds=function(table,opts){var fields=table?table.getFields():[],idField=internal.getIdField(fields,opts);if(!idField)return null;return table.getRecords().map(function(rec){return idField in rec?rec[idField]:null})};internal.getPolylineBufferMaker=function(arcs,geod,getBearing,opts){var maker=internal.getPathBufferMaker(arcs,geod,getBearing,opts);var geomType=opts.geometry_type;var outputGeom=opts.output_geometry=="polyline"?"polyline":"polygon";function polygonCoords(ring){return[ring]}function pathBufferCoords(pathArcs,dist){var pathCoords=maker(pathArcs,dist);var revPathArcs;if(geomType=="polyline"){revPathArcs=internal.reversePath(pathArcs.concat());pathCoords=pathCoords.concat(maker(revPathArcs,dist))}pathCoords.push(pathCoords[0]);return outputGeom=="polyline"?pathCoords:[pathCoords]}return function(shape,dist){var geom={type:outputGeom=="polyline"?"MultiLineString":"MultiPolygon",coordinates:[]};for(var i=0;i=0?opts.backtrack:50;var pathIter=new ShapeIter(arcs);var capStyle=opts.cap_style||"round";var tolerance;function updateTolerance(dist){}function addRoundJoin(arr,x,y,startDir,angle,dist){var increment=10;var endDir=startDir+angle;var dir=startDir+increment;while(dir180){delta-=360}if(delta<-180){delta+=360}return delta}function addBufferVertex(arr,d,maxBacktrack){var a,b,c,hit;for(var i=0,idx=arr.length-3;i=0;i++,idx--){c=arr[arr.length-1];a=arr[idx];b=arr[idx+1];hit=internal.bufferIntersection(a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);if(hit){while(arr.length>idx+1)arr.pop();appendPoint(arr,hit)}}appendPoint(arr,d)}return function(path,dist){var left=[];var x0,y0,x1,y1,x2,y2;var p1,p2;var bearing,prevBearing,firstBearing,joinAngle;var i=0;pathIter.init(path);while(pathIter.hasNext()){if(pathIter.x===x2&&pathIter.y===y2)continue;x1=x2;y1=y2;x2=pathIter.x;y2=pathIter.y;if(i>=1){prevBearing=bearing;bearing=getBearing(x1,y1,x2,y2);p1=geod(x1,y1,bearing-90,dist);p2=geod(x2,y2,bearing-90,dist)}if(i==1){firstBearing=bearing;x0=x1;y0=y1;left.push(p1,p2)}if(i>1){joinAngle=getJoinAngle(prevBearing,bearing);if(veryCloseToPrevPoint(left,p1[0],p1[1])){addBufferVertex(left,p2,backtrackSteps)}else if(joinAngle>0){addRoundJoin(left,x1,y1,prevBearing-90,joinAngle,dist);addBufferVertex(left,p1,backtrackSteps);addBufferVertex(left,p2,backtrackSteps)}else{addBufferVertex(left,p1,backtrackSteps);addBufferVertex(left,p2,backtrackSteps)}}i++}if(x2==x0&&y2==y0){joinAngle=getJoinAngle(bearing,firstBearing);if(joinAngle>0){addRoundJoin(left,x2,y2,bearing-90,joinAngle,dist)}}else{left.push.apply(left,makeCap(x2,y2,bearing,dist))}return left}};internal.addBufferVertex=function(arr,d,maxBacktrack){var a,b,c,hit;for(var i=0,idx=arr.length-3;i=0;i++,idx--){c=arr[arr.length-1];a=arr[idx];b=arr[idx+1];hit=internal.bufferIntersection(a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);if(hit){if(hit.length!=2){}while(arr.length>idx+1)arr.pop();arr.push(hit)}}arr.push(d)};internal.bufferIntersection=function(ax,ay,bx,by,cx,cy,dx,dy){if(axcx&&ax>dx&&bx>cx&&bx>dx||aycy&&ay>dy&&by>cy&&by>dy)return null;return geom.segmentIntersection(ax,ay,bx,by,cx,cy,dx,dy)};internal.testSegmentBoundsIntersection=function(a,b,bb){if(bb.containsPoint(a[0],a[1])){return true}return!!(geom.segmentIntersection(a[0],a[1],b[0],b[1],bb.xmin,bb.ymin,bb.xmin,bb.ymax)||geom.segmentIntersection(a[0],a[1],b[0],b[1],bb.xmin,bb.ymax,bb.xmax,bb.ymax)||geom.segmentIntersection(a[0],a[1],b[0],b[1],bb.xmax,bb.ymax,bb.xmax,bb.ymin)||geom.segmentIntersection(a[0],a[1],b[0],b[1],bb.xmax,bb.ymin,bb.xmin,bb.ymin))};internal.getPolylineBufferMaker2=function(arcs,geod,getBearing,opts){var makeLeftBuffer=internal.getPathBufferMaker2(arcs,geod,getBearing,opts);var geomType=opts.geometry_type;function polygonCoords(ring){return[ring]}function needLeftBuffer(path,arcs){if(geomType=="polyline"){return opts.type!="right"}if(opts.type=="outer"){return geom.getPathWinding(path,arcs)==1}if(opts.type=="inner"){return geom.getPathWinding(path,arcs)==-1}return true}function needRightBuffer(){return geomType=="polyline"&&opts.type!="left"}function makeBufferParts(pathArcs,dist){var leftPartials,rightPartials,parts,revPathArcs;if(needLeftBuffer(pathArcs,arcs)){leftPartials=makeLeftBuffer(pathArcs,dist)}if(needRightBuffer()){revPathArcs=internal.reversePath(pathArcs.concat());rightPartials=makeLeftBuffer(revPathArcs,dist)}parts=(leftPartials||[]).concat(rightPartials||[]);return parts.map(polygonCoords)}return function(shape,dist){var geom={type:"MultiPolygon",coordinates:[]};for(var i=0;i=0?opts.backtrack:50;var pathIter=new ShapeIter(arcs);var capStyle=opts.cap_style||"round";var tolerance;var partials,left,center;var bounds;function updateTolerance(dist){}function addRoundJoin(x,y,startDir,angle,dist){var increment=10;var endDir=startDir+angle;var dir=startDir+increment;while(dir180){delta-=360}if(delta<-180){delta+=360}return delta}function addBufferVertex(d){var arr=left;var a,b,c,c0,hit;c0=c=arr[arr.length-1];for(var i=0,idx=arr.length-3;idx>=0;i++,idx--){a=arr[idx];b=arr[idx+1];hit=internal.bufferIntersection(a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);if(hit){if(internal.segmentTurn(a,b,c,d)==1){finishPartial();break}else{}while(arr.length>idx+1)arr.pop();appendPoint(arr,hit);c=hit}if(i>=backtrackSteps){if(!bounds){bounds=new Bounds;bounds.mergePoint(a[0],a[1])}bounds.mergePoint(b[0],b[1]);if(internal.testSegmentBoundsIntersection(c0,d,bounds)){finishPartial()}break}}appendPoint(arr,d)}function finishPartial(){var leftEP=left[left.length-1];var centerEP=center[center.length-1];var ring=[];extendArray(ring,left);center.reverse();extendArray(ring,center);ring.push(ring[0]);partials.push(ring);left.push(leftEP);center.push(centerEP);bbox=null}function extendArray(arr,arr2){arr2.reverse();while(arr2.length>0)arr.push(arr2.pop())}return function(path,dist){var x0,y0,x1,y1,x2,y2;var p1,p2;var bearing,prevBearing,firstBearing,joinAngle;partials=[];left=[];center=[];pathIter.init(path);if(pathIter.hasNext()){x0=x2=pathIter.x;y0=y2=pathIter.y}while(pathIter.hasNext()){if(pathIter.x===x2&&pathIter.y===y2)continue;x1=x2;y1=y2;x2=pathIter.x;y2=pathIter.y;prevBearing=bearing;bearing=getBearing(x1,y1,x2,y2);p1=geod(x1,y1,bearing-90,dist);p2=geod(x2,y2,bearing-90,dist);if(center.length===0){if(partials.length===0){firstBearing=bearing}left.push(p1,p2);center.push([x1,y1],[x2,y2])}else{joinAngle=getJoinAngle(prevBearing,bearing);if(veryCloseToPrevPoint(left,p1[0],p1[1])){addBufferVertex(p2)}else if(joinAngle>0){addRoundJoin(x1,y1,prevBearing-90,joinAngle,dist);addBufferVertex(p1);addBufferVertex(p2)}else{addBufferVertex(p1);addBufferVertex(p2)}center.push([x2,y2])}}if(center.length>1){finishPartial()}return partials}};internal.makePolylineBuffer=function(lyr,dataset,opts){var geojson=internal.makeShapeBufferGeoJSON(lyr,dataset,opts);var dataset2=internal.importGeoJSON(geojson,{});internal.dissolveBufferDataset(dataset2,opts);return dataset2};internal.makeShapeBufferGeoJSON=function(lyr,dataset,opts){var distanceFn=internal.getBufferDistanceFunction(lyr,dataset,opts);var toleranceFn=internal.getBufferToleranceFunction(dataset,opts);var geod=internal.getGeodeticSegmentFunction(dataset,false);var getBearing=internal.getBearingFunction(dataset);var makerOpts=utils.extend({geometry_type:lyr.geometry_type},opts);var factory=opts.v2?internal.getPolylineBufferMaker2:internal.getPolylineBufferMaker;var makeShapeBuffer=factory(dataset.arcs,geod,getBearing,makerOpts);var records=lyr.data?lyr.data.getRecords():null;var geometries=lyr.shapes.map(function(shape,i){var dist=distanceFn(i);if(!dist||!shape)return null;return makeShapeBuffer(shape,dist,lyr.geometry_type)});return{type:"GeometryCollection",geometries:geometries}};internal.makePolygonBuffer=function(lyr,dataset,opts){var geojson=internal.makeShapeBufferGeoJSON(lyr,dataset,opts);var dataset2=internal.importGeoJSON(geojson,{});internal.dissolveBufferDataset(dataset2);return dataset2};api.buffer=function(layers,dataset,opts){return internal.makeBufferLayer(layers[0],dataset,opts)};internal.makeBufferLayer=function(lyr,dataset,opts){var dataset2,lyr2;if(lyr.geometry_type=="point"){dataset2=internal.makePointBuffer(lyr,dataset,opts)}else if(lyr.geometry_type=="polyline"){dataset2=internal.makePolylineBuffer(lyr,dataset,opts)}else if(lyr.geometry_type=="polygon"){dataset2=internal.makePolygonBuffer(lyr,dataset,opts)}else{stop("Unsupported geometry type")}var outputLayers=internal.mergeDatasetsIntoDataset(dataset,[dataset2]);lyr2=outputLayers[0];lyr2.name=lyr.name;if(lyr.data&&!lyr2.data){lyr2.data=opts.no_replace?lyr.data.clone():lyr.data}return outputLayers};internal.sortSegmentIds=function(xx,ids){internal.orderSegmentIds(xx,ids);internal.quicksortSegmentIds(xx,ids,0,ids.length-2)};internal.orderSegmentIds=function(xx,ids,spherical){function swap(i,j){var tmp=ids[i];ids[i]=ids[j];ids[j]=tmp}for(var i=0,n=ids.length;ixx[ids[i+1]]){swap(i,i+1)}}};internal.insertionSortSegmentIds=function(arr,ids,start,end){var id,id2;for(var j=start+2;j<=end;j+=2){id=ids[j];id2=ids[j+1];for(var i=j-2;i>=start&&arr[id]>2<<1]];while(i<=j){while(a[ids[i]]pivot)j-=2;if(i<=j){tmp=ids[i];ids[i]=ids[j];ids[j]=tmp;tmp=ids[i+1];ids[i+1]=ids[j+1];ids[j+1]=tmp;i+=2;j-=2}}if(j-lo<40)internal.insertionSortSegmentIds(a,ids,lo,j);else internal.quicksortSegmentIds(a,ids,lo,j);if(hi-i<40){internal.insertionSortSegmentIds(a,ids,i,hi);return}lo=i;j=hi}};function PolygonIndex(shape,arcs,opts){var data=arcs.getVertexData(),polygonBounds=arcs.getMultiShapeBounds(shape),boundsLeft,xminIds,xmaxIds,bucketCount,bucketOffsets,bucketWidth;init();this.pointInPolygon=function(x,y){if(!polygonBounds.containsPoint(x,y)){return false}var bucketId=getBucketId(x);var count=countCrosses(x,y,bucketId);if(bucketId>0){count+=countCrosses(x,y,bucketId-1)}count+=countCrosses(x,y,bucketCount);if(isNaN(count))return-1;return count%2==1?1:0};function countCrosses(x,y,bucketId){var offs=bucketOffsets[bucketId],count=0,xx=data.xx,yy=data.yy,n,a,b;if(bucketId==bucketCount){n=xminIds.length-offs}else{n=bucketOffsets[bucketId+1]-offs}for(var i=0;i=bucketCount)i=bucketCount-1;return i}function getBucketCount(segCount){var buckets=Math.pow(segCount,.75)/10;return Math.ceil(buckets)}function init(){var xx=data.xx,segCount=0,segId=0,bucketId=-1,prevBucketId,segments,head,tail,a,b,i,j,xmin,xmax;internal.forEachSegmentInShape(shape,arcs,function(){segCount++});segments=new Uint32Array(segCount*2);i=0;internal.forEachSegmentInShape(shape,arcs,function(a,b,xx,yy){segments[i++]=a;segments[i++]=b});internal.sortSegmentIds(xx,segments);xminIds=new Uint32Array(segCount);xmaxIds=new Uint32Array(segCount);bucketCount=getBucketCount(segCount);bucketOffsets=new Uint32Array(bucketCount+1);boundsLeft=xx[segments[0]];bucketWidth=(xx[segments[segments.length-2]]-boundsLeft)/bucketCount;head=0;tail=segCount-1;while(segIdprevBucketId){prevBucketId++;bucketOffsets[prevBucketId]=head}if(xmax-xmin>=0===false)error("Invalid segment");if(getBucketId(xmax)-bucketId>1){xminIds[tail]=a;xmaxIds[tail]=b;tail--}else{xminIds[head]=a;xmaxIds[head]=b;head++}segId++}bucketOffsets[bucketCount]=head;if(head!=tail+1)error("Segment indexing error")}}internal.getBoundsSearchFunction=function(boxes){var index,Flatbush;if(!boxes.length){return function(){return[]}}Flatbush=require("flatbush");index=new Flatbush(boxes.length);boxes.forEach(function(ring){var b=ring.bounds;index.add(b.xmin,b.ymin,b.xmax,b.ymax)});index.finish();function idxToObj(i){return boxes[i]}return function(a,b,c,d){return index.search(a,b,c,d).map(idxToObj)}};function PathIndex(shapes,arcs){var boundsQuery=internal.getBoundsSearchFunction(getRingData(shapes,arcs));var totalArea=internal.getPathBounds(shapes,arcs).area();function getRingData(shapes,arcs){var arr=[];shapes.forEach(function(shp,shpId){var n=shp?shp.length:0;for(var i=0;i6){index=new PolygonIndex([pathIds],arcs)}cands.forEach(function(cand){var p=getTestPoint(cand.ids);var isEnclosed=b.containsPoint(p[0],p[1])&&(index?index.pointInPolygon(p[0],p[1]):geom.testPointInRing(p[0],p[1],pathIds,arcs));if(isEnclosed){paths.push(cand.ids)}});return paths.length>0?paths:null};this.findPathsInsideShape=function(shape){var paths=[];shape.forEach(function(ids){var enclosed=this.findEnclosedPaths(ids);if(enclosed){paths=xorArrays(paths,enclosed)}},this);return paths.length>0?paths:null};function testPointInRing(p,cand){if(!cand.bounds.containsPoint(p[0],p[1]))return false;if(!cand.index&&cand.bounds.area()>totalArea*.01){cand.index=new PolygonIndex([cand.ids],arcs)}return cand.index?cand.index.pointInPolygon(p[0],p[1]):geom.testPointInRing(p[0],p[1],cand.ids,arcs)}function testPointInRings(p,cands){var isOn=false,isIn=false;cands.forEach(function(cand){var inRing=testPointInRing(p,cand);if(inRing==-1){isOn=true}else if(inRing==1){isIn=!isIn}});return isOn||isIn}function groupItemsByShapeId(items){var groups=[],group,item;if(items.length>0){items.sort(function(a,b){return a.id-b.id});for(var i=0;i0?buffer:0;var x=p[0],y=p[1];return boundsQuery(p[0]-b,p[1]-b,p[0]+b,p[1]+b)}function getTestPoint(ring){var arcId=ring[0],p0=arcs.getVertex(arcId,0),p1=arcs.getVertex(arcId,1);return[(p0.x+p1.x)/2,(p0.y+p1.y)/2]}function xorArrays(a,b){var xor=[],i;for(i=0;i=0?epsArg:internal.getHighPrecisionSnapInterval([ax,ay,bx,by,cx,cy,dx,dy]);var epsSq=eps*eps;var touches,cross;touches=findPointSegTouches(epsSq,ax,ay,bx,by,cx,cy,dx,dy);if(!touches&&testEndpointHit(epsSq,ax,ay,bx,by,cx,cy,dx,dy)){return null}cross=findCrossIntersection(ax,ay,bx,by,cx,cy,dx,dy,eps);if(cross&&touches){}return touches||cross||null}function reconcileCrossAndTouches(cross,touches,eps){var hits;eps=eps||0;if(touches.length>2){hits=touches}else if(geom.distance2D(cross[0],cross[1],touches[0],touches[1])<=eps){hits=touches}else{hits=touches.concat(cross)}return hits}function findCrossIntersection(ax,ay,bx,by,cx,cy,dx,dy,eps){if(!segmentHit(ax,ay,bx,by,cx,cy,dx,dy))return null;var den=determinant2D(bx-ax,by-ay,dx-cx,dy-cy);var m=orient2D(cx,cy,dx,dy,ax,ay)/den;var p=[ax+m*(bx-ax),ay+m*(by-ay)];if(Math.abs(den)<1e-18){return null}if(eps>0){snapIntersectionPoint(p,ax,ay,bx,by,cx,cy,dx,dy,eps)}clampIntersectionPoint(p,ax,ay,bx,by,cx,cy,dx,dy);return p}function testEndpointHit(epsSq,ax,ay,bx,by,cx,cy,dx,dy){return geom.distanceSq(ax,ay,cx,cy)<=epsSq||geom.distanceSq(ax,ay,dx,dy)<=epsSq||geom.distanceSq(bx,by,cx,cy)<=epsSq||geom.distanceSq(bx,by,dx,dy)<=epsSq}function findPointSegTouches(epsSq,ax,ay,bx,by,cx,cy,dx,dy){var touches=[];collectPointSegTouch(touches,epsSq,ax,ay,cx,cy,dx,dy);collectPointSegTouch(touches,epsSq,bx,by,cx,cy,dx,dy);collectPointSegTouch(touches,epsSq,cx,cy,ax,ay,bx,by);collectPointSegTouch(touches,epsSq,dx,dy,ax,ay,bx,by);if(touches.length===0)return null;if(touches.length>4){debug("Intersection detection error")}return touches}function collectPointSegTouch(arr,epsSq,px,py,ax,ay,bx,by){var pab=geom.pointSegDistSq2(px,py,ax,ay,bx,by);if(pab>epsSq)return;var pa=geom.distanceSq(ax,ay,px,py);var pb=geom.distanceSq(bx,by,px,py);if(pa<=epsSq||pb<=epsSq)return;arr.push(px,py)}function findClosestPointOnSeg(px,py,ax,ay,bx,by){var dx=bx-ax,dy=by-ay,dotp=(px-ax)*dx+(py-ay)*dy,abSq=dx*dx+dy*dy,k=abSq===0?-1:dotp/abSq,eps=.1,p;if(k<=eps){p=[ax,ay]}else if(k>=1-eps){p=[bx,by]}else{p=[ax+k*dx,ay+k*dy]}return p}function snapIfCloser(p,minDist,x,y,x2,y2){var dist=distance2D(x,y,x2,y2);if(distc}else if(b>c){out=a>b||a1e-15){debug("[clampToCloseRange()] large clamping interval",a,b,c)}a=lim}return a}function determinant2D(a,b,c,d){return a*d-b*c}function orient2D(ax,ay,bx,by,cx,cy){return determinant2D(ax-cx,ay-cy,bx-cx,by-cy)}function segmentHit(ax,ay,bx,by,cx,cy,dx,dy){return orient2D(ax,ay,bx,by,cx,cy)*orient2D(ax,ay,bx,by,dx,dy)<=0&&orient2D(cx,cy,dx,dy,ax,ay)*orient2D(cx,cy,dx,dy,bx,by)<=0}internal.getIntersectionPoints=function(intersections){return intersections.map(function(obj){return[obj.x,obj.y]})};internal.findSegmentIntersections=function(){var buf;function getUint32Array(count){var bytes=count*4;if(!buf||buf.byteLength1&&yrange>0?multiStripeId:singleStripeId,i,j;if(opts.tolerance>=0===false){opts.tolerance=internal.getHighPrecisionSnapInterval(bounds.toArray())}function multiStripeId(y){return Math.floor((stripeCount-1)*(y-ymin)/yrange)}function singleStripeId(y){return 0}arcs.forEachSegment(function(id1,id2,xx,yy){var s1=stripeId(yy[id1]),s2=stripeId(yy[id2]);while(true){stripeSizes[s1]=stripeSizes[s1]+2;if(s1==s2)break;s1+=s2>s1?1:-1}});var stripeData=getUint32Array(utils.sum(stripeSizes)),offs=0;var stripes=[];utils.forEach(stripeSizes,function(stripeSize){var start=offs;offs+=stripeSize;stripes.push(stripeData.subarray(start,offs))});utils.initializeArray(stripeSizes,0);arcs.forEachSegment(function(id1,id2,xx,yy){var s1=stripeId(yy[id1]),s2=stripeId(yy[id2]),count,stripe;while(true){count=stripeSizes[s1];stripeSizes[s1]=count+2;stripe=stripes[s1];stripe[count]=id1;stripe[count+1]=id2;if(s1==s2)break;s1+=s2>s1?1:-1}});var raw=arcs.getVertexData(),intersections=[],arr;for(i=0;i0?stripes:1};internal.calcSegmentIntersectionStripeCount_old=function(arcs){var yrange=arcs.getBounds().height(),segLen=internal.getAvgSegment2(arcs)[1],count=1;if(segLen>0&&yrange>0){count=Math.ceil(yrange/segLen/20)}return count||1};internal.intersectSegments=function(ids,xx,yy,optsArg){var lim=ids.length-2,opts=optsArg||{},intersections=[],tolerance=opts.tolerance,s1p1,s1p2,s2p1,s2p2,s1p1x,s1p2x,s2p1x,s2p2x,s1p1y,s1p2y,s2p1y,s2p2y,hit,seg1,seg2,i,j;internal.sortSegmentIds(xx,ids);i=0;while(i=s2p1y){if(s1p1y>s2p2y&&s1p2y>s2p1y&&s1p2y>s2p2y)continue}else{if(s1p1y0?{}:{tolerance:0};var coordsHaveChanged=false;var snapCount,dupeCount,cutCount;snapCount=internal.snapCoordsByInterval(arcs,snapDist);dupeCount=arcs.dedupCoords();cutCount=internal.cutPathsAtIntersections(dataset,cutOpts);if(cutCount>0||snapCount>0||dupeCount>0){coordsHaveChanged=true}if(cutCount>0){cutCount=0;snapCount=internal.snapCoordsByInterval(arcs,snapDist);arcs.dedupCoords();if(snapCount>0){cutCount=internal.cutPathsAtIntersections(dataset,cutOpts)}if(cutCount>0){arcs.dedupCoords();debug("Second-pass vertices added:",cutCount,"consider third pass?")}}if(coordsHaveChanged){api.buildTopology(dataset)}};internal.cleanArcReferences=function(dataset){var nodes=new NodeCollection(dataset.arcs);var map=internal.findDuplicateArcs(nodes);var dropCount;if(map){internal.replaceIndexedArcIds(dataset,map)}dropCount=internal.deleteUnusedArcs(dataset);if(dropCount>0){nodes=new NodeCollection(dataset.arcs)}return nodes};internal.replaceIndexedArcIds=function(dataset,map){var remapPath=function(ids){var arcId,absId,id2;for(var i=0;i0?map:null};internal.deleteUnusedArcs=function(dataset){var test=internal.getArcPresenceTest2(dataset.layers,dataset.arcs);var count1=dataset.arcs.size();var map=dataset.arcs.deleteArcs(test);var count2=dataset.arcs.size();var deleteCount=count1-count2;if(deleteCount>0){internal.replaceIndexedArcIds(dataset,map)}return deleteCount};internal.getDividedArcUpdater=function(map,arcCount){return function(ids){var ids2=[];for(var j=0;j=map.length-1?arcCount:map[absId+1])-1,id2;do{if(rev){id2=~max;max--}else{id2=min;min++}ids.push(id2)}while(max-min>=0)}};internal.divideArcs=function(arcs,opts){var points=internal.findClippingPoints(arcs,opts);var map=internal.insertCutPoints(points,arcs);return map};internal.cutPathsAtIntersections=function(dataset,opts){var n=dataset.arcs.getPointCount();var map=internal.divideArcs(dataset.arcs,opts);var n2=dataset.arcs.getPointCount();internal.remapDividedArcs(dataset,map);return n2-n};internal.remapDividedArcs=function(dataset,map){var remapPath=internal.getDividedArcUpdater(map,dataset.arcs.size());dataset.layers.forEach(function(lyr){if(internal.layerHasPaths(lyr)){internal.editShapes(lyr.shapes,remapPath)}})};internal.insertCutPoints=function(unfilteredPoints,arcs){var data=arcs.getVertexData(),xx0=data.xx,yy0=data.yy,nn0=data.nn,i0=0,i1=0,nn1=[],srcArcTotal=arcs.size(),map=new Uint32Array(srcArcTotal),points=internal.filterSortedCutPoints(internal.sortCutPoints(unfilteredPoints,xx0,yy0),arcs),destPointTotal=arcs.getPointCount()+points.length*2,xx1=new Float64Array(destPointTotal),yy1=new Float64Array(destPointTotal),n0,n1,arcLen,p;points.reverse();p=points.pop();for(var srcArcId=0,destArcId=0;srcArcIdi+1){error("Out-of-sequence arc ids:",i,j)}return{x:x,y:y,i:i}};internal.sortCutPoints=function(points,xx,yy){points.sort(function(a,b){if(a.i!=b.i)return a.i-b.i;return distanceSq(xx[a.i],yy[a.i],a.x,a.y)-distanceSq(xx[b.i],yy[b.i],b.x,b.y)});return points};internal.filterSortedCutPoints=function(points,arcs){var filtered=[],pointId=0;arcs.forEach2(function(i,n,xx,yy){var j=i+n-1,x0=xx[i],y0=yy[i],xn=xx[j],yn=yy[j],p,pp;while(pointId0){toId=ids[0];ito=arcs.indexOfVertex(toId,-2)}for(j=1;j0){code=1}else if(angleB>0){code=2}else{code=0}}else if(angleA0){code=2}else if(orient<0){code=1}else{code=0}return code};var FWD_VISIBLE=1;var FWD_OPEN=2;var REV_VISIBLE=16;var REV_OPEN=32;internal.setBits=function(bits,arcBits,mask){return bits&~mask|arcBits&mask};internal.andBits=function(bits,arcBits,mask){return bits&(~mask|arcBits)};internal.setRouteBits=function(arcBits,arcId,routesArr){var idx=absArcId(arcId),mask;if(idx==arcId){mask=~3}else{mask=~48;arcBits=arcBits<<4}routesArr[idx]&=arcBits|mask};internal.getRouteBits=function(arcId,routesArr){var idx=absArcId(arcId),bits=routesArr[idx];if(idx!=arcId)bits=bits>>4;return bits&7};internal.openArcRoutes=function(paths,arcColl,routesArr,fwd,rev,dissolve,orBits){internal.forEachArcId(paths,function(arcId){var isInv=arcId<0,idx=isInv?~arcId:arcId,currBits=routesArr[idx],openFwd=isInv?rev:fwd,openRev=isInv?fwd:rev,newBits=currBits;if(arcColl.arcIsLollipop(arcId)){debug("lollipop");newBits=0}else{if(openFwd){newBits|=3}if(openRev){newBits|=48}if(orBits>0){newBits|=orBits}if(dissolve&&(newBits&34)===34){newBits&=~17}}routesArr[idx]=newBits})};internal.closeArcRoutes=function(arcIds,arcs,routesArr,fwd,rev,hide){internal.forEachArcId(arcIds,function(arcId){var isInv=arcId<0,idx=isInv?~arcId:arcId,currBits=routesArr[idx],mask=255,closeFwd=isInv?rev:fwd,closeRev=isInv?fwd:rev;if(closeFwd){if(hide)mask&=~1;mask^=2}if(closeRev){if(hide)mask&=~16;mask^=32}routesArr[idx]=currBits&mask})};internal.getPathFinder=function(nodes,useRoute,routeIsUsable){var testArc=null;if(routeIsUsable){testArc=function(arcId){return routeIsUsable(~arcId)}}function getNextArc(prevId){return~internal.getRightmostArc(prevId,nodes,testArc)}return function(startId){var path=[],nextId,msg,candId=startId;do{if(useRoute(candId)){path.push(candId);nextId=candId;candId=getNextArc(nextId)}else{return null}if(candId==~nextId){debug("Pathfinder warning: dead-end path");return null}}while(candId!=startId);return path.length===0?null:path}};internal.getRingIntersector=function(nodes,flags){var arcs=nodes.arcs;var findPath=internal.getPathFinder(nodes,useRoute,routeIsActive);flags=flags||new Uint8Array(arcs.size());return function(rings,type){var dissolve=type=="dissolve",openFwd=true,openRev=type=="flatten",output;if(rings.length>0){output=[];internal.openArcRoutes(rings,arcs,flags,openFwd,openRev,dissolve);internal.forEachShapePart(rings,function(ids){var path;for(var i=0,n=ids.length;i0?"1":"0";if(i<7)str+=" ";if(i==3)str+=" "}return str}};geom.getShapeCentroid=function(shp,arcs){var maxPath=geom.getMaxPath(shp,arcs);return maxPath?geom.getPathCentroid(maxPath,arcs):null};geom.getPathCentroid=function(ids,arcs){var iter=arcs.getShapeIter(ids),sum=0,sumX=0,sumY=0,dx,dy,ax,ay,bx,by,tmp,area;if(!iter.hasNext())return null;ax=0;ay=0;dx=-iter.x;dy=-iter.y;while(iter.hasNext()){bx=ax;by=ay;ax=iter.x+dx;ay=iter.y+dy;tmp=bx*ay-by*ax;sum+=tmp;sumX+=tmp*(bx+ax);sumY+=tmp*(by+ay)}area=sum/2;if(area===0){return geom.getAvgPathXY(ids,arcs)}else return{x:sumX/(6*area)-dx,y:sumY/(6*area)-dy}};internal.simplifyArcsFast=function(arcs,dist){var xx=[],yy=[],nn=[],count;for(var i=0,n=arcs.size();i0){xx.pop();yy.pop();count--}if(count>0){shp2.push([nn.length]);nn.push(count)}});return{shape:shp2.length>0?shp2:null,arcs:new ArcCollection(nn,xx,yy)}};internal.simplifyPathFast=function(path,arcs,dist,xx,yy){var iter=arcs.getShapeIter(path),count=0,prevX,prevY,x,y;while(iter.hasNext()){x=iter.x;y=iter.y;if(count===0||distance2D(x,y,prevX,prevY)>dist){xx.push(x);yy.push(y);prevX=x;prevY=y;count++}}if(x!=prevX||y!=prevY){xx.push(x);yy.push(y);count++}return count};internal.findAnchorPoint=function(shp,arcs){var maxPath=shp&&geom.getMaxPath(shp,arcs),pathBounds=maxPath&&arcs.getSimpleShapeBounds(maxPath),thresh,simple;if(!pathBounds||!pathBounds.hasBounds()||pathBounds.area()===0){return null}thresh=Math.sqrt(pathBounds.area())*.01;simple=internal.simplifyPolygonFast(shp,arcs,thresh);if(!simple.shape){return null}return internal.findAnchorPoint2(simple.shape,simple.arcs)};internal.findAnchorPoint2=function(shp,arcs){var maxPath=geom.getMaxPath(shp,arcs);var pathBounds=arcs.getSimpleShapeBounds(maxPath);var centroid=geom.getPathCentroid(maxPath,arcs);var weight=internal.getPointWeightingFunction(centroid,pathBounds);var area=geom.getPlanarPathArea(maxPath,arcs);var hrange,lbound,rbound,focus,htics,hstep,p,p2;if(shp.length==1&&area*1.2>pathBounds.area()){htics=5;focus=.2}else if(shp.length==1&&area*1.7>pathBounds.area()){htics=7;focus=.4}else{htics=11;focus=.5}hrange=pathBounds.width()*focus;lbound=centroid.x-hrange/2;rbound=lbound+hrange;hstep=hrange/htics;p=internal.probeForBestAnchorPoint(shp,arcs,lbound,rbound,htics,weight);if(!p){verbose("[points inner] failed, falling back to centroid");p=centroid}else{p2=internal.probeForBestAnchorPoint(shp,arcs,p.x-hstep/2,p.x+hstep/2,2,weight);if(p2.distance>p.distance){p=p2}}return p};internal.getPointWeightingFunction=function(centroid,pathBounds){var referenceDist=Math.max(pathBounds.width(),pathBounds.height())/2;return function(x,y){var offset=distance2D(centroid.x,centroid.y,x,y);return 1-Math.min(.6*offset/referenceDist,.25)}};internal.findAnchorPointCandidates=function(shp,arcs,xx){var ymin=arcs.getBounds().ymin-1;return xx.reduce(function(memo,x){var cands=internal.findHitCandidates(x,ymin,shp,arcs);return memo.concat(cands)},[])};internal.probeForBestAnchorPoint=function(shp,arcs,lbound,rbound,htics,weight){var tics=internal.getInnerTics(lbound,rbound,htics);var interval=(rbound-lbound)/htics;var candidates=internal.findAnchorPointCandidates(shp,arcs,tics);var bestP,adjustedP,candP;candidates.forEach(function(p){p.interval*=weight(p.x,p.y)});candidates.sort(function(a,b){return b.interval-a.interval});for(var i=0;icandP.interval){break}adjustedP=internal.getAdjustedPoint(candP.x,candP.y,shp,arcs,interval,weight);if(!bestP||adjustedP.distance>bestP.distance){bestP=adjustedP}}return bestP};internal.getAdjustedPoint=function(x,y,shp,arcs,vstep,weight){var p={x:x,y:y,distance:geom.getPointToShapeDistance(x,y,shp,arcs)*weight(x,y)};internal.scanForBetterPoint(p,shp,arcs,vstep,weight);internal.scanForBetterPoint(p,shp,arcs,-vstep,weight);return p};internal.scanForBetterPoint=function(p,shp,arcs,vstep,weight){var x=p.x,y=p.y,dmax=p.distance,d;while(true){y+=vstep;d=geom.getPointToShapeDistance(x,y,shp,arcs)*weight(x,y);if(d>dmax*.9&&geom.testPointInPolygon(x,y,shp,arcs)){if(d>dmax){p.distance=dmax=d;p.y=y}}else{break}}};internal.findHitCandidates=function(x,y,shp,arcs){var yy=internal.findRayShapeIntersections(x,y,shp,arcs);var cands=[],y1,y2,interval;utils.genericSort(yy);for(var i=0;i0){cands.push({y:(y1+y2)/2,x:x,interval:interval})}}return cands};internal.findRayShapeIntersections=function(x,y,shp,arcs){if(!shp)return[];return shp.reduce(function(memo,path){var yy=internal.findRayRingIntersections(x,y,path,arcs);return memo.concat(yy)},[])};internal.findRayRingIntersections=function(x,y,path,arcs){var yints=[];internal.forEachSegmentInPath(path,arcs,function(a,b,xx,yy){var result=geom.getRayIntersection(x,y,xx[a],yy[a],xx[b],yy[b]);if(result>-Infinity){yints.push(result)}});if(yints.length%2===1){yints=[]}return yints};internal.getInnerTics=function(min,max,steps){var range=max-min,step=range/(steps+1),arr=[];for(var i=1;i<=steps;i++){arr.push(min+step*i)}return arr};internal.getInnerPctCalcFunction=function(arcs,shapes){var calcSegLen=arcs.isPlanar()?distance2D:greatCircleDistance;var arcIndex=new ArcTopologyIndex(arcs,shapes);var outerLen,innerLen,arcLen;return function(shp){outerLen=0;innerLen=0;if(shp)shp.forEach(procRing);return innerLen>0?innerLen/(innerLen+outerLen):0};function procRing(ids){ids.forEach(procArc)}function procArc(id){arcLen=0;arcs.forEachArcSegment(id,addSegLen);if(arcIndex.isInnerArc(id)){innerLen+=arcLen}else{outerLen+=arcLen}}function addSegLen(i,j,xx,yy){arcLen+=calcSegLen(xx[i],yy[i],xx[j],yy[j])}};function ArcTopologyIndex(arcs,shapes){var index=new Uint8Array(arcs.size());internal.forEachArcId(shapes,function(arcId){if(arcId<0)index[~arcId]|=2;else index[arcId]|=1});this.isInnerArc=function(arcId){var i=absArcId(arcId);return index[i]==3}}function addGetters(obj,getters){Object.keys(getters).forEach(function(name){Object.defineProperty(obj,name,{get:getters[name]})})}internal.initFeatureProxy=function(lyr,arcs){var hasPoints=internal.layerHasPoints(lyr),hasPaths=arcs&&internal.layerHasPaths(lyr),_records=lyr.data?lyr.data.getRecords():null,_isPlanar=hasPaths&&arcs.isPlanar(),ctx={},calcInnerPct,_bounds,_centroid,_innerXY,_xy,_ids,_id;addGetters(ctx,{id:function(){return _id},layer_name:function(){return lyr.name||""}});if(_records){Object.defineProperty(ctx,"properties",{set:function(obj){if(utils.isObject(obj)){_records[_id]=obj}else{stop("Can't assign non-object to $.properties")}},get:function(){var rec=_records[_id];if(!rec){rec=_records[_id]={}}return rec}})}if(hasPaths){addGetters(ctx,{partCount:function(){return _ids?_ids.length:0},isNull:function(){return ctx.partCount===0},bounds:function(){return shapeBounds().toArray()},height:function(){return shapeBounds().height()},width:function(){return shapeBounds().width()}});if(lyr.geometry_type=="polyline"){addGetters(ctx,{length:function(){return geom.getShapePerimeter(_ids,arcs)}})}if(lyr.geometry_type=="polygon"){addGetters(ctx,{area:function(){return _isPlanar?ctx.planarArea:geom.getSphericalShapeArea(_ids,arcs)},perimeter:function(){return geom.getShapePerimeter(_ids,arcs)},compactness:function(){return geom.calcPolsbyPopperCompactness(ctx.area,ctx.perimeter)},planarArea:function(){return geom.getPlanarShapeArea(_ids,arcs)},innerPct:function(){if(!calcInnerPct)calcInnerPct=internal.getInnerPctCalcFunction(arcs,lyr.shapes);return calcInnerPct(_ids)},originalArea:function(){var i=arcs.getRetainedInterval(),area;arcs.setRetainedInterval(0);area=ctx.area;arcs.setRetainedInterval(i);return area},centroidX:function(){var p=centroid();return p?p.x:null},centroidY:function(){var p=centroid();return p?p.y:null},innerX:function(){var p=innerXY();return p?p.x:null},innerY:function(){var p=innerXY();return p?p.y:null}})}}else if(hasPoints){Object.defineProperty(ctx,"coordinates",{set:function(obj){if(!obj||utils.isArray(obj)){lyr.shapes[_id]=obj||null}else{stop("Can't assign non-array to $.coordinates")}},get:function(){return lyr.shapes[_id]||null}});Object.defineProperty(ctx,"x",{get:function(){xy();return _xy?_xy[0]:null},set:function(val){xy();if(_xy)_xy[0]=Number(val)}});Object.defineProperty(ctx,"y",{get:function(){xy();return _xy?_xy[1]:null},set:function(val){xy();if(_xy)_xy[1]=Number(val)}})}function xy(){var shape=lyr.shapes[_id];if(!_xy){_xy=shape&&shape[0]||null}}function centroid(){_centroid=_centroid||geom.getShapeCentroid(_ids,arcs);return _centroid}function innerXY(){_innerXY=_innerXY||internal.findAnchorPoint(_ids,arcs);return _innerXY}function shapeBounds(){if(!_bounds){_bounds=arcs.getMultiShapeBounds(_ids)}return _bounds}return function(id){_id=id;if(hasPaths){_bounds=null;_centroid=null;_innerXY=null;_ids=lyr.shapes[id]}if(hasPoints){_xy=null}return ctx}};internal.expressionUtils={round:function(val,dig){var k=1;dig=dig|0;while(dig-- >0)k*=10;return Math.round(val*k)/k},sprintf:utils.format};internal.compileValueExpression=function(exp,lyr,arcs,opts){opts=opts||{};opts.returns=true;return internal.compileFeatureExpression(exp,lyr,arcs,opts)};internal.compileFeaturePairFilterExpression=function(exp,lyr,arcs){var func=internal.compileFeaturePairExpression(exp,lyr,arcs);return function(idA,idB){var val=func(idA,idB);if(val!==true&&val!==false){stop("where expression must return true or false")}return val}};internal.compileFeaturePairExpression=function(exp,lyr,arcs){var ctx=internal.getExpressionContext(lyr);var A=getProxyFactory(lyr,arcs);var B=getProxyFactory(lyr,arcs);var vars=internal.getAssignedVars(exp);var functionBody="with($$env){with($$record){return "+exp+"}}";var func;try{func=new Function("$$record,$$env",functionBody)}catch(e){console.error(e);stop(e.name,"in expression ["+exp+"]")}internal.nullifyUnsetProperties(vars,ctx);function getProxyFactory(lyr,arcs){var records=lyr.data?lyr.data.getRecords():[];var getFeatureById=internal.initFeatureProxy(lyr,arcs);function Proxy(id){}return function(id){var proxy;if(id==-1)return null;Proxy.prototype=records[id]||{};proxy=new Proxy;proxy.$=getFeatureById(id);return proxy}}return function(idA,idB,rec){var val;ctx.A=A(idA);ctx.B=B(idB);if(rec){internal.nullifyUnsetProperties(vars,rec)}try{val=func.call(ctx,rec||{},ctx)}catch(e){stop(e.name,"in expression ["+exp+"]:",e.message)}return val}};internal.compileFeatureExpression=function(rawExp,lyr,arcs,opts_){var opts=utils.extend({},opts_),exp=rawExp||"",mutable=!opts.no_assign,vars=internal.getAssignedVars(exp),func,records;if(mutable&&vars.length>0&&!lyr.data){internal.initDataTable(lyr)}if(!mutable){opts.context=opts.context||{};internal.nullifyUnsetProperties(vars,opts.context)}records=lyr.data?lyr.data.getRecords():[];func=internal.getExpressionFunction(exp,lyr,arcs,opts);return function(recId,destRec){var record;if(destRec){record=destRec}else{record=records[recId]||(records[recId]={})}if(mutable){internal.nullifyUnsetProperties(vars,record)}return func(record,recId)}};internal.getAssignedVars=function(exp,hasDot){var rxp=/[a-z_][.a-z0-9_]*(?= *=[^>=])/gi;var matches=exp.match(rxp)||[];var f=function(s){var i=s.indexOf(".");return hasDot?i>-1:i==-1};return utils.uniq(matches.filter(f))};internal.getAssignmentObjects=function(exp){var matches=internal.getAssignedVars(exp,true),names=[];matches.forEach(function(s){var match=/^([^.]+)\.[^.]+$/.exec(s);var name=match?match[1]:null;if(name&&name!="this"){names.push(name)}});return utils.uniq(names)};internal.compileExpressionToFunction=function(exp,opts){var functionBody="with($$env){with($$record){ "+(opts.returns?"return ":"")+exp+"}}";var func;try{func=new Function("$$record,$$env",functionBody)}catch(e){if(opts.quiet)throw e;stop(e.name,"in expression ["+exp+"]")}return func};internal.getExpressionFunction=function(exp,lyr,arcs,opts){var getFeatureById=internal.initFeatureProxy(lyr,arcs);var ctx=internal.getExpressionContext(lyr,opts.context,opts);var func=internal.compileExpressionToFunction(exp,opts);return function(rec,i){var val;ctx.$=getFeatureById(i);ctx._=ctx;ctx.d=rec||null;try{val=func.call(ctx.$,rec,ctx)}catch(e){if(opts.quiet)throw e;stop(e.name,"in expression ["+exp+"]:",e.message)}return val}};internal.nullifyUnsetProperties=function(vars,obj){for(var i=0;i-1){message("Warning: "+key+"() function is hiding a data field with the same name")}else{message('Warning: "'+key+'" has multiple definitions')}}}else{Object.defineProperty(memo,key,{value:env[key]})}return memo},ctx)};internal.getBaseContext=function(){var obj={};(function(){for(var key in this){obj[key]=void 0}})();obj.console=console;return obj};api.filterFeatures=function(lyr,arcs,opts){var records=lyr.data?lyr.data.getRecords():null,shapes=lyr.shapes||null,n=internal.getFeatureCount(lyr),filteredShapes=shapes?[]:null,filteredRecords=records?[]:null,filteredLyr=internal.getOutputLayer(lyr,opts),invert=!!opts.invert,filter;if(opts.expression){filter=internal.compileValueExpression(opts.expression,lyr,arcs)}if(opts.remove_empty){filter=internal.combineFilters(filter,internal.getNullGeometryFilter(lyr,arcs))}if(opts.bbox){filter=internal.combineFilters(filter,internal.getBBoxIntersectionTest(opts.bbox,lyr,arcs))}if(!filter){stop("Missing a filter criterion")}utils.repeat(n,function(shapeId){var result=filter(shapeId);if(invert)result=!result;if(result===true){if(shapes)filteredShapes.push(shapes[shapeId]||null);if(records)filteredRecords.push(records[shapeId]||null)}else if(result!==false){stop("Expression must return true or false")}});filteredLyr.shapes=filteredShapes;filteredLyr.data=filteredRecords?new DataTable(filteredRecords):null;if(opts.no_replace){filteredLyr=internal.copyLayer(filteredLyr)}if(opts.verbose!==false){message(utils.format("Retained %,d of %,d features",internal.getFeatureCount(filteredLyr),n))}return filteredLyr};internal.getNullGeometryFilter=function(lyr,arcs){var shapes=lyr.shapes;if(lyr.geometry_type=="polygon"){return internal.getEmptyPolygonFilter(shapes,arcs)}return function(i){return!!shapes[i]}};internal.getEmptyPolygonFilter=function(shapes,arcs){return function(i){var shp=shapes[i];return!!shp&&geom.getPlanarShapeArea(shapes[i],arcs)>0}};internal.combineFilters=function(a,b){return a&&b&&function(id){return a(id)&&b(id)}||a||b};internal.getMode=function(values){var data=internal.getModeData(values);return data.modes[0]};internal.getValueCountData=function(values){var uniqValues=[],uniqIndex={},counts=[];var i,val;for(i=0;imax)max=values[i]}return max};internal.getCountDataSummary=function(o){var counts=o.counts;var values=o.values;var maxCount=counts.length>0?internal.getMaxValue(counts):0;var nextCount=0;var modes=[];var i,count;for(i=0;inextCount){nextCount=count}}return{modes:modes,margin:modes.length>1?0:maxCount-nextCount,count:maxCount}};internal.getModeData=function(values,verbose){var counts=internal.getValueCountData(values);var modes=internal.getCountDataSummary(counts);if(verbose){modes.counts=counts.counts;modes.values=counts.values}return modes};api.calc=function(lyr,arcs,opts){var msg=opts.expression,result,compiled,defs;if(opts.where){lyr={shapes:lyr.shapes,data:lyr.data};api.filterFeatures(lyr,arcs,{expression:opts.where});msg+=" where "+opts.where}defs=internal.getStateVar("defs");compiled=internal.compileCalcExpression(lyr,arcs,opts.expression);result=compiled(null,defs);message(msg+": "+result);return result};internal.evalCalcExpression=function(lyr,arcs,exp){return internal.compileCalcExpression(lyr,arcs,exp)()};internal.compileCalcExpression=function(lyr,arcs,exp){var rowNo=0,colNo=0,cols=[];var ctx1={count:assign,sum:captureNum,average:captureNum,median:captureNum,min:captureNum,max:captureNum,mode:capture,collect:capture,first:assignOnce,last:assign},ctx2={count:wrap(function(){return rowNo},0),sum:wrap(utils.sum,0),median:wrap(utils.findMedian),min:wrap(min),max:wrap(max),average:wrap(utils.mean),mode:wrap(internal.getMode),collect:wrap(pass),first:wrap(pass),last:wrap(pass)},len=internal.getFeatureCount(lyr),calc1,calc2,result;if(lyr.geometry_type){ctx1.width=ctx1.height=noop;ctx2.width=function(){return internal.getLayerBounds(lyr,arcs).width()};ctx2.height=function(){return internal.getLayerBounds(lyr,arcs).height()}}calc1=internal.compileFeatureExpression(exp,lyr,arcs,{context:ctx1,no_assign:true,quiet:true});calc2=internal.compileFeatureExpression(exp,{data:lyr.data},null,{returns:true,context:ctx2,quiet:true});return function(ids,destRec){var result;if(ids)procRecords(ids);else procAll();result=calc2(undefined,destRec);reset();return result};function pass(o){return o}function max(arr){return utils.getArrayBounds(arr).max}function min(arr){return utils.getArrayBounds(arr).min}function wrap(proc,nullVal){var nodata=arguments.length>1?nullVal:null;return function(){var c=colNo++;return rowNo>0?proc(cols[c]):nodata}}function procAll(){for(var i=0;i=len)error("Invalid record index");calc1(i);rowNo++;colNo=0}function noop(){}function reset(){rowNo=0;colNo=0;cols=[]}function captureNum(val){if(isNaN(val)&&val){stop("Expected a number, received:",val)}return capture(val)}function assignOnce(val){if(rowNo===0)cols[colNo]=val;colNo++;return val}function assign(val){cols[colNo++]=val;return val}function capture(val){var col;if(rowNo===0){cols[colNo]=[]}col=cols[colNo];if(col.length!=rowNo){stop("Evaluation failed")}col.push(val);colNo++;return val}};internal.getJoinCalc=function(src,exp){var calc=internal.compileCalcExpression({data:src},null,exp);return function(ids,destRec){if(!ids)ids=[];calc(ids,destRec)}};internal.getCategoryClassifier=function(fields,data){if(!fields||fields.length===0)return function(){return 0};fields.forEach(function(f){internal.requireDataField(data,f)});var index={},count=0,records=data.getRecords(),getKey=internal.getMultiFieldKeyFunction(fields);return function(i){var key=getKey(records[i]);if(key in index===false){index[key]=count++}return index[key]}};internal.getMultiFieldKeyFunction=function(fields){return fields.reduce(function(partial,field){var strval=function(rec){return String(rec[field])};return partial?function(rec){return partial(rec)+"~~"+strval(rec)}:strval},null)};internal.aggregateDataRecords=function(records,getGroupId,opts){var groups=internal.groupIds(getGroupId,records.length);return internal.aggregateDataRecords2(records,groups,opts)};internal.recombineDataRecords=function(records,getSourceIds,n,opts){var groups=[];for(var i=0;i0){if(!memo){memo={sum:weight,centroid:p.concat()}}else{sum=memo.sum+weight;k=memo.sum/sum;memo.centroid[0]=k*memo.centroid[0]+weight*x/sum;memo.centroid[1]=k*memo.centroid[1]+weight*y/sum;if(p.length==3){memo.centroid[2]=k*memo.centroid[2]+weight*p[2]/sum}memo.sum=sum}}return memo}internal.dissolvePolylineGeometry=function(lyr,getGroupId,arcs,opts){var groups=internal.getPolylineDissolveGroups(lyr.shapes,getGroupId);var dissolve=internal.getPolylineDissolver(arcs);return groups.map(dissolve)};internal.getPolylineDissolveGroups=function(shapes,getGroupId){var groups=[];internal.traversePaths(shapes,function(o){var groupId=getGroupId(o.shapeId);if(groupId in groups===false){groups[groupId]=[]}groups[groupId].push(o.arcId)});return groups};internal.getPolylineDissolver=function(arcs){var flags=new Uint8Array(arcs.size());var testArc=function(id){return flags[absArcId(id)]>0};var useArc=function(id){flags[absArcId(id)]=0};var nodes=new NodeCollection(arcs);return function(ids){ids.forEach(function(id){flags[absArcId(id)]=1});var ends=internal.findPolylineEnds(ids,nodes,testArc);var straightParts=internal.collectPolylineArcs(ends,nodes,testArc,useArc);var ringParts=internal.collectPolylineArcs(ids,nodes,testArc,useArc);var allParts=straightParts.concat(ringParts);ids.forEach(function(id){flags[absArcId(id)]=0});return allParts}};internal.collectPolylineArcs=function(ids,nodes,testArc,useArc){var parts=[];ids.forEach(function(startId){var part=[];var nextId=startId;var nextIds;while(testArc(nextId)){part.push(nextId);nextIds=testArc(nextId)?nodes.getConnectedArcs(nextId,testArc):[];useArc(nextId);if(nextIds.length>0){nextId=~nextIds[0]}else{break}}if(part.length>0)parts.push(part)});return parts};internal.findPolylineEnds=function(ids,nodes,filter){var ends=[];ids.forEach(function(arcId){if(nodes.getConnectedArcs(arcId,filter).length===0){ends.push(~arcId)}if(nodes.getConnectedArcs(~arcId,filter).length===0){ends.push(arcId)}});return ends};api.dissolve=function(lyr,arcs,opts){var dissolveShapes,getGroupId;opts=utils.extend({},opts);if(opts.field)opts.fields=[opts.field];getGroupId=internal.getCategoryClassifier(opts.fields,lyr.data);if(opts.multipart||opts.group_points){dissolveShapes=internal.makeMultipartShapes(lyr,getGroupId)}else if(lyr.geometry_type=="polygon"){dissolveShapes=dissolvePolygonGeometry(lyr.shapes,getGroupId)}else if(lyr.geometry_type=="polyline"){dissolveShapes=internal.dissolvePolylineGeometry(lyr,getGroupId,arcs,opts)}else if(lyr.geometry_type=="point"){dissolveShapes=internal.dissolvePointGeometry(lyr,getGroupId,opts)}return internal.composeDissolveLayer(lyr,dissolveShapes,getGroupId,opts)};internal.makeMultipartShapes=function(lyr,getGroupId){var shapes=internal.cloneShapes(lyr.shapes);var shapes2=[];lyr.shapes.forEach(function(shp,i){var groupId=getGroupId(i);if(!shp)return;if(!shapes2[groupId]){shapes2[groupId]=shp}else{shapes2[groupId].push.apply(shapes2[groupId],shp)}});return shapes2};internal.composeDissolveLayer=function(lyr,shapes,getGroupId,opts){var records=null;var lyr2;if(lyr.data){records=internal.aggregateDataRecords(lyr.data.getRecords(),getGroupId,opts);for(var i=0,n=records.length;i-1){ringIsCW=ringData[i].area>0;containerIsCW=ringData[containerId].area>0;if(containerIsCW==ringIsCW){valid=false}}return valid}};internal.rewindPolygons=function(lyr,arcs){lyr.shapes=lyr.shapes.map(function(shp){if(!shp)return null;return internal.rewindPolygon(shp,arcs)})};internal.rewindPolygon=function(rings,arcs){var ringData=internal.getPathMetadata(rings,arcs,"polygon");ringData.sort(function(a,b){return Math.abs(b.area)-Math.abs(a.area)});ringData.forEach(function(ring,i){var shouldBeCW=true;var j=i;var largerRing;while(--j>=0){largerRing=ringData[j];if(internal.testRingInRing(ring,largerRing,arcs)){shouldBeCW=largerRing.area>0?false:true;break}}internal.setRingWinding(ring,shouldBeCW)});return ringData.map(function(data){return data.ids})};internal.setRingWinding=function(data,cw){var isCW=data.area>0;if(isCW!=cw){data.area=-data.area;internal.reversePath(data.ids)}};internal.testRingInRing=function(a,b,arcs){if(b.bounds.contains(a.bounds)===false)return false;var p=arcs.getVertex(a.ids[0],0);return geom.testPointInRing(p.x,p.y,b.ids,arcs)==1};internal.mosaic=function(dataset,opts){var layers2=[];var nodes,output;if(!dataset.arcs)stop("Dataset is missing path data");nodes=internal.addIntersectionCuts(dataset,opts);output=internal.buildPolygonMosaic(nodes);layers2.push({name:"mosaic",shapes:output.mosaic,geometry_type:"polygon"});if(opts.debug){layers2.push({geometry_type:"polygon",name:"mosaic-enclosure",shapes:output.enclosures});if(output.lostArcs.length>0){layers2=layers2.concat(getLostArcLayers(output.lostArcs,nodes.arcs))}}return layers2;function getLostArcLayers(lostArcs,arcs){var arcLyr={geometry_type:"polyline",name:"lost-arcs",shapes:[]};var pointLyr={geometry_type:"point",name:"lost-arc-endpoints",shapes:[]};var arcData=[];var pointData=[];lostArcs.forEach(function(arcId){var first=arcs.getVertex(arcId,0);var last=arcs.getVertex(arcId,-1);arcData.push({ARCID:arcId});arcLyr.shapes.push([[arcId]]);pointData.push({ARCID:arcId},{ARCID:arcId});pointLyr.shapes.push([[first.x,first.y]],[[last.x,last.y]])});arcLyr.data=new DataTable(arcData);pointLyr.data=new DataTable(pointData);return[arcLyr,pointLyr]}};internal.buildPolygonMosaic=function(nodes){T.start();nodes.detachAcyclicArcs();var data=internal.findMosaicRings(nodes);var mosaic=data.cw.map(function(ring){return[ring]});T.stop("Find mosaic rings");T.start();var enclosures=[];var index=new PathIndex(mosaic,nodes.arcs);data.ccw.forEach(function(ring){var id=index.findSmallestEnclosingPolygon(ring);if(id>-1){mosaic[id].push(ring)}else{internal.reversePath(ring);enclosures.push([ring])}});T.stop(utils.format("Detect holes (holes: %d, enclosures: %d)",data.ccw.length-enclosures.length,enclosures.length));return{mosaic:mosaic,enclosures:enclosures,lostArcs:data.lostArcs}};internal.findMosaicRings=function(nodes){var arcs=nodes.arcs,cw=[],ccw=[],empty=[],lostArcs=[];var flags=new Uint8Array(arcs.size());var findPath=internal.getPathFinder(nodes,useRoute);for(var i=0,n=flags.length;i0){cw.push(ring)}else if(area<0){ccw.push(ring)}else{empty.push(ring)}}function useRoute(arcId){return routeIsOpen(arcId,true)}function routeIsOpen(arcId,closeRoute){var absId=absArcId(arcId);var bit=absId==arcId?1:2;var isOpen=(flags[absId]&bit)===0;if(closeRoute&&isOpen)flags[absId]|=bit;return isOpen}};function IdLookupIndex(n){var fwdIndex=new Int32Array(n);var revIndex=new Int32Array(n);utils.initializeArray(fwdIndex,-1);utils.initializeArray(revIndex,-1);this.setId=function(id,val){if(id<0){revIndex[~id]=val}else{fwdIndex[id]=val}};this.getId=function(id){var idx=id<0?~id:id;if(idx>=n){return-1}return id<0?revIndex[idx]:fwdIndex[idx]}}function PolygonTiler(mosaic,arcTileIndex,nodes,opts){var arcs=nodes.arcs;var visitedTileIndex=new IdTestIndex(mosaic.length);var divide=internal.getHoleDivider(nodes);var currHoles;var currShapeId;var currRingBbox;var tilesInShape;var ringIndex=new IdTestIndex(arcs.size());var holeIndex=new IdTestIndex(arcs.size());this.getTilesInShape=function(shp,shapeId){var cw=[],ccw=[],retn;tilesInShape=[];currHoles=[];currShapeId=shapeId;if(opts.no_holes){divide(shp,cw,ccw)}else{divide(shp,cw,ccw);ccw.forEach(procShapeHole);holeIndex.setIds(currHoles)}cw.forEach(procShapeRing);retn=tilesInShape;tilesInShape=null;holeIndex.clearIds(currHoles);currHoles=null;return retn};function procShapeHole(path){currHoles=currHoles?currHoles.concat(path):path}function procShapeRing(path){currRingBbox=arcs.getSimpleShapeBounds2(path);ringIndex.setIds(path);procArcIds(path);ringIndex.clearIds(path);visitedTileIndex.clearIds(tilesInShape)}function procArcIds(ids){var tileIds=[],tileId;for(var i=0,n=ids.length;i-1)tileIds.push(tileId)}if(tileIds.length>0)traverseFromTiles(tileIds)}function traverseFromTiles(tileIds){var arcIds=[];for(var i=0,n=tileIds.length;i0)procArcIds(arcIds)}function accumulateTraversibleArcIds(ids,tile){var arcId,ring;for(var j=0;j=0?shapeId:-1};this.getShapeIdsByTileId=function(id){var singleId=singleIndex[id];if(singleId>=0){return[singleId]}if(singleId==-1){return[]}return multipleIndex[id]};this.indexTileIdsByShapeId=function(shapeId,tileIds,weightFunction){shapeIndex[shapeId]=[];for(var i=0;iweightFunction(singleId)){removeTileFromShape(tileId,singleId);singleIndex[tileId]=singleId;singleId=-1}else{return}}if(singleId==-1){singleIndex[tileId]=shapeId}else if(singleId==-2){multipleIndex[tileId].push(shapeId)}else{multipleIndex[tileId]=[singleId,shapeId];singleIndex[tileId]=-2}shapeIndex[shapeId].push(tileId)}function flattenStackedTile(tileId){var shapeIds=multipleIndex[tileId];var selectedId=shapeIds[0];var shapeId;singleIndex[tileId]=selectedId;for(var i=0;i0===false){}}}function MosaicIndex(lyr,nodes,optsArg){var opts=optsArg||{};var shapes=lyr.shapes;var divide=internal.getHoleDivider(nodes);var mosaic=internal.buildPolygonMosaic(nodes).mosaic;var arcTileIndex=new ShapeArcIndex(mosaic,nodes.arcs);var fetchedTileIndex=new IdTestIndex(mosaic.length);var tileShapeIndex=new TileShapeIndex(mosaic,opts);var shapeTiler=new PolygonTiler(mosaic,arcTileIndex,nodes,opts);var weightFunction=getAreaWeightFunction(lyr.shapes,nodes.arcs);this.mosaic=mosaic;this.nodes=nodes;this.getSourceIdsByTileId=tileShapeIndex.getShapeIdsByTileId;this.getTileIdsByShapeId=tileShapeIndex.getTileIdsByShapeId;shapes.forEach(function(shp,shapeId){var tileIds=shapeTiler.getTilesInShape(shp,shapeId);tileShapeIndex.indexTileIdsByShapeId(shapeId,tileIds,weightFunction)});if(opts.flat){tileShapeIndex.flatten()}this.removeGaps=function(filter){if(!opts.flat){error("MosaicIndex#removeGaps() should only be called with a flat mosaic")}var remainingIds=tileShapeIndex.getUnusedTileIds();var filledIds=remainingIds.filter(function(tileId){var tile=mosaic[tileId];return filter(tile[0])});filledIds.forEach(assignTileToAdjacentShape);return{removed:filledIds.length,remaining:remainingIds.length-filledIds.length}};this.getUnusedTiles=function(){return getUnusedTileIds().map(tileIdToTile)};this.getTilesByShapeIds=function(shapeIds){return getTileIdsByShapeIds(shapeIds).map(tileIdToTile)};function getAreaWeightFunction(shapes,arcs){var index=[];return function(shpId){var weight;if(shpId in index){weight=index[shpId]}else{weight=index[shpId]=Math.abs(geom.getShapeArea(shapes[shpId],arcs))}return weight}}function tileIdToTile(id,i){return mosaic[id]}function assignTileToAdjacentShape(tileId){var ring=mosaic[tileId][0];var arcs=nodes.arcs;var arcId,neighborShapeId,neighborTileId,arcLen;var shapeId=-1,maxArcLen=0;for(var i=0;imaxArcLen){shapeId=neighborShapeId;maxArcLen=arcLen}}if(shapeId>-1){tileShapeIndex.addTileToShape(shapeId,tileId)}}function getTileIdsByShapeIds(shapeIds){var uniqIds=[];var tileId,tileIds,i,j;for(i=0;i=0?opts.sliver_control:0;var crs=internal.getDatasetCRS(dataset);var threshold=areaArg?internal.convertAreaParam(areaArg,crs):internal.getDefaultSliverThreshold(lyr,dataset.arcs);var filter=sliverControl>0?internal.getSliverTest(dataset.arcs,threshold,sliverControl):internal.getMinAreaTest(threshold,dataset);var label=internal.getSliverLabel(internal.getAreaLabel(threshold,crs),sliverControl>0);return{threshold:threshold,filter:filter,label:label}};internal.getSliverLabel=function(areaStr,variable){if(variable){areaStr=areaStr.replace(" ","+ ")+" variable"}return areaStr+" threshold"};internal.getMinAreaTest=function(minArea,dataset){var pathArea=dataset.arcs.isPlanar()?geom.getPlanarPathArea:geom.getSphericalPathArea;return function(path){var area=pathArea(path,dataset.arcs);return Math.abs(area)=0===false){strength=1}if(strength>1||threshold>0===false){error("Invalid parameter")}var calcEffectiveArea=internal.getSliverAreaFunction(arcs,strength);return function(ring){return Math.abs(calcEffectiveArea(ring))0===false)return"";return utils.format("Closed %,d / %,d gap%s using %s",removed,removed+retained,utils.pluralSuffix(removed),areaLabel)};internal.dissolvePolygonGroups2=function(groups,lyr,dataset,opts){var arcFilter=internal.getArcPresenceTest(lyr.shapes,dataset.arcs);var nodes=new NodeCollection(dataset.arcs,arcFilter);var mosaicIndex=new MosaicIndex(lyr,nodes,{flat:true});var sliverOpts=utils.extend({sliver_control:1},opts);var filterData=internal.getSliverFilter(lyr,dataset,sliverOpts);var cleanupData=mosaicIndex.removeGaps(filterData.filter);var pathfind=internal.getRingIntersector(mosaicIndex.nodes);var dissolvedShapes=groups.map(function(shapeIds){var tiles=mosaicIndex.getTilesByShapeIds(shapeIds);if(opts.tiles){return tiles.reduce(function(memo,tile){return memo.concat(tile)},[])}return internal.dissolveTileGroup2(tiles,pathfind)});dissolvedShapes=internal.fixTangentHoles(dissolvedShapes,pathfind);var gapMessage=internal.getGapRemovalMessage(cleanupData.removed,cleanupData.remaining,filterData.label);if(gapMessage)message(gapMessage);return dissolvedShapes};internal.dissolveTileGroup2=function(tiles,pathfind){var rings=[],holes=[],dissolved,tile;for(var i=0,n=tiles.length;i1){holes=holes.concat(tile.slice(1))}}dissolved=pathfind(rings.concat(holes),"dissolve");if(dissolved.length>1){}return dissolved.length>0?dissolved:null};internal.fixTangentHoles=function(shapes,pathfind){var onRing=function(memo,ring){internal.reversePath(ring);var fixed=pathfind([ring],"flatten");if(fixed.length>1){fixed.forEach(internal.reversePath);memo=memo.concat(fixed)}else{memo.push(internal.reversePath(ring))}return memo};return shapes.map(function(rings){if(!rings)return null;return rings.reduce(onRing,[])})};api.cleanLayers=function(layers,dataset,opts){var nodes;opts=opts||{};if(opts.debug){internal.addIntersectionCuts(dataset,opts);return}if(!opts.arcs){nodes=internal.addIntersectionCuts(dataset,opts);layers.forEach(function(lyr){if(!internal.layerHasGeometry(lyr))return;if(lyr.geometry_type=="polygon"){internal.cleanPolygonLayerGeometry(lyr,dataset,opts)}else if(lyr.geometry_type=="polyline"){internal.cleanPolylineLayerGeometry(lyr,dataset,opts)}else if(lyr.geometry_type=="point"){internal.cleanPointLayerGeometry(lyr,dataset,opts)}if(!opts.allow_empty){api.filterFeatures(lyr,dataset.arcs,{remove_empty:true})}})}if(!opts.no_arc_dissolve&&dataset.arcs){internal.dissolveArcs(dataset)}};internal.cleanPolygonLayerGeometry=function(lyr,dataset,opts){var groups=lyr.shapes.map(function(shp,i){return[i]});lyr.shapes=internal.dissolvePolygonGroups2(groups,lyr,dataset,opts)};internal.cleanPointLayerGeometry=function(lyr,dataset,opts){var index,parts;lyr.shapes=lyr.shapes.map(function(shp,i){if(!shp||shp.length>0===false){return null}if(shp.length==1){return shp}index={};parts=[];shp.forEach(onPoint);if(parts.length===0){return null}return parts});function onPoint(p){var key=p.join("~");if(key in index)return;index[key]=true;parts.push(p)}};internal.cleanPolylineLayerGeometry=function(lyr,dataset,opts){var filter=internal.getArcPresenceTest(lyr.shapes,dataset.arcs);var nodes=new NodeCollection(dataset.arcs,filter);var shape;lyr.shapes=lyr.shapes.map(function(shp,i){if(!shp)return null;shape=[];internal.forEachShapePart(shp,onPart);return shape});function onPart(ids){var n=ids.length;var id,connected;var ids2=[];for(var i=0;i1){shape.push(ids2);ids2=[]}}if(ids2.length>0)shape.push(ids2)}};internal.mergeLayersForOverlay=function(targetLayers,targetDataset,clipSrc,opts){var usingPathClip=utils.some(targetLayers,internal.layerHasPaths);var bbox=opts.bbox||opts.bbox2;var mergedDataset,clipDataset,clipLyr;if(clipSrc&&clipSrc.geometry_type){clipSrc={dataset:targetDataset,layer:clipSrc,disposable:true}}if(bbox){clipDataset=internal.convertClipBounds(bbox);clipLyr=clipDataset.layers[0]}else if(clipSrc){clipLyr=clipSrc.layer;clipDataset=utils.defaults({layers:[clipLyr]},clipSrc.dataset)}else{stop("Command requires a source file, layer id or bbox")}if(targetDataset.arcs!=clipDataset.arcs){if(clipSrc&&!clipSrc.disposable){clipDataset.layers[0]=internal.copyLayerShapes(clipDataset.layers[0])}mergedDataset=internal.mergeDatasets([targetDataset,clipDataset]);api.buildTopology(mergedDataset)}else{mergedDataset=utils.extend({},targetDataset);mergedDataset.layers=targetDataset.layers.filter(function(lyr){return lyr!=clipLyr});mergedDataset.layers.push(clipLyr)}return mergedDataset};internal.concatShapes=function(shapes){return shapes.reduce(function(memo,shape){internal.extendShape(memo,shape);return memo},[])};internal.extendShape=function(dest,src){if(src){for(var i=0,n=src.length;i1){dissolved=internal.fixNestingErrors(dissolved,nodes.arcs)}return dissolved.length>0?dissolved:null}};internal.clipPolygons=function(targetShapes,clipShapes,nodes,type,optsArg){var arcs=nodes.arcs;var opts=optsArg||{};var clipFlags=new Uint8Array(arcs.size());var routeFlags=new Uint8Array(arcs.size());var clipArcTouches=0;var clipArcUses=0;var usedClipArcs=[];var dividePath=internal.getPathFinder(nodes,useRoute,routeIsActive);var dissolvePolygon=internal.getPolygonDissolver(nodes);if(!opts.bbox2){targetShapes=targetShapes.map(dissolvePolygon)}internal.openArcRoutes(clipShapes,arcs,clipFlags,type=="clip",type=="erase",!!"dissolve",17);var index=new PathIndex(clipShapes,arcs);var clippedShapes=targetShapes.map(function(shape,i){if(shape){return clipPolygon(shape,type,index)}return null});var undividedClipShapes=findUndividedClipShapes(clipShapes);internal.closeArcRoutes(clipShapes,arcs,routeFlags,true,true);index=new PathIndex(undividedClipShapes,arcs);targetShapes.forEach(function(shape,shapeId){var paths=shape?findInteriorPaths(shape,type,index):null;if(paths){clippedShapes[shapeId]=(clippedShapes[shapeId]||[]).concat(paths)}});return clippedShapes;function clipPolygon(shape,type,index){var dividedShape=[],clipping=type=="clip",erasing=type=="erase";internal.openArcRoutes(shape,arcs,routeFlags,true,false,false);internal.forEachShapePart(shape,function(ids){var path;for(var i=0,n=ids.length;i0){internal.closeArcRoutes(usedClipArcs,arcs,routeFlags,true,true,true);usedClipArcs=[]}return dividedShape.length===0?null:dividedShape}function routeIsActive(id){var fw=id>=0,abs=fw?id:~id,visibleBit=fw?1:16,targetBits=routeFlags[abs],clipBits=clipFlags[abs];if(clipBits>0)clipArcTouches++;return(targetBits&visibleBit)>0||(clipBits&visibleBit)>0}function useRoute(id){var fw=id>=0,abs=fw?id:~id,targetBits=routeFlags[abs],clipBits=clipFlags[abs],targetRoute,clipRoute;if(fw){targetRoute=targetBits;clipRoute=clipBits}else{targetRoute=targetBits>>4;clipRoute=clipBits>>4}targetRoute&=3;clipRoute&=3;var usable=false;if(targetRoute==3){if(clipRoute==1){}else if(clipRoute==2&&type=="erase"){}else{usable=true}}else if(targetRoute===0&&clipRoute==3){usedClipArcs.push(id);usable=true}if(usable){if(clipRoute==3){clipArcUses++}if(fw){targetBits=internal.setBits(targetBits,1,3)}else{targetBits=internal.setBits(targetBits,16,48)}}targetBits|=fw?4:64;routeFlags[abs]=targetBits;return usable}function findUndividedClipShapes(clipShapes){return clipShapes.map(function(shape){var usableParts=[];internal.forEachShapePart(shape,function(ids){var pathIsClean=true,pathIsVisible=false;for(var i=0;i0?usableParts:null})}function arcIsUnused(id,flags){var abs=absArcId(id),flag=flags[abs];return(flag&68)===0}function arcIsVisible(id,flags){var flag=flags[absArcId(id)];return(flag&17)>0}function findInteriorPaths(shape,type,index){var enclosedPaths=index.findPathsInsideShape(shape),dissolvedPaths=[];if(!enclosedPaths)return null;if(type=="erase")enclosedPaths.forEach(internal.reversePath);if(enclosedPaths.length<=1){dissolvedPaths=enclosedPaths}else{internal.openArcRoutes(enclosedPaths,arcs,routeFlags,true,false,true);enclosedPaths.forEach(function(ids){var path;for(var j=0;j0?dissolvedPaths:null}};internal.clipPolylines=function(targetShapes,clipShapes,nodes,type){var index=new PathIndex(clipShapes,nodes.arcs);return targetShapes.map(function(shp){return clipPolyline(shp)});function clipPolyline(shp){var clipped=null;if(shp)clipped=shp.reduce(clipPath,[]);return clipped&&clipped.length>0?clipped:null}function clipPath(memo,path){var clippedPath=null,arcId,enclosed;for(var i=0;i-1;if(type=="clip"&&enclosed||type=="erase"&&!enclosed){feat2.push(feat[i].concat())}}memo.push(feat2.length>0?feat2:null);return memo},[]);return points2};api.filterIslands=function(lyr,dataset,optsArg){var opts=utils.extend({sliver_control:0},optsArg);var arcs=dataset.arcs;var removed=0;var filter;if(lyr.geometry_type!="polygon"){return}if(!opts.min_area&&!opts.min_vertices){message("Missing a criterion for filtering islands; use min-area or min-vertices");return}if(opts.min_area){filter=internal.getSliverFilter(lyr,dataset,opts).filter}else{filter=internal.getVertexCountTest(opts.min_vertices,arcs)}removed+=internal.filterIslands(lyr,arcs,filter);if(opts.remove_empty){api.filterFeatures(lyr,arcs,{remove_empty:true,verbose:false})}message(utils.format("Removed %'d island%s",removed,utils.pluralSuffix(removed)))};internal.getVertexCountTest=function(minVertices,arcs){return function(path){return geom.countVerticesInPath(path,arcs)<=minVertices}};internal.filterIslands=function(lyr,arcs,ringTest){var removed=0;var counts=new Uint8Array(arcs.size());internal.countArcsInShapes(lyr.shapes,counts);var pathFilter=function(path,i,paths){if(path.length==1){if(counts[absArcId(path[0])]===1){if(!ringTest||ringTest(path)){if(!internal.ringHasHoles(path,paths,arcs)){removed++;return null}}}}};internal.editShapes(lyr.shapes,pathFilter);return removed};internal.ringIntersectsBBox=function(ring,bbox,arcs){for(var i=0,n=ring.length;i0){newArcs++}else{prevArcs++}}if(newArcs>0&&prevArcs>0&&ringTest(path)){removed++;return null}};internal.countArcsInShapes(clipLyr.shapes,flags);internal.editShapes(lyr.shapes,pathFilter);return removed};api.splitLayer=function(src,expression,opts){var lyr0=opts&&opts.no_replace?internal.copyLayer(src):src,properties=lyr0.data?lyr0.data.getRecords():null,shapes=lyr0.shapes,index={},splitLayers=[],namer=internal.getSplitNameFunction(lyr0,expression);utils.repeat(internal.getFeatureCount(lyr0),function(i){var name=namer(i),lyr;if(name in index===false){index[name]=splitLayers.length;lyr={geometry_type:lyr0.geometry_type,name:name,data:properties?new DataTable:null,shapes:shapes?[]:null};splitLayers.push(lyr)}else{lyr=splitLayers[index[name]]}if(shapes){lyr.shapes.push(shapes[i])}if(properties){lyr.data.getRecords().push(properties[i])}});return splitLayers};internal.getSplitNameFunction=function(lyr,exp){var compiled;if(!exp){return function(i){return(lyr&&lyr.name||"split")+"-"+(i+1)}}lyr={name:lyr.name,data:lyr.data};compiled=internal.compileValueExpression(exp,lyr,null);return function(i){var val=compiled(i);return String(val)}};internal.clipLayersByBBox=function(layers,dataset,opts){var bbox=opts.bbox2;var clipLyr=internal.divideDatasetByBBox(dataset,bbox);var nodes=new NodeCollection(dataset.arcs);var retn=internal.clipLayersByLayer(layers,clipLyr,nodes,"clip",opts);return retn};internal.divideDatasetByBBox=function(dataset,bbox){var arcs=dataset.arcs;var data=internal.findBBoxCutPoints(arcs,bbox);var map=internal.insertCutPoints(data.cutPoints,arcs);arcs.dedupCoords();internal.remapDividedArcs(dataset,map);var clipDataset=internal.bboxPointsToClipDataset(data.bboxPoints);var mergedDataset=internal.mergeDatasets([dataset,clipDataset]);var clipLyr=mergedDataset.layers.pop();dataset.arcs=mergedDataset.arcs;dataset.layers=mergedDataset.layers;return clipLyr};internal.bboxPointsToClipDataset=function(arr){var arcs=[];var shape=[];var layer={geometry_type:"polygon",shapes:[[shape]]};var p1,p2;for(var i=0,n=arr.length-1;ixmax&&bx>xmax||ayymax&&by>ymax};internal.segmentInsideBBox=function(ax,ay,bx,by,xmin,ymin,xmax,ymax){return ax>xmin&&bx>xmin&&axymin&&by>ymin&&ay0?memo[memo.length-1]:null;if(p1===null||p1.x!=p2.x||p1.y!=p2.y)memo.push(p2);return memo},[])};api.clipLayers=function(target,src,dataset,opts){return internal.clipLayers(target,src,dataset,"clip",opts)};api.eraseLayers=function(target,src,dataset,opts){return internal.clipLayers(target,src,dataset,"erase",opts)};api.clipLayer=function(targetLyr,src,dataset,opts){return api.clipLayers([targetLyr],src,dataset,opts)[0]};api.eraseLayer=function(targetLyr,src,dataset,opts){return api.eraseLayers([targetLyr],src,dataset,opts)[0]};api.sliceLayers=function(target,src,dataset,opts){return internal.clipLayers(target,src,dataset,"slice",opts)};api.sliceLayer=function(targetLyr,src,dataset,opts){return api.sliceLayers([targetLyr],src,dataset,opts)};internal.clipLayers=function(targetLayers,clipSrc,targetDataset,type,opts){var usingPathClip=utils.some(targetLayers,internal.layerHasPaths);var mergedDataset,clipLyr,nodes;opts=opts||{no_cleanup:true};if(opts.bbox2&&usingPathClip){return internal.clipLayersByBBox(targetLayers,targetDataset,opts)}mergedDataset=internal.mergeLayersForOverlay(targetLayers,targetDataset,clipSrc,opts);if(usingPathClip){nodes=internal.addIntersectionCuts(mergedDataset,opts);targetDataset.arcs=mergedDataset.arcs}else{nodes=new NodeCollection(mergedDataset.arcs)}clipLyr=mergedDataset.layers.pop();return internal.clipLayersByLayer(targetLayers,clipLyr,nodes,type,opts)};internal.clipLayersByLayer=function(targetLayers,clipLyr,nodes,type,opts){internal.requirePolygonLayer(clipLyr,"Requires a polygon clipping layer");return targetLayers.reduce(function(memo,targetLyr){if(type=="slice"){memo=memo.concat(internal.sliceLayerByLayer(targetLyr,clipLyr,nodes,opts))}else{memo.push(internal.clipLayerByLayer(targetLyr,clipLyr,nodes,type,opts))}return memo},[])};internal.getSliceLayerName=function(clipLyr,field,i){var id=field?clipLyr.data.getRecords()[0][field]:i+1;return"slice-"+id};internal.sliceLayerByLayer=function(targetLyr,clipLyr,nodes,opts){var clipLayers=api.splitLayer(clipLyr,opts.id_field,{no_replace:true});return clipLayers.map(function(clipLyr,i){var outputLyr=internal.clipLayerByLayer(targetLyr,clipLyr,nodes,"clip",opts);outputLyr.name=internal.getSliceLayerName(clipLyr,opts.id_field,i);return outputLyr})};internal.clipLayerByLayer=function(targetLyr,clipLyr,nodes,type,opts){var arcs=nodes.arcs;var shapeCount=targetLyr.shapes?targetLyr.shapes.length:0;var nullCount=0,sliverCount=0;var clippedShapes,outputLyr;if(shapeCount===0){return targetLyr}if(targetLyr===clipLyr){stop("Can't clip a layer with itself")}if(targetLyr.geometry_type=="point"){clippedShapes=internal.clipPoints(targetLyr.shapes,clipLyr.shapes,arcs,type)}else if(targetLyr.geometry_type=="polygon"){clippedShapes=internal.clipPolygons(targetLyr.shapes,clipLyr.shapes,nodes,type,opts)}else if(targetLyr.geometry_type=="polyline"){clippedShapes=internal.clipPolylines(targetLyr.shapes,clipLyr.shapes,nodes,type)}else{stop("Invalid target layer:",targetLyr.name)}outputLyr={name:targetLyr.name,geometry_type:targetLyr.geometry_type,shapes:clippedShapes,data:targetLyr.data};if(opts.remove_slivers&&outputLyr.geometry_type=="polygon"){sliverCount=internal.filterClipSlivers(outputLyr,clipLyr,arcs)}api.filterFeatures(outputLyr,arcs,{remove_empty:true,verbose:false});if(outputLyr.data){outputLyr.data=outputLyr.data.clone()}nullCount=shapeCount-outputLyr.shapes.length;if(nullCount&&sliverCount){message(internal.getClipMessage(nullCount,sliverCount))}return outputLyr};internal.getClipMessage=function(nullCount,sliverCount){var nullMsg=nullCount?utils.format("%,d null feature%s",nullCount,utils.pluralSuffix(nullCount)):"";var sliverMsg=sliverCount?utils.format("%,d sliver%s",sliverCount,utils.pluralSuffix(sliverCount)):"";if(nullMsg||sliverMsg){return utils.format("Removed %s%s%s",nullMsg,nullMsg&&sliverMsg?" and ":"",sliverMsg)}return""};internal.convertClipBounds=function(bb){var x0=bb[0],y0=bb[1],x1=bb[2],y1=bb[3],arc=[[x0,y0],[x0,y1],[x1,y1],[x1,y0],[x0,y0]];if(!(y1>y0&&x1>x0)){stop("Invalid bbox (should be [xmin, ymin, xmax, ymax]):",bb)}return{arcs:new ArcCollection([arc]),layers:[{shapes:[[[0]]],geometry_type:"polygon"}]}};api.cluster=function(lyr,arcs,opts){internal.requirePolygonLayer(lyr);var groups=internal.calcPolygonClusters(lyr,arcs,opts);var idField=opts.id_field||"cluster";internal.insertFieldValues(lyr,idField,groups);return lyr};internal.calcPolygonClusters=function(lyr,arcs,opts){var calcScore=internal.getPolygonClusterCalculator(opts);var size=lyr.shapes.length;var pct=opts.pct?utils.parsePercent(opts.pct):1;var count=Math.round(size*pct);var groupField=opts.group_by||null;var shapeItems=lyr.shapes.map(function(shp,i){var groupId=groupField&&lyr.data.getRecordAt(i)[groupField]||null;return{ids:[i],area:geom.getShapeArea(shp,arcs),bounds:arcs.getMultiShapeBounds(shp),centroid:geom.getShapeCentroid(shp,arcs),group:groupId,friends:[]}});var mergeItems=[];var mergeIndex={};var next;if(groupField&&!lyr.data)stop("Missing attribute data table");internal.findPairsOfNeighbors(lyr.shapes,arcs).forEach(function(ab,i){var a=shapeItems[ab[0]],b=shapeItems[ab[1]],item,id;if(a.group!==b.group)return;item={ids:ab};item.score=getScore(item);if(item.score<0)return;id=mergeItems.length;a.friends.push(id);b.friends.push(id);mergeItems.push(item)});while(count-- >0&&(next=nextItem())){merge(next)}return shapeItems.filter(Boolean).reduce(function(memo,shape,clusterId){var ids=shape.ids;for(var i=0;imaxArea||bounds.width()>maxWidth||bounds.height()>maxHeight){score=-1}return score}};api.colorizer=function(opts){if(!opts.name){stop("Missing required name= parameter")}if(internal.isReservedName(opts.name)){stop('"'+opts.name+'" is a reserved name')}internal.getStateVar("defs")[opts.name]=internal.getColorizerFunction(opts)};internal.isReservedName=function(name){return/^(stroke|stroke-width|stroke-dasharray|fill|opacity|r|class)$/.test(name)};internal.getColorizerFunction=function(opts){var nodataColor=opts.nodata||"white";var round=opts.precision?utils.getRoundingFunction(opts.precision):null;var colorFunction;if(!opts.random&&(!opts.colors||!opts.colors.length)){stop("Missing colors= parameter")}if(opts.random){colorFunction=internal.getRandomColorFunction(opts.colors)}else if(opts.breaks){colorFunction=internal.getSequentialColorFunction(opts.colors,opts.breaks,round)}else if(opts.categories){colorFunction=internal.getCategoricalColorFunction(opts.colors,opts.other,opts.categories)}else{stop("Missing categories= or breaks= parameter")}return function(val){var col=colorFunction(val);return col||nodataColor}};internal.fastStringHash=function(val){var str=String(val),hash=5381,i=str.length;while(i>0){hash=hash*33^str.charCodeAt(--i)}return Math.abs(hash)};internal.getRandomColorFunction=function(colors){if(!colors||!colors.length){colors="#ccc,#888,#444".split(",")}return function(val){var n=colors.length;var i=val===undefined?Math.floor(Math.random()*n):internal.fastStringHash(val)%n;return colors[i]}};internal.getCategoricalColorFunction=function(colors,otherColor,keys){if(colors.length!=keys.length){stop("Number of colors should be equal to the number of categories")}return function(val){var i=keys.indexOf(val);if(i>=0)return colors[i];return val&&otherColor?otherColor:null}};internal.validateSequentialBreaks=function(breaks){var arr2=breaks.map(parseFloat);utils.genericSort(arr2);for(var i=0;i-1&&i=minVal&&val<=maxVal)){return-1}while(i=breaks[i])i++;return i};api.dataFill=function(lyr,arcs,opts){var field=opts.field;if(!field)stop("Missing required field= parameter");internal.requireDataField(lyr,field);if(lyr.geometry_type!="polygon")stop("Target layer must be polygon type");var getNeighbors=internal.getNeighborLookupFunction(lyr,arcs);var fillCount,islandCount;var initiallyEmpty=function(){var flags=lyr.data.getRecords().map(function(rec){return internal.isEmptyValue(rec[field])});return function(i){return flags[i]}}();fillCount=internal.dataFillEmpty(field,lyr,arcs,getNeighbors);internal.dataFillSmooth(field,lyr,arcs,getNeighbors,initiallyEmpty);if(opts.contiguous){islandCount=internal.dataFillIslandGroups(field,lyr,arcs,getNeighbors,opts)}message("Filled",fillCount,"empty polygons"+utils.pluralSuffix(fillCount));if(islandCount>0){message("Removed",islandCount,"non-contiguous polygon group"+utils.pluralSuffix(islandCount))}};internal.dataFillEmpty=function(field,lyr,arcs,getNeighbors){var records=lyr.data.getRecords();var onShape=getDataFillCalculator(field,lyr,arcs,getNeighbors);var isEmpty=getEmptyValueFilter(field,lyr);var groups={};var assignCount=0;lyr.shapes.forEach(function(shp,i){if(!isEmpty(i))return;var data=onShape(i);if(!data.group)return;addDataToGroup(data,groups)});Object.keys(groups).forEach(function(groupId){var group=groups[groupId];var value=internal.getMaxWeightValue(group);assignValueToShapes(group.shapes,value)});function assignValueToShapes(ids,val){ids.forEach(function(id){assignCount++;records[id][field]=val})}function addDataToGroup(d,groups){var group=groups[d.group];var j;if(!group){groups[d.group]={shapes:[d.shape],weights:d.weights,values:d.values};return}group.shapes.push(d.shape);for(var i=0,n=d.values.length;i0){assignCount+=internal.dataFillEmpty(field,lyr,arcs,getNeighbors)}return assignCount};internal.dataFillSmooth=function(field,lyr,arcs,getNeighbors,wasEmpty){var onShape=getDataFillCalculator(field,lyr,arcs,getNeighbors);var records=lyr.data.getRecords();var updates=0;lyr.shapes.forEach(function(shp,i){if(!wasEmpty(i))return;var data=onShape(i);if(data.values.length<2)return;var currVal=records[i][field];var topVal=internal.getMaxWeightValue(data);if(currVal!=topVal){records[i][field]=topVal;updates++}});return updates};internal.dataFillIslandGroups=function(field,lyr,arcs,getNeighbors,opts){var records=lyr.data.getRecords();var groupsByValue={};var unitIndex=new Uint8Array(lyr.shapes.length);var currGroup=null;var islandCount=0;var weightField=opts.weight_field||null;if(weightField){internal.requireDataField(lyr,weightField)}lyr.shapes.forEach(function(shp,shpId){onShape(shpId)});Object.keys(groupsByValue).forEach(function(val){var groups=groupsByValue[val];var maxIdx;if(groups.length<2)return;maxIdx=internal.indexOfMaxValue(groups,"weight");if(maxIdx==-1)return;groups.filter(function(group,i){return i!=maxIdx}).forEach(clearIslandGroup)});if(islandCount>0){internal.dataFillEmpty(field,lyr,arcs,getNeighbors)}return islandCount;function clearIslandGroup(group){islandCount++;group.shapes.forEach(function(shpId){records[shpId][field]=null})}function onShape(shpId){if(unitIndex[shpId]==1)return;var val=records[shpId][field];var firstShape=false;if(internal.isEmptyValue(val))return;if(!currGroup){firstShape=true;currGroup={value:val,shapes:[],weight:0};if(val in groupsByValue===false){groupsByValue[val]=[]}groupsByValue[val].push(currGroup)}else if(val!=currGroup.value){return}if(weightField){currGroup.weight+=records[shpId][weightField]}else{currGroup.weight+=geom.getShapeArea(lyr.shapes[shpId],arcs)}currGroup.shapes.push(shpId);unitIndex[shpId]=1;getNeighbors(shpId).forEach(onShape);if(firstShape){currGroup=null}}};internal.getMaxWeightValue=function(d){var maxWeight=Math.max.apply(null,d.weights);var i=d.weights.indexOf(maxWeight);return d.values[i]};internal.indexOfMaxValue=function(arr,key){var maxWeight=-Infinity;var idx=-1;arr.forEach(function(o,i){if(o.weight>maxWeight){idx=i;maxWeight=o.weight}});return idx};internal.isEmptyValue=function(val){return!val&&val!==0};function getEmptyValueFilter(field,lyr){var records=lyr.data.getRecords();return function(i){var rec=records[i];return rec?internal.isEmptyValue(rec[field]):false}}function getDataFillCalculator(field,lyr,arcs,getNeighbors){var isPlanar=arcs.isPlanar();var records=lyr.data.getRecords();var tmp;function onSharedArc(nabeId,arcId){var weight,i;var val=records[nabeId][field];if(internal.isEmptyValue(val))return;weight=geom.calcPathLen([arcId],arcs,!isPlanar);i=tmp.values.indexOf(val);if(i==-1){tmp.values.push(val);tmp.weights.push(weight)}else{tmp.weights[i]+=weight}}return function(shpId){tmp={shape:shpId,weights:[],values:[],group:""};getNeighbors(shpId,onSharedArc);tmp.group=tmp.values.concat().sort().join("~");return tmp}}api.dissolve2=function(layers,dataset,opts){layers.forEach(internal.requirePolygonLayer);T.start();var nodes=internal.addIntersectionCuts(dataset,opts);T.stop("Add cuts");return layers.map(function(lyr){return internal.dissolvePolygonLayer2(lyr,dataset,opts)})};api.divide=function(targetLayers,targetDataset,source,opts){targetLayers.forEach(internal.requirePolylineLayer);var mergedDataset=internal.mergeLayersForOverlay(targetLayers,targetDataset,source,opts);var nodes=internal.addIntersectionCuts(mergedDataset,opts);var polygonLyr=mergedDataset.layers.pop();internal.requirePolygonLayer(polygonLyr);targetDataset.arcs=mergedDataset.arcs;targetLayers.forEach(function(polylineLyr){internal.dividePolylineLayer(polylineLyr,polygonLyr,nodes,opts)})};internal.dividePolylineLayer=function(polylineLyr,polygonLyr,nodes,opts){var index=new PathIndex(polygonLyr.shapes,nodes.arcs);var records=polylineLyr.data?polylineLyr.data.getRecords():[];var shapes2=[];var records2=[];var index2=[];var outputLines;var outputKeys;var outputMatches;polylineLyr.shapes.forEach(function(shp,i){var rec=records[i]||{};if(!shp){shapes2.push(null);records2.push(rec);return}outputLines=[];outputKeys=[];outputMatches=[];internal.forEachShapePart(shp,onPart);outputLines.forEach(function(shape2,i){shapes2.push(shape2);records2.push(i>0?utils.extend({},rec):rec);index2.push(outputMatches[i])})});polylineLyr.shapes=shapes2;polylineLyr.data=new DataTable(records2);internal.joinTables(polylineLyr.data,polygonLyr.data,function(i){return index2[i]||[]},opts);function addDividedParts(parts,keys,matches){var keyId,key;for(var i=0;i0){coords=internal.createInnerPoints(shp,arcs,n)}shapes.push(coords)});return{type:"point",shapes:shapes}};internal.createInnerPoints=function(shp,arcs,n){if(!shp||shp.length!=1){return null}return fillPolygonWithDots(shp,arcs,n)};function fillPolygonWithDots(shp,arcs,n){var area=geom.getPlanarShapeArea(shp,arcs);var bounds=arcs.getMultiShapeBounds(shp)}api.drop2=function(catalog,targets,opts){targets.forEach(function(target){api.drop(catalog,target.layers,target.dataset,opts)})};api.drop=function(catalog,layers,dataset,opts){var updateArcs=false;layers.forEach(function(lyr){var fields=lyr.data&&opts.fields;var allFields=fields&&internal.fieldListContainsAll(fields,lyr.data.getFields());var deletion=!fields&&!opts.geometry&&!opts.holes||allFields&&opts.geometry;if(opts.geometry){updateArcs|=internal.layerHasPaths(lyr);delete lyr.shapes;delete lyr.geometry_type}if(opts.holes&&lyr.geometry_type=="polygon"){internal.deleteHoles(lyr,dataset.arcs)}if(deletion){catalog.deleteLayer(lyr,dataset)}else if(allFields){delete lyr.data}else if(fields){opts.fields.forEach(lyr.data.deleteField,lyr.data)}});if(updateArcs){internal.pruneArcs(dataset)}};var TopoJSON={};TopoJSON.forEachShapePart=function forEachShapePart(obj,cb){var iterators={GeometryCollection:function(o){o.geometries.forEach(eachGeom)},LineString:function(o){var retn=cb(o.arcs);if(retn)o.arcs=retn},MultiLineString:function(o){eachMultiPath(o.arcs)},Polygon:function(o){eachMultiPath(o.arcs)},MultiPolygon:function(o){o.arcs.forEach(eachMultiPath)}};eachGeom(obj);function eachGeom(o){if(o.type in iterators){iterators[o.type](o)}}function eachMultiPath(arr){var retn;for(var i=0;i0){if(topology.transform){TopoJSON.decodeArcs(topology.arcs,topology.transform)}if(opts&&opts.precision){TopoJSON.roundCoords(topology.arcs,opts.precision)}arcs=new ArcCollection(topology.arcs)}layers=Object.keys(topology.objects).reduce(function(memo,name){var layers=TopoJSON.importObject(topology.objects[name],arcs,opts),lyr;for(var i=0,n=layers.length;i0)internal.reversePath(ring);imported.push(ring)}return imported};TopoJSON.shapeImporters={Point:function(geom){return[geom.coordinates]},MultiPoint:function(geom){return geom.coordinates},LineString:function(geom){return[geom.arcs]},MultiLineString:function(geom){return geom.arcs},Polygon:function(geom,arcColl){return TopoJSON.importPolygonArcs(geom.arcs,arcColl)},MultiPolygon:function(geom,arcColl){return geom.arcs.reduce(function(memo,arr){var rings=TopoJSON.importPolygonArcs(arr,arcColl);if(rings){memo=memo?memo.concat(rings):rings}return memo},null)}};TopoJSON.getPresimplifyFunction=function(width){var quanta=1e4,k=quanta/width;return function(z){return z===Infinity?0:Math.ceil(z*k)}};api.explodeFeatures=function(lyr,arcs,opts){var properties=lyr.data?lyr.data.getRecords():null,explodedProperties=properties?[]:null,explodedShapes=[],explodedLyr=utils.extend({},lyr);lyr.shapes.forEach(function explodeShape(shp,shpId){var exploded;if(!shp){explodedShapes.push(null)}else{if(lyr.geometry_type=="polygon"&&shp.length>1){if(opts&&opts.naive){exploded=internal.explodePolygonNaive(shp,arcs)}else{exploded=internal.explodePolygon(shp,arcs)}}else{exploded=internal.explodeShape(shp)}utils.merge(explodedShapes,exploded)}if(explodedProperties!==null){for(var i=0,n=exploded?exploded.length:1;i0){widthPx=width/opts.svg_scale+marginX;heightPx=0}else if(+opts.pixels){size=internal.getFrameSize(bounds,opts);widthPx=size[0];heightPx=size[1]}else{heightPx=opts.height||0;widthPx=opts.width||(heightPx>0?0:800)}if(heightPx>0){ky=(height||width||1)/(heightPx-marginY)}if(widthPx>0){kx=(width||height||1)/(widthPx-marginX)}if(!widthPx){kx=ky;widthPx=width>0?marginX+width/kx:heightPx}else if(!heightPx){ky=kx;heightPx=height>0?marginY+height/ky:widthPx;if(opts.max_height>0&&heightPx>opts.max_height){ky=kx*heightPx/opts.max_height;heightPx=opts.max_height}}if(kx>ky){ky=kx;padY=ky*(heightPx-marginY)-height}else if(ky>kx){kx=ky;padX=kx*(widthPx-marginX)-width}bounds.padBounds(margins[0]*kx+padX*wx,margins[1]*ky+padY*wy,margins[2]*kx+padX*(1-wx),margins[3]*ky+padY*(1-wy));if(!(widthPx>0&&heightPx>0)){error("Missing valid height and width parameters")}if(!(kx===ky&&kx>0)){error("Missing valid margin parameters")}return new Bounds(0,0,widthPx,heightPx)};internal.exportTopoJSON=function(dataset,opts){var extension="."+(opts.extension||"json"),needCopy=!opts.final||internal.datasetHasPaths(dataset)&&dataset.arcs.getRetainedInterval()>0,stringify=JSON.stringify;if(needCopy){dataset=internal.copyDatasetForExport(dataset)}if(opts.prettify){stringify=internal.getFormattedStringify("coordinates,arcs,bbox,translate,scale".split(","))}if(opts.width>0||opts.height>0){opts=utils.defaults({invert_y:true},opts);internal.transformDatasetToPixels(dataset,opts)}if(opts.precision){internal.setCoordinatePrecision(dataset,opts.precision)}if(opts.singles){return internal.splitDataset(dataset).map(function(dataset){return{content:stringify(TopoJSON.exportTopology(dataset,opts)),filename:(dataset.layers[0].name||"output")+extension}})}else{return[{filename:opts.file||utils.getOutputFileBase(dataset)+extension,content:stringify(TopoJSON.exportTopology(dataset,opts))}]}};TopoJSON.exportTopology=function(dataset,opts){var topology={type:"Topology",arcs:[]},hasPaths=internal.datasetHasPaths(dataset),bounds=internal.getDatasetBounds(dataset);if(opts.bbox&&bounds.hasBounds()){topology.bbox=bounds.toArray()}if(hasPaths&&opts.presimplify&&!dataset.arcs.getVertexData().zz){api.simplify(dataset,opts)}if(!opts.no_quantization&&(opts.quantization||hasPaths)){topology.transform=TopoJSON.transformDataset(dataset,bounds,opts)}if(hasPaths){internal.dissolveArcs(dataset);topology.arcs=TopoJSON.exportArcs(dataset.arcs,bounds,opts);if(topology.transform){TopoJSON.deltaEncodeArcs(topology.arcs)}}topology.objects=dataset.layers.reduce(function(objects,lyr,i){var name=lyr.name||"layer"+(i+1);objects[name]=TopoJSON.exportLayer(lyr,dataset.arcs,opts);return objects},{});internal.exportCRS(dataset,topology);if(opts.metadata){topology.metadata=internal.exportMetadata(dataset)}return topology};TopoJSON.transformDataset=function(dataset,bounds,opts){var bounds2=TopoJSON.calcExportBounds(bounds,dataset.arcs,opts),fw=bounds.getTransform(bounds2),inv=fw.invert();function transform(x,y){var p=fw.transform(x,y);return[Math.round(p[0]),Math.round(p[1])]}if(dataset.arcs){dataset.arcs.transformPoints(transform)}if(!opts.no_point_quantization){dataset.layers.filter(internal.layerHasPoints).forEach(function(lyr){internal.transformPointsInLayer(lyr,transform)})}return{scale:[inv.mx,inv.my],translate:[inv.bx,inv.by]}};TopoJSON.exportArcs=function(arcs,bounds,opts){var fromZ=null,output=[];if(opts.presimplify){fromZ=TopoJSON.getPresimplifyFunction(bounds.width())}arcs.forEach2(function(i,n,xx,yy,zz){var arc=[],p;for(var j=i+n;i1?arc:null)});return output};TopoJSON.deltaEncodeArcs=function(arcs){arcs.forEach(function(arr){var ax,ay,bx,by,p;for(var i=0,n=arr.length;i0){p[0]=bx-ax;p[1]=by-ay}ax=bx;ay=by}})};TopoJSON.calcExportResolution=function(arcs,k){var xy=internal.getAvgSegment2(arcs);return[xy[0]*k,xy[1]*k]};TopoJSON.calcExportBounds=function(bounds,arcs,opts){var unitXY,xmax,ymax;if(opts.topojson_precision>0){unitXY=TopoJSON.calcExportResolution(arcs,opts.topojson_precision)}else if(opts.quantization>0){unitXY=[bounds.width()/(opts.quantization-1),bounds.height()/(opts.quantization-1)]}else if(opts.precision>0){unitXY=[opts.precision,opts.precision]}else{unitXY=TopoJSON.calcExportResolution(arcs,.02)}xmax=Math.ceil(bounds.width()/unitXY[0])||0;ymax=Math.ceil(bounds.height()/unitXY[1])||0;return new Bounds(0,0,xmax,ymax)};TopoJSON.exportProperties=function(geometries,table,opts){var properties=internal.exportProperties(table,opts),ids=internal.exportIds(table,opts);geometries.forEach(function(geom,i){if(properties){geom.properties=properties[i]}if(ids){geom.id=ids[i]}})};TopoJSON.exportLayer=function(lyr,arcs,opts){var n=internal.getFeatureCount(lyr),geometries=[],exporter=TopoJSON.exporters[lyr.geometry_type]||null,shp;for(var i=0;i1){geom.arcs=internal.explodePolygon(shape,coords,opts.invert_y);if(geom.arcs.length==1){geom.arcs=geom.arcs[0];geom.type="Polygon"}else{geom.type="MultiPolygon"}}else{geom.arcs=shape;geom.type="Polygon"}return geom};TopoJSON.exportLineGeom=function(shape,coords){var geom={};shape=internal.filterEmptyArcs(shape,coords);if(!shape||shape.length===0){geom.type=null}else if(shape.length==1){geom.type="LineString";geom.arcs=shape[0]}else{geom.type="MultiLineString";geom.arcs=shape}return geom};TopoJSON.exporters={polygon:TopoJSON.exportPolygonGeom,polyline:TopoJSON.exportLineGeom,point:GeoJSON.exportPointGeom};var ShpType={NULL:0,POINT:1,POLYLINE:3,POLYGON:5,MULTIPOINT:8,POINTZ:11,POLYLINEZ:13,POLYGONZ:15,MULTIPOINTZ:18,POINTM:21,POLYLINEM:23,POLYGONM:25,MULIPOINTM:28,MULTIPATCH:31};ShpType.isPolygonType=function(t){return t==5||t==15||t==25};ShpType.isPolylineType=function(t){return t==3||t==13||t==23};ShpType.isMultiPartType=function(t){return ShpType.isPolygonType(t)||ShpType.isPolylineType(t)};ShpType.isMultiPointType=function(t){return t==8||t==18||t==28};ShpType.isZType=function(t){return utils.contains([11,13,15,18],t)};ShpType.isMType=function(t){return ShpType.isZType(t)||utils.contains([21,23,25,28],t)};ShpType.hasBounds=function(t){return ShpType.isMultiPartType(t)||ShpType.isMultiPointType(t)};internal.translateShapefileType=function(shpType){if(utils.contains([ShpType.POLYGON,ShpType.POLYGONM,ShpType.POLYGONZ],shpType)){return"polygon"}else if(utils.contains([ShpType.POLYLINE,ShpType.POLYLINEM,ShpType.POLYLINEZ],shpType)){return"polyline"}else if(utils.contains([ShpType.POINT,ShpType.POINTM,ShpType.POINTZ,ShpType.MULTIPOINT,ShpType.MULTIPOINTM,ShpType.MULTIPOINTZ],shpType)){return"point"}return null};internal.isSupportedShapefileType=function(t){return utils.contains([0,1,3,5,8,11,13,15,18,21,23,25,28],t)};var NullRecord=function(){return{isNull:true,pointCount:0,partCount:0,byteLength:12}};function ShpRecordClass(type){var hasBounds=ShpType.hasBounds(type),hasParts=ShpType.isMultiPartType(type),hasZ=ShpType.isZType(type),hasM=ShpType.isMType(type),singlePoint=!hasBounds,mzRangeBytes=singlePoint?0:16,constructor;if(type===0){return NullRecord}constructor=function ShapeRecord(bin,bytes){var pos=bin.position();this.id=bin.bigEndian().readUint32();this.type=bin.littleEndian().skipBytes(4).readUint32();if(this.type===0){return new NullRecord}if(bytes>0!==true||this.type!=type&&this.type!==0){error("Unable to read a shape -- .shp file may be corrupted")}this.byteLength=bytes;if(singlePoint){this.pointCount=1;this.partCount=1}else{bin.skipBytes(32);this.partCount=hasParts?bin.readUint32():1;this.pointCount=bin.readUint32()}this._data=function(){return bin.position(pos)}};var proto={_xypos:function(){var offs=12;if(!singlePoint)offs+=4;if(hasBounds)offs+=32;if(hasParts)offs+=4*this.partCount+4;return offs},readCoords:function(){if(this.pointCount===0)return null;var partSizes=this.readPartSizes(),xy=this._data().skipBytes(this._xypos());return partSizes.map(function(pointCount){return xy.readFloat64Array(pointCount*2)})},readXY:function(){if(this.pointCount===0)return new Float64Array(0);return this._data().skipBytes(this._xypos()).readFloat64Array(this.pointCount*2)},readPoints:function(){var xy=this.readXY(),zz=hasZ?this.readZ():null,mm=hasM&&this.hasM()?this.readM():null,points=[],p;for(var i=0,n=xy.length/2;i0){sizes.push(partLen);startId+=partLen}}}return sizes}};var singlePointProto={read:function(){var n=2;if(hasZ)n++;if(this.hasM())n++;return this._data().skipBytes(12).readFloat64Array(n)},stream:function(sink){var src=this._data().skipBytes(12);sink.addPoint(src.readFloat64(),src.readFloat64());sink.endPath()}};var multiCoordProto={readBounds:function(){return this._data().skipBytes(12).readFloat64Array(4)},stream:function(sink){var sizes=this.readPartSizes(),xy=this.readXY(),i=0,j=0,n;while(i0){sink.addPoint(xy[j++],xy[j++])}sink.endPath();i++}if(xy.length!=j)error("Counting error")},stream2:function(sink){var sizes=this.readPartSizes(),bin=this._data().skipBytes(this._xypos()),i=0,n;while(i0){sink.addPoint(bin.readFloat64(),bin.readFloat64())}sink.endPath();i++}},read:function(){var parts=[],sizes=this.readPartSizes(),points=this.readPoints();for(var i=0,n=sizes.length-1;i0){verbose("Skipped over "+skippedBytes+" non-data bytes in the .shp file.")}shpFile.close();reset()}return shape};function readNextShape(){var expectedId=recordCount+1;var shape,offset;if(done())return null;if(shxBin){shxBin.position(100+recordCount*8);offset=shxBin.readUint32()*2;if(offset>shpOffset){skippedBytes+=offset-shpOffset}}else{offset=shpOffset}shape=readShapeAtOffset(offset);if(!shape){shape=huntForNextShape(offset,expectedId)}if(shape){if(shape.idexpectedId){stop("Shapefile contains an out-of-sequence record. Possible data corruption -- bailing.")}recordCount++}return shape||null}function done(){if(shxFile&&shxFile.size()<=100+recordCount*8)return true;if(shpOffset+12>shpSize)return true;return false}function reset(){shpOffset=100;skippedBytes=0;recordCount=0}function parseHeader(bin){var header={signature:bin.bigEndian().readUint32(),byteLength:bin.skipBytes(20).readUint32()*2,version:bin.littleEndian().readUint32(),type:bin.readUint32(),bounds:bin.readFloat64Array(4),zbounds:bin.readFloat64Array(2),mbounds:bin.readFloat64Array(2)};if(header.signature!=9994){error("Not a valid .shp file")}if(!internal.isSupportedShapefileType(header.type)){error("Unsupported .shp type:",header.type)}if(header.byteLength!=shpFile.size()){error("File size of .shp doesn't match size in header")}return header}function readShapeAtOffset(offset){var shape=null,recordSize,recordType,recordId,goodSize,goodType,bin;if(offset+12<=shpSize){bin=shpFile.readToBinArray(offset,12);recordId=bin.bigEndian().readUint32();recordSize=bin.readUint32()*2+8;recordType=bin.littleEndian().readUint32();goodSize=offset+recordSize<=shpSize&&recordSize>=12;goodType=recordType===0||recordType==header.type;if(goodSize&&goodType){bin=shpFile.readToBinArray(offset,recordSize);shape=new RecordClass(bin,recordSize);shpOffset=offset+shape.byteLength}}return shape}function huntForNextShape(start,id){var offset=start+4,shape=null,bin,recordId,recordType,count;while(offset+12<=shpSize){bin=shpFile.readToBinArray(offset,12);recordId=bin.bigEndian().readUint32();recordType=bin.littleEndian().skipBytes(4).readUint32();if(recordId==id&&(recordType==header.type||recordType===0)){shape=readShapeAtOffset(offset);break}offset+=4}count=shape?offset-start:shpSize-start;skippedBytes+=count;return shape}}ShpReader.prototype.type=function(){return this.header().type};ShpReader.prototype.getCounts=function(){var counts={nullCount:0,partCount:0,shapeCount:0,pointCount:0};this.forEachShape(function(shp){if(shp.isNull)counts.nullCount++;counts.pointCount+=shp.pointCount;counts.partCount+=shp.partCount;counts.shapeCount++});return counts};internal.importShp=function(shp,shx,opts){var reader=new ShpReader(shp,shx),shpType=reader.type(),type=internal.translateShapefileType(shpType),importOpts=utils.defaults({type:type,reserved_points:Math.round(reader.header().byteLength/16)},opts),importer=new PathImporter(importOpts);if(!internal.isSupportedShapefileType(shpType)){stop("Unsupported Shapefile type:",shpType)}if(ShpType.isZType(shpType)){message("Warning: Shapefile Z data will be lost.")}else if(ShpType.isMType(shpType)){message("Warning: Shapefile M data will be lost.")}reader.forEachShape(function(shp){importer.startShape();if(shp.isNull){}else if(type=="point"){importer.importPoints(shp.readPoints())}else{shp.stream(importer)}});return importer.done()};internal.exportShapefile=function(dataset,opts){return dataset.layers.reduce(function(files,lyr){var prj=internal.exportPrjFile(lyr,dataset);files=files.concat(internal.exportShpAndShxFiles(lyr,dataset,opts));files=files.concat(internal.exportDbfFile(lyr,dataset,opts));if(prj)files.push(prj);return files},[])};internal.exportPrjFile=function(lyr,dataset){var info=dataset.info||{};var prj=info.prj;if(!prj){try{prj=internal.crsToPrj(internal.getDatasetCRS(dataset))}catch(e){}}if(!prj){message("Unable to generate .prj file for",lyr.name+".shp")}return prj?{content:prj,filename:lyr.name+".prj"}:null};internal.getShapefileExportType=function(lyr){var type=lyr.geometry_type;var shpType;if(type=="point"){shpType=internal.findMaxPartCount(lyr.shapes||[])<=1?ShpType.POINT:ShpType.MULTIPOINT}else if(type=="polygon"){shpType=ShpType.POLYGON}else if(type=="polyline"){shpType=ShpType.POLYLINE}else{shpType=ShpType.NULL}return shpType};internal.exportShpAndShxFiles=function(layer,dataset,opts){var shapes=layer.shapes||utils.initializeArray(new Array(internal.getFeatureCount(layer)),null);var bounds=new Bounds;var shpType=internal.getShapefileExportType(layer);var fileBytes=100;var shxBytes=100+shapes.length*8;var shxBin=new BinArray(shxBytes).bigEndian().position(100);var shpBin;var shapeBuffers=shapes.map(function(shape,i){var pathData=internal.exportPathData(shape,dataset.arcs,layer.geometry_type);var rec=internal.exportShpRecord(pathData,i+1,shpType);var recBytes=rec.buffer.byteLength;shxBin.writeInt32(fileBytes/2);shxBin.writeInt32(recBytes/2-4);fileBytes+=recBytes;if(rec.bounds)bounds.mergeBounds(rec.bounds);return rec.buffer});shpBin=new BinArray(fileBytes,false).writeInt32(9994).skipBytes(5*4).writeInt32(fileBytes/2).littleEndian().writeInt32(1e3).writeInt32(shpType);if(bounds.hasBounds()){shpBin.writeFloat64(bounds.xmin||0).writeFloat64(bounds.ymin||0).writeFloat64(bounds.xmax||0).writeFloat64(bounds.ymax||0)}else{shpBin.skipBytes(4*8)}shpBin.skipBytes(4*8);shapeBuffers.forEach(function(buf){shpBin.writeBuffer(buf)});shxBin.position(0).writeBuffer(shpBin.buffer(),100).position(24).writeInt32(shxBytes/2);return[{content:shpBin.buffer(),filename:layer.name+".shp"},{content:shxBin.buffer(),filename:layer.name+".shx"}]};internal.exportShpRecord=function(data,id,shpType){var multiPartType=ShpType.isMultiPartType(shpType),singlePointType=!multiPartType&&!ShpType.isMultiPointType(shpType),isNull=data.pointCount>0===false,bounds=isNull?null:data.bounds,bin=null;if(isNull){bin=new BinArray(12,false).writeInt32(id).writeInt32(2).littleEndian().writeInt32(0)}else if(singlePointType){bin=new BinArray(28,false).writeInt32(id).writeInt32(10).littleEndian().writeInt32(shpType).writeFloat64(data.pathData[0].points[0][0]).writeFloat64(data.pathData[0].points[0][1])}else{var partIndexIdx=52,pointsIdx=multiPartType?partIndexIdx+4*data.pathCount:48,recordBytes=pointsIdx+16*data.pointCount,pointCount=0;bin=new BinArray(recordBytes,false).writeInt32(id).writeInt32((recordBytes-8)/2).littleEndian().writeInt32(shpType).writeFloat64(bounds.xmin).writeFloat64(bounds.ymin).writeFloat64(bounds.xmax).writeFloat64(bounds.ymax);if(multiPartType){bin.writeInt32(data.pathCount)}bin.writeInt32(data.pointCount);data.pathData.forEach(function(path,i){if(multiPartType){bin.position(partIndexIdx+i*4).writeInt32(pointCount)}bin.position(pointsIdx+pointCount*16);for(var j=0,len=path.points.length;j>2]|=(s.charCodeAt(i)||128)<<8*(3-i++%4)}word_array[temp2=str_len+8>>2|15]=str_len<<3;for(;blockstart<=temp2;blockstart+=16){A=H;i=0;for(;i<80;A=[[(G=((s=A[0])<<5|s>>>27)+A[4]+(W[i]=i<16?~~word_array[blockstart+i]:G<<1|G>>>31)+1518500249)+((B=A[1])&(C=A[2])|~B&(D=A[3])),F=G+(B^C^D)+341275144,G+(B&C|B&D|C&D)+882459459,F+1535694389][0|i++/20]|0,s,B<<30|B>>>2,C,D]){G=W[i-3]^W[i-8]^W[i-14]^W[i-16]}for(i=5;i;)H[--i]=H[i]+A[i]|0}for(str1="";i<40;)str1+=(H[i>>3]>>(7-i++%8)*4&15).toString(16);return str1};SVG.embedImages=function(obj,symbols){if(internal.runningInBrowser())return;procNode(obj);function procNode(obj){if(obj.tag=="image"){if(/\.svg/.test(obj.properties.href||"")){embedSvgImage(obj)}}else if(obj.children){obj.children.forEach(procNode)}}function embedSvgImage(obj){var id=addImage(obj.properties.href);obj.tag="use";obj.properties.href="#"+id}function addImage(href){var item=utils.find(symbols,function(item){return item.href==href});if(!item){item={href:href,id:SVG.urlToId(href)};item.svg=convertSvg(getSvgFile(href),item.id)+"\n";symbols.push(item)}return item.id}function getSvgFile(href){var res,content,fs;if(href.indexOf("http")===0){res=require("sync-request")("GET",href,{timeout:1e3});content=res.getBody().toString()}else if(require("fs").existsSync(href)){content=require("fs").readFileSync(href,"utf8")}else{stop("Invalid SVG location:",href)}return content}function convertSvg(svg,id){svg=svg.replace(/[^]*]*>/,function(a){a=a.replace(/ id="[^"]*"/,"");a=a.replace(/"+joinStr;if(obj.value){svg+=obj.value}if(obj.children){svg+=obj.children.map(SVG.stringify).join(joinStr)}svg+=joinStr+""}else{svg+="/>"}return svg};SVG.stringEscape=function(){var rxp=/[&<>"']/g,map={"&":"&","<":"<",">":">",'"':""","'":"'"};return function(s){return String(s).replace(rxp,function(s){return map[s]})}}();SVG.stringifyProperties=function(o){return Object.keys(o).reduce(function(memo,key){var val=o[key],strval;if(!val&&val!==0)return memo;strval=utils.isString(val)?val:JSON.stringify(val);if(key=="href"){key="xlink:href"}return memo+" "+key+'="'+SVG.stringEscape(strval)+'"'},"")};SVG.stringifyVertex=function(p){return p[0]+" "+p[1]};SVG.stringifyCP=function(p){return p[2].toFixed(2)+" "+p[3].toFixed(2)};SVG.stringifyLineStringCoords=function(coords){var p1=coords[0];var d;if(coords.length===0){d=""}else if(coords.length==2&&coords[0].length==4&&coords[1].length==4){d=SVG.stringifyBezierArc(coords)}else{d="M "+coords.map(SVG.stringifyVertex).join(" ")}return d};SVG.stringifyBezierArc=function(coords){var p1=coords[0],p2=coords[1];return"M "+SVG.stringifyVertex(p1)+" C "+SVG.stringifyCP(p1)+" "+SVG.stringifyCP(p2)+" "+SVG.stringifyVertex(p2)};SVG.findArcCenter=function(p1,p2,degrees){var p3=[(p1[0]+p2[0])/2,(p1[1]+p2[1])/2],tan=1/Math.tan(degrees/180*Math.PI/2),cp=internal.getAffineTransform(90,tan,[0,0],p3)(p2[0],p2[1]);return cp};SVG.addBezierArcControlPoints=function(p1,p2,degrees){var cp=SVG.findArcCenter(p1,p2,degrees),xc=cp[0],yc=cp[1],ax=p1[0]-xc,ay=p1[1]-yc,bx=p2[0]-xc,by=p2[1]-yc,q1=ax*ax+ay*ay,q2=q1+ax*bx+ay*by;k2=4/3*(Math.sqrt(2*q1*q2)-q2)/(ax*by-ay*bx);p1.push(xc+ax-k2*ay);p1.push(yc+ay+k2*ax);p2.push(xc+bx+k2*by);p2.push(yc+by-k2*bx)};SVG.importGeoJSONFeatures=function(features,opts){opts=opts||{};return features.map(function(obj,i){var geom=obj.type=="Feature"?obj.geometry:obj;var geomType=geom&&geom.type;var svgObj=null;if(geomType&&geom.coordinates){svgObj=SVG.geojsonImporters[geomType](geom.coordinates,obj.properties,opts)}if(!svgObj){return{tag:"g"}}if(obj.properties){SVG.applyStyleAttributes(svgObj,geomType,obj.properties)}if("id"in obj){if(!svgObj.properties){svgObj.properties={}}svgObj.properties.id=(opts.id_prefix||"")+obj.id}return svgObj})};SVG.applyStyleAttributes=function(svgObj,geomType,rec){var symbolType=GeoJSON.translateGeoJSONType(geomType);if(symbolType=="point"&&"label-text"in rec){symbolType="label"}var fields=SVG.findPropertiesBySymbolGeom(Object.keys(rec),symbolType);for(var i=0,n=fields.length;i0?{tag:"g",children:children}:null};SVG.importMultiPath=function(coords,importer){var o;for(var i=0;i/i;var dx=rec.dx||0;var dy=rec.dy||0;var properties={y:dy,x:dx};if(p){properties.transform=SVG.getTransform(p)}if(newline.test(line)){morelines=line.split(newline);line=morelines.shift()}obj={tag:"text",value:line,properties:properties};if(morelines){obj.children=[];morelines.forEach(function(line){var tspan={tag:"tspan",value:line,properties:{x:dx,dy:rec["line-height"]||"1.1em"}};obj.children.push(tspan)})}return obj};SVG.importPoint=function(coords,rec,layerOpts){rec=rec||{};if("svg-symbol"in rec){return SVG.importSymbol(rec["svg-symbol"],coords)}return SVG.importStandardPoint(coords,rec,layerOpts||{})};SVG.importPolygon=function(coords){var d,o;for(var i=0;i0||!isLabel){if(symbolType=="square"){p={tag:"rect",properties:{x:coords[0]-halfSize,y:coords[1]-halfSize,width:halfSize*2,height:halfSize*2}}}else{p={tag:"circle",properties:{cx:coords[0],cy:coords[1]}};if(halfSize>0){p.properties.r=halfSize}}children.push(p)}if(isLabel){children.push(SVG.importLabel(rec,coords))}return children.length>1?{tag:"g",children:children}:children[0]};SVG.geojsonImporters={Point:SVG.importPoint,Polygon:SVG.importPolygon,LineString:SVG.importLineString,MultiPoint:function(coords,rec,opts){return SVG.importMultiPoint(coords,rec,opts)},MultiLineString:function(coords){return SVG.importMultiPath(coords,SVG.importLineString)},MultiPolygon:function(coords){return SVG.importMultiPath(coords,SVG.importPolygon)}};internal.exportSVG=function(dataset,opts){var template='\n\n%s\n';var namespace='xmlns="http://www.w3.org/2000/svg"';var symbols=[];var size,svg;if(opts.final){if(dataset.arcs)dataset.arcs.flatten()}else{dataset=internal.copyDataset(dataset)}utils.extend(opts,{invert_y:true});size=internal.transformCoordsForSVG(dataset,opts);if(opts.svg_data)internal.validateSvgDataFields(dataset.layers,opts.svg_data);svg=dataset.layers.map(function(lyr){var obj=internal.exportLayerForSVG(lyr,dataset,opts);SVG.embedImages(obj,symbols);return SVG.stringify(obj)}).join("\n");if(symbols.length>0){namespace+=' xmlns:xlink="http://www.w3.org/1999/xlink"';svg="\n"+utils.pluck(symbols,"svg").join("")+"\n"+svg}svg=utils.format(template,namespace,size[0],size[1],0,0,size[0],size[1],svg);return[{content:svg,filename:opts.file||utils.getOutputFileBase(dataset)+".svg"}]};internal.transformCoordsForSVG=function(dataset,opts){var size=internal.transformDatasetToPixels(dataset,opts);var precision=opts.precision||1e-4;internal.setCoordinatePrecision(dataset,precision);return size};internal.exportLayerForSVG=function(lyr,dataset,opts){var layerObj=internal.getEmptyLayerForSVG(lyr,opts);if(internal.layerHasFurniture(lyr)){layerObj.children=internal.exportFurnitureForSVG(lyr,dataset,opts)}else{layerObj.children=internal.exportSymbolsForSVG(lyr,dataset,opts)}return layerObj};internal.exportFurnitureForSVG=function(lyr,dataset,opts){var frameLyr=internal.findFrameLayerInDataset(dataset);var frameData;if(!frameLyr)return[];frameData=internal.getFurnitureLayerData(frameLyr);frameData.crs=internal.getDatasetCRS(dataset);return SVG.importFurniture(internal.getFurnitureLayerData(lyr),frameData)};internal.exportSymbolsForSVG=function(lyr,dataset,opts){var d=utils.defaults({layers:[lyr]},dataset);var geojson=internal.exportDatasetAsGeoJSON(d,opts);var features=geojson.features||geojson.geometries||(geojson.type?[geojson]:[]);var children=SVG.importGeoJSONFeatures(features,opts);var data;if(opts.svg_data&&lyr.data){internal.addDataAttributesToSVG(children,lyr.data,opts.svg_data)}return children};internal.validateSvgDataFields=function(layers,fieldsArg){var missingFields=fieldsArg.reduce(function(memo,field){if(!fieldExists(layers,field)){memo.push(field)}return memo},[]);if(missingFields.length&&missingFields.indexOf("*")==-1){stop("Missing data field(s):",missingFields.join(", "))}function fieldExists(layers,field){return utils.some(layers,function(lyr){return lyr.data&&lyr.data.fieldExists(field)||false})}};internal.addDataAttributesToSVG=function(children,table,fieldsArg){var allFields=table.getFields();var dataFields=fieldsArg.indexOf("*")>-1?allFields.concat():fieldsArg;var missingFields=utils.difference(dataFields,allFields);if(missingFields.length>0){dataFields=utils.difference(dataFields,missingFields)}var records=table.getRecords();var data=internal.exportDataAttributesForSVG(records,dataFields);if(children.length!=data.length){error("Mismatch between number of SVG symbols and data attributes")}children.forEach(function(child,i){utils.extend(child.properties||{},data[i])})};internal.exportDataAttributesForSVG=function(records,fields){var validRxp=/^[a-z_][a-z0-9_-]*$/i;var invalidRxp=/^xml/;var validFields=fields.filter(function(name){return validRxp.test(name)&&!invalidRxp.test(name)});var invalidFields=utils.difference(fields,validFields);if(invalidFields.length>0){message("Unable to add data-* attributes for field(s):",invalidFields.join(", "));message("data-* names should match pattern [a-z_][a-z0-9_-]*")}return records.map(function(rec){var obj={};for(var i=0;i1){datasets=[internal.mergeDatasetsForExport(datasets)];if(format=="topojson"){api.buildTopology(datasets[0])}opts=utils.defaults({final:true},opts)}}else{datasets=datasets.map(internal.copyDatasetForRenaming);internal.assignUniqueLayerNames2(datasets)}files=datasets.reduce(function(memo,dataset){if(internal.runningInBrowser()){utils.sortOn(dataset.layers,"stack_id",true)}else{utils.sortOn(dataset.layers,"target_id",true)}return memo.concat(internal.exportFileContent(dataset,opts))},[]);internal.assignUniqueFileNames(files);return files};internal.exportFileContent=function(dataset,opts){var outFmt=opts.format=internal.getOutputFormat(dataset,opts),exporter=internal.exporters[outFmt],files=[];if(!outFmt){error("Missing output format")}else if(!exporter){error("Unknown output format:",outFmt)}dataset=utils.defaults({layers:dataset.layers.map(function(lyr){return utils.extend({},lyr)})},dataset);if(opts.file&&outFmt!="topojson"&&outFmt!="svg"){dataset.layers.forEach(function(lyr){lyr.name=utils.getFileBase(opts.file)})}internal.assignUniqueLayerNames(dataset.layers);if(opts.precision&&outFmt!="svg"&&outFmt!="geojson"&&outFmt!="topojson"){dataset=internal.copyDatasetForExport(dataset);internal.setCoordinatePrecision(dataset,opts.precision)}if(opts.cut_table){files=internal.exportDataTables(dataset.layers,opts).concat(files)}if(opts.extension){opts.extension=internal.fixFileExtension(opts.extension,outFmt)}internal.validateLayerData(dataset.layers);files=exporter(dataset,opts).concat(files);if(opts.bbox_index){files.push(internal.createIndexFile(dataset))}internal.validateFileNames(files);return files};internal.exporters={geojson:internal.exportGeoJSON,topojson:internal.exportTopoJSON,shapefile:internal.exportShapefile,dsv:internal.exportDelim,dbf:internal.exportDbf,json:internal.exportJSON,svg:internal.exportSVG};internal.createIndexFile=function(dataset){var index=dataset.layers.map(function(lyr){var bounds=internal.getLayerBounds(lyr,dataset.arcs);return{bbox:bounds.toArray(),name:lyr.name}});return{content:JSON.stringify(index),filename:"bbox-index.json"}};internal.validateLayerData=function(layers){layers.forEach(function(lyr){if(!lyr.geometry_type){if(lyr.shapes&&utils.some(lyr.shapes,function(o){return!!o})){error("A layer contains shape records and a null geometry type")}}else{if(!utils.contains(["polygon","polyline","point"],lyr.geometry_type)){error("A layer has an invalid geometry type:",lyr.geometry_type)}if(!lyr.shapes){error("A layer is missing shape data")}}})};internal.validateFileNames=function(files){var index={};files.forEach(function(file,i){var filename=file.filename;if(!filename)error("Missing a filename for file"+i);if(filename in index)error("Duplicate filename",filename);index[filename]=true})};internal.assignUniqueLayerNames=function(layers){var names=layers.map(function(lyr){return lyr.name||"layer"});var uniqueNames=utils.uniqifyNames(names);layers.forEach(function(lyr,i){lyr.name=uniqueNames[i]})};internal.assignUniqueLayerNames2=function(datasets){var layers=datasets.reduce(function(memo,dataset){return memo.concat(dataset.layers)},[]);internal.assignUniqueLayerNames(layers)};internal.assignUniqueFileNames=function(output){var names=output.map(function(o){return o.filename});var uniqnames=utils.uniqifyNames(names,internal.formatVersionedFileName);output.forEach(function(o,i){o.filename=uniqnames[i]})};internal.exportDataTables=function(layers,opts){var tables=[];layers.forEach(function(lyr){if(lyr.data){tables.push({content:JSON.stringify(lyr.data),filename:(lyr.name?lyr.name+"-":"")+"table.json"})}});return tables};internal.formatVersionedFileName=function(filename,i){var parts=filename.split(".");var ext,base;if(parts.length<2){return utils.formatVersionedName(filename,i)}ext=parts.pop();base=parts.join(".");return utils.formatVersionedName(base,i)+"."+ext};internal.fixFileExtension=function(ext,fmt){return ext.replace(/^\.+/,"")};api.evaluateEachFeature=function(lyr,arcs,exp,opts){var n=internal.getFeatureCount(lyr),compiled,filter;if(n>0&&!lyr.data){lyr.data=new DataTable(n)}if(opts&&opts.where){filter=internal.compileValueExpression(opts.where,lyr,arcs)}compiled=internal.compileFeatureExpression(exp,lyr,arcs,{context:internal.getStateVar("defs")});for(var i=0;i1)){stop("This command only supports targeting a single layer")}if(targets.length>1){stop("Targetting layers from multiple datasets is not supported")}if(targetType=="layer"){cmdDefn.command(target.layers[0],target.dataset,opts.options)}else if(targetType=="layers"){cmdDefn.command(target.layers,target.dataset,opts.options)}};internal.parseExternalCommand=function(name,cmdDefn,tokens){var parser=new CommandParser;var cmd=parser.command(name);(cmdDefn.options||[]).forEach(function(o){cmd.option(o.name,o)});var parsed=parser.parseArgv(["-"+name].concat(tokens));return parsed[0]};internal.identifyJSONString=function(str,opts){var maxChars=1e3;var fmt=null;if(str.length>maxChars)str=str.substr(0,maxChars);str=str.replace(/\s/g,"");if(opts&&opts.json_path){fmt="json"}else if(/^\[[{\]]/.test(str)){fmt="json"}else if(/"arcs":\[|"objects":\{|"transform":\{/.test(str)){fmt="topojson"}else if(/^\{"/.test(str)){fmt="geojson"}return fmt};internal.identifyJSONObject=function(o){var fmt=null;if(!o){}else if(o.type=="Topology"){fmt="topojson"}else if(o.type){fmt="geojson"}else if(utils.isArray(o)||o.json_path){fmt="json"}return fmt};internal.importGeoJSONFile=function(fileReader,opts){var importer=new GeoJSONParser(opts);new GeoJSONReader(fileReader).readObjects(importer.parseObject);return importer.done()};internal.importJSONFile=function(reader,opts){var str=internal.readFirstChars(reader,1e3);var type=internal.identifyJSONString(str,opts);var dataset,retn;if(type=="geojson"){dataset=internal.importGeoJSONFile(reader,opts);retn={dataset:dataset,format:"geojson"}}else{retn={content:reader.toString("utf8")}}reader.close();return retn};internal.importJSON=function(data,opts){var content=data.content,filename=data.filename,retn={filename:filename},reader;if(!content){reader=new FileReader(filename)}else if(content instanceof ArrayBuffer){if(content.byteLength<1e7){content=internal.bufferToString(utils.createBuffer(content))}else{reader=new BufferReader(content);content=null}}if(reader){data=internal.importJSONFile(reader,opts);if(data.dataset){retn.dataset=data.dataset;retn.format=data.format}else{content=data.content}}if(content){if(utils.isString(content)){try{content=JSON.parse(content)}catch(e){stop("JSON parsing error --",e.message)}}if(opts.json_path){content=internal.selectFromObject(content,opts.json_path);if(Array.isArray(content)===false){stop("Expected an array at JSON path:",opts.json_path)}}retn.format=internal.identifyJSONObject(content,opts);if(retn.format=="topojson"){retn.dataset=internal.importTopoJSON(content,opts)}else if(retn.format=="geojson"){retn.dataset=internal.importGeoJSON(content,opts)}else if(retn.format=="json"){retn.dataset=internal.importJSONTable(content,opts)}else{stop("Unknown JSON format")}}return retn};internal.selectFromObject=function(o,path){var arrayRxp=/(.*)\[([0-9]+)\]$/;var separator=path.indexOf("/")>0?"/":".";var parts=path.split(separator);var subpath,array,match;while(parts.length>0){subpath=parts.shift();match=arrayRxp.exec(subpath);if(match){array=o[match[1]];o=array&&array[+match[2]]||null}else{o=o[subpath]}if(!o)return null}return o};internal.importContent=function(obj,opts){var dataset,content,fileFmt,data;opts=opts||{};if(obj.json){data=internal.importJSON(obj.json,opts);fileFmt=data.format;dataset=data.dataset;internal.cleanPathsAfterImport(dataset,opts)}else if(obj.text){fileFmt="dsv";data=obj.text;dataset=internal.importDelim2(data,opts)}else if(obj.shp){fileFmt="shapefile";data=obj.shp;dataset=internal.importShapefile(obj,opts);internal.cleanPathsAfterImport(dataset,opts)}else if(obj.dbf){fileFmt="dbf";data=obj.dbf;dataset=internal.importDbf(obj,opts)}else if(obj.prj){fileFmt="prj";data=obj.prj;dataset={layers:[],info:{prj:data.content}}}if(!dataset){stop("Missing an expected input type")}if(dataset.arcs&&!opts.no_topology&&fileFmt!="topojson"){api.buildTopology(dataset)}if(fileFmt!="topojson"){dataset.layers.forEach(function(lyr){internal.setLayerName(lyr,internal.filenameToLayerName(data.filename||""))})}if(data.filename){dataset.info.input_files=[data.filename]}dataset.info.input_formats=[fileFmt];return dataset};internal.importFileContent=function(content,filename,opts){var type=internal.guessInputType(filename,content),input={};input[type]={filename:filename,content:content};return internal.importContent(input,opts)};internal.importShapefile=function(obj,opts){var shpSrc=obj.shp.content||obj.shp.filename,shxSrc=obj.shx?obj.shx.content||obj.shx.filename:null,dataset=internal.importShp(shpSrc,shxSrc,opts),lyr=dataset.layers[0],dbf;if(obj.dbf){dbf=internal.importDbf(obj,opts);utils.extend(dataset.info,dbf.info);lyr.data=dbf.layers[0].data;if(lyr.shapes&&lyr.data.size()!=lyr.shapes.length){message("Mismatched .dbf and .shp record count -- possible data loss.")}}if(obj.prj){dataset.info.prj=obj.prj.content}return dataset};internal.importDbf=function(input,opts){var table;opts=utils.extend({},opts);if(input.cpg&&!opts.encoding){opts.encoding=input.cpg.content}table=internal.importDbfTable(input.dbf.content,opts);return{info:{},layers:[{data:table}]}};internal.filenameToLayerName=function(path){var name="layer1";var obj=utils.parseLocalPath(path);if(obj.basename&&obj.extension){name=obj.basename}return name};internal.setLayerName=function(lyr,path){if(!lyr.name){lyr.name=utils.getFileBase(path)}};api.importFiles=function(opts){var files=opts.files||[],dataset;if(opts.stdin){return api.importFile("/dev/stdin",opts)}if(files.length>0===false){stop("Missing input file(s)")}verbose("Importing: "+files.join(" "));if(files.length==1){dataset=api.importFile(files[0],opts)}else if(opts.merge_files){dataset=internal.importFiles(files,opts);dataset.layers=api.mergeLayers(dataset.layers)}else if(opts.combine_files){dataset=internal.importFiles(files,opts)}else{stop("Invalid inputs")}return dataset};api.importFile=function(path,opts){var fileType=internal.guessInputFileType(path),input={},encoding=opts&&opts.encoding||null,cache=opts&&opts.input||null,cached=cache&&path in cache,content;cli.checkFileExists(path,cache);if(fileType=="shp"&&!cached){content=null}else if(fileType=="json"&&!cached){content=null}else if(fileType=="text"&&!cached){content=null}else if(fileType&&internal.isSupportedBinaryInputType(path)){content=cli.readFile(path,null,cache);if(utils.isString(content)){stop("Expected binary content, received a string")}}else if(fileType){content=cli.readFile(path,encoding||"utf-8",cache)}else{content=cli.readFile(path,encoding||"utf-8",cache);fileType=internal.guessInputContentType(content);if(fileType=="text"&&content.indexOf("\ufffd")>-1){fileType=null}}if(!fileType){stop(internal.getUnsupportedFileMessage(path))}input[fileType]={filename:path,content:content};content=null;if(fileType=="shp"||fileType=="dbf"){internal.readShapefileAuxFiles(path,input,cache)}if(fileType=="shp"&&!input.dbf){message(utils.format("[%s] .dbf file is missing - shapes imported without attribute data.",path))}return internal.importContent(input,opts)};internal.getUnsupportedFileMessage=function(path){var ext=utils.getFileExtension(path);var msg="Unable to import "+path;if(ext.toLowerCase()=="zip"){msg+=" (ZIP files must be unpacked before running mapshaper)"}else{msg+=" (unknown file type)"}return msg};internal.readShapefileAuxFiles=function(path,obj,cache){var dbfPath=utils.replaceFileExtension(path,"dbf");var shxPath=utils.replaceFileExtension(path,"shx");var cpgPath=utils.replaceFileExtension(path,"cpg");var prjPath=utils.replaceFileExtension(path,"prj");if(cli.isFile(prjPath,cache)){obj.prj={filename:prjPath,content:cli.readFile(prjPath,"utf-8",cache)}}if(cli.isFile(shxPath,cache)){obj.shx={filename:shxPath,content:cli.readFile(shxPath,null,cache)}}if(!obj.dbf&&cli.isFile(dbfPath,cache)){obj.dbf={filename:dbfPath,content:cli.readFile(dbfPath,null,cache)}}if(obj.dbf&&cli.isFile(cpgPath,cache)){obj.cpg={filename:cpgPath,content:cli.readFile(cpgPath,"utf-8",cache).trim()}}};internal.writeFiles=function(exports,opts,cb){if(exports.length>0===false){message("No files to save")}else if(opts.dry_run){}else if(opts.stdout){return cli.writeFile("/dev/stdout",exports[0].content,cb)}else{var paths=internal.getOutputPaths(utils.pluck(exports,"filename"),opts);var inputFiles=internal.getStateVar("input_files");exports.forEach(function(obj,i){var path=paths[i];if(obj.content instanceof ArrayBuffer){obj.content=cli.convertArrayBuffer(obj.content)}if(opts.output){opts.output.push({filename:path,content:obj.content})}else{if(!opts.force&&inputFiles.indexOf(path)>-1){stop('Need to use the "-o force" option to overwrite input files.')}cli.writeFile(path,obj.content);message("Wrote "+path)}})}if(cb)cb(null)};internal.getOutputPaths=function(files,opts){var odir=opts.directory;if(odir){files=files.map(function(file){return require("path").join(odir,file)})}return files};api.filterFields=function(lyr,names){var table=lyr.data;names=names||[];internal.requireDataFields(table,names);if(!table)return;var map=internal.mapFieldNames(names);lyr.data.update(internal.getRecordMapper(map))};api.renameFields=function(lyr,names){var map=internal.mapFieldNames(names);internal.requireDataFields(lyr.data,Object.keys(map));utils.defaults(map,internal.mapFieldNames(lyr.data.getFields()));lyr.data.update(internal.getRecordMapper(map))};internal.mapFieldNames=function(names){return(names||[]).reduce(function(memo,str){var parts=str.split("="),dest=utils.trimQuotes(parts[0]),src=parts.length>1?utils.trimQuotes(parts[1]):dest;if(!src||!dest)stop("Invalid field description:",str);memo[src]=dest;return memo},{})};internal.getRecordMapper=function(map){var fields=Object.keys(map);return function(src){var dest={},key;for(var i=0,n=fields.length;i=0){fwdArcIndex[arcId]=id}else{revArcIndex[~arcId]=id}};this.getId=function(arcId){var i=absArcId(arcId);if(i0===false)return null;if(opts.aspect_ratio){bounds=internal.applyAspectRatio(opts.aspect_ratio,bounds)}if(isGeoBox){bounds=internal.clampToWorldBounds(bounds)}return bounds};internal.applyAspectRatio=function(opt,bounds){var range=String(opt).split(",").map(parseFloat),aspectRatio=bounds.width()/bounds.height(),min,max;if(range.length==1){range.push(range[0])}else if(range[0]>range[1]){range.reverse()}min=range[0];max=range[1];if(!min&&!max)return bounds;if(!min)min=-Infinity;if(!max)max=Infinity;if(aspectRatiomax){bounds.fillOut(max)}return bounds};internal.applyBoundsOffset=function(offsetOpt,bounds,crs){var offsets=internal.convertFourSides(offsetOpt,crs,bounds);bounds.padBounds(offsets[0],offsets[1],offsets[2],offsets[3]);return bounds};internal.convertBboxToGeoJSON=function(bbox,opts){var coords=[[bbox[0],bbox[1]],[bbox[0],bbox[3]],[bbox[2],bbox[3]],[bbox[2],bbox[1]],[bbox[0],bbox[1]]];return{type:"Polygon",coordinates:[coords]}};api.frame=function(catalog,source,opts){var size,bounds,tmp,dataset;if(+opts.width>0===false&&+opts.pixels>0===false){stop("Missing a width or area")}if(opts.width&&opts.height){opts=utils.extend({},opts);opts.aspect_ratio=internal.getAspectRatioArg(opts.width,opts.height)}tmp=api.rectangle(source,opts);bounds=internal.getDatasetBounds(tmp);if(internal.probablyDecimalDegreeBounds(bounds)){stop("Frames require projected, not geographical coordinates")}else if(!internal.getDatasetCRS(tmp)){message("Warning: missing projection data. Assuming coordinates are meters and k (scale factor) is 1")}size=internal.getFrameSize(bounds,opts);if(size[0]>0===false){stop("Missing a valid frame width")}if(size[1]>0===false){stop("Missing a valid frame height")}dataset={info:{},layers:[{name:opts.name||"frame",data:new DataTable([{width:size[0],height:size[1],bbox:bounds.toArray(),type:"frame"}])}]};catalog.addDataset(dataset)};internal.getAspectRatioArg=function(widthArg,heightArg){return heightArg.split(",").map(function(opt){var height=Number(opt),width=Number(widthArg);if(!opt)return"";return width/height}).reverse().join(",")};internal.getFrameSize=function(bounds,opts){var aspectRatio=bounds.width()/bounds.height();var height,width;if(opts.pixels){width=Math.sqrt(+opts.pixels*aspectRatio)}else{width=+opts.width}height=width/aspectRatio;return[Math.round(width),Math.round(height)]};internal.getDatasetDisplayBounds=function(dataset){var frameLyr=findFrameLayerInDataset(dataset);if(frameLyr){return internal.getFrameLayerBounds(frameLyr)}return internal.getDatasetBounds(dataset)};internal.isFrameLayer=function(lyr){return internal.getFurnitureLayerType(lyr)=="frame"};internal.findFrameLayerInDataset=function(dataset){return utils.find(dataset.layers,function(lyr){return internal.isFrameLayer(lyr)})};internal.findFrameDataset=function(catalog){var target=utils.find(catalog.getLayers(),function(o){return internal.isFrameLayer(o.layer)});return target?target.dataset:null};internal.findFrameLayer=function(catalog){var target=utils.find(catalog.getLayers(),function(o){return internal.isFrameLayer(o.layer)});return target&&target.layer||null};internal.getFrameLayerBounds=function(lyr){return new Bounds(internal.getFurnitureLayerData(lyr).bbox)};internal.getMapFrameMetersPerPixel=function(data){var bounds=new Bounds(data.bbox);var k,toMeters,metersPerPixel;if(data.crs){k=internal.getScaleFactorAtXY(bounds.centerX(),bounds.centerY(),data.crs);toMeters=data.crs.to_meter}else{k=1;toMeters=1}metersPerPixel=bounds.width()/k*toMeters/data.width;return metersPerPixel};SVG.furnitureRenderers.frame=function(d){var lineWidth=1,off=lineWidth/2,obj=SVG.importPolygon([[[off,off],[off,d.height-off],[d.width-off,d.height-off],[d.width-off,off],[off,off]]]);utils.extend(obj.properties,{fill:"none",stroke:d.stroke||"black","stroke-width":d["stroke-width"]||lineWidth});return[obj]};api.fuzzyJoin=function(polygonLyr,arcs,src,opts){var pointLyr=src?src.layer:null;if(!pointLyr||!internal.layerHasPoints(pointLyr)){stop("Missing a point layer to join from")}internal.requireDataField(pointLyr,opts.field);internal.requirePolygonLayer(polygonLyr);if(opts.dedup_points){api.uniq(pointLyr,null,{expression:'this.x + "~" + this.y + "~" + this.properties['+JSON.stringify(opts.field)+"]",verbose:false})}internal.fuzzyJoin(polygonLyr,arcs,pointLyr,opts)};internal.fuzzyJoin=function(polygonLyr,arcs,pointLyr,opts){var field=opts.field;var getPointIds=internal.getPolygonToPointsFunction(polygonLyr,arcs,pointLyr,{first_match:true});var getFieldValues=internal.getFieldValuesFunction(pointLyr,field);var assignedValues=[];var countData=[];var modeCounts=[];polygonLyr.shapes.forEach(function(shp,i){var pointIds=getPointIds(i)||[];var values=getFieldValues(pointIds);var modeData=internal.getModeData(values,true);var modeValue=modeData.margin>0?modeData.modes[0]:null;var isTie=modeValue===null&&modeData.modes.length>1;if(isTie){modeValue=internal.resolveFuzzyJoinTie(modeData.modes,pointLyr,pointIds,field,shp,arcs)}modeCounts[i]=modeData.count||0;if(opts.no_dropouts){countData.push(modeData)}assignedValues.push(modeValue)});internal.insertFieldValues(polygonLyr,"join-count",modeCounts);internal.insertFieldValues(polygonLyr,field,assignedValues);api.dataFill(polygonLyr,arcs,{field:field,weight_field:"join-count",contiguous:opts.contiguous});if(opts.no_dropouts){var missingValues=internal.findDropoutValues(polygonLyr,pointLyr,field);if(missingValues.length>0){restoreDropoutValues(polygonLyr,field,missingValues,countData)}}};internal.getFieldValuesFunction=function(lyr,field){var records=lyr.data.getRecords();return function getFieldValues(ids){var values=[],rec;for(var i=0;i-1&&restoredIds.indexOf(shpId)===-1){records[shpId][field]=missingValue;restoredIds.push(shpId)}else{failures.push(missingValue)}});message("Restored",restoredIds.length,"dropout value"+utils.pluralSuffix(restoredIds.length));if(failures.length>0){message("Failed to restore dropout value(s):",failures.join(", "))}}internal.findDropoutInsertionShape=function(value,countData){var id=-1;var count=0;countData.forEach(function(d,shpId){var i=d.values.indexOf(value);var n=i>-1?d.counts[i]:0;if(n>count){id=shpId;count=n}});return id};internal.getPointsToPolygonDistance=function(points,poly,arcs){var p=points[0];return geom.getPointToShapeDistance(p[0],p[1],poly,arcs)};internal.resolveFuzzyJoinTie=function(modeValues,pointLyr,pointIds,field,shp,arcs){var weights=modeValues.map(function(){return 0});pointIds.forEach(function(pointId){var coords=pointLyr.shapes[pointId];var val=pointLyr.data.getRecordAt(pointId)[field];var i=modeValues.indexOf(val);if(i===-1)return;var dist=internal.getPointsToPolygonDistance(coords,shp,arcs);weights[i]+=dist});var maxWeight=Math.max.apply(null,weights);var maxValue=modeValues[weights.indexOf(maxWeight)];return maxValue};api.graticule=function(dataset,opts){var graticule=internal.createGraticule(opts);var dest,src;if(dataset){dest=internal.getDatasetCRS(dataset);src=internal.getCRS("wgs84");if(!dest)stop("Coordinate system is unknown, unable to create a graticule");internal.projectDataset(graticule,src,dest,{})}return graticule};internal.createGraticule=function(opts){var precision=1;var step=10;var majorStep=90;var xn=Math.round(360/step)+1;var yn=Math.round(180/step)+1;var xx=utils.range(xn,-180,step);var yy=utils.range(yn,-90,step);var meridians=xx.map(function(x){var ymin=-90,ymax=90;if(x%majorStep!==0){ymin+=step;ymax-=step}return internal.createMeridian(x,ymin,ymax,precision)});var parallels=yy.map(function(y){return internal.createParallel(y,-180,180,precision)});var geojson={type:"FeatureCollection",features:meridians.concat(parallels)};var graticule=internal.importGeoJSON(geojson,{});graticule.layers[0].name="graticule";return graticule};internal.graticuleFeature=function(coords,o){return{type:"Feature",properties:o,geometry:{type:"LineString",coordinates:coords}}};internal.createMeridian=function(x,ymin,ymax,precision){var coords=[];for(var y=ymin;y0)rings++;if(area<0)holes++});return{rings:rings,holes:holes}};internal.getLayerInfo=function(lyr,dataset){var data=internal.getLayerData(lyr,dataset);var str="";str+="Type: "+(data.geometry_type||"tabular data")+"\n";str+=utils.format("Records: %,d\n",data.feature_count);if(data.null_shape_count>0){str+=utils.format("Nulls: %'d",data.null_shape_count)+"\n"}if(data.geometry_type&&data.feature_count>data.null_shape_count){str+="Bounds: "+data.bbox.join(",")+"\n";str+="CRS: "+data.proj4+"\n"}str+="Source: "+(internal.getLayerSourceFile(lyr,dataset)||"n/a")+"\n";return str};internal.getAttributeTableInfo=function(lyr,i){if(!lyr.data||lyr.data.size()===0||lyr.data.getFields().length===0){return"Attribute data: [none]\n"}return"\nAttribute data\n"+internal.formatAttributeTable(lyr.data,i)};internal.formatAttributeTable=function(data,i){var fields=internal.applyFieldOrder(data.getFields(),"ascending");var vals=fields.map(function(fname){return data.getReadOnlyRecordAt(i||0)[fname]});var maxIntegralChars=vals.reduce(function(max,val){if(utils.isNumber(val)){max=Math.max(max,internal.countIntegralChars(val))}return max},0);var col1Arr=["Field"].concat(fields);var col2Arr=vals.reduce(function(memo,val){memo.push(internal.formatTableValue(val,maxIntegralChars));return memo},[i>=0?"Value":"First value"]);var col1Chars=internal.maxChars(col1Arr);var col2Chars=internal.maxChars(col2Arr);var sepStr=(utils.rpad("",col1Chars+2,"-")+"+"+utils.rpad("",col2Chars+2,"-")).substr(0,MAX_RULE_LEN);var sepLine=sepStr+"\n";var table=sepLine;col1Arr.forEach(function(col1,i){table+=" "+utils.rpad(col1,col1Chars," ")+" | "+col2Arr[i]+"\n";if(i===0)table+=sepLine});return table+sepLine};internal.formatNumber=function(val){return val+""};internal.maxChars=function(arr){return arr.reduce(function(memo,str){return str.length>memo?str.length:memo},0)};internal.formatString=function(str){var replacements={"\n":"\\n","\r":"\\r","\t":"\\t"};var cleanChar=function(c){return c in replacements?replacements[c]:""};str=str.replace(/[\r\t\n]/g,cleanChar);return"'"+str+"'"};internal.countIntegralChars=function(val){return utils.isNumber(val)?(internal.formatNumber(val)+".").indexOf("."):0};internal.formatTableValue=function(val,integralChars){var str;if(utils.isNumber(val)){str=utils.lpad("",integralChars-internal.countIntegralChars(val)," ")+internal.formatNumber(val)}else if(utils.isString(val)){str=internal.formatString(val)}else if(utils.isObject(val)){str=JSON.stringify(val)}else{str=String(val)}return str};internal.getSimplificationInfo=function(arcs){var nodeCount=new NodeCollection(arcs).size();var internalVertexCount=internal.countInteriorVertices(arcs)};internal.countInteriorVertices=function(arcs){var count=0;arcs.forEach2(function(i,n){if(n>2){count+=n-2}});return count};api.lines=function(lyr,dataset,opts){opts=opts||{};if(lyr.geometry_type=="point"){return internal.pointsToLines(lyr,dataset,opts)}else if(opts.segments){return[internal.convertShapesToSegments(lyr,dataset)]}else if(opts.arcs){return[internal.convertShapesToArcs(lyr,dataset)]}else if(lyr.geometry_type=="polygon"){return internal.polygonsToLines(lyr,dataset.arcs,opts)}else{internal.requirePolygonLayer(lyr,"Command requires a polygon or point layer")}};internal.convertShapesToArcs=function(lyr,dataset){var arcs=dataset.arcs;var test=internal.getArcPresenceTest(lyr.shapes,arcs);var records=[];var shapes=[];for(var i=0,n=arcs.size();i1?internal.pointShapesToLineGeometry(shapes):null}});return{type:"FeatureCollection",features:features}};internal.pointShapesToLineGeometry=function(shapes){var coords=[];internal.forEachPoint(shapes,function(p){coords.push(p.concat())});return{type:"LineString",coordinates:coords}};internal.polygonsToLines=function(lyr,arcs,opts){opts=opts||{};var filter=opts.where?internal.compileFeaturePairFilterExpression(opts.where,lyr,arcs):null,decorateRecord=opts.each?internal.getLineRecordDecorator(opts.each,lyr,arcs):null,classifier=internal.getArcClassifier(lyr.shapes,arcs,{filter:filter}),fields=utils.isArray(opts.fields)?opts.fields:[],rankId=0,shapes=[],records=[],outputLyr;if(fields.length>0&&!lyr.data){stop("Missing a data table")}addLines(internal.extractOuterLines(lyr.shapes,classifier),"outer");fields.forEach(function(field){var data=lyr.data.getRecords();var key=function(a,b){var arec=data[a];var brec=data[b];var aval,bval;if(!arec||!brec||arec[field]===brec[field]){return null}return a+"-"+b};internal.requireDataField(lyr,field);addLines(internal.extractLines(lyr.shapes,classifier(key)),field)});addLines(internal.extractInnerLines(lyr.shapes,classifier),"inner");outputLyr=internal.createLineLayer(shapes,records);outputLyr.name=opts.no_replace?null:lyr.name;return outputLyr;function addLines(lines,typeName){var attr=lines.map(function(shp,i){var rec={RANK:rankId,TYPE:typeName};if(decorateRecord)decorateRecord(rec,shp);return rec});shapes=utils.merge(lines,shapes);records=utils.merge(attr,records);rankId++}};internal.getLineRecordDecorator=function(exp,lyr,arcs){var procArcId=internal.getArcClassifier(lyr.shapes,arcs)(procShapeIds);var compiled=internal.compileFeaturePairExpression(exp,lyr,arcs);var tmp;function procShapeIds(shpA,shpB){compiled(shpA,shpB,tmp)}return function(rec,shp){tmp=rec;procArcId(shp[0][0]);return rec}};internal.createLineLayer=function(lines,records){return{geometry_type:"polyline",shapes:lines,data:records?new DataTable(records):null}};internal.extractOuterLines=function(shapes,classifier){var key=function(a,b){return b==-1?String(a):null};return internal.extractLines(shapes,classifier(key))};internal.extractInnerLines=function(shapes,classifier){var key=function(a,b){return b>-1?a+"-"+b:null};return internal.extractLines(shapes,classifier(key))};internal.extractLines=function(shapes,classify){var lines=[],index={},prev=null,prevKey=null,part;internal.traversePaths(shapes,onArc,onPart);function onArc(o){var arcId=o.arcId,key=classify(arcId),isContinuation,line;if(!!key){line=key in index?index[key]:null;isContinuation=key==prevKey&&o.shapeId==prev.shapeId&&o.partId==prev.partId;if(!line){line=[[arcId]];index[key]=line;lines.push(line)}else if(isContinuation){line[line.length-1].push(arcId)}else{line.push([arcId])}if(o.i==part.arcs.length-1&&line.length>1&&line[0][0]==part.arcs[0]){line[0]=line.pop().concat(line[0])}}prev=o;prevKey=key}function onPart(o){part=o}return lines};api.innerlines=function(lyr,arcs,opts){opts=opts||{};internal.requirePolygonLayer(lyr);var filter=opts.where?internal.compileFeaturePairFilterExpression(opts.where,lyr,arcs):null;var classifier=internal.getArcClassifier(lyr.shapes,arcs,{filter:filter});var lines=internal.extractInnerLines(lyr.shapes,classifier);var outputLyr=internal.createLineLayer(lines,null);if(lines.length===0){message("No shared boundaries were found")}outputLyr.name=opts.no_replace?null:lyr.name;return outputLyr};api.inspect=function(lyr,arcs,opts){var ids=internal.selectFeatures(lyr,arcs,opts);var msg;if(ids.length==1){msg=internal.getFeatureInfo(ids[0],lyr,arcs)}else{msg=utils.format("Expression matched %d feature%s. Select one feature for details",ids.length,utils.pluralSuffix(ids.length))}message(msg)};internal.getFeatureInfo=function(id,lyr,arcs){var msg="Feature "+id+"\n";msg+=internal.getShapeInfo(id,lyr,arcs);msg+=internal.getAttributeTableInfo(lyr,id);return msg};internal.getShapeInfo=function(id,lyr,arcs){var shp=lyr.shapes?lyr.shapes[id]:null;var type=lyr.geometry_type;var info,msg;if(!shp||!type){return"Geometry: [null]\n"}msg="Geometry\n Type: "+type+"\n";if(type=="point"){msg+=" Points: "+shp.length+"\n"}else if(type=="polyline"){msg+=" Parts: "+shp.length+"\n"}else if(type=="polygon"){info=internal.getPolygonInfo(shp,arcs);msg+=utils.format(" Rings: %d cw, %d ccw\n",info.cw,info.ccw);msg+=" Planar area: "+info.area+"\n";if(info.sph_area){msg+=" Spherical area: "+info.sph_area+" sq. meters\n"}}return msg};internal.getPolygonInfo=function(shp,arcs){var o={rings:shp.length,cw:0,ccw:0,area:0};var area;for(var i=0;i0){o.cw++}else if(area<0){o.ccw++}o.area+=area}if(!arcs.isPlanar()){o.sph_area=geom.getSphericalShapeArea(shp,arcs)}return o};internal.selectFeatures=function(lyr,arcs,opts){var n=internal.getFeatureCount(lyr),ids=[],filter;if(!opts.expression){stop("Missing a JS expression for selecting a feature")}filter=internal.compileValueExpression(opts.expression,lyr,arcs);utils.repeat(n,function(id){var result=filter(id);if(result===true){ids.push(id)}else if(result!==false){stop("Expression must return true or false")}});return ids};function PointIndex(shapes,opts){var buf=utils.isNonNegNumber(opts.buffer)?opts.buffer:.001;var minDistSq,minId,target;this.findNearestPointFeature=function(shape){minDistSq=Infinity;minId=-1;target=shape||[];internal.forEachPoint(shapes,testPoint);return minId};function testPoint(p,id){var distSq;for(var i=0;i-1?[srcId]:null}};internal.getPolygonToPointsFunction=function(polygonLyr,arcs,pointLyr,opts){var joinFunction=internal.getPointToPolygonsFunction(pointLyr,polygonLyr,arcs,opts);var index=[];var firstMatch=!!opts.first_match;var hits,polygonId;pointLyr.shapes.forEach(function(shp,pointId){var polygonIds=joinFunction(pointId);var n=polygonIds?polygonIds.length:0;var polygonId;for(var i=0;i0?polygonIds:null}};internal.getPointToPolygonFunction=function(pointLyr,polygonLyr,arcs,opts){var index=new PathIndex(polygonLyr.shapes,arcs),points=pointLyr.shapes;return function(i){var shp=points[i],shpId=-1;if(shp){shpId=index.findEnclosingShape(shp[0])}return shpId==-1?null:[shpId]}};internal.joinPolygonsViaPoints=function(targetLyr,targetDataset,source,opts){var sourceLyr=source.layer,sourceDataset=source.dataset,pointLyr,retn;if(targetLyr.shapes.length>sourceLyr.shapes.length){pointLyr=internal.pointsFromPolygonsForJoin(targetLyr,targetDataset);retn=api.joinPolygonsToPoints(pointLyr,sourceLyr,sourceDataset.arcs,opts);targetLyr.data=pointLyr.data}else{pointLyr=internal.pointsFromPolygonsForJoin(sourceLyr,sourceDataset);retn=api.joinPointsToPolygons(targetLyr,targetDataset.arcs,pointLyr,opts)}return retn};internal.pointsFromPolygonsForJoin=function(lyr,dataset){return{geometry_type:"point",shapes:internal.pointsFromPolygons(lyr,dataset.arcs,{inner:true}),data:lyr.data}};api.union=function(targetLayers,targetDataset,opts){if(targetLayers.length<2){stop("Command requires at least two target layers")}var allFields=[];var allShapes=[];var layerData=[];targetLayers.forEach(function(lyr,i){internal.requirePolygonLayer(lyr);var fields=lyr.data?lyr.data.getFields():[];if(opts.fields){fields=opts.fields.indexOf("*")>1?fields:fields.filter(function(name){return opts.fields.indexOf(name)>-1})}layerData.push({layer:lyr,fields:fields,records:lyr.data?lyr.data.getRecords():null,offset:allShapes.length,size:lyr.shapes.length});allFields=allFields.concat(fields);allShapes=allShapes.concat(lyr.shapes)});var unionFields=utils.uniqifyNames(allFields,function(name,n){return name+"_"+n});var mergedLyr={geometry_type:"polygon",shapes:allShapes};var nodes=internal.addIntersectionCuts(targetDataset,opts);var mosaicIndex=new MosaicIndex(mergedLyr,nodes,{flat:false});var mosaicShapes=mosaicIndex.mosaic;var mosaicRecords=mosaicShapes.map(function(shp,i){var mergedIds=mosaicIndex.getSourceIdsByTileId(i);var values=[];var lyrInfo,srcId,rec;for(var lyrId=0,n=layerData.length;lyrId=offset&&mergedId-1){continue}tileRec.weight=tileRec.area/shapeArea;tileRec.sourceId=sourceId}});destLyr.data.getRecords().forEach(function(destRec,destId){var sourceRecords=sourceLyr.data.getRecords();var tileIds=mosaicIndex.getTileIdsByShapeId(destId);var tileRecords=[],i,field;for(i=0;i=0&&id0?sourceIds.concat(tmp):tmp}sourceIds=utils.uniq(sourceIds);return sourceIds}};internal.joinPolygonsToPolygons=function(targetLyr,targetDataset,source,opts){if(opts.point_method){return internal.joinPolygonsViaPoints(targetLyr,targetDataset,source,opts)}else{return internal.joinPolygonsViaMosaic(targetLyr,targetDataset,source,opts)}};internal.getJoinFilter=function(data,exp){var test=internal.getJoinFilterTestFunction(exp,data);var calc=null;if(internal.expressionHasCalcFunction(exp)){calc=internal.getJoinFilterCalcFunction(exp,data)}return function(srcIds,destRec){var d=calc?calc(srcIds):null;var filtered=[],retn,i;for(i=0;i-1})};internal.getJoinFilterCalcFunction=function(exp,data){var values,counts,max,min,context,calc,n;context={isMax:function(val){if(val>max)max=val},isMin:function(val){if(val-1}};Object.defineProperty(context,"target",{get:function(){return destRec},enumerable:true});test=internal.compileFeatureExpression(exp,{data:data},null,{context:context,returns:true});return function(srcId,destR,calcR){calcRec=calcR;destRec=destR;return test(srcId)}};api.join=function(targetLyr,dataset,src,opts){var srcType,targetType,retn;if(!src||!src.layer.data||!src.dataset){stop("Missing a joinable data source")}if(opts.keys){if(opts.keys.length!=2){stop("Expected two key fields: a target field and a source field")}retn=api.joinAttributesToFeatures(targetLyr,src.layer.data,opts)}else{srcType=src.layer.geometry_type;targetType=targetLyr.geometry_type;if(srcType=="point"&&targetType=="polygon"){retn=api.joinPointsToPolygons(targetLyr,dataset.arcs,src.layer,opts)}else if(srcType=="polygon"&&targetType=="point"){retn=api.joinPolygonsToPoints(targetLyr,src.layer,src.dataset.arcs,opts)}else if(srcType=="point"&&targetType=="point"){retn=api.joinPointsToPoints(targetLyr,src.layer,opts)}else if(srcType=="polygon"&&targetType=="polygon"){retn=internal.joinPolygonsToPolygons(targetLyr,dataset,src,opts)}else{stop(utils.format("Unable to join %s geometry to %s geometry",srcType||"null",targetType||"null"))}}if(retn.unmatched){dataset.layers.push(retn.unmatched)}if(retn.unjoined){dataset.layers.push(retn.unjoined)}};internal.validateFieldNames=function(arr){arr.forEach(function(name){if(/:(str|num)/.test(name)){stop("Unsupported use of type hints. Use string-fields= or field-types= options instead")}})};api.joinAttributesToFeatures=function(lyr,srcTable,opts){var keys=opts.keys,destKey=keys[0],srcKey=keys[1],destTable=lyr.data,joinFunction=internal.getJoinByKey(destTable,destKey,srcTable,srcKey);internal.validateFieldNames(keys);return internal.joinTables(destTable,srcTable,joinFunction,opts)};internal.joinTables=function(dest,src,join,opts){var srcRecords=src.getRecords(),destRecords=dest.getRecords(),prefix=opts.prefix||"",unmatchedRecords=[],joinFields=internal.getFieldsToJoin(dest.getFields(),src.getFields(),opts),sumFields=opts.sum_fields||[],copyFields=utils.difference(joinFields,sumFields),joinCounts=new Uint32Array(srcRecords.length),matchCount=0,collisionCount=0,collisionFields=[],skipCount=0,retn={},srcRec,srcId,destRec,joins,count,filter,calc,i,j,n,m;if(opts.where){filter=internal.getJoinFilter(src,opts.where)}if(opts.calc){calc=internal.getJoinCalc(src,opts.calc)}for(i=0,n=destRecords.length;i0){internal.joinByCopy(destRec,srcRec,copyFields,prefix)}}else if(count==1){if(copyFields.length>0&&!prefix){internal.findCollisionFields(destRec,srcRec,copyFields,collisionFields)}collisionCount++}if(sumFields.length>0){internal.joinBySum(destRec,srcRec,sumFields,prefix)}joinCounts[srcId]++;count++}if(calc){calc(joins,destRec)}if(count>0){matchCount++}else if(destRec){if(opts.unmatched){unmatchedRecords.push(utils.extend({},destRec))}internal.updateUnmatchedRecord(destRec,copyFields,sumFields,prefix)}}internal.printJoinMessage(matchCount,destRecords.length,internal.countJoins(joinCounts),srcRecords.length,skipCount,collisionCount,collisionFields);if(opts.unjoined){retn.unjoined={name:"unjoined",data:new DataTable(srcRecords.filter(function(o,i){return joinCounts[i]===0}))}}if(opts.unmatched){retn.unmatched={name:"unmatched",data:new DataTable(unmatchedRecords)}}return retn};internal.countJoins=function(counts){var joinCount=0;for(var i=0,n=counts.length;i0){joinCount++}}return joinCount};internal.updateUnmatchedRecord=function(rec,copyFields,sumFields,prefix){internal.joinByCopy(rec,{},copyFields,prefix);internal.joinBySum(rec,{},sumFields,prefix)};internal.joinByCopy=function(dest,src,fields,prefix){var f,f2;prefix=prefix||"";for(var i=0,n=fields.length;i0===false){message("No records could be joined");return}message(utils.format("Joined data from %'d source record%s to %'d target record%s",joins,utils.pluralSuffix(joins),matches,utils.pluralSuffix(matches)));if(matches0){message(utils.format("%d/%d source records were skipped",skipped,m))}if(collisions>0){message(utils.format("%d/%d target records were matched by multiple source records",collisions,n));if(collisionFields.length>0){message(utils.format("Found inconsistent values in field%s [%s] during many-to-one join",utils.pluralSuffix(collisionFields.length),collisionFields.join(", ")))}}};internal.getFieldsToJoin=function(destFields,srcFields,opts){var joinFields;if(opts.fields){if(opts.fields.indexOf("*")>-1){joinFields=srcFields}else{joinFields=opts.fields;internal.validateFieldNames(joinFields)}}else{joinFields=srcFields;if(opts.keys){joinFields=utils.difference(joinFields,[opts.keys[1]])}}if(!opts.force&&!opts.prefix){joinFields=utils.difference(joinFields,destFields)}return joinFields};internal.validateJoinFieldType=function(field,type){if(!type||type=="object"){stop("["+field+"] field has an unsupported data type. Expected string or number.")}};internal.getJoinByKey=function(dest,destKey,src,srcKey){var destRecords=dest.getRecords();var srcRecords=src.getRecords();var index=internal.createTableIndex(srcRecords,srcKey);var srcType,destType;if(srcRecords.length==0){return function(i){return[]}}internal.requireDataField(src,srcKey,"External table is missing a field named:");internal.requireDataField(dest,destKey,"Target layer is missing key field:");srcType=internal.getColumnType(srcKey,src.getRecords());destType=internal.getColumnType(destKey,destRecords);internal.validateJoinFieldType(srcKey,srcType);internal.validateJoinFieldType(destKey,destType);if(srcType!=destType){stop("Join keys have mismatched data types:",destType,"and",srcType)}return function(i){var destRec=destRecords[i],val=destRec?destRec[destKey]:null,retn=null;if(destRec&&val in index){retn=index[val];if(!Array.isArray(retn))retn=[retn]}return retn}};internal.createTableIndex=function(records,f){var index={},rec,key;for(var i=0,n=records.length;imaxArea){maxRing=shape[i];maxArea=area}}if(!maxRing||maxRing.length===0){verbose("[protectShape()] Invalid shape:",shape)}else{internal.protectPolygonRing(arcData,maxRing)}};internal.protectPolygonRing=function(arcData,ring){var zlim=arcData.getRetainedInterval(),minArea=1e-10,area,added;arcData.setRetainedInterval(Infinity);area=geom.getPlanarPathArea(ring,arcData);while(area<=minArea){added=internal.lockMaxThreshold(arcData,ring);if(added===0){verbose("[protectMultiRing()] Failed on ring:",ring);break}area=geom.getPlanarPathArea(ring,arcData)}arcData.setRetainedInterval(zlim)};internal.lockMaxThreshold=function(arcData,ring){var targZ=0,targArcId,raw=arcData.getVertexData(),arcId,id,z,start,end;for(var i=0;itargZ){targZ=z;targArcId=arcId}}if(targZ>0){start=raw.ii[targArcId];end=start+raw.nn[targArcId]-1;return internal.replaceInArray(raw.zz,targZ,Infinity,start,end)}return 0};internal.replaceInArray=function(zz,value,replacement,start,end){var count=0;for(var i=start;i<=end;i++){if(zz[i]===value){zz[i]=replacement;count++}}return count};internal.importFiles=function(files,opts){var unbuiltTopology=false;var datasets=files.map(function(fname){var importOpts=utils.defaults({no_topology:true,snap:false,snap_interval:null,files:[fname]},opts);var dataset=api.importFile(fname,importOpts);if(dataset.arcs&&dataset.arcs.size()>0&&dataset.info.input_formats[0]!="topojson"){unbuiltTopology=true}return dataset});var combined=internal.mergeDatasets(datasets);if(unbuiltTopology&&!opts.no_topology){internal.cleanPathsAfterImport(combined,opts);api.buildTopology(combined)}return combined};api.mosaic=function(layers,dataset,opts){var lyr=layers[0];if(!lyr||layers.length>1){stop("Command takes a single target layer")}internal.requirePolygonLayer(lyr);var nodes=internal.addIntersectionCuts(dataset,opts);var mosaicIndex=new MosaicIndex(lyr,nodes,{flat:false});var mosaicShapes=mosaicIndex.mosaic;var records2;var lyr2={name:"name"in lyr?lyr.name:undefined,shapes:mosaicShapes,geometry_type:"polygon"};if(opts.calc){records2=internal.recombineDataRecords(lyr.data.getRecords(),mosaicIndex.getSourceIdsByTileId,mosaicShapes.length,opts);lyr2.data=new DataTable(records2)}return[lyr2]};internal.findInnerPoints=function(shp,arcs){var groups,points;if(!shp){points=null}else{groups=shp.length==1?[shp]:internal.findPotentialRingGroups(shp,arcs);points=internal.findInnerPoints2(groups,arcs)}return points};internal.findInnerPoints2=function(shapes,arcs){return shapes.map(function(shp){return internal.findInnerPoint(shp,arcs)})};internal.findPotentialRingGroups=function(shp,arcs){var data=internal.getPathMetadata(shp,arcs,"polygon");var groups=[];data.sort(function(a,b){return b.bounds.area()-a.bounds.area()});data.forEach(function(d,i){if(d.area>0===false)return;groups.push(utils.pluck(data.slice(i),"ids"))});return groups};internal.findInnerPoint=function(shp,arcs){};internal.polylineToPoint=function(shp,arcs,opts){var spherical=!arcs.isPlanar();var part=!shp?null:shp.length==1?shp[0]:internal.findLongestPolylinePart(shp,arcs,spherical);if(!part)return null;var bbox=arcs.getSimpleShapeBounds(part);var p=internal.findNearestPolylineVertex(bbox.centerX(),bbox.centerY(),part,arcs,spherical);return p};internal.findNearestPolylineVertex=function(x,y,path,arcs,spherical){var minLen=Infinity,minX,minY,iter=arcs.getShapeIter(path),calcLen=spherical?greatCircleDistance:distance2D,dist;while(iter.hasNext()){dist=calcLen(x,y,iter.x,iter.y);if(distmaxLen){maxLen=len;maxPart=path}});return maxPart};internal.parseDMS=function(str){var rxp=/^([nsew+-]?)([0-9.]+)[d\xb0]? ?([0-9.]*)['\u2032]? ?([0-9.]*)["\u2033]? ?([nsew]?)$/i;var match=rxp.exec(str.trim());var d=NaN;var deg,min,sec,inv;if(match){deg=match[2]||"0";min=match[3]||"0";sec=match[4]||"0";d=+deg+ +min/60+ +sec/3600;if(/[sw-]/i.test(match[1])||/[sw]/i.test(match[5])){d=-d}}return d};api.createPointLayer=function(srcLyr,dataset,opts){var destLyr=internal.getOutputLayer(srcLyr,opts);var arcs=dataset.arcs;if(opts.intersections){internal.testIntersections(arcs);destLyr=srcLyr}else if(opts.interpolated){destLyr.shapes=internal.interpolatedPointsFromVertices(srcLyr,dataset,opts)}else if(opts.vertices){destLyr.shapes=internal.pointsFromVertices(srcLyr,arcs,opts)}else if(opts.vertices2){destLyr.shapes=internal.pointsFromVertices2(srcLyr,arcs,opts)}else if(opts.endpoints){destLyr.shapes=internal.pointsFromEndpoints(srcLyr,arcs,opts)}else if(opts.x||opts.y){destLyr.shapes=internal.pointsFromDataTable(srcLyr.data,opts)}else if(srcLyr.geometry_type=="polygon"){destLyr.shapes=internal.pointsFromPolygons(srcLyr,arcs,opts)}else if(srcLyr.geometry_type=="polyline"){destLyr.shapes=internal.pointsFromPolylines(srcLyr,arcs,opts)}else if(!srcLyr.geometry_type){destLyr.shapes=internal.pointsFromDataTableAuto(srcLyr.data)}else{stop("Expected a polygon or polyline layer")}destLyr.geometry_type="point";var nulls=destLyr.shapes.reduce(function(sum,shp){if(!shp)sum++;return sum},0);if(nulls>0){message(utils.format("%,d of %,d points are null",nulls,destLyr.shapes.length))}if(srcLyr.data){destLyr.data=opts.no_replace?srcLyr.data.clone():srcLyr.data}return destLyr};internal.testIntersections=function(arcs){var pointCount=arcs.getFilteredPointCount(),arcCount=arcs.size(),segCount=pointCount-arcCount,stripes=internal.calcSegmentIntersectionStripeCount2(arcs),stripes2=Math.ceil(stripes/10),stripes3=stripes*10,stripes4=internal.calcSegmentIntersectionStripeCount(arcs);console.log("points:",pointCount,"arcs:",arcCount,"segs:",segCount);[stripes2,stripes,stripes3,stripes4].forEach(function(n){console.time(n+" stripes");internal.findSegmentIntersections(arcs,{stripes:n});console.timeEnd(n+" stripes")})};internal.interpolatePoint2D=function(ax,ay,bx,by,k){var j=1-k;return[ax*j+bx*k,ay*j+by*k]};internal.interpolatePointsAlongArc=function(ids,arcs,interval){var iter=arcs.getShapeIter(ids);var distance=arcs.isPlanar()?distance2D:greatCircleDistance;var coords=[];var elapsedDist=0;var prevX,prevY;var segLen,k,p;if(iter.hasNext()){coords.push([iter.x,iter.y]);prevX=iter.x;prevY=iter.y}while(iter.hasNext()){segLen=distance(prevX,prevY,iter.x,iter.y);while(elapsedDist+segLen>=interval){k=(interval-elapsedDist)/segLen;p=internal.interpolatePoint2D(prevX,prevY,iter.x,iter.y,k);elapsedDist=0;coords.push(p);prevX=p[0];prevY=p[1];segLen=distance(prevX,prevY,iter.x,iter.y)}elapsedDist+=segLen;prevX=iter.x;prevY=iter.y}if(elapsedDist>0){coords.push([prevX,prevY])}return coords};internal.interpolatedPointsFromVertices=function(lyr,dataset,opts){var interval=internal.convertIntervalParam(opts.interval,internal.getDatasetCRS(dataset));var coords;if(interval>0===false)stop("Invalid interpolation interval:",opts.interval);if(lyr.geometry_type!="polyline")stop("Expected a polyline layer");return lyr.shapes.map(function(shp,shpId){coords=[];if(shp)shp.forEach(nextPart);return coords.length>0?coords:null});function nextPart(ids){var points=internal.interpolatePointsAlongArc(ids,dataset.arcs,interval);coords=coords.concat(points)}};internal.pointsFromVertices=function(lyr,arcs,opts){var coords,index;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];index={};(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function addPoint(p){var key=p.x+"~"+p.y;if(key in index===false){index[key]=true;coords.push([p.x,p.y])}}function nextPart(ids){var iter=arcs.getShapeIter(ids);while(iter.hasNext()){addPoint(iter)}}};internal.pointsFromVertices2=function(lyr,arcs,opts){var coords;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function nextPart(ids){var iter=arcs.getShapeIter(ids);while(iter.hasNext()){coords.push([iter.x,iter.y])}}};internal.pointsFromEndpoints=function(lyr,arcs){var coords,index;if(lyr.geometry_type!="polygon"&&lyr.geometry_type!="polyline"){stop("Expected a polygon or polyline layer")}return lyr.shapes.map(function(shp,shpId){coords=[];index={};(shp||[]).forEach(nextPart);return coords.length>0?coords:null});function addPoint(p){var key=p.x+"~"+p.y;if(key in index===false){index[key]=true;coords.push([p.x,p.y])}}function nextPart(ids){for(var i=0;i0&&opts.cols>0){params.rows=opts.rows;params.cols=opts.cols}else{}if(opts.bbox){params.bbox=opts.bbox}else if(dataset){params.bbox=internal.getDatasetBounds(dataset).toArray()}else{params.bbox=[-180,-90,180,90]}return params};internal.createPointGridLayer=function(rows,opts){var points=[],lyr;rows.forEach(function(row,rowId){for(var i=0;i0){dx=opts.interval;dy=opts.interval;cols=Math.round(w/dx)-1;rows=Math.round(h/dy)-1;x0=bbox[0]+(w-cols*dx)/2;y0=bbox[1]+(h-rows*dy)/2}else if(opts.rows>0&&opts.cols>0){cols=opts.cols;rows=opts.rows;dx=w/cols;dy=h/rows;x0=bbox[0]+dx/2;y0=bbox[1]+dy/2}if(dx>0===false||dy>0===false){stop("Invalid grid parameters")}y=y0;while(y<=bbox[3]){x=x0;rowsArr.push(rowArr=[]);while(x<=bbox[2]){rowArr.push([x,y]);x+=dx}y+=dy}return rowsArr};api.polygonGrid=function(targetLayers,targetDataset,opts){internal.requireProjectedDataset(targetDataset);var params=internal.getGridParams(targetLayers,targetDataset,opts);var geojson;if(params.type=="square"){geojson=internal.getSquareGridGeoJSON(internal.getSquareGridCoordinates(params))}else if(params.type=="hex"){geojson=internal.getHexGridGeoJSON(internal.getHexGridCoordinates(params))}else if(params.type=="hex2"){geojson=internal.getHexGridGeoJSON(internal.getHexGridCoordinates(internal.swapGridParams(params)));internal.swapPolygonCoords(geojson)}else{stop("Unsupported grid type")}internal.alignGridToBounds(geojson,params.bbox);var gridDataset=internal.importGeoJSON(geojson,{});gridDataset.info=targetDataset.info;api.buildTopology(gridDataset);gridDataset.layers[0].name=opts.name||"grid";if(opts.debug)gridDataset.layers.push(api.pointGrid2(targetLayers,targetDataset,opts));return gridDataset};api.pointGrid2=function(targetLayers,targetDataset,opts){var params=internal.getGridParams(targetLayers,targetDataset,opts);var geojson;if(params.type=="square"){geojson=internal.getPointGridGeoJSON(internal.getSquareGridCoordinates(params))}else if(params.type=="hex"){geojson=internal.getPointGridGeoJSON(internal.getHexGridCoordinates(params))}else{stop("Unsupported grid type")}internal.alignGridToBounds(geojson,params.bbox);var gridDataset=internal.importGeoJSON(geojson,{});if(opts.name)gridDataset.layers[0].name=opts.name;return gridDataset.layers[0]};internal.swapGridParams=function(params){var bbox=params.bbox;return utils.defaults({width:params.height,height:params.width,bbox:[bbox[1],bbox[0],bbox[3],bbox[2]]},params)};internal.swapPolygonCoords=function(json){json.geometries.forEach(function(geom){geom.coordinates[0]=geom.coordinates[0].map(function(p){return[p[1],p[0]]})})};internal.getGridParams=function(layers,dataset,opts){var params={};var crs=dataset?internal.getDatasetCRS(dataset):null;if(opts.interval){params.interval=internal.convertIntervalParam(opts.interval,crs)}else{stop("Missing required interval option")}if(opts.bbox){params.bbox=opts.bbox}else if(dataset){dataset=utils.defaults({layers:layers},dataset);params.bbox=internal.getDatasetBounds(dataset).toArray()}else{stop("Missing grid bbox")}params.width=params.bbox[2]-params.bbox[0];params.height=params.bbox[3]-params.bbox[1];params.type=opts.type||"square";return params};internal.getPointGridGeoJSON=function(arr){var geometries=[];arr.forEach(function(row){row.forEach(function(xy){geometries.push({type:"Point",coordinates:xy})})});return{type:"GeometryCollection",geometries:geometries}};internal.getHexGridGeoJSON=function(arr){var geometries=[],a,b,c,d,e,f;var rows=arr.length-2;var row,col,midOffset,evenRow;for(row=0;rowbbox[2])bbox[2]=x;if(y>bbox[3])bbox[3]=y}};internal.editArcs=function(arcs,onPoint){var nn2=[],xx2=[],yy2=[],errors=0,n;arcs.forEach(function(arc,i){editArc(arc,onPoint)});arcs.updateVertexData(nn2,xx2,yy2);return errors;function append(p){if(p){xx2.push(p[0]);yy2.push(p[1]);n++}}function editArc(arc,cb){var x,y,xp,yp,retn;var valid=true;var i=0;n=0;while(arc.hasNext()){x=arc.x;y=arc.y;retn=cb(append,x,y,xp,yp,i++);if(retn===false){valid=false;break}xp=x;yp=y}if(valid&&n==1){message("An invalid arc was created");valid=false}if(valid){nn2.push(n)}else{while(n-- >0){xx2.pop();yy2.pop()}nn2.push(0);errors++}}};api.proj=function(dataset,destInfo,opts){var modifyCopy=!!api.gui,originals=[],target={},src,dest;dest=destInfo.crs;if(!dest){stop("Missing projection data")}if(!internal.datasetHasGeometry(dataset)){dataset.info.crs=dest;dataset.info.prj=destInfo.prj;return}src=internal.getDatasetCRS(dataset);if(!src){stop("Unable to project -- source coordinate system is unknown")}if(internal.crsAreEqual(src,dest)){message("Source and destination CRS are the same");return}if(dataset.arcs){dataset.arcs.flatten();target.arcs=modifyCopy?dataset.arcs.getCopy():dataset.arcs}target.layers=dataset.layers.filter(internal.layerHasPoints).map(function(lyr){if(modifyCopy){originals.push(lyr);lyr=utils.extend({},lyr);lyr.shapes=internal.cloneShapes(lyr.shapes)}return lyr});try{internal.projectDataset(target,src,dest,opts||{})}catch(e){console.error(e);stop(utils.format("Projection failure%s (%s)",e.point?" at "+e.point.join(" "):"",e.message))}dataset.info.crs=dest;dataset.info.prj=destInfo.prj;dataset.arcs=target.arcs;originals.forEach(function(lyr,i){utils.extend(lyr,target.layers[i])})};internal.getCrsInfo=function(name,catalog){var dataset,sources,info={};if(/\.prj$/i.test(name)){dataset=api.importFile(name,{});if(dataset){info.prj=dataset.info.prj;info.crs=internal.parsePrj(info.prj)}}else{sources=catalog.findCommandTargets(name);if(sources.length>0){dataset=sources[0].dataset;info.crs=internal.getDatasetCRS(dataset);info.prj=dataset.info.prj}else{info.crs=internal.getCRS(name)}}return info};internal.projectDataset=function(dataset,src,dest,opts){var proj=internal.getProjTransform2(src,dest);var errors;dataset.layers.forEach(function(lyr){if(internal.layerHasPoints(lyr)){internal.projectPointLayer(lyr,proj)}});if(dataset.arcs){if(opts.densify){errors=internal.projectAndDensifyArcs(dataset.arcs,proj)}else{errors=internal.projectArcs2(dataset.arcs,proj)}if(errors>0){}}};internal.projectPointLayer=function(lyr,proj){internal.editShapes(lyr.shapes,function(p){return proj(p[0],p[1])})};internal.projectArcs=function(arcs,proj){var data=arcs.getVertexData(),xx=data.xx,yy=data.yy,zz=data.zz,p;for(var i=0,n=xx.length;i0&&distanceSq(p[0],p[1],prevX,prevY)>interval*interval*25){internal.densifySegment(prevLng,prevLat,prevX,prevY,lng,lat,p[0],p[1],proj,interval).forEach(append)}append(p)}};internal.getDefaultDensifyInterval=function(arcs,proj){var xy=internal.getAvgSegment2(arcs),bb=arcs.getBounds(),a=proj(bb.centerX(),bb.centerY()),b=proj(bb.centerX()+xy[0],bb.centerY()+xy[1]);return distance2D(a[0],a[1],b[0],b[1])};internal.densifySegment=function(lng0,lat0,x0,y0,lng2,lat2,x2,y2,proj,interval,points){var lng1=(lng0+lng2)/2,lat1=(lat0+lat2)/2,p=proj(lng1,lat1),distSq;if(!p)return;distSq=geom.pointSegDistSq2(p[0],p[1],x0,y0,x2,y2);points=points||[];if(distSq>interval*interval*.25&&distance2D(lng0,lat0,lng2,lat2)>.01){internal.densifySegment(lng0,lat0,x0,y0,lng1,lat1,p[0],p[1],proj,interval,points);points.push(p);internal.densifySegment(lng1,lat1,p[0],p[1],lng2,lat2,x2,y2,proj,interval,points)}return points};internal.closeUndershoots=function(lyr,dataset,opts){var maxGapLen=opts.gap_tolerance?internal.convertIntervalParam(opts.gap_tolerance,internal.getDatasetCRS(dataset)):0;var arcs=dataset.arcs;var arcFilter=internal.getArcPresenceTest(lyr.shapes,arcs);var nodes=new NodeCollection(dataset.arcs,arcFilter);var dangles=internal.findPotentialUndershoots(nodes,maxGapLen);if(dangles.length===0)return nodes;var arcShapes=internal.arcsToShapes(arcs,arcFilter);var index=new PathIndex(arcShapes,arcs);var extensions=dangles.reduce(function(memo,dangle){var candidates=index.findPointEnclosureCandidates(dangle.point,maxGapLen);var nearestHit=internal.findUndershootTarget(dangle,candidates,arcs,maxGapLen);if(nearestHit){memo.push(internal.getArcExtension(nearestHit,dangle.arc,arcs))}return memo},[]);dataset.arcs=internal.insertArcExtensions(arcs,extensions);return internal.addIntersectionCuts(dataset,{})};internal.findUndershootTarget=function(endpoint,candidates,arcs,maxGapLen){var absId=absArcId(endpoint.arc);var target=null;candidates.forEach(function(candId){var hit;if(candId==absId)return;hit=geom.getPointToPathInfo(endpoint.point[0],endpoint.point[1],[candId],arcs);if(hit&&hit.distance<=maxGapLen&&(!target||hit.distancemaxLen})};internal.insertArcExtensions=function(arcs,extensions){var data=arcs.getVertexData();extensions.forEach(function(obj){var i=arcs.indexOfVertex(obj.arc,-1);data.xx[i]=obj.point[0];data.yy[i]=obj.point[1]});arcs.updateVertexData(data.nn,data.xx,data.yy,data.zz);return arcs};internal.chooseCloserPoint=function(p,a,b){return distance2D(p[0],p[1],a[0],a[1])0){message("Removed",openCount,"open "+(openCount==1?"ring":"rings"))}lyr.geometry_type="polygon";internal.rewindPolygons(lyr,arcs);return lyr};internal.createPolygonLayer=function(lyr,dataset,opts){var nodes=internal.closeUndershoots(lyr,dataset,opts);var data=internal.buildPolygonMosaic(nodes);return{geometry_type:"polygon",name:lyr.name,shapes:data.mosaic}};api.renameLayers=function(layers,names){var nameCount=names&&names.length||0;var name="";var suffix="";layers.forEach(function(lyr,i){if(i=nameCount-1){suffix=(suffix||0)+1}lyr.name=name+suffix})};api.run=function(targets,catalog,opts,cb){var commandStr,commands;if(opts.include){internal.include({file:opts.include})}if(!opts.commands){stop("Missing commands parameter")}commandStr=internal.runGlobalExpression(opts.commands,targets);if(commandStr){commands=internal.parseCommands(commandStr);internal.runParsedCommands(commands,catalog,cb)}else{cb(null)}};internal.runGlobalExpression=function(expression,targets){var ctx=internal.getBaseContext();var output,targetData;if(targets.length==1){targetData=internal.getRunCommandData(targets[0]);Object.defineProperty(ctx,"target",{value:targetData})}utils.extend(ctx,internal.getStateVar("defs"));try{output=Function("ctx","with(ctx) {return ("+expression+");}").call({},ctx)}catch(e){stop(e.name,"in JS source:",e.message)}return output};internal.getRunCommandData=function(target){var lyr=target.layers[0];var data=internal.getLayerData(lyr,target.dataset);data.layer=lyr;data.dataset=target.dataset;return data};api.require=function(targets,opts){var defs=internal.getStateVar("defs");var moduleFile,moduleName,mod;if(!opts.module){stop("Missing module name or path to module")}if(cli.isFile(opts.module)){moduleFile=opts.module}else if(cli.isFile(opts.module+".js")){moduleFile=opts.module+".js"}else{moduleName=opts.module}if(moduleFile){moduleFile=require("path").join(process.cwd(),moduleFile)}try{mod=require(moduleFile||moduleName)}catch(e){stop(e)}if(moduleName||opts.alias){defs[opts.alias||moduleName]=mod}else{utils.extend(defs,mod)}if(opts.init){internal.runGlobalExpression(opts.init,targets)}};api.scalebar=function(catalog,opts){var frame=internal.findFrameDataset(catalog);var obj,lyr;if(!frame){stop("Missing a map frame")}obj=utils.defaults({type:"scalebar"},opts);lyr={name:opts.name||"scalebar",data:new DataTable([obj])};frame.layers.push(lyr)};internal.getScalebarPosition=function(d){var opts={valign:"top",halign:"left",voffs:10,hoffs:10};if(+d.left>0){opts.hoffs=+d.left}if(+d.top>0){opts.voffs=+d.top}if(+d.right>0){opts.hoffs=+d.right;opts.halign="right"}if(+d.bottom>0){opts.voffs=+d.bottom;opts.valign="bottom"}return opts};SVG.furnitureRenderers.scalebar=function(d,frame){var pos=internal.getScalebarPosition(d);var metersPerPx=internal.getMapFrameMetersPerPixel(frame);var label=d.label_text||internal.getAutoScalebarLabel(frame.width,metersPerPx);var scalebarKm=internal.parseScalebarLabelToKm(label);var barHeight=3;var labelOffs=4;var fontSize=+d.font_size||13;var width=Math.round(scalebarKm/metersPerPx*1e3);var height=Math.round(barHeight+labelOffs+fontSize*.8);var labelPos=d.label_position=="top"?"top":"bottom";var anchorX=pos.halign=="left"?0:width;var anchorY=barHeight+labelOffs;var dx=pos.halign=="right"?frame.width-width-pos.hoffs:pos.hoffs;var dy=pos.valign=="bottom"?frame.height-height-pos.voffs:pos.voffs;if(labelPos=="top"){anchorY=-labelOffs;dy+=Math.round(labelOffs+fontSize*.8)}if(width>0===false){stop("Null scalebar length")}var barObj={tag:"rect",properties:{fill:"black",x:0,y:0,width:width,height:barHeight}};var labelOpts={"label-text":label,"font-size":fontSize,"text-anchor":pos.halign=="left"?"start":"end","dominant-baseline":labelPos=="top"?"auto":"hanging"};var labelObj=SVG.symbolRenderers.label(labelOpts,anchorX,anchorY)[0];var g={tag:"g",children:[barObj,labelObj],properties:{transform:"translate("+dx+" "+dy+")"}};return[g]};internal.getAutoScalebarLabel=function(mapWidth,metersPerPx){var minWidth=100;var minKm=metersPerPx*minWidth/1e3;var options=("1/8 1/5 1/4 1/2 1 1.5 2 3 4 5 8 10 12 15 20 25 30 40 50 75 "+"100 150 200 250 300 350 400 500 750 1,000 1,200 1,500 2,000 "+"2,500 3,000 4,000 5,000").split(" ");return options.reduce(function(memo,str){if(memo)return memo;var label=internal.formatDistanceLabelAsMiles(str);if(internal.parseScalebarLabelToKm(label)>minKm){return label}},null)||""};internal.formatDistanceLabelAsMiles=function(str){var num=internal.parseScalebarNumber(str);return str+(num>1?" MILES":" MILE")};internal.parseScalebarLabelToKm=function(str){var units=internal.parseScalebarUnits(str);var value=internal.parseScalebarNumber(str);if(!units||!value)return NaN;return units=="mile"?value*1.60934:value};internal.parseScalebarUnits=function(str){var isMiles=/miles?$/.test(str.toLowerCase());var isKm=/(km|kilometers?|kilometres?)$/.test(str.toLowerCase());return isMiles&&"mile"||isKm&&"km"||""};internal.parseScalebarNumber=function(str){var fractionRxp=/^([0-9]+) ?\/ ?([0-9]+)/;var match,value;str=str.replace(/[\s]/g,"").replace(/,/g,"");if(fractionRxp.test(str)){match=fractionRxp.exec(str);value=+match[1]/+match[2]}else{value=parseFloat(str)}return value>0&&value=2===false){stop("Missing list of coordinates")}for(i=0;i=3){type="Polygon";coordinates.push(coordinates[0])}else{type="LineString"}geojson={type:type,coordinates:type=="Polygon"?[coordinates]:coordinates};dataset=internal.importGeoJSON(geojson,{});dataset.layers[0].name=opts.name||"shape";return dataset};function Heap(){var heapBuf=utils.expandoBuffer(Int32Array),indexBuf=utils.expandoBuffer(Int32Array),itemsInHeap=0,dataArr,heapArr,indexArr;this.init=function(values){var i;dataArr=values;itemsInHeap=values.length;heapArr=heapBuf(itemsInHeap);indexArr=indexBuf(itemsInHeap);for(i=0;i>1;i>=0;i--){downHeap(i)}};this.size=function(){return itemsInHeap};this.updateValue=function(valIdx,val){var heapIdx=indexArr[valIdx];dataArr[valIdx]=val;if(!(heapIdx>=0&&heapIdx0){parentIdx=idx-1>>1;if(greaterThan(idx,parentIdx)){break}swapItems(idx,parentIdx);idx=parentIdx}return idx}function downHeap(idx){var minIdx=compareDown(idx);while(minIdx>idx){swapItems(idx,minIdx);idx=minIdx;minIdx=compareDown(idx)}}function swapItems(a,b){var i=heapArr[a];insertValue(a,heapArr[b]);insertValue(b,i)}function insertValue(heapIdx,valId){indexArr[valId]=heapIdx;heapArr[heapIdx]=valId}function greaterThan(a,b){var idx1=heapArr[a],idx2=heapArr[b],val1=dataArr[idx1],val2=dataArr[idx2];return val1>val2||val1===val2&&idx1>idx2}function compareDown(idx){var a=2*idx+1,b=a+1,n=itemsInHeap;if(axx.length){error("[visvalingam] Incompatible data arrays:",kk.length,xx.length)}for(c=0;c=arcLen){val=Infinity}else{val=calc(b,c,d,xx,yy,zz)}kk[c]=val;nextArr[c]=d;prevArr[c]=b}heap.init(kk);while(heap.size()>0){c=heap.pop();val=kk[c];if(val===Infinity){break}if(val0){val=calc(prevArr[b],b,d,xx,yy,zz);heap.updateValue(b,val)}if(d2){procSegment(0,len-1,1,Number.MAX_VALUE)}function procSegment(startIdx,endIdx,depth,distSqPrev){var ax=xx[startIdx],ay=yy[startIdx],cx=xx[endIdx],cy=yy[endIdx],az,cz;if(useZ){az=zz[startIdx];cz=zz[endIdx]}var maxDistSq=0,maxIdx=0,distSqLeft=0,distSqRight=0,distSq;for(var i=startIdx+1;i=maxDistSq){maxDistSq=distSq;maxIdx=i}}if(distSqPrev1){distSqLeft=procSegment(startIdx,maxIdx,depth+1,maxDistSq)}if(endIdx-maxIdx>1){distSqRight=procSegment(maxIdx,endIdx,depth+1,maxDistSq)}if(depth==1&&ax==cx&&ay==cy){maxDistSq=Math.max(distSqLeft,distSqRight)}dest[maxIdx]=Math.sqrt(maxDistSq);return maxDistSq}};internal.postSimplifyRepair=function(arcs){var intersections=internal.findSegmentIntersections(arcs),unfixable=internal.repairIntersections(arcs,intersections),countPre=intersections.length,countPost=unfixable.length,countFixed=countPre>countPost?countPre-countPost:0,msg;if(countPre>0){msg=utils.format("Repaired %'i intersection%s",countFixed,utils.pluralSuffix(countFixed));if(countPost>0){msg+=utils.format("; %'i intersection%s could not be repaired",countPost,utils.pluralSuffix(countPost))}message(msg)}};internal.repairIntersections=function(arcs,intersections){while(internal.unwindIntersections(arcs,intersections)>0){intersections=internal.findSegmentIntersections(arcs)}return intersections};internal.unwindIntersections=function(arcs,intersections){var data=arcs.getVertexData(),zlim=arcs.getRetainedInterval(),changes=0,loops=0,replacements,queue,target,i;queue=internal.getUnwindTargets(intersections,zlim,data.zz);utils.sortOn(queue,"z",!!"ascending");while(queue.length>0){target=queue.pop();replacements=internal.redetectIntersectionTarget(target,zlim,data.xx,data.yy,data.zz);if(replacements.length==1){replacements=internal.unwindIntersection(replacements[0],zlim,data.zz);changes++}else{}for(i=0;i5e5){verbose("Caught an infinite loop at intersection:",target);return 0}return changes};internal.getUnwindTargets=function(intersections,zlim,zz){return intersections.reduce(function(memo,o){var target=internal.getUnwindTarget(o,zlim,zz);if(target!==null){memo.push(target)}return memo},[])};internal.getUnwindTarget=function(o,zlim,zz){var ai=internal.findNextRemovableVertex(zz,zlim,o.a[0],o.a[1]),bi=internal.findNextRemovableVertex(zz,zlim,o.b[0],o.b[1]),targ;if(ai==-1&&bi==-1){targ=null}else if(bi==-1||ai!=-1&&zz[ai]>zz[bi]){targ={a:o.a,b:o.b,z:zz[ai]}}else{targ={a:o.b,b:o.a,z:zz[bi]}}return targ};internal.insertUnwindTarget=function(arr,obj){var ins=arr.length;while(ins>0){if(arr[ins-1].z<=obj.z){break}arr[ins]=arr[ins-1];ins--}arr[ins]=obj};internal.unwindIntersection=function(target,zlim,zz){var replacements=[];var start=target.a[0],end=target.a[1],z=target.z;for(var i=start+1;i<=end;i++){if(zz[i]==z||i==end){replacements.push({a:[start,i],b:target.b,z:z});if(i!=end)zz[i]=zlim;start=i}}if(replacements.length<2)error("Error in unwindIntersection()");return replacements};internal.redetectIntersectionTarget=function(targ,zlim,xx,yy,zz){var segIds=internal.getIntersectionCandidates(targ,zlim,xx,yy,zz);var intersections=internal.intersectSegments(segIds,xx,yy);return internal.getUnwindTargets(intersections,zlim,zz)};internal.getIntersectionCandidates=function(o,zlim,xx,yy,zz){var segIds=internal.getSegmentVertices(o.a,zlim,xx,yy,zz);segIds=segIds.concat(internal.getSegmentVertices(o.b,zlim,xx,yy,zz));return segIds};internal.getSegmentVertices=function(seg,zlim,xx,yy,zz){var start,end,prev,ids=[];if(seg[0]<=seg[1]){start=seg[0];end=seg[1]}else{start=seg[1];end=seg[0]}prev=start;for(var i=start+1;i<=end;i++){if(zz[i]>=zlim){if(xx[prev]Math.PI)angle=2*Math.PI-angle;if(!isNaN(angle)){angles.push(angle*180/Math.PI)}}iprev=i;jprev=j;if(zz[i]0){stats.angleMean=utils.sum(angles)/angles.length;stats.angleQuartiles=[utils.findValueByPct(angles,.75),utils.findValueByPct(angles,.5),utils.findValueByPct(angles,.25)]}if(measures.length>0){stats.displacementMean=sum/measures.length;stats.displacementQuartiles=[utils.findValueByPct(measures,.75),utils.findValueByPct(measures,.5),utils.findValueByPct(measures,.25)]}return stats};internal.countUniqueVertices=function(arcs){var endpoints=arcs.size()*2;var nodes=new NodeCollection(arcs).size();return arcs.getPointCount()-endpoints+nodes};internal.getSimplifyMethodLabel=function(slug){return{dp:"Ramer-Douglas-Peucker",visvalingam:"Visvalingam",weighted_visvalingam:"Weighted Visvalingam"}[slug]||"Unknown"};internal.printSimplifyInfo=function(arcs,opts){var method=internal.getSimplifyMethod(opts);var name=internal.getSimplifyMethodLabel(method);var spherical=internal.useSphericalSimplify(arcs,opts);var stats=internal.calcSimplifyStats(arcs,spherical);var pct1=(stats.removed+stats.collapsedRings)/stats.uniqueCount||0;var pct2=stats.removed/stats.removableCount||0;var aq=stats.angleQuartiles;var dq=stats.displacementQuartiles;var lines=["Simplification statistics"];lines.push(utils.format("Method: %s (%s) %s",name,spherical?"spherical":"planar",method=="weighted_visvalingam"?"(weighting="+Visvalingam.getWeightCoefficient(opts)+")":""));lines.push(utils.format("Removed vertices: %,d",stats.removed+stats.collapsedRings));lines.push(utils.format(" %.1f% of %,d unique coordinate locations",pct1*100,stats.uniqueCount));lines.push(utils.format(" %.1f% of %,d filterable coordinate locations",pct2*100,stats.removableCount));lines.push(utils.format("Simplification threshold: %.4f %s",arcs.getRetainedInterval(),spherical?"meters":""));lines.push(utils.format("Collapsed rings: %,d",stats.collapsedRings));lines.push("Displacement statistics");lines.push(utils.format(" Mean displacement: %.4f",stats.displacementMean));lines.push(utils.format(" Max displacement: %.4f",stats.displacementMax));if(dq){lines.push(utils.format(" Quartiles: %.2f, %.2f, %.2f",dq[0],dq[1],dq[2]))}lines.push("Vertex angle statistics");lines.push(utils.format(" Mean angle: %.2f degrees",stats.angleMean));if(aq){lines.push(utils.format(" Quartiles: %.2f, %.2f, %.2f",aq[0],aq[1],aq[2]))}message(lines.join("\n "))};api.simplify=function(dataset,opts){var arcs=dataset.arcs;if(!arcs||arcs.size()===0)return;opts=internal.getStandardSimplifyOpts(dataset,opts);internal.simplifyPaths(arcs,opts);if(opts.percentage||opts.percentage===0){arcs.setRetainedPct(utils.parsePercent(opts.percentage))}else if(opts.interval||opts.interval===0){arcs.setRetainedInterval(internal.convertSimplifyInterval(opts.interval,dataset,opts))}else if(opts.resolution){arcs.setRetainedInterval(internal.convertSimplifyResolution(opts.resolution,arcs,opts))}else if(opts.presimplify){return}else{stop("Missing a simplification amount")}internal.finalizeSimplification(dataset,opts)};internal.finalizeSimplification=function(dataset,opts){var arcs=dataset.arcs;if(opts.keep_shapes){api.keepEveryPolygon(arcs,dataset.layers)}if(!opts.no_repair&&arcs.getRetainedInterval()>0){internal.postSimplifyRepair(arcs)}if(opts.stats){internal.printSimplifyInfo(arcs,opts)}dataset.info=utils.defaults({simplify:opts},dataset.info)};internal.getStandardSimplifyOpts=function(dataset,opts){opts=opts||{};return utils.defaults({method:internal.getSimplifyMethod(opts),spherical:internal.useSphericalSimplify(dataset.arcs,opts)},opts)};internal.useSphericalSimplify=function(arcs,opts){return!opts.planar&&!arcs.isPlanar()};internal.simplifyPaths=function(arcs,opts){var simplifyPath=internal.getSimplifyFunction(opts);arcs.setThresholds(new Float64Array(arcs.getPointCount()));if(opts.spherical){internal.simplifyPaths3D(arcs,simplifyPath);internal.protectWorldEdges(arcs)}else{internal.simplifyPaths2D(arcs,simplifyPath)}if(opts.lock_box){internal.protectContentEdges(arcs)}};internal.simplifyPaths2D=function(arcs,simplify){arcs.forEach3(function(xx,yy,kk,i){simplify(kk,xx,yy)})};internal.simplifyPaths3D=function(arcs,simplify){var xbuf=utils.expandoBuffer(Float64Array),ybuf=utils.expandoBuffer(Float64Array),zbuf=utils.expandoBuffer(Float64Array);arcs.forEach3(function(xx,yy,kk,i){var n=xx.length,xx2=xbuf(n),yy2=ybuf(n),zz2=zbuf(n);geom.convLngLatToSph(xx,yy,xx2,yy2,zz2);simplify(kk,xx2,yy2,zz2)})};internal.getSimplifyMethod=function(opts){var m=opts.method;if(!m||m=="weighted"||m=="visvalingam"&&opts.weighting){m="weighted_visvalingam"}return m};internal.getSimplifyFunction=function(opts){var f;if(opts.method=="dp"){f=DouglasPeucker.calcArcData}else if(opts.method=="visvalingam"){f=Visvalingam.getEffectiveAreaSimplifier(opts.spherical)}else if(opts.method=="weighted_visvalingam"){f=Visvalingam.getWeightedSimplifier(opts,opts.spherical)}else{stop("Unsupported simplify method:",method)}return f};internal.protectContentEdges=function(arcs){var e=1e-14;var bb=arcs.getBounds();bb.padBounds(-e,-e,-e,-e);internal.limitSimplificationExtent(arcs,bb.toArray(),true)};internal.limitSimplificationExtent=function(arcs,bb,hardLimit){var arcBounds=arcs.getBounds().toArray();if(containsBounds(bb,arcBounds)===true)return;arcs.forEach3(function(xx,yy,zz){var lockZ=hardLimit?Infinity:0,x,y;for(var i=0,n=zz.length;i=bb[2]||x<=bb[0]||y<=bb[1]||y>=bb[3]){if(lockZ===0){lockZ=internal.findMaxThreshold(zz)}if(zz[i]!==Infinity){zz[i]=lockZ}}}})};internal.protectWorldEdges=function(arcs){internal.limitSimplificationExtent(arcs,internal.getWorldBounds(1e-12),false)};internal.findMaxThreshold=function(zz){var z,maxZ=0;for(var i=0,n=zz.length;imaxZ&&z=0&&h>=0&&w+h>0)){stop("Invalid simplify resolution:",raw)}return[w,h]};internal.calcPlanarInterval=function(xres,yres,width,height){var fitWidth=xres!==0&&width/height>xres/yres||yres===0;return fitWidth?width/xres:height/yres};internal.calcSphericalInterval=function(xres,yres,bounds){var width=geom.degreesToMeters(bounds.width())*Math.cos(bounds.centerY()*geom.D2R);var height=geom.degreesToMeters(bounds.height());return internal.calcPlanarInterval(xres,yres,width,height)};internal.convertSimplifyInterval=function(param,dataset,opts){var crs=internal.getDatasetCRS(dataset);var interval;if(internal.useSphericalSimplify(dataset.arcs,opts)){interval=internal.convertDistanceParam(param,crs)}else{interval=internal.convertIntervalParam(param,crs)}return interval};internal.convertSimplifyResolution=function(param,arcs,opts){var res=internal.parseSimplifyResolution(param);var bounds=arcs.getBounds();var interval;if(internal.useSphericalSimplify(arcs,opts)){interval=internal.calcSphericalInterval(res[0],res[1],bounds)}else{interval=internal.calcPlanarInterval(res[0],res[1],bounds.width(),bounds.height())}interval*=.5;return interval};internal.getThresholdFunction=function(arcs){var size=arcs.getPointCount(),nth=Math.ceil(size/5e5),sortedThresholds=arcs.getRemovableThresholds(nth);utils.quicksort(sortedThresholds,true);return function(pct){var n=sortedThresholds.length;var rank=internal.retainedPctToRank(pct,sortedThresholds.length);if(rank<1)return 0;if(rank>n)return Infinity;return sortedThresholds[rank-1]}};internal.retainedPctToRank=function(pct,n){var rank;if(n===0||pct>=1){rank=0}else if(pct<=0){rank=n+1}else{rank=Math.floor((1-pct)*(n+2))}return rank};internal.getThresholdByPct=function(pct,arcs,nth){var tmp=arcs.getRemovableThresholds(nth),rank=internal.retainedPctToRank(pct,tmp.length);if(rank<1)return 0;if(rank>tmp.length)return Infinity;return utils.findValueByRank(tmp,rank)};api.variableSimplify=function(layers,dataset,opts){var lyr=layers[0];var arcs=dataset.arcs;var getShapeThreshold;var arcThresholds;if(layers.length!=1){stop("Variable simplification requires a single target layer")}if(!internal.layerHasPaths(lyr)){stop("Target layer is missing path data")}opts=internal.getStandardSimplifyOpts(dataset,opts);internal.simplifyPaths(arcs,opts);if(opts.interval){getShapeThreshold=internal.getVariableIntervalFunction(opts.interval,lyr,dataset,opts)}else if(opts.percentage){getShapeThreshold=internal.getVariablePercentageFunction(opts.percentage,lyr,dataset,opts)}else if(opts.resolution){getShapeThreshold=internal.getVariableResolutionFunction(opts.resolution,lyr,dataset,opts)}else{stop("Missing a simplification expression")}arcThresholds=internal.calculateVariableThresholds(lyr,arcs,getShapeThreshold);internal.applyArcThresholds(arcs,arcThresholds);arcs.setRetainedInterval(1e20);internal.finalizeSimplification(dataset,opts);arcs.flatten()};internal.getVariableIntervalFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);return function(shpId){var val=compiled(shpId);return internal.convertSimplifyInterval(val,dataset,opts)}};internal.getVariableResolutionFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);return function(shpId){var val=compiled(shpId);return internal.convertSimplifyResolution(val,dataset.arcs,opts)}};internal.getVariablePercentageFunction=function(exp,lyr,dataset,opts){var compiled=internal.compileSimplifyExpression(exp,lyr,dataset.arcs);var pctToInterval=internal.getThresholdFunction(dataset.arcs);return function(shpId){var val=compiled(shpId);var pct=utils.parsePercent(val);return pctToInterval(pct)}};internal.compileSimplifyExpression=function(exp,lyr,arcs){return internal.compileValueExpression(exp,lyr,arcs)};internal.applyArcThresholds=function(arcs,thresholds){var zz=arcs.getVertexData().zz;arcs.forEach2(function(start,n,xx,yy,zz,arcId){var arcZ=thresholds[arcId];var z;for(var i=1;i=arcZ){zz[start+i]=Infinity}}})};internal.calculateVariableThresholds=function(lyr,arcs,getShapeThreshold){var thresholds=new Float64Array(arcs.size());var UNUSED=-1;var currThresh;utils.initializeArray(thresholds,UNUSED);lyr.shapes.forEach(function(shp,shpId){currThresh=getShapeThreshold(shpId);internal.forEachArcId(shp||[],procArc)});for(var i=0,n=thresholds.length;icurrThresh||savedThresh==UNUSED){thresholds[i]=currThresh}}};api.snap=function(dataset,opts){var interval=0;var arcs=dataset.arcs;var arcBounds=arcs&&arcs.getBounds();if(!arcBounds||!arcBounds.hasBounds()){stop("Dataset is missing path data")}if(opts.interval){interval=internal.convertIntervalParam(opts.interval,internal.getDatasetCRS(dataset))}else{interval=internal.getHighPrecisionSnapInterval(arcBounds.toArray())}arcs.flatten();var snapCount=internal.snapCoordsByInterval(arcs,interval);message(utils.format("Snapped %s point%s",snapCount,utils.pluralSuffix(snapCount)));if(snapCount>0){arcs.dedupCoords();api.buildTopology(dataset)}};api.sortFeatures=function(lyr,arcs,opts){var n=internal.getFeatureCount(lyr),ascending=!opts.descending,compiled=internal.compileValueExpression(opts.expression,lyr,arcs),values=[];utils.repeat(n,function(i){values.push(compiled(i))});var ids=utils.getSortedIds(values,ascending);if(lyr.shapes){utils.reorderArray(lyr.shapes,ids)}if(lyr.data){utils.reorderArray(lyr.data.getRecords(),ids)}};api.splitLayerOnGrid=function(lyr,arcs,opts){var shapes=lyr.shapes,type=lyr.geometry_type,setId=!!opts.id_field,fieldName=opts.id_field||"__split__",classify=getShapeClassifier(internal.getLayerBounds(lyr,arcs),opts.cols,opts.rows),properties,layers;if(!type){stop("Layer has no geometry")}if(!lyr.data){lyr.data=new DataTable(shapes.length)}properties=lyr.data.getRecords();lyr.shapes.forEach(function(shp,i){var bounds=type=="point"?internal.getPointBounds([shp]):arcs.getMultiShapeBounds(shp);var name=bounds.hasBounds()?classify(bounds):"";var rec=properties[i]=properties[i]||{};rec[fieldName]=name});if(setId)return lyr;return api.splitLayer(lyr,fieldName).filter(function(lyr){var name=lyr.data.getRecordAt(0)[fieldName];lyr.name=name;lyr.data.deleteField(fieldName);return!!name});function getShapeClassifier(bounds,cols,rows){var xmin=bounds.xmin,ymin=bounds.ymin,w=bounds.width(),h=bounds.height();if(rows>0===false||cols>0===false){stop("Invalid grid parameters")}if(w>0===false||h>0===false){cols=1;rows=1}return function(bounds){var c=Math.floor((bounds.centerX()-xmin)/w*cols),r=Math.floor((bounds.centerY()-ymin)/h*rows);c=utils.clamp(c,0,cols-1)||0;r=utils.clamp(r,0,rows-1)||0;return"r"+r+"c"+c}}};api.subdivideLayer=function(lyr,arcs,exp){return internal.subdivide(lyr,arcs,exp)};internal.subdivide=function(lyr,arcs,exp){var divide=internal.evalCalcExpression(lyr,arcs,exp),subdividedLayers=[],tmp,bounds,lyr1,lyr2,layerName;if(!utils.isBoolean(divide)){stop("Expression must evaluate to true or false")}if(divide){bounds=internal.getLayerBounds(lyr,arcs);tmp=internal.divideLayer(lyr,arcs,bounds);lyr1=tmp[0];if(lyr1.shapes.length>1&&lyr1.shapes.length1&&lyr2.shapes.lengthbounds.height();var centers=shapes.map(function(shp){var bounds=arcs.getMultiShapeBounds(shp);return useX?bounds.centerX():bounds.centerY()});var ids=utils.range(centers.length);ids.sort(function(a,b){return centers[a]-centers[b]});ids.forEach(function(shapeId,i){var dest=i1||targets[0].layers.length!=1){stop("Interpolated names are not compatible with multiple targets.")}return internal.convertInterpolatedName(name,targets[0].layers[0])};internal.convertInterpolatedName=function(name,lyr){var ctx={target:lyr.name||""};var body="with($$ctx) { return `"+name+"`; }";var func;try{func=new Function("$$ctx",body);name=func(ctx)}catch(e){stop("Unable to interpolate ["+name+"]")}return name};internal.nameIsInterpolated=function(name){return/[$][{]/.test(name)};internal.findCommandSource=function(sourceName,catalog,opts){var sources=catalog.findCommandTargets(sourceName);var sourceDataset,source;if(sources.length>1||sources.length==1&&sources[0].layers.length>1){stop(utils.format("Source [%s] matched multiple layers",sourceName))}else if(sources.length==1){source={dataset:sources[0].dataset,layer:sources[0].layers[0]}}else{sourceDataset=api.importFile(sourceName,utils.defaults({no_topology:true},opts));if(!sourceDataset){stop(utils.format("Unable to find source [%s]",sourceName))}else if(sourceDataset.layers.length>1){stop("Multiple-layer sources are not supported")}source={dataset:sourceDataset,layer:sourceDataset.layers[0],disposable:true}}return source};internal.splitShellTokens=function(str){var BAREWORD="([^'\"\\s])+";var DOUBLE_QUOTE='"((\\\\"|[^"])*?)"';var SINGLE_QUOTE="'((\\\\'|[^'])*?)'";var rxp=new RegExp("("+BAREWORD+"|"+SINGLE_QUOTE+"|"+DOUBLE_QUOTE+")*","g");var matches=str.match(rxp)||[];var chunks=matches.filter(function(chunk){return!!chunk&&chunk!="\\"}).map(utils.trimQuotes);return chunks};utils.trimQuotes=function(raw){var len=raw.length,first,last;if(len>=2){first=raw.charAt(0);last=raw.charAt(len-1);if(first=='"'&&last=='"'||first=="'"&&last=="'"){return raw.substr(1,len-2)}}return raw};internal.parseStringList=function(token){var delim=",";var list=internal.splitOptionList(token,delim);if(list.length==1){list=internal.splitOptionList(list[0],delim)}return list};internal.parseColorList=function(token){var delim=", ";var token2=token.replace(/, *(?=[^(]*\))/g,"~~~");var list=internal.splitOptionList(token2,delim);if(list.length==1){list=internal.splitOptionList(list[0],delim)}list=list.map(function(str){return str.replace(/~~~/g,",")});return list};internal.cleanArgv=function(argv){argv=argv.map(function(s){return s.trim()});argv=argv.filter(function(s){return s!==""});return argv};internal.splitOptionList=function(str,delimChars){var BAREWORD="([^"+delimChars+"'\"][^"+delimChars+"]*)";var DOUBLE_QUOTE='"((\\\\"|[^"])*?)"';var SINGLE_QUOTE="'((\\\\'|[^'])*?)'";var rxp=new RegExp("^("+BAREWORD+"|"+SINGLE_QUOTE+"|"+DOUBLE_QUOTE+")(["+delimChars+"]+|$)");var chunks=[];var match;while((match=rxp.exec(str))!==null){chunks.push(match[1]);str=str.substr(match[0].length)}return chunks.filter(function(chunk){return!!chunk&&chunk!="\\"}).map(utils.trimQuotes)};internal.formatOptionValue=function(val){val=String(val);if(val.indexOf(" ")>-1){val=JSON.stringify(val)}return val};function CommandParser(){var commandRxp=/^--?([a-z][\w-]*)$/i,invalidCommandRxp=/^--?[a-z][\w-]*[=]/i,assignmentRxp=/^([a-z0-9_+-]+)=(?!\=)(.*)$/i,_usage="",_examples=[],_commands=[],_default=null,_note;if(this instanceof CommandParser===false)return new CommandParser;this.usage=function(str){_usage=str;return this};this.note=function(str){_note=str;return this};this.default=function(str){_default=str};this.example=function(str){_examples.push(str)};this.command=function(name){var opts=new CommandOptions(name);_commands.push(opts);return opts};this.section=function(name){return this.command("").title(name)};this.parseArgv=function(raw){var commandDefs=getCommands(),commands=[],cmd,argv=internal.cleanArgv(raw),cmdName,cmdDef,opt;if(argv.length==1&&tokenIsCommandName(argv[0])){argv.unshift("-help")}else if(argv.length>0&&!tokenLooksLikeCommand(argv[0])&&_default){argv.unshift("-"+_default)}while(argv.length>0){cmdName=readCommandName(argv);if(!cmdName){stop("Invalid command:",argv[0])}cmdDef=findCommandDefn(cmdName,commandDefs);if(!cmdDef){cmdDef={name:cmdName,options:[],multi_arg:true}}cmd={name:cmdDef.name,options:{},_:[]};while(argv.length>0&&!tokenLooksLikeCommand(argv[0])){readOption(cmd,argv,cmdDef)}try{if(cmd._.length>0&&cmdDef.no_arg){error("Received one or more unexpected parameters:",cmd._.join(" "))}if(cmd._.length>1&&!cmdDef.multi_arg){error("Command expects a single value. Received:",cmd._.join(" "))}if(cmdDef.default&&cmd._.length==1){readDefaultOptionValue(cmd,cmdDef)}if(cmdDef.validate){cmdDef.validate(cmd)}}catch(e){stop("["+cmdName+"] "+e.message)}commands.push(cmd)}return commands;function tokenLooksLikeCommand(s){if(invalidCommandRxp.test(s)){stop("Invalid command syntax:",s)}return commandRxp.test(s)}function readOption(cmd,argv,cmdDef){var token=argv.shift(),optName,optDef,parts;if(assignmentRxp.test(token)){parts=splitAssignment(token);optDef=findOptionDefn(parts[0],cmdDef);if(!optDef){}else if(optDef.type=="flag"||optDef.assign_to){stop("-"+cmdDef.name+" "+parts[0]+" option doesn't take a value")}else{argv.unshift(parts[1])}}else{optDef=findOptionDefn(token,cmdDef)}if(!optDef){cmd._.push(utils.trimQuotes(token));return}if(optDef.alias_to){optDef=findOptionDefn(optDef.alias_to,cmdDef)}optName=optDef.name;optName=optName.replace(/-/g,"_");if(optDef.assign_to){cmd.options[optDef.assign_to]=optDef.name}else if(optDef.type=="flag"){cmd.options[optName]=true}else{cmd.options[optName]=readOptionValue(argv,optDef)}}function splitAssignment(token){var match=assignmentRxp.exec(token),name=match[1],val=utils.trimQuotes(match[2]);return[name,val]}function readOptionValue(argv,optDef){if(argv.length===0||tokenLooksLikeCommand(argv[0])){stop("Missing value for "+optDef.name+" option")}return parseOptionValue(argv.shift(),optDef)}function readDefaultOptionValue(cmd,cmdDef){var optDef=findOptionDefn(cmdDef.default,cmdDef);cmd.options[cmdDef.default]=readOptionValue(cmd._,optDef)}function parseOptionValue(token,optDef){var type=optDef.type;var val,err;if(type=="number"){val=Number(token)}else if(type=="integer"){val=Math.round(Number(token))}else if(type=="colors"){val=internal.parseColorList(token)}else if(type=="strings"){val=internal.parseStringList(token)}else if(type=="bbox"||type=="numbers"){val=token.split(",").map(parseFloat)}else if(type=="percent"){val=token}else if(type=="distance"||type=="area"){val=token}else{val=token}if(val!==val){err="Invalid numeric value"}if(err){stop(err+" for "+optDef.name+" option")}return val}function readCommandName(args){var match=commandRxp.exec(args[0]);if(match){args.shift();return match[1]}return null}};this.getHelpMessage=function(cmdName){var helpCommands,singleCommand,lines;if(cmdName){singleCommand=findCommandDefn(cmdName,getCommands());if(!singleCommand){stop(cmdName,"is not a known command")}lines=getSingleCommandLines(singleCommand)}else{helpCommands=getCommands().filter(function(cmd){return cmd.name&&cmd.describe||cmd.title});lines=getMultiCommandLines(helpCommands)}return formatLines(lines);function formatLines(lines){var colWidth=calcColWidth(lines);var gutter=" ";var helpStr=lines.map(function(line){if(Array.isArray(line)){line=" "+utils.rpad(line[0],colWidth," ")+gutter+line[1]}return line}).join("\n");return helpStr}function getSingleCommandLines(cmd){var lines=[];lines.push("Command",getCommandLine(cmd));if(cmd.options.length>0){lines.push("","Options");cmd.options.forEach(function(opt){lines=lines.concat(getOptionLines(opt,cmd))})}if(cmd.examples){lines.push("","Example"+(cmd.examples.length>1?"s":""));cmd.examples.forEach(function(ex,i){if(i>0)lines.push("");ex.split("\n").forEach(function(line,i){lines.push(" "+line)})})}return lines}function getOptionLines(opt,cmd){var lines=[];var description=opt.describe;var label;if(!description){}else if(opt.label){lines.push([opt.label,description])}else if(opt.name==cmd.default){label=opt.name+"=";lines.push(["<"+opt.name+">","shortcut for "+label]);lines.push([label,description])}else{label=opt.name;if(opt.alias)label+=", "+opt.alias;if(opt.type!="flag"&&!opt.assign_to)label+="=";lines.push([label,description])}return lines}function getCommandLine(cmd){var name=cmd.name?"-"+cmd.name:"";if(cmd.alias)name+=", -"+cmd.alias;return[name,cmd.describe||"(undocumented command)"]}function getMultiCommandLines(commands){var lines=[];if(_usage)lines.push(_usage);commands.forEach(function(cmd){if(cmd.title){lines.push("",cmd.title)}else{lines.push(getCommandLine(cmd))}});if(_examples.length>0){lines.push("","Examples");_examples.forEach(function(str){lines.push("",str)})}if(_note){lines.push("",_note)}return lines}function calcColWidth(lines){var w=0;lines.forEach(function(line){if(Array.isArray(line)){w=Math.max(w,line[0].length)}});return w}};this.printHelp=function(command){print(this.getHelpMessage(command))};function getCommands(){return _commands.map(function(cmd){return cmd.done()})}function tokenIsCommandName(s){var cmd=findCommandDefn(s,getCommands());return!!cmd}function findCommandDefn(name,arr){return utils.find(arr,function(cmd){return cmd.name===name||cmd.alias===name||cmd.old_alias===name})}function findOptionDefn(name,cmdDef){return utils.find(cmdDef.options,function(o){return o.name===name||o.alias===name||o.old_alias===name})}}function CommandOptions(name){var _command={name:name,options:[]};this.validate=function(f){_command.validate=f;return this};this.describe=function(str){_command.describe=str;return this};this.example=function(str){if(!_command.examples){_command.examples=[]}_command.examples.push(str);return this};this.alias=function(name){_command.alias=name;return this};this.oldAlias=function(name){_command.old_alias=name;return this};this.title=function(str){_command.title=str;return this};this.flag=function(name){_command[name]=true;return this};this.option=function(name,opts){opts=utils.extend({},opts);if(!utils.isString(name)||!name)error("Missing option name");if(!utils.isObject(opts))error("Invalid option definition:",opts);if(opts.DEFAULT)_command.default=name;opts.name=name;_command.options.push(opts);return this};this.done=function(){return _command}}function validateInputOpts(cmd){var o=cmd.options,_=cmd._;if(_.length>0&&!o.files){o.files=_}if(o.files){o.files=cli.expandInputFiles(o.files);if(o.files[0]=="-"||o.files[0]=="/dev/stdin"){delete o.files;o.stdin=true}}if("precision"in o&&o.precision>0===false){error("precision= option should be a positive number")}if(o.encoding){o.encoding=internal.validateEncoding(o.encoding)}}function validateSimplifyOpts(cmd){var o=cmd.options,arg=cmd._[0];if(arg){if(/^[0-9.]+%?$/.test(arg)){o.percentage=utils.parsePercent(arg)}else{error("Unparsable option:",arg)}}if(!o.interval&&!o.percentage&&!o.resolution){error("Command requires an interval, percentage or resolution parameter")}}function validateProjOpts(cmd){var _=cmd._,proj4=[];if(_.length>0&&!cmd.options.crs){cmd.options.crs=_.join(" ");_=[]}if(_.length>0){error("Received one or more unexpected parameters: "+_.join(", "))}if(!(cmd.options.crs||cmd.options.match||cmd.options.from)){stop("Missing projection data")}}function validateGridOpts(cmd){var o=cmd.options;if(cmd._.length==1){var tmp=cmd._[0].split(",");o.cols=parseInt(tmp[0],10);o.rows=parseInt(tmp[1],10)||o.cols}}function validateExpressionOpt(cmd){if(!cmd.options.expression){error("Command requires a JavaScript expression")}}function validateOutputOpts(cmd){var _=cmd._,o=cmd.options,arg=_[0]||"",pathInfo=utils.parseLocalPath(arg);if(_.length>1){error("Command takes one file or directory argument")}if(arg=="-"||arg=="/dev/stdout"){o.stdout=true}else if(arg&&!pathInfo.extension){if(!cli.isDirectory(arg)){error("Unknown output option:",arg)}o.directory=arg}else if(arg){if(pathInfo.directory){o.directory=pathInfo.directory;cli.validateOutputDir(o.directory)}o.file=pathInfo.filename;if(internal.filenameIsUnsupportedOutputType(o.file)){error("Output file looks like an unsupported file type:",o.file)}}if(o.format){o.format=o.format.toLowerCase();if(o.format=="csv"){o.format="dsv";o.delimiter=o.delimiter||","}else if(o.format=="tsv"){o.format="dsv";o.delimiter=o.delimiter||"\t"}if(!internal.isSupportedOutputFormat(o.format)){error("Unsupported output format:",o.format)}}if(o.delimiter){o.delimiter=o.delimiter.replace(/^["']?\\t["']?$/,"\t");if(!internal.isSupportedDelimiter(o.delimiter)){error("Unsupported delimiter:",o.delimiter)}}if(o.encoding){o.encoding=internal.validateEncoding(o.encoding)}if(o.field_order&&o.field_order!="ascending"){error("Unsupported field order:",o.field_order)}if("quantization"in o&&o.quantization>0===false){error("quantization= option should be a nonnegative integer")}if("topojson_precision"in o&&o.topojson_precision>0===false){error("topojson-precision= option should be a positive number")}}internal.getOptionParser=function(){var targetOpt={describe:"layer(s) to target (comma-sep. list)"},nameOpt={describe:"rename the edited layer(s)"},noReplaceOpt={alias:"+",type:"flag",label:"+, no-replace",describe:"retain both input and output layer(s)"},noSnapOpt={type:"flag"},encodingOpt={describe:"text encoding (applies to .dbf and delimited text files)"},snapIntervalOpt={describe:"snapping distance in source units (default is tiny)",type:"distance"},minGapAreaOpt={old_alias:"min-gap-area",describe:"threshold for filling gaps, e.g. 1.5km2 (default is small)",type:"area"},sliverControlOpt={describe:"boost gap-fill-area of slivers (0-1, default is 1)",type:"number"},calcOpt={describe:"use a JS expression to aggregate data values"},sumFieldsOpt={describe:"fields to sum when dissolving (comma-sep. list)",type:"strings"},copyFieldsOpt={describe:"fields to copy when dissolving (comma-sep. list)",type:"strings"},dissolveFieldsOpt={DEFAULT:true,type:"strings",describe:"(optional) field(s) to dissolve on (comma-sep. list)"},fieldTypesOpt={describe:"type hints for csv source files, e.g. FIPS:str,ZIPCODE:str",type:"strings"},stringFieldsOpt={describe:"csv field(s) to import as strings, e.g. FIPS,ZIPCODE",type:"strings"},bboxOpt={type:"bbox",describe:"comma-sep. bounding box: xmin,ymin,xmax,ymax"},invertOpt={type:"flag",describe:"retain only features that would have been deleted"},whereOpt={describe:"use a JS expression to select a subset of features"},whereOpt2={describe:"filter polygon boundaries using a JS expression (with A and B)"},eachOpt2={describe:"apply a JS expression to each polygon boundary (with A and B)"},aspectRatioOpt={describe:"aspect ratio as a number or range (e.g. 2 0.8,1.6 ,2)"},offsetOpt={describe:"padding as distance or pct of h/w (single value or list)",type:"distance"};var parser=new CommandParser;parser.usage("Usage: mapshaper - [options] ...");parser.note("Enter mapshaper -help to view options for a single command");parser.section("I/O commands");parser.default("i");parser.command("i").describe("input one or more files").validate(validateInputOpts).flag("multi_arg").option("files",{DEFAULT:true,type:"strings",describe:"one or more files to import, or - to use stdin"}).option("combine-files",{describe:"import files to separate layers with shared topology",type:"flag"}).option("merge-files",{type:"flag"}).option("no-topology",{describe:"treat each shape as topologically independent",type:"flag"}).option("precision",{describe:"coordinate precision in source units, e.g. 0.001",type:"number"}).option("snap",{type:"flag",describe:"snap nearly identical points to fix minor topology errors"}).option("auto-snap",{alias_to:"snap"}).option("snap-interval",snapIntervalOpt).option("encoding",encodingOpt).option("id-field",{describe:"import Topo/GeoJSON id property to this field"}).option("string-fields",stringFieldsOpt).option("field-types",fieldTypesOpt).option("name",{describe:"Rename the imported layer(s)"}).option("geometry-type",{}).option("json-path",{}).option("csv-skip-lines",{type:"integer",describe:"[CSV] number of lines to skip at the beginning of the file"}).option("csv-lines",{type:"integer",describe:"[CSV] number of data records to read"}).option("csv-field-names",{type:"strings",describe:"[CSV] comma-sep. list of field names to assign each column"}).option("csv-filter",{describe:"[CSV] JS expression for filtering records"}).option("csv-fields",{type:"strings",describe:"[CSV] comma-sep. list of fields to import"}).option("json-path",{old_alias:"json-subtree",describe:"[JSON] path to an array of data records; separator is /"});parser.command("o").describe("output edited content").validate(validateOutputOpts).option("_",{label:"",describe:"(optional) name of output file or directory, - for stdout"}).option("format",{describe:"options: shapefile,geojson,topojson,json,dbf,csv,tsv,svg"}).option("target",targetOpt).option("force",{describe:"allow overwriting input files",type:"flag"}).option("dry-run",{type:"flag"}).option("ldid",{type:"number"}).option("precision",{describe:"coordinate precision in source units, e.g. 0.001",type:"number"}).option("bbox-index",{describe:"export a .json file with bbox of each layer",type:"flag"}).option("cut-table",{describe:"detach data attributes from shapes and save as a JSON file",type:"flag"}).option("drop-table",{describe:"remove data attributes from output",type:"flag"}).option("encoding",{describe:"(Shapefile/CSV) text encoding (default is utf8)"}).option("field-order",{describe:"(Shapefile/CSV) field-order=ascending sorts columns A-Z"}).option("id-field",{describe:"(Topo/GeoJSON/SVG) field to use for id property",type:"strings"}).option("bbox",{type:"flag",describe:"(Topo/GeoJSON) add bbox property"}).option("extension",{describe:'(Topo/GeoJSON) set file extension (default is ".json")'}).option("prettify",{type:"flag",describe:"(Topo/GeoJSON) format output for readability"}).option("singles",{describe:"(TopoJSON) save each target layer as a separate file",type:"flag"}).option("quantization",{describe:"(TopoJSON) specify quantization (auto-set by default)",type:"integer"}).option("no-quantization",{describe:"(TopoJSON) export coordinates without quantization",type:"flag"}).option("no-point-quantization",{type:"flag"}).option("presimplify",{describe:"(TopoJSON) add per-vertex data for dynamic simplification",type:"flag"}).option("topojson-precision",{type:"number"}).option("rfc7946",{describe:"(GeoJSON) follow RFC 7946 (CCW outer ring order, etc.)",type:"flag"}).option("combine-layers",{describe:"(GeoJSON) output layers as a single file",type:"flag"}).option("geojson-type",{describe:"(GeoJSON) FeatureCollection, GeometryCollection or Feature"}).option("width",{describe:"(SVG/TopoJSON) pixel width of output (SVG default is 800)",type:"number"}).option("height",{describe:"(SVG/TopoJSON) pixel height of output (optional)",type:"number"}).option("max-height",{describe:"(SVG/TopoJSON) max pixel height of output (optional)",type:"number"}).option("margin",{describe:"(SVG/TopoJSON) space betw. data and viewport (default is 1)"}).option("pixels",{describe:"(SVG/TopoJSON) output area in pix. (alternative to width=)",type:"number"}).option("svg-scale",{describe:"(SVG) source units per pixel (alternative to width= option)",type:"number"}).option("point-symbol",{describe:"(SVG) circle or square (default is circle)"}).option("svg-data",{type:"strings",describe:"(SVG) fields to export as data-* attributes"}).option("id-prefix",{describe:"(SVG) prefix for namespacing layer and feature ids"}).option("delimiter",{describe:"(CSV) field delimiter"}).option("final",{type:"flag"}).option("metadata",{type:"flag"});parser.section("Editing commands");parser.command("affine").describe("transform coordinates by shifting, scaling and rotating").flag("no_args").option("shift",{type:"strings",describe:"x,y offsets in source units (e.g. 5000,-5000)"}).option("scale",{type:"number",describe:"scale (default is 1)"}).option("rotate",{type:"number",describe:"angle of rotation in degrees (default is 0)"}).option("anchor",{type:"numbers",describe:"center of rotation/scaling (default is center of selected shapes)"}).option("where",whereOpt).option("target",targetOpt);parser.command("buffer").option("radius",{describe:"radius of buffer, as an expression or a constant",DEFAULT:true}).option("tolerance",{}).option("backtrack",{type:"integer"}).option("type",{}).option("planar",{type:"flag"}).option("v2",{type:"flag"}).option("debug-division",{type:"flag"}).option("debug-mosaic",{type:"flag"}).option("no-cleanup",{type:"flag"}).option("units",{describe:"distance units (meters|miles|km|feet) (default is meters)"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("clean").describe("fixes geometry issues, such as polygon overlaps and gaps").option("gap-fill-area",minGapAreaOpt).option("sliver-control",sliverControlOpt).option("snap-interval",snapIntervalOpt).option("no-snap",noSnapOpt).option("allow-empty",{describe:"allow null geometries (removed by default)",type:"flag"}).option("arcs",{describe:"remove unused arcs",type:"flag"}).option("debug",{type:"flag"}).option("no-arc-dissolve",{type:"flag"}).option("target",targetOpt);parser.command("clip").describe("use a polygon layer to clip another layer").example("$ mapshaper states.shp -clip land_area.shp -o clipped.shp").option("source",{DEFAULT:true,describe:"file or layer containing clip polygons"}).option("remove-slivers",{describe:"remove sliver polygons created by clipping",type:"flag"}).option("bbox",bboxOpt).option("bbox2",{type:"bbox",describe:"experimental fast bbox clipping"}).option("name",nameOpt).option("no-snap",noSnapOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("colorizer").describe("define a function to convert data values to color classes").flag("no_arg").option("colors",{describe:"comma-separated list of CSS colors",type:"colors"}).option("breaks",{describe:"ascending-order list of breaks for sequential color scheme",type:"numbers"}).option("categories",{describe:"comma-sep. list of keys for categorical color scheme",type:"strings"}).option("random",{describe:"randomly assign colors",type:"flag"}).option("other",{describe:"default color for categorical scheme (defaults to no-data color)"}).option("nodata",{describe:"color to use for invalid or missing data (default is white)"}).option("name",{describe:"function name to use in -each and -svg-style commands"}).option("precision",{describe:"rounding precision to apply before classification (e.g. 0.1)",type:"number"}).example("Define a sequential color scheme and use it to create a new field\n"+"$ mapshaper data.json -colorizer name=getColor nodata=#eee breaks=20,40 \\\n"+" colors=#e0f3db,#a8ddb5,#43a2ca -each 'fill = getColor(RATING)' -o output.json");parser.command("dissolve").describe("merge features within a layer").example("Dissolve all polygons in a feature layer into a single polygon\n"+"$ mapshaper states.shp -dissolve -o country.shp").example("Generate state-level polygons by dissolving a layer of counties\n"+"(STATE_FIPS, POPULATION and STATE_NAME are attribute field names)\n"+"$ mapshaper counties.shp -dissolve STATE_FIPS copy-fields=STATE_NAME sum-fields=POPULATION -o states.shp").option("field",{}).option("fields",dissolveFieldsOpt).option("calc",calcOpt).option("sum-fields",sumFieldsOpt).option("copy-fields",copyFieldsOpt).option("multipart",{type:"flag",describe:"make multipart features instead of dissolving"}).option("group-points",{type:"flag",describe:"[points] group points instead of converting to centroids"}).option("weight",{describe:"[points] field or expression to use for weighting centroid"}).option("planar",{type:"flag",describe:"[points] use 2D math to find centroids of latlong points"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("dissolve2").describe("merge adjacent polygons (repairs overlaps and gaps)").option("field",{}).option("fields",dissolveFieldsOpt).option("calc",calcOpt).option("sum-fields",sumFieldsOpt).option("copy-fields",copyFieldsOpt).option("gap-fill-area",minGapAreaOpt).option("sliver-control",sliverControlOpt).option("name",nameOpt).option("no-snap",noSnapOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("divide").describe("divide lines by polygons, copy data from polygons to lines").option("fields",{describe:"fields to copy (comma-sep.) (default is all but key field)",type:"strings"}).option("calc",{describe:"use a JS expression to assign values (for many-to-one joins)"}).option("force",{describe:"replace values from same-named fields",type:"flag"}).option("source",{DEFAULT:true,describe:"file or layer containing polygons"}).option("target",targetOpt);parser.command("dots").describe("").option("field",{describe:"field containing number of dots"}).option("target",targetOpt);parser.command("drop").describe("delete layer(s) or elements within the target layer(s)").flag("no_arg").option("geometry",{describe:"delete all geometry from the target layer(s)",type:"flag"}).option("holes",{describe:"delete holes from polygons",type:"flag"}).option("fields",{type:"strings",describe:"delete a list of attribute data fields, e.g. 'id,name' '*'"}).option("target",targetOpt);parser.command("each").describe("create/update/delete data fields using a JS expression").example("Add two calculated data fields to a layer of U.S. counties\n"+"$ mapshaper counties.shp -each 'STATE_FIPS=CNTY_FIPS.substr(0, 2), AREA=$.area'").option("expression",{DEFAULT:true,describe:"JS expression to apply to each target feature"}).option("where",whereOpt).option("target",targetOpt);parser.command("erase").describe("use a polygon layer to erase another layer").example("$ mapshaper land_areas.shp -erase water_bodies.shp -o erased.shp").option("source",{DEFAULT:true,describe:"file or layer containing erase polygons"}).option("remove-slivers",{describe:"remove sliver polygons created by erasing",type:"flag"}).option("bbox",bboxOpt).option("name",nameOpt).option("no-snap",noSnapOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("explode").describe("divide multi-part features into single-part features").option("naive",{type:"flag"}).option("target",targetOpt);parser.command("filter").describe("delete features using a JS expression").option("expression",{DEFAULT:true,describe:"delete features that evaluate to false"}).option("bbox",{describe:"delete features outside bbox (xmin,ymin,xmax,ymax)",type:"bbox"}).option("invert",invertOpt).option("remove-empty",{type:"flag",describe:"delete features with null geometry"}).option("keep-shapes",{type:"flag"}).option("cleanup",{type:"flag"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("filter-fields").describe("retain a subset of data fields").option("fields",{DEFAULT:true,type:"strings",describe:"fields to retain (comma-sep.), e.g. 'fips,name'"}).option("target",targetOpt);parser.command("filter-geom").describe("").option("bbox",{type:"bbox",describe:"remove non-intersecting geometry (xmin,ymin,xmax,ymax)"}).option("target",targetOpt);parser.command("filter-islands2").option("min-area",{type:"area",describe:"remove small-area islands (e.g. 10km2)"}).option("min-vertices",{type:"integer",describe:"remove low-vertex-count islands"}).option("keep-shapes",{type:"flag",describe:"only filter smaller parts of multipart polygons"}).option("remove-empty",{type:"flag",describe:"delete features with null geometry"}).option("target",targetOpt);parser.command("filter-islands").describe("remove small detached polygon rings (islands)").option("min-area",{type:"area",describe:"remove small-area islands (e.g. 10km2)"}).option("min-vertices",{type:"integer",describe:"remove low-vertex-count islands"}).option("remove-empty",{type:"flag",describe:"delete features with null geometry"}).option("target",targetOpt);parser.command("filter-slivers").describe("remove small polygon rings").option("min-area",{type:"area",describe:"area threshold (e.g. 2sqkm)"}).option("sliver-control",{describe:"boost area threshold of slivers (0-1, default is 1)",type:"number"}).option("weighted",{type:"flag"}).option("target",targetOpt);parser.command("graticule").describe("create a graticule layer");parser.command("grid").describe("create a grid of square or hexagonal polygons").option("type",{describe:"square, hex or hex2 (default is square)"}).option("interval",{describe:"side length (e.g. 500m, 12km)",type:"distance"}).option("debug",{type:"flag"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("innerlines").describe("convert polygons to polylines along shared edges").flag("no_arg").option("where",whereOpt2).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("join").describe("join data records from a file or layer to a layer").example("Join a csv table to a Shapefile (don't auto-convert FIPS column to numbers)\n"+"$ mapshaper states.shp -join data.csv keys=STATE_FIPS,FIPS string-fields=FIPS -o joined.shp").validate(function(cmd){if(!cmd.options.source){error("Command requires the name of a layer or file to join")}}).option("source",{DEFAULT:true,describe:"file or layer containing data records"}).option("keys",{describe:"join by matching target,source key fields, e.g. keys=FID,id",type:"strings"}).option("calc",{describe:"use a JS expression to assign values (for many-to-one joins)"}).option("where",{describe:"use a JS expression to filter source records"}).option("fields",{describe:"fields to copy (comma-sep.) (default is all but key field)",type:"strings"}).option("prefix",{describe:"prefix for renaming fields joined from the source table"}).option("interpolate",{describe:"(polygon-polygon join) list of area-interpolated fields",type:"strings"}).option("point-method",{describe:"(polygon-polygon join) join polygons via inner points",type:"flag"}).option("planar",{type:"flag"}).option("string-fields",stringFieldsOpt).option("field-types",fieldTypesOpt).option("sum-fields",{describe:"fields to sum in a many-to-one join (or use calc= for this)",type:"strings"}).option("force",{describe:"replace values from same-named fields",type:"flag"}).option("unjoined",{describe:'copy unjoined records from source table to "unjoined" layer',type:"flag"}).option("unmatched",{describe:'copy unmatched records in target table to "unmatched" layer',type:"flag"}).option("encoding",encodingOpt).option("target",targetOpt);parser.command("lines").describe("convert a polygon or point layer to a polyline layer").option("fields",{DEFAULT:true,describe:"field(s) to create a hierarchy of boundary lines",type:"strings"}).option("where",whereOpt2).option("each",eachOpt2).option("segments",{describe:"convert paths to segments, for debugging",type:"flag"}).option("arcs",{describe:"convert paths to arcs, for debugging",type:"flag"}).option("groupby",{describe:"field for grouping point input into multiple lines"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("merge-layers").describe("merge multiple layers into as few layers as possible").flag("no_arg").option("force",{type:"flag",describe:"merge layers with inconsistent data fields"}).option("name",nameOpt).option("target",targetOpt);parser.command("mosaic").describe("convert a polygon layer with overlaps into a flat mosaic").option("calc",calcOpt).option("debug",{type:"flag"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("point-grid").describe("create a rectangular grid of points").validate(validateGridOpts).option("-",{label:"",describe:"size of the grid, e.g. -point-grid 100,100"}).option("interval",{describe:"distance between adjacent points, in source units",type:"distance"}).option("cols",{type:"integer"}).option("rows",{type:"integer"}).option("bbox",{type:"bbox",describe:"xmin,ymin,xmax,ymax (default is bbox of data)"}).option("name",nameOpt);parser.command("points").describe("create a point layer from a different layer type").flag("no_arg").option("x",{describe:"field containing x coordinate"}).option("y",{describe:"field containing y coordinate"}).option("inner",{describe:"create an interior point for each polygon's largest ring",type:"flag"}).option("centroid",{describe:"create a centroid point for each polygon's largest ring",type:"flag"}).option("vertices",{describe:"capture unique vertices of polygons and polylines",type:"flag"}).option("vertices2",{describe:"like vertices, but without removal of duplicate coordinates",type:"flag"}).option("endpoints",{describe:"capture unique endpoints of polygons and polylines",type:"flag"}).option("intersections",{type:"flag"}).option("interpolated",{describe:"interpolate points along polylines; requires interval=",type:"flag"}).option("interval",{describe:"distance between interpolated points (meters or projected units)",type:"distance"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("polygons").describe("convert polylines to polygons").option("gap-tolerance",{describe:"specify gap tolerance in source units",type:"distance"}).option("from-rings",{describe:"do simple conversion from a layer of closed paths",type:"flag"}).option("target",targetOpt);parser.command("proj").describe("project your data (using Proj.4)").flag("multi_arg").option("crs",{DEFAULT:true,describe:"set destination CRS using a Proj.4 definition or alias"}).option("projection",{alias_to:"crs"}).option("match",{describe:"set destination CRS using a .prj file or layer id"}).option("source",{alias_to:"match"}).option("from",{describe:"set source CRS (if unset) using a string, .prj or layer id"}).option("densify",{type:"flag",describe:"add points along straight segments to approximate curves"}).option("target",targetOpt).validate(validateProjOpts);parser.command("rectangle").describe("create a rectangle from a bbox or target layer extent").option("bbox",{describe:"rectangle coordinates (xmin,ymin,xmax,ymax)",type:"bbox"}).option("offset",offsetOpt).option("aspect-ratio",aspectRatioOpt).option("source",{describe:"name of layer to enclose"}).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("rectangles").describe("create a rectangle around each feature in a layer").option("offset",offsetOpt).option("aspect-ratio",aspectRatioOpt).option("name",nameOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("rename-fields").describe("rename data fields").option("fields",{DEFAULT:true,type:"strings",describe:"fields to rename (comma-sep.), e.g. 'fips=STATE_FIPS,st=state'"}).option("target",targetOpt);parser.command("rename-layers").describe("assign new names to layers").option("names",{DEFAULT:true,type:"strings",describe:"new layer name(s) (comma-sep. list)"}).option("target",targetOpt);parser.command("simplify").validate(validateSimplifyOpts).example("Retain 10% of removable vertices\n$ mapshaper input.shp -simplify 10%").describe("simplify the geometry of polygon and polyline features").option("percentage",{DEFAULT:true,alias:"p",type:"percent",describe:"percentage of removable points to retain, e.g. 10%"}).option("dp",{alias:"rdp",describe:"use Ramer-Douglas-Peucker simplification",assign_to:"method"}).option("visvalingam",{describe:'use Visvalingam simplification with "effective area" metric',assign_to:"method"}).option("weighted",{describe:"use weighted Visvalingam simplification (default)",assign_to:"method"}).option("method",{}).option("weighting",{type:"number",describe:"weighted Visvalingam coefficient (default is 0.7)"}).option("resolution",{describe:"output resolution as a grid (e.g. 1000x500)"}).option("interval",{describe:"output resolution as a distance (e.g. 100)",type:"distance"}).option("variable",{describe:"JS expr. assigning to one of: interval= percentage= resolution=",type:"flag"}).option("planar",{describe:"simplify decimal degree coords in 2D space (default is 3D)",type:"flag"}).option("cartesian",{alias_to:"planar"}).option("keep-shapes",{describe:"prevent small polygon features from disappearing",type:"flag"}).option("lock-box",{type:"flag"}).option("no-repair",{describe:"don't remove intersections introduced by simplification",type:"flag"}).option("stats",{describe:"display simplification statistics",type:"flag"}).option("target",targetOpt);parser.command("slice").option("source",{DEFAULT:true,describe:"file or layer containing clip polygons"}).option("id-field",{describe:"slice id field (from source layer)"}).option("name",nameOpt).option("no-snap",noSnapOpt).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("snap").option("interval",{DEFAULT:true,type:"distance"}).option("target",targetOpt);parser.command("sort").describe("sort features using a JS expression").option("expression",{DEFAULT:true,describe:"JS expression to generate a sort key for each feature"}).option("ascending",{describe:"sort in ascending order (default)",type:"flag"}).option("descending",{describe:"sort in descending order",type:"flag"}).option("target",targetOpt);parser.command("split").describe("split a layer into single-feature or multi-feature layers").option("field",{alias_to:"expression"}).option("expression",{DEFAULT:true,describe:"expression or field for grouping features and naming split layers"}).option("target",targetOpt).option("no-replace",noReplaceOpt);parser.command("split-on-grid").describe("split features into separate layers using a grid").validate(validateGridOpts).option("-",{label:"",describe:"size of the grid, e.g. -split-on-grid 12,10"}).option("cols",{type:"integer"}).option("rows",{type:"integer"}).option("id-field",{describe:"assign each feature a cell id instead of splitting layer"}).option("target",targetOpt);parser.command("style").oldAlias("svg-style").describe("set SVG style properties using JS or literal values").option("where",whereOpt).option("class",{describe:"name of CSS class or classes (space-separated)"}).option("fill",{describe:"fill color; examples: #eee pink rgba(0, 0, 0, 0.2)"}).option("stroke",{describe:"stroke color"}).option("stroke-width",{describe:"stroke width"}).option("stroke-dasharray",{describe:'stroke dashes. Examples: "4" "2 4"'}).option("opacity",{describe:"opacity; example: 0.5"}).option("r",{describe:"symbol radius (set this to export points as circles)"}).option("label-text",{describe:"label text (set this to export points as labels)"}).option("text-anchor",{describe:"label alignment; one of: start, end, middle (default)"}).option("dx",{describe:"x offset of labels (default is 0)"}).option("dy",{describe:"y offset of labels (default is 0/baseline-aligned)"}).option("font-size",{describe:"size of label text (default is 12)"}).option("font-family",{describe:"CSS font family of labels (default is sans-serif)"}).option("font-weight",{describe:"CSS font weight property of labels (e.g. bold, 700)"}).option("font-style",{describe:"CSS font style property of labels (e.g. italic)"}).option("letter-spacing",{describe:"CSS letter-spacing property of labels"}).option("line-height",{describe:"line spacing of multi-line labels (default is 1.1em)"}).option("target",targetOpt);parser.command("symbols").option("type",{describe:"symbol type"}).option("stroke",{}).option("stroke-width",{}).option("fill",{}).option("length",{}).option("rotation",{}).option("curve",{}).option("effect",{}).option("where",whereOpt).option("target",targetOpt);parser.command("target").describe("set active layer (or layers)").option("target",{DEFAULT:true,describe:"name or index of layer to target"}).option("type",{describe:"type of layer to target (polygon|polyline|point)"}).option("name",{describe:"rename the target layer"});parser.command("union").describe("create a flat mosaic from two or more polygon layers").option("fields",{type:"strings",describe:"fields to retain (comma-sep.) (default is all fields)"}).option("name",nameOpt).option("target",{describe:"specify layers to target (comma-sep. list)"}).option("no-replace",noReplaceOpt);parser.command("uniq").describe("delete features with the same id as a previous feature").option("expression",{DEFAULT:true,describe:"JS expression to obtain the id of a feature"}).option("max-count",{type:"number",describe:"max features with the same id (default is 1)"}).option("invert",invertOpt).option("verbose",{describe:"print each removed feature",type:"flag"}).option("target",targetOpt);parser.section("Experimental commands (may give unexpected results)");parser.command("cluster").describe("group polygons into compact clusters").option("id-field",{describe:'field name of cluster id (default is "cluster")'}).option("pct",{alias:"p",type:"percent",describe:"percentage of shapes to retain, e.g. 50%"}).option("max-width",{describe:"max width of cluster bounding box",type:"number"}).option("max-height",{describe:"max height of cluster bounding box",type:"number"}).option("max-area",{describe:"max area of a cluster",type:"number"}).option("group-by",{describe:"field name; only same-value shapes will be grouped"}).option("target",targetOpt);parser.command("data-fill").describe("fill in missing values in a polygon layer").option("field",{describe:"name of field to fill in"}).option("postprocess",{alias_to:"contiguous"}).option("contiguous",{describe:"remove non-contiguous data islands",type:"flag"}).option("weight-field",{describe:"use field values to calculate data island weights"});parser.command("external").option("module",{DEFAULT:true,describe:"name of Node module containing the command"});parser.command("frame").option("bbox",{describe:"frame coordinates (xmin,ymin,xmax,ymax)",type:"bbox"}).option("offset",offsetOpt).option("width",{describe:"pixel width of output (default is 800)"}).option("height",{describe:"pixel height of output (may be a range)"}).option("pixels",{describe:"area of output in pixels (alternative to width and height)",type:"number"}).option("source",{describe:"name of layer to enclose"}).option("name",nameOpt);parser.command("include").describe("import JS data and functions for use in JS expressions").option("file",{DEFAULT:true,describe:"file containing a JS object with key:value pairs to import"});parser.command("fuzzy-join").describe("join points to polygons, with data fill and fuzzy match").option("source",{DEFAULT:true,describe:"file or layer containing data records"}).option("field",{describe:"field to join"}).option("dedup-points",{describe:"uniqify points with the same location and field value",type:"flag"}).option("no-dropouts",{describe:"try to retain all values from the point layer",type:"flag"}).option("postprocess",{alias_to:"contiguous"}).option("contiguous",{describe:"remove non-contiguous data islands",type:"flag"}).option("target",targetOpt);parser.command("require").describe("require a Node module for use in -each expressions").option("module",{DEFAULT:true,describe:"name of Node module or path to module file"}).option("alias",{describe:"Set the module name to an alias"}).option("init",{describe:"JS expression to run after the module loads"});parser.command("run").describe("create commands on-the-fly and run them").option("include",{}).option("commands",{DEFAULT:true,describe:"command string or JS expresson to generate command(s)"}).option("target",targetOpt);parser.command("scalebar").option("top",{}).option("right",{}).option("bottom",{}).option("left",{}).option("font-size",{}).option("label-position",{}).option("label-text",{});parser.command("shape").describe("create a polyline or polygon from coordinates").option("coordinates",{describe:"list of vertices as x,y,x,y...",type:"numbers"}).option("offsets",{describe:"list of vertices as offsets from coordinates list",type:"numbers"}).option("closed",{describe:"close an open path to create a polygon",type:"flag"}).option("name",nameOpt);parser.command("subdivide").describe("recursively split a layer using a JS expression").validate(validateExpressionOpt).option("expression",{DEFAULT:true,describe:"boolean JS expression"}).option("target",targetOpt);parser.section("Informational commands");parser.command("calc").describe("calculate statistics about the features in a layer").example("Calculate the total area of a polygon layer\n"+"$ mapshaper polygons.shp -calc 'sum($.area)'").example("Count census blocks in NY with zero population\n"+"$ mapshaper ny-census-blocks.shp -calc 'count()' where='POPULATION == 0'").validate(validateExpressionOpt).option("expression",{DEFAULT:true,describe:"functions: sum() average() median() max() min() count()"}).option("where",whereOpt).option("target",targetOpt);parser.command("encodings").describe("print list of supported text encodings (for .dbf import)");parser.command("help").alias("h").describe("print help; takes optional command name").option("command",{DEFAULT:true,describe:"view detailed information about a command"});parser.command("info").describe("print information about data layers").option("target",targetOpt);parser.command("inspect").describe("print information about a feature").option("expression",{DEFAULT:true,describe:"boolean JS expression for selecting a feature"}).option("target",targetOpt).validate(validateExpressionOpt);parser.command("projections").describe("print list of supported projections");parser.command("quiet").describe("inhibit console messages");parser.command("verbose").describe("print verbose processing messages");parser.command("version").alias("v").describe("print mapshaper version");parser.command("debug");return parser};internal.parseCommands=function(tokens){if(Array.isArray(tokens)&&utils.isObject(tokens[0])){return tokens.map(function(cmd){return{name:cmd.name,options:utils.extend({},cmd.options)}})}if(utils.isString(tokens)){tokens=internal.splitShellTokens(tokens)}return internal.getOptionParser().parseArgv(tokens)};internal.standardizeConsoleCommands=function(raw){var str=raw.replace(/^mapshaper\b/,"").trim();if(/^[a-z]/.test(str)){str="-"+str}return str};internal.parseConsoleCommands=function(raw){var blocked=["i","include","require","external"];var str=internal.standardizeConsoleCommands(raw);var parsed;parsed=internal.parseCommands(str);parsed.forEach(function(cmd){var i=blocked.indexOf(cmd.name);if(i>-1){stop("The -"+blocked[i]+" command cannot be run in the browser")}});return parsed};internal.expandCommandTargets=function(targets){return targets.reduce(function(memo,target){target.layers.forEach(function(lyr){memo.push({layer:lyr,dataset:target.dataset})});return memo},[])};internal.findCommandTargets=function(catalog,pattern,type){var targets=[];var layers=utils.pluck(catalog.getLayers(),"layer");var matches=internal.findMatchingLayers(layers,pattern);if(type)matches=matches.filter(function(lyr){return lyr.geometry_type==type});catalog.getDatasets().forEach(function(dataset){var layers=dataset.layers.filter(function(lyr){return matches.indexOf(lyr)>-1});if(layers.length>0){targets.push({layers:layers,dataset:dataset})}});return targets};internal.findMatchingLayers=function(layers,pattern){var matches=[];var index={};pattern.split(",").forEach(function(subpattern,i){var test=internal.getLayerMatch(subpattern);layers.forEach(function(lyr,layerId){if(layerId in index)return;if(test(lyr,layerId+1)){lyr.target_id=matches.length;matches.push(lyr);index[layerId]=true}else{lyr.target_id=-1}})});return matches};internal.getLayerMatch=function(pattern){var isIndex=utils.isInteger(Number(pattern));var nameRxp=isIndex?null:utils.wildcardToRegExp(pattern);return function(lyr,i){return isIndex?String(i)==pattern:nameRxp.test(lyr.name||"")}};internal.countTargetLayers=function(targets){return targets.reduce(function(memo,target){return memo+target.layers.length},0)};internal.getLayerTargetId=function(catalog,lyr){var nameCount=0,name=lyr.name,id;catalog.getLayers().forEach(function(o,i){if(lyr.name&&o.layer.name==lyr.name)nameCount++;if(lyr==o.layer)id=String(i+1)});if(!id)error("Layer not found");return nameCount==1?lyr.name:id};function Catalog(){var datasets=[],defaultTargets=[];this.forEachLayer=function(cb){var i=0;datasets.forEach(function(dataset){dataset.layers.forEach(function(lyr){cb(lyr,dataset,i++)})})};this.deleteLayer=function(lyr,dataset){if(this.getActiveLayer().layer==lyr){defaultTargets=[]}dataset.layers.splice(dataset.layers.indexOf(lyr),1);if(dataset.layers.length===0){this.removeDataset(dataset)}defaultTargets=defaultTargets.filter(function(targ){var i=targ.layers.indexOf(lyr);if(i==-1)return true;targ.layers.splice(i,1);return targ.layers.length>0})};this.findLayer=function(arg){var test=typeof arg=="function"?arg:null;var found=null;this.forEachLayer(function(lyr,dataset){if(test?test(lyr,dataset):lyr==arg){found=layerObject(lyr,dataset)}});return found};this.findCommandTargets=function(pattern,type){if(pattern){return internal.findCommandTargets(this,pattern,type)}return this.getDefaultTargets()||[]};this.removeDataset=function(dataset){defaultTargets=defaultTargets.filter(function(targ){return targ.dataset!=dataset});datasets=datasets.filter(function(d){return d!=dataset})};this.getDatasets=function(){return datasets};this.getLayers=function(){var layers=[];this.forEachLayer(function(lyr,dataset){layers.push(layerObject(lyr,dataset))});return layers};this.addDataset=function(dataset){this.setDefaultTarget(dataset.layers,dataset);return this};this.findNextLayer=function(lyr){var layers=this.getLayers(),idx=indexOfLayer(lyr,layers);return idx>-1?layers[(idx+1)%layers.length]:null};this.findPrevLayer=function(lyr){var layers=this.getLayers(),idx=indexOfLayer(lyr,layers);return idx>-1?layers[(idx-1+layers.length)%layers.length]:null};this.isEmpty=function(){return datasets.length===0};this.getDefaultTargets=function(){if(defaultTargets.length===0&&!this.isEmpty()){defaultTargets=[{dataset:datasets[0],layers:datasets[0].layers.slice(0,1)}]}return defaultTargets};this.setDefaultTarget=function(layers,dataset){if(datasets.indexOf(dataset)==-1){datasets.push(dataset)}defaultTargets=[{layers:layers.concat(),dataset:dataset}]};this.setDefaultTargets=function(arr){defaultTargets=arr};this.getActiveLayer=function(){var targ=(this.getDefaultTargets()||[])[0];return targ?{layer:targ.layers[0],dataset:targ.dataset}:null};function layerObject(lyr,dataset){return{layer:lyr,dataset:dataset}}function indexOfLayer(lyr,layers){var idx=-1;layers.forEach(function(o,i){if(o.layer==lyr)idx=i});return idx}}internal.getFormattedLayerList=function(catalog){var lines=[];catalog.forEachLayer(function(lyr,dataset,i){lines.push(" ["+(i+1)+"] "+(lyr.name||"[unnamed]"))});return lines.length>0?lines.join("\n"):"[none]"};internal.clipIterByBounds=function(iter,bounds){var points=[];var bbox=getClippingBBox(bounds);var xy,xyp,first,isRing;while(iter.hasNext()){xy=[iter.x,iter.y];addClippedPoint(points,xyp,xy,bbox);xyp=xy;if(!first)first=xy}isRing=pointsAreEqual(first,xy);if(isRing&&points.length>0&&!pointsAreEqual(points[0],points[points.length-1])){points.push(points[0].concat())}if(isRing&&points.length<4||points.length<2){points=[]}return points};function pointsAreEqual(a,b){return a&&b&&a[0]===b[0]&&a[1]===b[1]}function getPointSector(x,y,bbox){var bl=bbox[0];var tr=bbox[2];var i;if(x>tr[0]){i=y>tr[1]&&4||y>=bl[1]&&5||6}else if(x>=bl[0]){i=y>tr[1]&&3||y>=bl[1]&&8||7}else{i=y>tr[1]&&2||y>=bl[1]&&1||0}return i}function isCornerSector(q){return q==0||q==2||q==4||q==6}function isEdgeSector(q){return q==1||q==3||q==5||q==7}function getSectorRotation(q){return q>1&&q<8?Math.floor(q/2):0}function rotateClippingBox(i,bbox){var a=bbox[0],b=bbox[1],c=bbox[2],d=bbox[3];if(i===0){bbox=[a,b,c,d]}else if(i==1){bbox=[b,c,d,a]}else if(i==2){bbox=[c,d,a,b]}else if(i==3){bbox=[d,a,b,c]}else error("Invalid rotation number");return bbox}function getClippingBBox(bounds){return[[bounds.xmin,bounds.ymin],[bounds.xmin,bounds.ymax],[bounds.xmax,bounds.ymax],[bounds.xmax,bounds.ymin]]}function rotateSector(i,q){return q<8&&q>=0?(q+8-i*2)%8:q}function getCornerBySector(q,bbox){if(isCornerSector(q)){return bbox[q/2].concat()}error("Invalid corner sector:",q)}function addCornerPoint(points,q,bbox){points.push(getCornerBySector(q,bbox))}function projectPointToEdge(p,s1,s2){return s1[0]==s2[0]?[s1[0],p[1]]:[p[0],s1[1]]}function addClippedPoint(points,p1,p2,bbox){var q1=p1?getPointSector(p1[0],p1[1],bbox):-1;var q2=getPointSector(p2[0],p2[1],bbox);var rot;var closed=true;if(q1==8&&q2==8){points.push(p2)}else if(q1==q2){}else if(q1==-1){if(q2==8){points.push(p2)}else if(closed&&isCornerSector(q2)){addCornerPoint(points,q2,bbox)}}else if(q1==8){addSegmentBoundsIntersection(points,p1,p2,bbox);if(closed&&isCornerSector(q2)){addCornerPoint(points,q2,bbox)}}else if(q2==8){addSegmentBoundsIntersection(points,p1,p2,bbox);points.push(p2)}else{rot=getSectorRotation(q1);bbox=rotateClippingBox(rot,bbox);q1=rotateSector(rot,q1);q2=rotateSector(rot,q2);if(q1==0){if(q2===0||q2===1||q2===7){}else if(q2==2||q2==6){if(closed)addCornerPoint(points,q2,bbox)}else if(q2==3){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox)}else if(q2==4){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)){if(geom.orient2D(p1[0],p1[1],p2[0],p2[1],bbox[0][0],bbox[0][1])>1){addCornerPoint(points,6,bbox)}else{addCornerPoint(points,2,bbox)}}if(closed)addCornerPoint(points,q2,bbox)}else if(q2==5){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,6,bbox)}}else if(q1==1){if(q2==2||q2===0){addCornerPoint(points,q2,bbox)}else if(q2==3){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox)}else if(q2==4){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,2,bbox);if(closed)addCornerPoint(points,4,bbox)}else if(q2==5){addSegmentBoundsIntersection(points,p1,p2,bbox)}else if(q2==6){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,0,bbox);if(closed)addCornerPoint(points,6,bbox)}else if(q2==7){if(!addSegmentBoundsIntersection(points,p1,p2,bbox)&&closed)addCornerPoint(points,0,bbox)}}else{error("Sector error")}}}function addSegmentSegmentIntersection(points,a,b,c,d){var p=geom.segmentIntersection(a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);if(p)points.push(p)}function addSegmentBoundsIntersection(points,a,b,bounds){var hits=[];addSegmentSegmentIntersection(hits,a,b,bounds[0],bounds[1]);addSegmentSegmentIntersection(hits,a,b,bounds[0],bounds[3]);addSegmentSegmentIntersection(hits,a,b,bounds[1],bounds[2]);addSegmentSegmentIntersection(hits,a,b,bounds[2],bounds[3]);if(hits.length>0){points.push.apply(points,hits);return true}return false}api.filterGeom=function(lyr,arcs,opts){if(!internal.layerHasGeometry(lyr)){stop("Layer is missing geometry")}if(opts.bbox){internal.filterByBoundsIntersection(lyr,arcs,opts)}api.filterFeatures(lyr,arcs,{remove_empty:true,verbose:false})};internal.filterByBoundsIntersection=function(lyr,arcs,opts){var filter=internal.getBoundsIntersectionFilter(opts.bbox,lyr,arcs);internal.editShapes(lyr.shapes,filter)};internal.getBoundsIntersectionFilter=function(bbox,lyr,arcs){var bounds=new Bounds(bbox);var filter=lyr.geometry_type=="point"?internal.getPointInBoundsTest(bounds):internal.getPathBoundsIntersectionTest(bounds,arcs);return filter};internal.getPointInBoundsTest=function(bounds){return function(xy){var contains=bounds.containsPoint(xy[0],xy[1]);return contains?xy:null}};internal.getPathBoundsIntersectionTest=function(bounds,arcs){var bbox=bounds.toArray(),left=bbox[0],bottom=bbox[1],right=bbox[2],top=bbox[3];return function(path){if(!bounds.intersects(arcs.getSimpleShapeBounds(path))){return null}var intersects=false;var ax,ay,bx,by;var iter=arcs.getShapeIter(path);if(iter.hasNext()){ax=iter.x;ay=iter.y}while(iter.hasNext()){bx=ax;by=ay;ax=iter.x;ay=iter.y;if(internal.segmentOutsideBBox(ax,ay,bx,by,left,bottom,right,top))continue;if(internal.segmentInsideBBox(ax,ay,bx,by,left,bottom,right,top)){intersects=true;break}if(geom.segmentIntersection(left,top,right,top,ax,ay,bx,by)||geom.segmentIntersection(left,bottom,right,bottom,ax,ay,bx,by)||geom.segmentIntersection(left,bottom,left,top,ax,ay,bx,by)||geom.segmentIntersection(right,bottom,right,top,ax,ay,bx,by)){intersects=true;break}}if(!intersects&&geom.testPointInRing(left,bottom,path,arcs)){intersects=true}return intersects?path:null}};internal.getBBoxIntersectionTest=function(bbox,lyr,arcs){var filter=internal.getBoundsIntersectionFilter(bbox,lyr,arcs);return function(shapeId){var shp=lyr.shapes[shapeId];if(!shp)return false;for(var i=0;i1&&(name=="merge-layers"||name=="union")){targets=internal.mergeCommandTargets(targets,catalog)}if(targets.length==1){targetDataset=targets[0].dataset;arcs=targetDataset.arcs;targetLayers=targets[0].layers;catalog.setDefaultTarget(targetLayers,targetDataset)}else if(targets.length>1){stop("This command does not support targetting layers from different datasets")}}if(targets.length===0){if(opts.target){stop(utils.format("Missing target: %s\nAvailable layers: %s",opts.target,internal.getFormattedLayerList(catalog)))}if(!(name=="graticule"||name=="i"||name=="help"||name=="point-grid"||name=="shape"||name=="rectangle"||name=="include")){throw new UserError("No data is available")}}if(opts.source){source=internal.findCommandSource(internal.convertSourceName(opts.source,targets),catalog,opts)}if(name=="affine"){api.affine(targetLayers,targetDataset,opts)}else if(name=="buffer"){outputLayers=api.buffer(targetLayers,targetDataset,opts)}else if(name=="data-fill"){applyCommandToEachLayer(api.dataFill,targetLayers,arcs,opts)}else if(name=="cluster"){applyCommandToEachLayer(api.cluster,targetLayers,arcs,opts)}else if(name=="calc"){applyCommandToEachLayer(api.calc,targetLayers,arcs,opts)}else if(name=="clean"){api.cleanLayers(targetLayers,targetDataset,opts)}else if(name=="clip"){outputLayers=api.clipLayers(targetLayers,source,targetDataset,opts)}else if(name=="colorizer"){outputLayers=api.colorizer(opts)}else if(name=="dissolve"){outputLayers=applyCommandToEachLayer(api.dissolve,targetLayers,arcs,opts)}else if(name=="dissolve2"){outputLayers=api.dissolve2(targetLayers,targetDataset,opts)}else if(name=="divide"){api.divide(targetLayers,targetDataset,source,opts)}else if(name=="dots"){outputLayers=applyCommandToEachLayer(api.dots,targetLayers,arcs,opts)}else if(name=="drop"){api.drop2(catalog,targets,opts)}else if(name=="each"){applyCommandToEachLayer(api.evaluateEachFeature,targetLayers,arcs,opts.expression,opts)}else if(name=="erase"){outputLayers=api.eraseLayers(targetLayers,source,targetDataset,opts)}else if(name=="explode"){outputLayers=applyCommandToEachLayer(api.explodeFeatures,targetLayers,arcs,opts)}else if(name=="external"){internal.external(opts)}else if(name=="filter"){outputLayers=applyCommandToEachLayer(api.filterFeatures,targetLayers,arcs,opts)}else if(name=="filter-fields"){applyCommandToEachLayer(api.filterFields,targetLayers,opts.fields)}else if(name=="filter-geom"){applyCommandToEachLayer(api.filterGeom,targetLayers,arcs,opts)}else if(name=="filter-islands"){applyCommandToEachLayer(api.filterIslands,targetLayers,targetDataset,opts)}else if(name=="filter-islands2"){applyCommandToEachLayer(api.filterIslands2,targetLayers,targetDataset,opts)}else if(name=="filter-slivers"){applyCommandToEachLayer(api.filterSlivers,targetLayers,targetDataset,opts)}else if(name=="frame"){api.frame(catalog,source,opts)}else if(name=="fuzzy-join"){applyCommandToEachLayer(api.fuzzyJoin,targetLayers,arcs,source,opts)}else if(name=="graticule"){catalog.addDataset(api.graticule(targetDataset,opts))}else if(cmd.name=="help"){internal.getOptionParser().printHelp(cmd.options.command)}else if(name=="i"){if(opts.replace)catalog=new Catalog;targetDataset=api.importFiles(cmd.options);if(targetDataset){catalog.addDataset(targetDataset);outputLayers=targetDataset.layers}}else if(name=="include"){internal.include(opts)}else if(name=="info"){internal.printInfo(internal.expandCommandTargets(targets))}else if(name=="inspect"){applyCommandToEachLayer(api.inspect,targetLayers,arcs,opts)}else if(name=="innerlines"){outputLayers=applyCommandToEachLayer(api.innerlines,targetLayers,arcs,opts)}else if(name=="join"){applyCommandToEachLayer(api.join,targetLayers,targetDataset,source,opts)}else if(name=="lines"){outputLayers=applyCommandToEachLayer(api.lines,targetLayers,targetDataset,opts)}else if(name=="merge-layers"){outputLayers=api.mergeLayers(targetLayers,opts)}else if(name=="mosaic"){outputLayers=api.mosaic(targetLayers,targetDataset,opts)}else if(name=="o"){outputFiles=internal.exportTargetLayers(targets,opts);if(opts.final){catalog=null}return internal.writeFiles(outputFiles,opts,done)}else if(name=="point-grid"){outputLayers=[api.pointGrid(targetDataset,opts)];if(!targetDataset){catalog.addDataset({layers:outputLayers})}}else if(name=="grid"){outputDataset=api.polygonGrid(targetLayers,targetDataset,opts)}else if(name=="points"){outputLayers=applyCommandToEachLayer(api.createPointLayer,targetLayers,targetDataset,opts)}else if(name=="polygons"){outputLayers=api.polygons(targetLayers,targetDataset,opts)}else if(name=="proj"){internal.initProjLibrary(opts,function(){var err=null;try{targets.forEach(function(targ){var destArg=opts.match||opts.crs||opts.projection;var srcInfo,destInfo;if(opts.from){srcInfo=internal.getCrsInfo(opts.from,catalog);if(!srcInfo.crs)stop("Unknown projection source:",opts.from);internal.setDatasetCRS(targ.dataset,srcInfo)}if(destArg){destInfo=internal.getCrsInfo(destArg,catalog);api.proj(targ.dataset,destInfo,opts)}})}catch(e){err=e}done(err)});return}else if(name=="rectangle"){if(source||opts.bbox||targets.length===0){catalog.addDataset(api.rectangle(source,opts))}else{outputLayers=api.rectangle2(targets[0],opts)}}else if(name=="rectangles"){outputLayers=applyCommandToEachLayer(api.rectangles,targetLayers,targetDataset,opts)}else if(name=="rename-fields"){applyCommandToEachLayer(api.renameFields,targetLayers,opts.fields)}else if(name=="rename-layers"){api.renameLayers(targetLayers,opts.names)}else if(name=="require"){api.require(targets,opts)}else if(name=="run"){api.run(targets,catalog,opts,done);return}else if(name=="scalebar"){api.scalebar(catalog,opts)}else if(name=="shape"){catalog.addDataset(api.shape(opts))}else if(name=="simplify"){if(opts.variable){api.variableSimplify(targetLayers,targetDataset,opts)}else{api.simplify(targetDataset,opts)}}else if(name=="slice"){outputLayers=api.sliceLayers(targetLayers,source,targetDataset,opts)}else if(name=="snap"){api.snap(targetDataset,opts)}else if(name=="sort"){applyCommandToEachLayer(api.sortFeatures,targetLayers,arcs,opts)}else if(name=="split"){outputLayers=applyCommandToEachLayer(api.splitLayer,targetLayers,opts.expression,opts)}else if(name=="split-on-grid"){outputLayers=applyCommandToEachLayer(api.splitLayerOnGrid,targetLayers,arcs,opts)}else if(name=="stitch"){api.stitch(targetDataset)}else if(name=="style"){applyCommandToEachLayer(api.svgStyle,targetLayers,targetDataset,opts)}else if(name=="symbols"){applyCommandToEachLayer(api.symbols,targetLayers,opts)}else if(name=="subdivide"){outputLayers=applyCommandToEachLayer(api.subdivideLayer,targetLayers,arcs,opts.expression)}else if(name=="target"){internal.target(catalog,opts)}else if(name=="union"){outputLayers=api.union(targetLayers,targetDataset,opts)}else if(name=="uniq"){applyCommandToEachLayer(api.uniq,targetLayers,arcs,opts)}else{internal.runExternalCommand(cmd,catalog)}if("name"in opts&&outputLayers){outputLayers.forEach(function(lyr){lyr.name=opts.name})}if(outputDataset){catalog.addDataset(outputDataset);outputLayers=outputDataset.layers;if(targetLayers&&!opts.no_replace){targetLayers.forEach(function(lyr){catalog.deleteLayer(lyr,targetDataset)})}}else if(outputLayers&&targetDataset&&outputLayers!=targetDataset.layers){if(opts.no_replace){if(!internal.outputLayersAreDifferent(outputLayers,targetLayers||[])){error("Command returned invalid output")}targetDataset.layers=targetDataset.layers.concat(outputLayers)}else{internal.replaceLayers(targetDataset,targetLayers,outputLayers);if((name=="clip"||name=="erase"||name=="rectangle"||name=="rectangles"||name=="filter"&&opts.cleanup)&&!opts.no_cleanup){internal.dissolveArcs(targetDataset)}}catalog.setDefaultTarget(outputLayers,targetDataset)}if(targetDataset){internal.cleanupArcs(targetDataset)}}catch(e){return done(e)}done(null);function done(err){T.stop("-");cb(err,err?null:catalog)}};internal.outputLayersAreDifferent=function(output,input){return!utils.some(input,function(lyr){return output.indexOf(lyr)>-1})};function applyCommandToEachLayer(func,targetLayers){var args=utils.toArray(arguments).slice(2);return targetLayers.reduce(function(memo,lyr){var result=func.apply(null,[lyr].concat(args));if(utils.isArray(result)){memo=memo.concat(result)}else if(result){memo.push(result)}return memo},[])}api.runCommands=function(argv){var opts=internal.importRunArgs.apply(null,arguments);internal.runCommands(argv,opts,function(err){opts.callback(err)});if(opts.promise)return opts.promise};api.applyCommands=function(argv){var opts=internal.importRunArgs.apply(null,arguments);var callback=opts.callback;var outputArr=opts.output=[];internal.runCommands(argv,opts,function(err){if(err)return callback(err);if(opts.legacy)return callback(null,internal.toLegacyOutputFormat(outputArr));return callback(null,internal.toOutputFormat(outputArr))});if(opts.promise)return opts.promise};api.runCommandsXL=function(argv){var opts=internal.importRunArgs.apply(null,arguments);var mapshaperScript=require("path").join(__dirname,"bin/mapshaper");var gb=parseFloat(opts.options.xl)||8;if(gb<1||gb>64){opts.callback(new Error("Unsupported heap size:"+gb+"GB"));return opts.promise}if(!internal.LOGGING)argv+=" -quiet";var mb=Math.round(gb*1e3);var command=[process.execPath,"--max-old-space-size="+mb,mapshaperScript,argv].join(" ");var child=require("child_process").exec(command,{},function(err,stdout,stderr){opts.callback(err)});child.stdout.pipe(process.stdout);child.stderr.pipe(process.stderr);if(opts.promise)return opts.promise};internal.importRunArgs=function(arg0,arg1,arg2){var opts={options:{}};if(utils.isFunction(arg1)){opts.callback=arg1}else if(utils.isFunction(arg2)){opts.callback=arg2;opts.legacy=arg1&&internal.guessInputContentType(arg1)!=null;opts.input=arg1}else{opts.promise=new Promise(function(resolve,reject){opts.callback=function(err,data){if(err)reject(err);else resolve(data)}})}if(!opts.legacy&&utils.isObject(arg1)){if(arg1.xl){opts.options=arg1}else{opts.input=arg1}}return opts};internal.toOutputFormat=function(arr){return arr.reduce(function(memo,o){memo[o.filename]=o.content;return memo},{})};internal.runCommands=function(argv,opts,callback){var outputArr=opts.output||null,inputObj=opts.input,commands;try{commands=internal.parseCommands(argv)}catch(e){return callback(e)}if(opts.legacy){message("Warning: deprecated input format");commands=internal.convertLegacyCommands(commands,inputObj);inputObj=null}commands.forEach(function(cmd){if(internal.commandTakesFileInput(cmd.name)&&inputObj){cmd.options.input=inputObj}if(cmd.name=="o"&&outputArr){cmd.options.output=outputArr}});internal.runParsedCommands(commands,null,callback)};internal.commandTakesFileInput=function(name){return name=="i"||name=="join"||name=="erase"||name=="clip"||name=="include"};internal.toLegacyOutputFormat=function(arr){if(arr.length>1){return utils.pluck(arr,"content")}if(arr.length==1){return arr[0].content}return null};internal.convertLegacyCommands=function(arr,inputObj){var i=utils.find(arr,function(cmd){return cmd.name=="i"});var o=utils.find(arr,function(cmd){return cmd.name=="o"});if(!i){i={name:"i",options:{}};arr.unshift(i)}i.options.files=["__input__"];i.options.input={__input__:inputObj};if(!o){arr.push({name:"o",options:{}})}return arr};internal.testCommands=function(argv,done){internal.runCommands(argv,{},function(err,catalog){var targets=catalog?catalog.getDefaultTargets():[];var output;if(!err&&targets.length>0){output=targets[0].dataset}done(err,output)})};internal.runParsedCommands=function(commands,catalog,cb){if(!catalog){cb=createAsyncContext(cb);catalog=new Catalog}else if(catalog instanceof Catalog===false){error("Changed in v0.4: runParsedCommands() takes a Catalog object")}if(!utils.isFunction(done)){error("Missing a callback function")}if(!utils.isArray(commands)){error("Expected an array of parsed commands")}if(commands.length===0){return done(new UserError("No commands to run"))}commands=internal.readAndRemoveSettings(commands);commands=internal.runAndRemoveInfoCommands(commands);if(commands.length===0){return done(null)}if(!api.gui&&commands[commands.length-1].name=="o"){commands[commands.length-1].options.final=true}commands=internal.divideImportCommand(commands);utils.reduceAsync(commands,catalog,nextCommand,done);function nextCommand(catalog,cmd,next){internal.setStateVar("current_command",cmd.name);api.runCommand(cmd,catalog,next)}function done(err,catalog){cb(err,catalog);internal.setStateVar("current_command",null)}};internal.divideImportCommand=function(commands){var firstCmd=commands[0],opts=firstCmd.options;if(firstCmd.name!="i"||opts.stdin||opts.merge_files||opts.combine_files||!opts.files||opts.files.length<2){return commands}return opts.files.reduce(function(memo,file){var importCmd={name:"i",options:utils.defaults({files:[file],replace:true},opts)};memo.push(importCmd);memo.push.apply(memo,commands.slice(1));return memo},[])};utils.reduceAsync=function(arr,memo,iter,done){var i=0;next(null,memo);function next(err,memo){if(err){return done(err,null)}(function(){if(i0){var parent=pos-1>>1;var parentValue=this.values[parent];if(value>=parentValue){break}this.ids[pos]=this.ids[parent];this.values[pos]=parentValue;pos=parent}this.ids[pos]=id;this.values[pos]=value};FlatQueue.prototype.pop=function pop(){if(this.length===0){return undefined}var top=this.ids[0];this.length--;if(this.length>0){var id=this.ids[0]=this.ids[this.length];var value=this.values[0]=this.values[this.length];var halfLength=this.length>>1;var pos=0;while(pos=value){break}this.ids[pos]=bestIndex;this.values[pos]=bestValue;pos=left}this.ids[pos]=id;this.values[pos]=value}return top};FlatQueue.prototype.peek=function peek(){return this.ids[0]};FlatQueue.prototype.peekValue=function peekValue(){return this.values[0]};var ARRAY_TYPES=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var VERSION=3;var Flatbush=function Flatbush(numItems,nodeSize,ArrayType,data){if(nodeSize===void 0)nodeSize=16;if(ArrayType===void 0)ArrayType=Float64Array;if(numItems===undefined){throw new Error("Missing required argument: numItems.")}if(isNaN(numItems)||numItems<=0){throw new Error("Unpexpected numItems value: "+numItems+".")}this.numItems=+numItems;this.nodeSize=Math.min(Math.max(+nodeSize,2),65535);var n=numItems;var numNodes=n;this._levelBounds=[n*4];do{n=Math.ceil(n/this.nodeSize);numNodes+=n;this._levelBounds.push(numNodes*4)}while(n!==1);this.ArrayType=ArrayType||Float64Array;this.IndexArrayType=numNodes<16384?Uint16Array:Uint32Array;var arrayTypeIndex=ARRAY_TYPES.indexOf(this.ArrayType);var nodesByteSize=numNodes*4*this.ArrayType.BYTES_PER_ELEMENT;if(arrayTypeIndex<0){throw new Error("Unexpected typed array class: "+ArrayType+".")}if(data&&data instanceof ArrayBuffer){this.data=data;this._boxes=new this.ArrayType(this.data,8,numNodes*4);this._indices=new this.IndexArrayType(this.data,8+nodesByteSize,numNodes);this._pos=numNodes*4;this.minX=this._boxes[this._pos-4];this.minY=this._boxes[this._pos-3];this.maxX=this._boxes[this._pos-2];this.maxY=this._boxes[this._pos-1]}else{this.data=new ArrayBuffer(8+nodesByteSize+numNodes*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new this.ArrayType(this.data,8,numNodes*4);this._indices=new this.IndexArrayType(this.data,8+nodesByteSize,numNodes);this._pos=0;this.minX=Infinity;this.minY=Infinity;this.maxX=-Infinity;this.maxY=-Infinity;new Uint8Array(this.data,0,2).set([251,(VERSION<<4)+arrayTypeIndex]);new Uint16Array(this.data,2,1)[0]=nodeSize;new Uint32Array(this.data,4,1)[0]=numItems}this._queue=new FlatQueue};Flatbush.from=function from(data){if(!(data instanceof ArrayBuffer)){throw new Error("Data must be an instance of ArrayBuffer.")}var ref=new Uint8Array(data,0,2);var magic=ref[0];var versionAndType=ref[1];if(magic!==251){throw new Error("Data does not appear to be in a Flatbush format.")}if(versionAndType>>4!==VERSION){throw new Error("Got v"+(versionAndType>>4)+" data when expected v"+VERSION+".")}var ref$1=new Uint16Array(data,2,1);var nodeSize=ref$1[0];var ref$2=new Uint32Array(data,4,1);var numItems=ref$2[0];return new Flatbush(numItems,nodeSize,ARRAY_TYPES[versionAndType&15],data)};Flatbush.prototype.add=function add(minX,minY,maxX,maxY){var index=this._pos>>2;this._indices[index]=index;this._boxes[this._pos++]=minX;this._boxes[this._pos++]=minY;this._boxes[this._pos++]=maxX;this._boxes[this._pos++]=maxY;if(minXthis.maxX){this.maxX=maxX}if(maxY>this.maxY){this.maxY=maxY}return index};Flatbush.prototype.finish=function finish(){if(this._pos>>2!==this.numItems){throw new Error("Added "+(this._pos>>2)+" items when expected "+this.numItems+".")}var width=this.maxX-this.minX;var height=this.maxY-this.minY;var hilbertValues=new Uint32Array(this.numItems);var hilbertMax=(1<<16)-1;for(var i=0;inodeMaxX){nodeMaxX=maxX$1}if(maxY$1>nodeMaxY){nodeMaxY=maxY$1}}this._indices[this._pos>>2]=nodeIndex;this._boxes[this._pos++]=nodeMinX;this._boxes[this._pos++]=nodeMinY;this._boxes[this._pos++]=nodeMaxX;this._boxes[this._pos++]=nodeMaxY}}};Flatbush.prototype.search=function search(minX,minY,maxX,maxY,filterFn){if(this._pos!==this._boxes.length){throw new Error("Data not yet indexed - call index.finish().")}var nodeIndex=this._boxes.length-4;var level=this._levelBounds.length-1;var queue=[];var results=[];while(nodeIndex!==undefined){var end=Math.min(nodeIndex+this.nodeSize*4,this._levelBounds[level]);for(var pos=nodeIndex;pos>2]|0;if(maxXthis._boxes[pos+2]){continue}if(minY>this._boxes[pos+3]){continue}if(nodeIndex>2]|0;var dx=axisDist(x,this._boxes[pos],this._boxes[pos+2]);var dy=axisDist(y,this._boxes[pos+1],this._boxes[pos+3]);var dist=dx*dx+dy*dy;if(nodeIndexmaxDistSquared){q.clear();return results}results.push(-q.pop()-1);if(results.length===maxResults){q.clear();return results}}nodeIndex=q.pop()}q.clear();return results};function axisDist(k,min,max){return k>1;if(arr[m]>value){j=m}else{i=m+1}}return arr[i]}function sort(values,boxes,indices,left,right){if(left>=right){return}var pivot=values[left+right>>1];var i=left-1;var j=right+1;while(true){do{i++}while(values[i]pivot);if(i>=j){break}swap(values,boxes,indices,i,j)}sort(values,boxes,indices,left,j);sort(values,boxes,indices,j+1,right)}function swap(values,boxes,indices,i,j){var temp=values[i];values[i]=values[j];values[j]=temp;var k=4*i;var m=4*j;var a=boxes[k];var b=boxes[k+1];var c=boxes[k+2];var d=boxes[k+3];boxes[k]=boxes[m];boxes[k+1]=boxes[m+1];boxes[k+2]=boxes[m+2];boxes[k+3]=boxes[m+3];boxes[m]=a;boxes[m+1]=b;boxes[m+2]=c;boxes[m+3]=d;var e=indices[i];indices[i]=indices[j];indices[j]=e}function hilbert(x,y){var a=x^y;var b=65535^a;var c=65535^(x|y);var d=x&(y^65535);var A=a|b>>1;var B=a>>1^a;var C=c>>1^b&d>>1^c;var D=a&c>>1^d>>1^d;a=A;b=B;c=C;d=D;A=a&a>>2^b&b>>2;B=a&b>>2^b&(a^b)>>2;C^=a&c>>2^b&d>>2;D^=b&c>>2^(a^b)&d>>2;a=A;b=B;c=C;d=D;A=a&a>>4^b&b>>4;B=a&b>>4^b&(a^b)>>4;C^=a&c>>4^b&d>>4;D^=b&c>>4^(a^b)&d>>4;a=A;b=B;c=C;d=D;C^=a&c>>8^b&d>>8;D^=b&c>>8^(a^b)&d>>8;a=C^C>>1;b=D^D>>1;var i0=x^y;var i1=b|65535^(i0|a);i0=(i0|i0<<8)&16711935;i0=(i0|i0<<4)&252645135;i0=(i0|i0<<2)&858993459;i0=(i0|i0<<1)&1431655765;i1=(i1|i1<<8)&16711935;i1=(i1|i1<<4)&252645135;i1=(i1|i1<<2)&858993459;i1=(i1|i1<<1)&1431655765;return(i1<<1|i0)>>>0}return Flatbush})},{}],4:[function(require,module,exports){"use strict";var Response=function(){function Response(statusCode,headers,body,url){if(typeof statusCode!=="number"){throw new TypeError("statusCode must be a number but was "+typeof statusCode)}if(headers===null){throw new TypeError("headers cannot be null")}if(typeof headers!=="object"){throw new TypeError("headers must be an object but was "+typeof headers)}this.statusCode=statusCode;var headersToLowerCase={};for(var key in headers){headersToLowerCase[key.toLowerCase()]=headers[key]}this.headers=headersToLowerCase;this.body=body;this.url=url}Response.prototype.isError=function(){return this.statusCode===0||this.statusCode>=400};Response.prototype.getBody=function(encoding){if(this.statusCode===0){var err=new Error("This request to "+this.url+" resulted in a status code of 0. This usually indicates some kind of network error in a browser (e.g. CORS not being set up or the DNS failing to resolve):\n"+this.body.toString());err.statusCode=this.statusCode;err.headers=this.headers;err.body=this.body;err.url=this.url;throw err}if(this.statusCode>=300){var err=new Error("Server responded to "+this.url+" with status code "+this.statusCode+":\n"+this.body.toString());err.statusCode=this.statusCode;err.headers=this.headers;err.body=this.body;err.url=this.url;throw err}if(!encoding||typeof this.body==="string"){return this.body}return this.body.toString(encoding)};return Response}();module.exports=Response},{}],5:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports._dbcs=DBCSCodec;var UNASSIGNED=-1,GB18030_CODE=-2,SEQ_START=-10,NODE_START=-1e3,UNASSIGNED_NODE=new Array(256),DEF_CHAR=-1;for(var i=0;i<256;i++)UNASSIGNED_NODE[i]=UNASSIGNED;function DBCSCodec(codecOptions,iconv){this.encodingName=codecOptions.encodingName;if(!codecOptions)throw new Error("DBCS codec is called without the data.");if(!codecOptions.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var mappingTable=codecOptions.table();this.decodeTables=[];this.decodeTables[0]=UNASSIGNED_NODE.slice(0);this.decodeTableSeq=[];for(var i=0;i0;addr>>=8)bytes.push(addr&255);if(bytes.length==0)bytes.push(0);var node=this.decodeTables[0];for(var i=bytes.length-1;i>0;i--){var val=node[bytes[i]];if(val==UNASSIGNED){node[bytes[i]]=NODE_START-this.decodeTables.length;this.decodeTables.push(node=UNASSIGNED_NODE.slice(0))}else if(val<=NODE_START){node=this.decodeTables[NODE_START-val]}else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+addr.toString(16))}return node};DBCSCodec.prototype._addDecodeChunk=function(chunk){var curAddr=parseInt(chunk[0],16);var writeTable=this._getDecodeTrieNode(curAddr);curAddr=curAddr&255;for(var k=1;k255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+chunk[0]+": too long"+curAddr)};DBCSCodec.prototype._getEncodeBucket=function(uCode){var high=uCode>>8;if(this.encodeTable[high]===undefined)this.encodeTable[high]=UNASSIGNED_NODE.slice(0);return this.encodeTable[high]};DBCSCodec.prototype._setEncodeChar=function(uCode,dbcsCode){var bucket=this._getEncodeBucket(uCode);var low=uCode&255;if(bucket[low]<=SEQ_START)this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR]=dbcsCode;else if(bucket[low]==UNASSIGNED)bucket[low]=dbcsCode};DBCSCodec.prototype._setEncodeSequence=function(seq,dbcsCode){var uCode=seq[0];var bucket=this._getEncodeBucket(uCode);var low=uCode&255;var node;if(bucket[low]<=SEQ_START){node=this.encodeTableSeq[SEQ_START-bucket[low]]}else{node={};if(bucket[low]!==UNASSIGNED)node[DEF_CHAR]=bucket[low];bucket[low]=SEQ_START-this.encodeTableSeq.length;this.encodeTableSeq.push(node)}for(var j=1;j=0)this._setEncodeChar(uCode,mbCode);else if(uCode<=NODE_START)this._fillEncodeTable(NODE_START-uCode,mbCode<<8,skipEncodeChars);else if(uCode<=SEQ_START)this._setEncodeSequence(this.decodeTableSeq[SEQ_START-uCode],mbCode)}};function DBCSEncoder(options,codec){this.leadSurrogate=-1;this.seqObj=undefined;this.encodeTable=codec.encodeTable;this.encodeTableSeq=codec.encodeTableSeq;this.defaultCharSingleByte=codec.defCharSB;this.gb18030=codec.gb18030}DBCSEncoder.prototype.write=function(str){var newBuf=Buffer.alloc(str.length*(this.gb18030?4:3)),leadSurrogate=this.leadSurrogate,seqObj=this.seqObj,nextChar=-1,i=0,j=0;while(true){if(nextChar===-1){if(i==str.length)break;var uCode=str.charCodeAt(i++)}else{var uCode=nextChar;nextChar=-1}if(55296<=uCode&&uCode<57344){if(uCode<56320){if(leadSurrogate===-1){leadSurrogate=uCode;continue}else{leadSurrogate=uCode;uCode=UNASSIGNED}}else{if(leadSurrogate!==-1){uCode=65536+(leadSurrogate-55296)*1024+(uCode-56320);leadSurrogate=-1}else{uCode=UNASSIGNED}}}else if(leadSurrogate!==-1){nextChar=uCode;uCode=UNASSIGNED;leadSurrogate=-1}var dbcsCode=UNASSIGNED;if(seqObj!==undefined&&uCode!=UNASSIGNED){var resCode=seqObj[uCode];if(typeof resCode==="object"){seqObj=resCode;continue}else if(typeof resCode=="number"){dbcsCode=resCode}else if(resCode==undefined){resCode=seqObj[DEF_CHAR];if(resCode!==undefined){dbcsCode=resCode;nextChar=uCode}else{}}seqObj=undefined}else if(uCode>=0){var subtable=this.encodeTable[uCode>>8];if(subtable!==undefined)dbcsCode=subtable[uCode&255];if(dbcsCode<=SEQ_START){seqObj=this.encodeTableSeq[SEQ_START-dbcsCode];continue}if(dbcsCode==UNASSIGNED&&this.gb18030){var idx=findIdx(this.gb18030.uChars,uCode);if(idx!=-1){var dbcsCode=this.gb18030.gbChars[idx]+(uCode-this.gb18030.uChars[idx]);newBuf[j++]=129+Math.floor(dbcsCode/12600);dbcsCode=dbcsCode%12600;newBuf[j++]=48+Math.floor(dbcsCode/1260);dbcsCode=dbcsCode%1260;newBuf[j++]=129+Math.floor(dbcsCode/10);dbcsCode=dbcsCode%10;newBuf[j++]=48+dbcsCode;continue}}}if(dbcsCode===UNASSIGNED)dbcsCode=this.defaultCharSingleByte;if(dbcsCode<256){newBuf[j++]=dbcsCode}else if(dbcsCode<65536){newBuf[j++]=dbcsCode>>8;newBuf[j++]=dbcsCode&255}else{newBuf[j++]=dbcsCode>>16;newBuf[j++]=dbcsCode>>8&255;newBuf[j++]=dbcsCode&255}}this.seqObj=seqObj;this.leadSurrogate=leadSurrogate;return newBuf.slice(0,j)};DBCSEncoder.prototype.end=function(){if(this.leadSurrogate===-1&&this.seqObj===undefined)return;var newBuf=Buffer.alloc(10),j=0;if(this.seqObj){var dbcsCode=this.seqObj[DEF_CHAR];if(dbcsCode!==undefined){if(dbcsCode<256){newBuf[j++]=dbcsCode}else{newBuf[j++]=dbcsCode>>8;newBuf[j++]=dbcsCode&255}}else{}this.seqObj=undefined}if(this.leadSurrogate!==-1){newBuf[j++]=this.defaultCharSingleByte;this.leadSurrogate=-1}return newBuf.slice(0,j)};DBCSEncoder.prototype.findIdx=findIdx;function DBCSDecoder(options,codec){this.nodeIdx=0;this.prevBuf=Buffer.alloc(0);this.decodeTables=codec.decodeTables;this.decodeTableSeq=codec.decodeTableSeq;this.defaultCharUnicode=codec.defaultCharUnicode;this.gb18030=codec.gb18030}DBCSDecoder.prototype.write=function(buf){var newBuf=Buffer.alloc(buf.length*2),nodeIdx=this.nodeIdx,prevBuf=this.prevBuf,prevBufOffset=this.prevBuf.length,seqStart=-this.prevBuf.length,uCode;if(prevBufOffset>0)prevBuf=Buffer.concat([prevBuf,buf.slice(0,10)]);for(var i=0,j=0;i=0?buf[i]:prevBuf[i+prevBufOffset];var uCode=this.decodeTables[nodeIdx][curByte];if(uCode>=0){}else if(uCode===UNASSIGNED){i=seqStart;uCode=this.defaultCharUnicode.charCodeAt(0)}else if(uCode===GB18030_CODE){var curSeq=seqStart>=0?buf.slice(seqStart,i+1):prevBuf.slice(seqStart+prevBufOffset,i+1+prevBufOffset);var ptr=(curSeq[0]-129)*12600+(curSeq[1]-48)*1260+(curSeq[2]-129)*10+(curSeq[3]-48);var idx=findIdx(this.gb18030.gbChars,ptr);uCode=this.gb18030.uChars[idx]+ptr-this.gb18030.gbChars[idx]}else if(uCode<=NODE_START){nodeIdx=NODE_START-uCode;continue}else if(uCode<=SEQ_START){var seq=this.decodeTableSeq[SEQ_START-uCode];for(var k=0;k>8}uCode=seq[seq.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+uCode+" at "+nodeIdx+"/"+curByte);if(uCode>65535){uCode-=65536;var uCodeLead=55296+Math.floor(uCode/1024);newBuf[j++]=uCodeLead&255;newBuf[j++]=uCodeLead>>8;uCode=56320+uCode%1024}newBuf[j++]=uCode&255;newBuf[j++]=uCode>>8;nodeIdx=0;seqStart=i+1}this.nodeIdx=nodeIdx;this.prevBuf=seqStart>=0?buf.slice(seqStart):prevBuf.slice(seqStart+prevBufOffset);return newBuf.slice(0,j).toString("ucs2")};DBCSDecoder.prototype.end=function(){var ret="";while(this.prevBuf.length>0){ret+=this.defaultCharUnicode;var buf=this.prevBuf.slice(1);this.prevBuf=Buffer.alloc(0);this.nodeIdx=0;if(buf.length>0)ret+=this.write(buf)}this.nodeIdx=0;return ret};function findIdx(table,val){if(table[0]>val)return-1;var l=0,r=table.length;while(l>>6);buf[bufIdx++]=128+(charCode&63)}else{buf[bufIdx++]=224+(charCode>>>12);buf[bufIdx++]=128+(charCode>>>6&63);buf[bufIdx++]=128+(charCode&63)}}return buf.slice(0,bufIdx)};InternalEncoderCesu8.prototype.end=function(){};function InternalDecoderCesu8(options,codec){this.acc=0;this.contBytes=0;this.accBytes=0;this.defaultCharUnicode=codec.defaultCharUnicode}InternalDecoderCesu8.prototype.write=function(buf){var acc=this.acc,contBytes=this.contBytes,accBytes=this.accBytes,res="";for(var i=0;i0){res+=this.defaultCharUnicode;contBytes=0}if(curByte<128){res+=String.fromCharCode(curByte)}else if(curByte<224){acc=curByte&31;contBytes=1;accBytes=1}else if(curByte<240){acc=curByte&15;contBytes=2;accBytes=1}else{res+=this.defaultCharUnicode}}else{if(contBytes>0){acc=acc<<6|curByte&63;contBytes--;accBytes++;if(contBytes===0){if(accBytes===2&&acc<128&&acc>0)res+=this.defaultCharUnicode;else if(accBytes===3&&acc<2048)res+=this.defaultCharUnicode;else res+=String.fromCharCode(acc)}}else{res+=this.defaultCharUnicode}}}this.acc=acc;this.contBytes=contBytes;this.accBytes=accBytes;return res};InternalDecoderCesu8.prototype.end=function(){var res=0;if(this.contBytes>0)res+=this.defaultCharUnicode;return res}},{"safer-buffer":38,string_decoder:49}],9:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports._sbcs=SBCSCodec;function SBCSCodec(codecOptions,iconv){if(!codecOptions)throw new Error("SBCS codec is called without the data.");if(!codecOptions.chars||codecOptions.chars.length!==128&&codecOptions.chars.length!==256)throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(codecOptions.chars.length===128){var asciiString="";for(var i=0;i<128;i++)asciiString+=String.fromCharCode(i);codecOptions.chars=asciiString+codecOptions.chars}this.decodeBuf=Buffer.from(codecOptions.chars,"ucs2");var encodeBuf=Buffer.alloc(65536,iconv.defaultCharSingleByte.charCodeAt(0));for(var i=0;i?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xb0\xb7\u2219\u221a\u2592\u2500\u2502\u253c\u2524\u252c\u251c\u2534\u2510\u250c\u2514\u2518\u03b2\u221e\u03c6\xb1\xbd\xbc\u2248\xab\xbb\ufef7\ufef8\ufffd\ufffd\ufefb\ufefc\ufffd\xa0\xad\ufe82\xa3\xa4\ufe84\ufffd\ufffd\ufe8e\ufe8f\ufe95\ufe99\u060c\ufe9d\ufea1\ufea5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufed1\u061b\ufeb1\ufeb5\ufeb9\u061f\xa2\ufe80\ufe81\ufe83\ufe85\ufeca\ufe8b\ufe8d\ufe91\ufe93\ufe97\ufe9b\ufe9f\ufea3\ufea7\ufea9\ufeab\ufead\ufeaf\ufeb3\ufeb7\ufebb\ufebf\ufec1\ufec5\ufecb\ufecf\xa6\xac\xf7\xd7\ufec9\u0640\ufed3\ufed7\ufedb\ufedf\ufee3\ufee7\ufeeb\ufeed\ufeef\ufef3\ufebd\ufecc\ufece\ufecd\ufee1\ufe7d\u0651\ufee5\ufee9\ufeec\ufef0\ufef2\ufed0\ufed5\ufef5\ufef6\ufedd\ufed9\ufef1\u25a0\ufffd"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xa4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0386\ufffd\xb7\xac\xa6\u2018\u2019\u0388\u2015\u0389\u038a\u03aa\u038c\ufffd\ufffd\u038e\u03ab\xa9\u038f\xb2\xb3\u03ac\xa3\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03cd\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xbd\u0398\u0399\xab\xbb\u2591\u2592\u2593\u2502\u2524\u039a\u039b\u039c\u039d\u2563\u2551\u2557\u255d\u039e\u039f\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u03a0\u03a1\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u2518\u250c\u2588\u2584\u03b4\u03b5\u2580\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u0384\xad\xb1\u03c5\u03c6\u03c7\xa7\u03c8\u0385\xb0\xa8\u03c9\u03cb\u03b0\u03ce\u25a0\xa0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\u203e\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0160\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\u017d\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0161\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\u017e\xff"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\ufe88\xd7\xf7\uf8f6\uf8f5\uf8f4\uf8f7\ufe71\x88\u25a0\u2502\u2500\u2510\u250c\u2514\u2518\ufe79\ufe7b\ufe7d\ufe7f\ufe77\ufe8a\ufef0\ufef3\ufef2\ufece\ufecf\ufed0\ufef6\ufef8\ufefa\ufefc\xa0\uf8fa\uf8f9\uf8f8\xa4\uf8fb\ufe8b\ufe91\ufe97\ufe9b\ufe9f\ufea3\u060c\xad\ufea7\ufeb3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufeb7\u061b\ufebb\ufebf\ufeca\u061f\ufecb\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\ufec7\u0639\u063a\ufecc\ufe82\ufe84\ufe8e\ufed3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\ufed7\ufedb\ufedf\uf8fc\ufef5\ufef7\ufef9\ufefb\ufee3\ufee7\ufeec\ufee9\ufffd"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\xad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045a\u045b\u045c\xa7\u045e\u045f"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e81\u0e82\u0e84\u0e87\u0e88\u0eaa\u0e8a\u0e8d\u0e94\u0e95\u0e96\u0e97\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea1\u0ea2\u0ea3\u0ea5\u0ea7\u0eab\u0ead\u0eae\ufffd\ufffd\ufffd\u0eaf\u0eb0\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0ebc\u0eb1\u0ebb\u0ebd\ufffd\ufffd\ufffd\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ec6\ufffd\u0edc\u0edd\u20ad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\ufffd\ufffd\xa2\xac\xa6\ufffd"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e48\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e49\u0e4a\u0e4b\u20ac\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\xa2\xac\xa6\xa0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20ac\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\u20ac\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u2126\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\ufffd\xa9\u2044\xa4\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\xa2\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},macgreek:{type:"_sbcs",chars:"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\xad\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\u0387\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\ufffd"},maciceland:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macroman:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macromania:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u015e\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\u0103\u015f\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\u0162\u0163\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macthai:{type:"_sbcs",chars:"\xab\xbb\u2026\uf88c\uf88f\uf892\uf895\uf898\uf88b\uf88e\uf891\uf894\uf897\u201c\u201d\uf899\ufffd\u2022\uf884\uf889\uf885\uf886\uf887\uf888\uf88a\uf88d\uf890\uf893\uf896\u2018\u2019\ufffd\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufeff\u200b\u2013\u2014\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u2122\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\xae\xa9\ufffd\ufffd\ufffd\ufffd"},macturkish:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\ufffd\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255a\u255b\u255c\u255d\u255e\u255f\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256a\u256b\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u255d\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u045e\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u040e\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8t:{type:"_sbcs",chars:"\u049b\u0493\u201a\u0492\u201e\u2026\u2020\u2021\ufffd\u2030\u04b3\u2039\u04b2\u04b7\u04b6\ufffd\u049a\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\ufffd\u04ef\u04ee\u0451\xa4\u04e3\xa6\xa7\ufffd\ufffd\ufffd\xab\xac\xad\xae\ufffd\xb0\xb1\xb2\u0401\ufffd\u04e2\xb6\xb7\ufffd\u2116\ufffd\xbb\ufffd\ufffd\ufffd\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\u0587\u0589)(\xbb\xab\u2014.\u055d,-\u058a\u2026\u055c\u055b\u055e\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053a\u056a\u053b\u056b\u053c\u056c\u053d\u056d\u053e\u056e\u053f\u056f\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054a\u057a\u054b\u057b\u054c\u057c\u054d\u057d\u054e\u057e\u054f\u057f\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055a\ufffd"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u049a\u04ba\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u049b\u04bb\u045f\xa0\u04b0\u04b1\u04d8\xa4\u04e8\xa6\xa7\u0401\xa9\u0492\xab\xac\xad\xae\u04ae\xb0\xb1\u0406\u0456\u04e9\xb5\xb6\xb7\u0451\u2116\u0493\xbb\u04d9\u04a2\u04a3\u04af\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},tcvn:{type:"_sbcs",chars:"\0\xda\u1ee4\x03\u1eea\u1eec\u1eee\x07\b\t\n\v\f\r\x0e\x0f\x10\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xc0\u1ea2\xc3\xc1\u1ea0\u1eb6\u1eac\xc8\u1eba\u1ebc\xc9\u1eb8\u1ec6\xcc\u1ec8\u0128\xcd\u1eca\xd2\u1ece\xd5\xd3\u1ecc\u1ed8\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xa0\u0102\xc2\xca\xd4\u01a0\u01af\u0110\u0103\xe2\xea\xf4\u01a1\u01b0\u0111\u1eb0\u0300\u0309\u0303\u0301\u0323\xe0\u1ea3\xe3\xe1\u1ea1\u1eb2\u1eb1\u1eb3\u1eb5\u1eaf\u1eb4\u1eae\u1ea6\u1ea8\u1eaa\u1ea4\u1ec0\u1eb7\u1ea7\u1ea9\u1eab\u1ea5\u1ead\xe8\u1ec2\u1ebb\u1ebd\xe9\u1eb9\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\xec\u1ec9\u1ec4\u1ebe\u1ed2\u0129\xed\u1ecb\xf2\u1ed4\u1ecf\xf5\xf3\u1ecd\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ed6\u1ee7\u0169\xfa\u1ee5\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5\u1ed0"},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10f1\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10f2\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10f3\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10f4\u10ef\u10f0\u10f5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04ee\u0493\u201e\u2026\u04b6\u04ae\u04b2\u04af\u04a0\u04e2\u04a2\u049a\u04ba\u04b8\u0497\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u04b3\u04b7\u04a1\u04e3\u04a3\u049b\u04bb\u04b9\xa0\u040e\u045e\u0408\u04e8\u0498\u04b0\xa7\u0401\xa9\u04d8\xab\xac\u04ef\xae\u049c\xb0\u04b1\u0406\u0456\u0499\u04e9\xb6\xb7\u0451\u2116\u04d9\xbb\u0458\u04aa\u04ab\u049d\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},viscii:{type:"_sbcs",chars:"\0\x01\u1eb2\x03\x04\u1eb4\u1eaa\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\u1ef6\x15\x16\x17\x18\u1ef8\x1a\x1b\x1c\x1d\u1ef4\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\u1ea0\u1eae\u1eb0\u1eb6\u1ea4\u1ea6\u1ea8\u1eac\u1ebc\u1eb8\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1ee2\u1eda\u1edc\u1ede\u1eca\u1ece\u1ecc\u1ec8\u1ee6\u0168\u1ee4\u1ef2\xd5\u1eaf\u1eb1\u1eb7\u1ea5\u1ea7\u1ea9\u1ead\u1ebd\u1eb9\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ed1\u1ed3\u1ed5\u1ed7\u1ee0\u01a0\u1ed9\u1edd\u1edf\u1ecb\u1ef0\u1ee8\u1eea\u1eec\u01a1\u1edb\u01af\xc0\xc1\xc2\xc3\u1ea2\u0102\u1eb3\u1eb5\xc8\xc9\xca\u1eba\xcc\xcd\u0128\u1ef3\u0110\u1ee9\xd2\xd3\xd4\u1ea1\u1ef7\u1eeb\u1eed\xd9\xda\u1ef9\u1ef5\xdd\u1ee1\u01b0\xe0\xe1\xe2\xe3\u1ea3\u0103\u1eef\u1eab\xe8\xe9\xea\u1ebb\xec\xed\u0129\u1ec9\u0111\u1ef1\xf2\xf3\xf4\xf5\u1ecf\u1ecd\u1ee5\xf9\xfa\u0169\u1ee7\xfd\u1ee3\u1eee"},iso646cn:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#\xa5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},iso646jp:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xa5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xc0\xc2\xc8\xca\xcb\xce\xcf\xb4\u02cb\u02c6\xa8\u02dc\xd9\xdb\u20a4\xaf\xdd\xfd\xb0\xc7\xe7\xd1\xf1\xa1\xbf\xa4\xa3\xa5\xa7\u0192\xa2\xe2\xea\xf4\xfb\xe1\xe9\xf3\xfa\xe0\xe8\xf2\xf9\xe4\xeb\xf6\xfc\xc5\xee\xd8\xc6\xe5\xed\xf8\xe6\xc4\xec\xd6\xdc\xc9\xef\xdf\xd4\xc1\xc3\xe3\xd0\xf0\xcd\xcc\xd3\xd2\xd5\xf5\u0160\u0161\xda\u0178\xff\xde\xfe\xb7\xb5\xb6\xbe\u2014\xbc\xbd\xaa\xba\xab\u25a0\xbb\xb1\ufffd"},macintosh:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},ascii:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},tis620:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"}}},{}],11:[function(require,module,exports){"use strict";module.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026\xa0\u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\u20ac\u25a0\xa0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2514\u2534\u252c\u251c\u2500\u253c\u2563\u2551\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xa7\u2557\u255d\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},{}],12:[function(require,module,exports){module.exports=[["8740","\u43f0\u4c32\u4603\u45a6\u4578\ud85c\ude67\u4d77\u45b3\ud85f\udcb1\u4ce2\ud85f\udcc5\u3b95\u4736\u4744\u4c47\u4c40\ud850\udebf\ud84d\ude17\ud85c\udf52\ud85b\ude8b\ud85c\udcd2\u4c57\ud868\udf51\u474f\u45da\u4c85\ud85f\udc6c\u4d07\u4aa4\u46a1\ud85a\udf23\u7225\ud856\ude54\ud846\ude63\ud84f\ude06\ud84f\udf61\u664d\u56fb"],["8767","\u7d95\u591d\ud862\udfb9\u3df4\u9734\ud85e\udfef\u5bdb\ud847\udd5e\u5aa4\u3625\ud867\udeb0\u5ad1\u5bb7\u5cfc\u676e\u8593\ud866\udd45\u7461\u749d\u3875\ud847\udd53\ud84d\ude9e\ud858\udc21\u3eec"],["87a1","\ud856\udcde\u3af5\u7afc\u9f97\ud850\udd61\ud862\udd0d\ud84c\uddea\ud842\ude8a\ud84c\ude5e\u430a\u8484\u9f96\u942f\u4930\u8613\u5896\u974a\u9218\u79d0\u7a32\u6660\u6a29\u889d\u744c\u7bc5\u6782\u7a2c\u524f\u9046\u34e6\u73c4\ud857\uddb9\u74c6\u9fc7\u57b3\u492f\u544c\u4131\ud84d\ude8e\u5818\u7a72\ud85e\udf65\u8b8f\u46ae\ud85b\ude88\u4181\ud857\udd99\u7bae\ud849\udcbc\u9fc8\ud849\udcc1\ud849\udcc9\ud849\udccc\u9fc9\u8504\ud84d\uddbb\u40b4\u9fca\u44e1\ud86b\uddff\u62c1\u706e\u9fcb"],["8840","\u31c0",4,"\ud840\udd0c\u31c5\ud840\udcd1\ud840\udccd\u31c6\u31c7\ud840\udccb\ud847\udfe8\u31c8\ud840\udcca\u31c9\u31ca\u31cb\u31cc\ud840\udd0e\u31cd\u31ce\u0100\xc1\u01cd\xc0\u0112\xc9\u011a\xc8\u014c\xd3\u01d1\xd2\u0fff\xca\u0304\u1ebe\u0fff\xca\u030c\u1ec0\xca\u0101\xe1\u01ce\xe0\u0251\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da"],["88a1","\u01dc\xfc\u0fff\xea\u0304\u1ebf\u0fff\xea\u030c\u1ec1\xea\u0261\u23da\u23db"],["8940","\ud868\udfa9\ud844\udd45"],["8943","\u650a"],["8946","\u4e3d\u6edd\u9d4e\u91df"],["894c","\ud85d\udf35\u6491\u4f1a\u4f28\u4fa8\u5156\u5174\u519c\u51e4\u52a1\u52a8\u533b\u534e\u53d1\u53d8\u56e2\u58f0\u5904\u5907\u5932\u5934\u5b66\u5b9e\u5b9f\u5c9a\u5e86\u603b\u6589\u67fe\u6804\u6865\u6d4e\u70bc\u7535\u7ea4\u7eac\u7eba\u7ec7\u7ecf\u7edf\u7f06\u7f37\u827a\u82cf\u836f\u89c6\u8bbe\u8be2\u8f66\u8f67\u8f6e"],["89a1","\u7411\u7cfc\u7dcd\u6946\u7ac9\u5227"],["89ab","\u918c\u78b8\u915e\u80bc"],["89b0","\u8d0b\u80f6\ud842\udde7"],["89b5","\u809f\u9ec7\u4ccd\u9dc9\u9e0c\u4c3e\ud867\uddf6\ud85c\udc0e\u9e0a\ud868\udd33\u35c1"],["89c1","\u6e9a\u823e\u7519"],["89c5","\u4911\u9a6c\u9a8f\u9f99\u7987\ud861\udc6c\ud847\uddca\ud841\uddd0\ud84a\udee6\u4e24\u4e81\u4e80\u4e87\u4ebf\u4eeb\u4f37\u344c\u4fbd\u3e48\u5003\u5088\u347d\u3493\u34a5\u5186\u5905\u51db\u51fc\u5205\u4e89\u5279\u5290\u5327\u35c7\u53a9\u3551\u53b0\u3553\u53c2\u5423\u356d\u3572\u3681\u5493\u54a3\u54b4\u54b9\u54d0\u54ef\u5518\u5523\u5528\u3598\u553f\u35a5\u35bf\u55d7\u35c5"],["8a40","\ud85f\udd84\u5525"],["8a43","\ud843\udc42\ud843\udd15\ud854\udd2b\u5590\ud84b\udcc6\u39ec\ud840\udf41\u8e46\ud853\uddb8\ud865\udce5\u4053\ud860\udcbe\u777a\ud84b\udc38\u3a34\u47d5\ud860\udd5d\ud85a\uddf2\ud853\uddea\u64dd\ud843\udd7c\ud843\udfb4\ud843\udcd5\ud844\udcf4\u648d\u8e7e\ud843\ude96\ud843\udc0b\ud843\udf64\ud84b\udca9\ud860\ude56\ud851\udcd3"],["8a64","\ud843\udd46\ud866\ude4d\ud860\udce9\u47f4\ud853\udea7\ud84b\udcc2\u9ab2\u3a67\ud865\uddf4\u3fed\u3506\ud854\udec7\ud865\udfd4\ud85e\udcc8\ud84b\udd44\u9d6e\u9815"],["8a76","\u43d9\ud858\udca5\u64b4\u54e3\ud84b\udd4c\ud84a\udfca\ud844\udc77\u39fb\ud844\udc6f"],["8aa1","\ud859\udeda\ud859\udf16\ud85e\udda0\u64ea\ud854\udc52\ud843\udc43\u8e68\ud848\udda1\ud862\udf4c\ud841\udf31"],["8aac","\u480b\ud840\udda9\u3ffa\u5873\ud84b\udd8d"],["8ab2","\ud851\uddc8\ud841\udcfc\ud858\udc97\ud843\udf4c\ud843\udd96\u5579\u40bb\u43ba"],["8abb","\u4ab4\ud84a\ude66\ud844\udc9d\u81aa\u98f5\ud843\udd9c\u6379\u39fe\ud849\udf75\u8dc0\u56a1\u647c\u3e43"],["8ac9","\ud869\ude01\ud843\ude09\ud84a\udecf\ud84b\udcc9"],["8ace","\ud844\udcc8\ud84e\uddc2\u3992\u3a06\ud860\ude9b\u3578\ud857\ude49\ud848\udcc7\u5652\ud843\udf31\ud84b\udcb2\ud865\udf20\u34bc\u6c3d\ud853\ude3b"],["8adf","\ud85d\udd74\ud84b\ude8b\ud848\ude08\ud869\ude5b\ud863\udccd\ud843\ude7a\ud843\udc34\ud85a\udc1c\u7f93\ud844\udccf\ud84a\udc03\ud84a\udd39\u35fb\ud854\udde3\ud843\ude8c\ud843\udf8d\ud843\udeaa\u3f93\ud843\udf30\ud843\udd47\ud844\udd4f\ud843\ude4c"],["8af6","\ud843\udeab\ud842\udfa9\ud843\udd48\ud844\udcc0\ud844\udd3d\u3ff9\ud849\ude96\u6432\ud843\udfad"],["8b40","\ud84c\udff4\ud85d\ude39\ud84a\udfce\ud843\udd7e\ud843\udd7f\ud84b\udc51\ud84b\udc55\u3a18\ud843\ude98\ud844\udcc7\ud843\udf2e\ud869\ude32\ud85a\udf50\ud863\udcd2\ud863\udd99\ud863\udcca\u95aa\u54cc\u82c4\u55b9"],["8b55","\ud867\udec3\u9c26\u9ab6\ud85d\udf5e\ud84b\uddee\u7140\u816d\u80ec\u5c1c\ud859\udd72\u8134\u3797\u535f\ud860\udcbd\u91b6\ud843\udefa\ud843\ude0f\ud843\ude77\ud843\udefb\u35dd\ud853\uddeb\u3609\ud843\udcd6\u56af\ud849\udfb5\ud844\udcc9\ud843\ude10\ud843\ude78\ud844\udc78\ud844\udd48\ud860\ude07\ud845\udc55\ud843\ude79\ud853\ude50\ud84b\udda4\u5a54\ud844\udc1d\ud844\udc1e\ud844\udcf5\ud844\udcf6\u579c\ud843\ude11"],["8ba1","\ud85d\ude94\ud860\udecd\ud843\udfb5\ud843\ude7b\ud854\udd7e\u3703\ud843\udfb6\ud844\udd80\ud854\uded8\ud868\udebd\ud852\uddda\ud846\udc3a\ud850\udd77\ud860\ude7c\u5899\u5268\u361a\ud855\udf3d\u7bb2\u5b68\u4800\u4b2c\u9f27\u49e7\u9c1f\u9b8d\ud856\udf74\ud84c\udd3d\u55fb\u35f2\u5689\u4e28\u5902\ud846\udfc1\ud87e\udc78\u9751\ud840\udc86\u4e5b\u4ebb\u353e\u5c23\u5f51\u5fc4\u38fa\u624c\u6535\u6b7a\u6c35\u6c3a\u706c\u722b\u4e2c\u72ad\ud852\udce9\u7f52\u793b\u7cf9\u7f53\ud858\ude6a\u34c1"],["8bde","\ud858\udf4b\u8002\u8080\ud859\ude12\ud85a\udd51\u535d\u8864\u89c1\ud85e\udcb2\u8ba0\u8d1d\u9485\u9578\u957f\u95e8\ud863\ude0f\u97e6\u9875\u98ce\u98de\u9963\ud866\udc10\u9c7c\u9e1f\u9ec4\u6b6f\uf907\u4e37\ud840\udc87\u961d\u6237\u94a2"],["8c40","\u503b\u6dfe\ud867\udc73\u9fa6\u3dc9\u888f\ud850\udd4e\u7077\u5cf5\u4b20\ud854\uddcd\u3559\ud857\udd30\u6122\ud862\ude32\u8fa7\u91f6\u7191\u6719\u73ba\ud84c\ude81\ud868\udd07\u3c8b\ud846\udd80\u4b10\u78e4\u7402\u51ae\ud861\udf0f\u4009\u6a63\ud868\udeba\u4223\u860f\ud842\ude6f\u7a2a\ud866\udd47\ud862\udeea\u9755\u704d\u5324\ud848\udc7e\u93f4\u76d9\ud862\udde3\u9fa7\u77dd\u4ea3\u4ff0\u50bc\u4e2f\u4f17\u9fa8\u5434\u7d8b\u5892\u58d0\ud847\uddb6\u5e92\u5e99\u5fc2\ud849\udf12\u658b"],["8ca1","\ud84c\udff9\u6919\u6a43\ud84f\udc63\u6cff"],["8ca7","\u7200\ud851\udd05\u738c\u3edb\ud852\ude13\u5b15\u74b9\u8b83\ud857\udca4\ud855\ude95\u7a93\u7bec\u7cc3\u7e6c\u82f8\u8597\u9fa9\u8890\u9faa\u8eb9\u9fab\u8fcf\u855f\u99e0\u9221\u9fac\ud863\uddb9\ud845\udc3f\u4071\u42a2\u5a1a"],["8cc9","\u9868\u676b\u4276\u573d"],["8cce","\u85d6\ud852\udd7b\u82bf\ud85c\udd0d\u4c81\ud85b\udd74\u5d7b\ud85a\udf15\ud85b\udfbe\u9fad\u9fae\u5b96\u9faf\u66e7\u7e5b\u6e57\u79ca\u3d88\u44c3\ud84c\ude56\ud849\udf96\u439a\u4536"],["8ce6","\u5cd5\ud84e\udf1a\u8af9\u5c78\u3d12\ud84d\udd51\u5d78\u9fb2\u7157\u4558\ud850\udcec\ud847\ude23\u4c77\u3978\u344a\ud840\udda4\ud85b\udc41\u8acc\u4fb4\ud840\ude39\u59bf\u816c\u9856\ud866\udcfa\u5f3b"],["8d40","\ud842\udf9f"],["8d42","\ud848\uddc1\ud862\udd6d\u4102\u46bb\ud864\udc79\u3f07\u9fb3\ud868\uddb5\u40f8\u37d6\u46f7\ud85b\udc46\u417c\ud861\udeb2\ud85c\udfff\u456d\u38d4\ud855\udc9a\u4561\u451b\u4d89\u4c7b\u4d76\u45ea\u3fc8\ud852\udf0f\u3661\u44de\u44bd\u41ed\u5d3e\u5d48\u5d56\u3dfc\u380f\u5da4\u5db9\u3820\u3838\u5e42\u5ebd\u5f25\u5f83\u3908\u3914\u393f\u394d\u60d7\u613d\u5ce5\u3989\u61b7\u61b9\u61cf\u39b8\u622c\u6290\u62e5\u6318\u39f8\u56b1"],["8da1","\u3a03\u63e2\u63fb\u6407\u645a\u3a4b\u64c0\u5d15\u5621\u9f9f\u3a97\u6586\u3abd\u65ff\u6653\u3af2\u6692\u3b22\u6716\u3b42\u67a4\u6800\u3b58\u684a\u6884\u3b72\u3b71\u3b7b\u6909\u6943\u725c\u6964\u699f\u6985\u3bbc\u69d6\u3bdd\u6a65\u6a74\u6a71\u6a82\u3bec\u6a99\u3bf2\u6aab\u6ab5\u6ad4\u6af6\u6b81\u6bc1\u6bea\u6c75\u6caa\u3ccb\u6d02\u6d06\u6d26\u6d81\u3cef\u6da4\u6db1\u6e15\u6e18\u6e29\u6e86\ud862\uddc0\u6ebb\u6ee2\u6eda\u9f7f\u6ee8\u6ee9\u6f24\u6f34\u3d46\ud84f\udf41\u6f81\u6fbe\u3d6a\u3d75\u71b7\u5c99\u3d8a\u702c\u3d91\u7050\u7054\u706f\u707f\u7089\ud840\udf25\u43c1\u35f1\ud843\uded8"],["8e40","\ud84f\uded7\u57be\ud85b\uded3\u713e\ud855\udfe0\u364e\u69a2\ud862\udfe9\u5b74\u7a49\ud856\udce1\ud865\udcd9\u7a65\u7a7d\ud856\uddac\u7abb\u7ab0\u7ac2\u7ac3\u71d1\ud859\udc8d\u41ca\u7ada\u7add\u7aea\u41ef\u54b2\ud857\udc01\u7b0b\u7b55\u7b29\ud854\udf0e\ud857\udcfe\u7ba2\u7b6f\u839c\ud856\udfb4\ud85b\udc7f\u7bd0\u8421\u7b92\u7bb8\ud857\udd20\u3dad\ud857\udc65\u8492\u7bfa\u7c06\u7c35\ud857\udcc1\u7c44\u7c83\ud852\udc82\u7ca6\u667d\ud851\udd78\u7cc9\u7cc7\u7ce6\u7c74\u7cf3\u7cf5\u7cce"],["8ea1","\u7e67\u451d\ud85b\ude44\u7d5d\ud85b\uded6\u748d\u7d89\u7dab\u7135\u7db3\u7dd2\ud850\udc57\ud858\udc29\u7de4\u3d13\u7df5\ud845\udff9\u7de5\ud860\udf6d\u7e1d\ud858\udd21\ud858\udd5a\u7e6e\u7e92\u432b\u946c\u7e27\u7f40\u7f41\u7f47\u7936\ud858\uded0\u99e1\u7f97\ud858\udf51\u7fa3\ud845\ude61\ud840\udc68\u455c\ud84d\udf66\u4503\ud860\udf3a\u7ffa\ud859\udc89\u8005\u8008\u801d\u8028\u802f\ud868\udc87\ud85b\udcc3\u803b\u803c\u8061\ud849\udf14\u4989\ud859\ude26\ud84f\udde3\ud859\udee8\u6725\u80a7\ud862\ude48\u8107\u811a\u58b0\ud849\udef6\u6c7f\ud859\udc98\ud853\udfb8\u64e7\ud845\udc8a\u8218\ud846\udc5e\u6a53\ud852\ude65\ud852\ude95\u447a\u8229\ud842\udf0d\ud85a\ude52\ud84f\udd7e\u4ff9\ud845\udcfd\u84e2\u8362\ud85a\udf0a\ud852\udda7\ud84d\udd30\ud845\udf73\ud84f\uddf8\u82aa\u691b\ud87e\udd94\u41db"],["8f40","\u854b\u82d0\u831a\ud843\ude16\ud845\udfb4\u36c1\ud84c\udd7d\ud84d\udd5a\u827b\u82e2\u8318\ud84f\ude8b\ud85b\udda3\ud85a\udf05\ud85a\udf97\ud84d\uddce\u3dbf\u831d\u55ec\u8385\u450b\ud85b\udda5\u83ac\u83c1\u83d3\u347e\ud85b\uded4\u6a57\u855a\u3496\ud85b\ude42\ud84b\udeef\u8458\ud856\udfe4\u8471\u3dd3\u44e4\u6aa7\u844a\ud84f\udcb5\u7958\u84a8\ud85a\udf96\ud85b\ude77\ud85b\ude43\u84de\u840f\u8391\u44a0\u8493\u84e4\ud857\udc91\u4240\ud857\udcc0\u4543\u8534\u5af2\ud85b\ude99\u4527\u8573\u4516\u67bf\u8616"],["8fa1","\ud861\ude25\ud861\ude3b\u85c1\ud85c\udc88\u8602\ud845\udd82\ud85c\udccd\ud87e\uddb2\u456a\u8628\u3648\ud846\udca2\u53f7\ud85c\udf9a\u867e\u8771\ud868\udcf8\u87ee\ud84b\udc27\u87b1\u87da\u880f\u5661\u866c\u6856\u460f\u8845\u8846\ud85d\udde0\ud84f\uddb9\ud85d\udde4\u885e\u889c\u465b\u88b4\u88b5\u63c1\u88c5\u7777\ud85d\udf0f\u8987\u898a\u89a6\u89a9\u89a7\u89bc\ud862\ude25\u89e7\ud85e\udd24\ud85e\udebd\u8a9c\u7793\u91fe\u8a90\ud85e\ude59\u7ae9\ud85e\udf3a\ud84f\udf8f\u4713\ud85e\udf38\u717c\u8b0c\u8b1f\ud855\udc30\ud855\udd65\u8b3f\u8b4c\u8b4d\u8aa9\ud852\ude7a\u8b90\u8b9b\u8aaf\ud845\udedf\u4615\u884f\u8c9b\ud85f\udd54\ud85f\udd8f\ud87e\uddd4\u3725\ud85f\udd53\u8cd6\ud85f\udd98\ud85f\uddbd\u8d12\u8d03\ud846\udd10\u8cdb\u705c\u8d11\ud853\udcc9\u3ed0\u8d77"],["9040","\u8da9\ud860\udc02\ud844\udc14\ud852\udd8a\u3b7c\ud860\uddbc\ud85c\udd0c\u7ae7\u8ead\u8eb6\u8ec3\u92d4\u8f19\u8f2d\ud860\udf65\ud861\udc12\u8fa5\u9303\ud868\ude9f\ud842\ude50\u8fb3\u492a\ud862\uddde\ud861\udd3d\ud84f\uddbb\u5ef8\ud84c\ude62\u8ff9\ud868\udc14\ud861\udebc\ud861\udd01\ud848\udf25\u3980\ud85b\uded7\u9037\ud861\udd3c\ud85e\udebe\u9061\ud861\udd6c\ud861\ude0b\u90a8\ud861\udf13\u90c4\ud861\udee6\u90ae\u90fd\u9167\u3af0\u91a9\u91c4\u7cac\ud862\udd33\ud847\ude89\u920e\u6c9f\u9241\u9262\ud855\uddb9\u92b9\ud862\udec6\ud84f\udc9b\ud862\udf0c\ud855\udddb"],["90a1","\ud843\udd31\u932c\u936b\ud862\udee1\ud862\udfeb\u708f\u5ac3\ud862\udee2\ud862\udee5\u4965\u9244\ud862\udfec\ud863\udc39\ud862\udfff\u9373\u945b\u8ebc\u9585\u95a6\u9426\u95a0\u6ff6\u42b9\ud849\ude7a\ud861\uded8\ud844\ude7c\ud84f\ude2e\u49df\u6c1c\u967b\u9696\u416c\u96a3\ud85b\uded5\u61da\u96b6\u78f5\ud862\udee0\u96bd\u53cc\u49a1\ud85b\udcb8\ud840\ude74\ud859\udc10\ud864\udcaf\ud864\udce5\ud852\uded1\ud846\udd15\ud84c\udf0a\u9731\u8642\u9736\u4a0f\u453d\u4585\ud852\udee9\u7075\u5b41\u971b\u975c\ud864\uddd5\u9757\u5b4a\ud864\uddeb\u975f\u9425\u50d0\ud84c\udcb7\ud84c\udcbc\u9789\u979f\u97b1\u97be\u97c0\u97d2\u97e0\ud855\udc6c\u97ee\u741c\ud865\udc33\u97ff\u97f5\ud865\udc1d\ud85e\udd7a\u4ad1\u9834\u9833\u984b\u9866\u3b0e\ud85c\udd75\u3d51\ud841\ude30\ud850\udd5c"],["9140","\ud855\udf06\u98ca\u98b7\u98c8\u98c7\u4aff\ud85b\udd27\ud845\uded3\u55b0\u98e1\u98e6\u98ec\u9378\u9939\ud852\ude29\u4b72\ud866\udc57\ud866\udd05\u99f5\u9a0c\u9a3b\u9a10\u9a58\ud855\udf25\u36c4\ud864\udcb1\ud866\udfd5\u9ae0\u9ae2\ud866\udf05\u9af4\u4c0e\u9b14\u9b2d\ud861\ude00\u5034\u9b34\ud85a\udda8\u38c3\ud84c\udc7d\u9b50\u9b40\ud867\udd3e\u5a45\ud846\udc63\u9b8e\ud850\ude4b\u9c02\u9bff\u9c0c\ud867\ude68\u9dd4\ud867\udfb7\ud868\udd92\ud868\uddab\ud868\udce1\ud868\udd23\ud868\udddf\u9d7e\u9d83\ud868\udd34\u9e0e\u6888"],["91a1","\u9dc4\ud848\udd5b\ud868\udd93\ud868\ude20\ud846\udd3b\ud868\ude33\u9d39\ud868\udcb9\ud868\udeb4\u9e90\u9e95\u9e9e\u9ea2\u4d34\u9eaa\u9eaf\ud850\udf64\u9ec1\u3b60\u39e5\u3d1d\u4f32\u37be\ud863\udc2b\u9f02\u9f08\u4b96\u9424\ud85b\udda2\u9f17\u9f16\u9f39\u569f\u568a\u9f45\u99b8\ud864\udc8b\u97f2\u847f\u9f62\u9f69\u7adc\u9f8e\u7216\u4bbe\ud852\udd75\ud852\uddbb\u7177\ud852\uddf8\ud850\udf48\ud852\ude51\u739e\ud862\udfda\ud846\udcfa\u799f\ud862\udd7e\ud863\ude36\u9369\u93f3\ud862\ude44\u92ec\u9381\u93cb\ud862\udd6c\ud851\udcb9\u7217\u3eeb\u7772\u7a43\u70d0\ud851\udc73\ud850\udff8\u717e\ud845\udfef\u70a3\ud846\udcbe\ud84d\udd99\u3ec7\ud846\udc85\ud855\udc2f\ud845\udff8\u3722\ud845\udefb\ud846\udc39\u36e1\ud845\udf74\ud846\udcd1\ud857\udf4b\u3723\ud845\udec0\u575b\ud852\ude25\ud844\udffe\ud844\udea8"],["9240","\ud844\udfc6\ud845\udcb6\u8503\ud84d\udea6\u8503\u8455\ud852\udd94\ud85c\udd65\ud84f\ude31\ud855\udd5c\ud84f\udefb\ud85c\udc52\u44f4\ud84d\udeee\ud866\udd9d\ud85b\udf26\u67f9\u3733\u3c15\u3de7\u586c\ud846\udd22\u6810\u4057\ud84d\udf3f\ud850\udce1\ud850\udc8b\ud850\udd0f\ud85b\udc21\u54cb\u569e\ud859\udeb1\u5692\ud843\udfdf\ud842\udfa8\ud843\ude0d\u93c6\ud862\udf13\u939c\u4ef8\u512b\u3819\ud851\udc36\u4ebc\ud841\udc65\ud840\udf7f\u4f4b\u4f8a\ud855\ude51\u5a68\ud840\uddab\ud840\udfcb\u3999\ud840\udf0a\ud841\udc14\u3435\u4f29\ud840\udec0\ud863\udeb3\ud840\ude75\u8ada\ud840\ude0c\u4e98"],["92a1","\u50cd\u510d\u4fa2\u4f03\ud852\ude0e\ud84f\ude8a\u4f42\u502e\u506c\u5081\u4fcc\u4fe5\u5058\u50fc\u5159\u515b\u515d\u515e\u6e76\ud84d\udd95\ud84f\ude39\ud84f\udebf\u6d72\ud846\udc84\ud84f\ude89\u51a8\u51c3\ud841\udde0\u44dd\ud841\udca3\ud841\udc92\ud841\udc91\u8d7a\ud862\ude9c\ud841\udf0e\u5259\u52a4\ud842\udc73\u52e1\u936e\u467a\u718c\ud850\udf8c\ud843\udc20\ud852\uddac\ud844\udce4\u69d1\ud843\ude1d\u7479\u3ede\u7499\u7414\u7456\u7398\u4b8e\ud852\udebc\ud850\udc8d\u53d0\u3584\u720f\ud850\udcc9\u55b4\ud840\udf45\u54cd\ud842\udfc6\u571d\u925d\u96f4\u9366\u57dd\u578d\u577f\u363e\u58cb\u5a99\ud862\ude46\ud845\udefa\ud845\udf6f\ud845\udf10\u5a2c\u59b8\u928f\u5a7e\u5acf\u5a12\ud856\udd46\ud846\uddf3\ud846\udc61\ud850\ude95\u36f5\u6d05\u7443\u5a21\ud857\ude83"],["9340","\u5a81\ud862\udfd7\ud841\udc13\u93e0\u748c\ud844\udf03\u7105\u4972\u9408\ud862\uddfb\u93bd\u37a0\u5c1e\u5c9e\u5e5e\u5e48\ud846\udd96\ud846\udd7c\ud84e\udeee\u5ecd\u5b4f\ud846\udd03\ud846\udd04\u3701\ud846\udca0\u36dd\ud845\udefe\u36d3\u812a\ud862\ude47\ud847\uddba\ud84d\udc72\ud862\udda8\u5f0c\u5f0e\ud846\udd27\ud845\udfab\u5a6b\ud845\udf3b\u5b44\u8614\ud85d\uddfd\u8860\u607e\ud84a\udc60\ud849\ude2b\u5fdb\u3eb8\ud849\uddaf\ud849\uddbe\ud864\udc88\ud85b\udf73\u61c0\ud840\udc3e\ud840\udc46\ud849\ude1b\u6199\u6198\u6075\ud84b\udc9b\ud84b\udd07\ud851\uded4\ud864\udd4d"],["93a1","\u6471\ud851\ude65\ud84a\udf6a\u3a29\ud84a\udf22\ud84d\udc50\ud866\udcea\ud84b\ude78\u6337\ud869\udc5b\u64b6\u6331\u63d1\ud852\udde3\ud84b\udd67\u62a4\ud84b\udca1\u643b\u656b\u6972\u3bf4\ud84c\udc8e\ud84c\udead\ud852\udd89\ud84c\udeab\u550d\ud84c\udee0\ud846\udcd9\ud865\udc3f\u66ce\ud84c\ude89\ud84c\uddb3\u3ae0\u4190\ud855\udd84\ud862\udf22\ud855\udd8f\ud845\udefc\ud855\udd5b\ud855\udc25\u78ee\ud84c\udd03\ud846\udc2a\ud84c\ude34\u3464\ud84c\ude0f\ud84c\udd82\ud850\udec9\u668e\ud85b\udd24\u666b\u4b93\u6630\ud85e\udc70\ud847\uddeb\u6663\ud84c\uded2\ud84c\udee1\u661e\ud856\udc72\u38d1\ud84e\udc3a\ud84d\udfbc\u3b99\ud84d\udfa2\ud84c\udffe\u74d0\u3b96\u678f\ud851\ude2a\u68b6\u681e\u3bc4\u6abe\u3863\ud84d\udfd5\ud851\udc87\u6a33\u6a52\u6ac9\u6b05\ud846\udd12\u6511\u6898\u6a4c\u3bd7\u6a7a\u6b57\ud84f\udfc0\ud84f\udc9a\u93a0\u92f2\ud862\udfea\ud862\udecb"],["9440","\u9289\ud860\udc1e\ud862\udddc\u9467\u6da5\u6f0b\ud852\uddec\u6d67\ud84f\udf7f\u3d8f\u6e04\ud850\udc3c\u5a3d\u6e0a\u5847\u6d24\u7842\u713b\ud850\udf1a\ud850\ude76\u70f1\u7250\u7287\u7294\ud851\udf8f\ud851\udf25\u5179\ud852\udea4\ud841\uddeb\u747a\ud84f\udef8\ud84d\ude5f\ud852\ude4a\ud852\udd17\ud857\udfe1\u3f06\u3eb1\ud852\udedf\ud863\udc23\ud84f\udf35\u60a7\u3ef3\u74cc\u743c\u9387\u7437\u449f\ud85b\uddea\u4551\u7583\u3f63\ud853\udcd9\ud853\udd06\u3f58\u7555\u7673\ud869\uddc6\u3b19\u7468\ud862\udecc\ud852\uddab\ud852\udd8e\u3afb"],["94a1","\u3dcd\ud852\ude4e\u3eff\ud852\uddc5\ud852\udcf3\u91fa\u5732\u9342\ud862\udee3\ud846\udc64\u50df\ud854\ude21\ud854\udde7\u7778\ud84c\ude32\u770e\u770f\u777b\ud851\ude97\ud84d\udf81\u3a5e\ud852\udcf0\u7438\u749b\u3ebf\ud852\udeba\ud852\udec7\u40c8\ud852\ude96\ud858\uddae\u9307\ud855\udd81\u781e\u788d\u7888\u78d2\u73d0\u7959\ud85d\udf41\ud855\udee3\u410e\u799b\u8496\u79a5\u6a2d\ud84f\udefa\u7a3a\u79f4\u416e\ud845\udee6\u4132\u9235\u79f1\ud843\udd4c\ud852\udd8c\ud840\ude99\ud84f\uddba\ud845\udf6e\u3597\u556b\u3570\u36aa\ud840\uddd4\ud843\udc0d\u7ae2\u5a59\ud849\udef5\ud856\udeaf\ud856\ude9c\u5a0d\ud840\ude5b\u78f0\u5a2a\ud856\udfc6\u7afe\u41f9\u7c5d\u7c6d\u4211\ud856\udfb3\ud857\udebc\ud857\udea6\u7ccd\ud852\uddf9\ud845\udfb0\u7c8e\u7c7c\u7cae\u6ab2\u7ddc\u7e07\u7dd3\u7f4e\ud858\ude61"],["9540","\ud858\udd5c\ud85e\udf48\u7d97\ud857\ude82\u426a\ud85a\udf75\ud842\udd16\u67d6\ud840\udc4e\ud84d\uddcf\u57c4\ud859\udc12\ud858\udff8\ud852\udd62\u7fdd\u7b27\ud842\udc2c\ud856\udee9\ud857\udd43\u7b0c\ud857\ude0e\u99e6\u8645\u9a63\u6a1c\ud84d\udc3f\u39e2\ud852\uddf7\ud859\uddad\u9a1f\ud859\udda0\u8480\ud85c\udd27\ud85b\udcd1\u44ea\u8137\u4402\u80c6\u8109\u8142\ud859\udfb4\u98c3\ud85a\ude42\u8262\u8265\ud85a\ude51\u8453\ud85b\udda7\u8610\ud85c\ude1b\u5a86\u417f\ud846\udc40\u5b2b\ud846\udca1\u5ae4\ud846\udcd8\u86a0\ud87e\uddbc\ud84f\udd8f\u882d\ud85d\udc22\u5a02"],["95a1","\u886e\u4f45\u8887\u88bf\u88e6\u8965\u894d\ud855\ude83\u8954\ud85d\udf85\ud85d\udf84\ud862\udff5\ud862\udfd9\ud862\udf9c\ud862\uddf9\u3ead\u84a3\u46f5\u46cf\u37f2\u8a3d\u8a1c\ud865\udc48\u5f4d\u922b\ud850\ude84\u65d4\u7129\u70c4\ud846\udc45\u9d6d\u8c9f\u8ce9\ud85f\udddc\u599a\u77c3\u59f0\u436e\u36d4\u8e2a\u8ea7\ud853\udc09\u8f30\u8f4a\u42f4\u6c58\u6fbb\ud848\udf21\u489b\u6f79\u6e8b\ud845\udfda\u9be9\u36b5\ud852\udd2f\u90bb\u9097\u5571\u4906\u91bb\u9404\ud862\ude4b\u4062\ud862\udefc\u9427\ud863\udc1d\ud863\udc3b\u84e5\u8a2b\u9599\u95a7\u9597\u9596\ud863\udd34\u7445\u3ec2\ud852\udcff\ud852\ude42\ud850\udfea\u3ee7\ud84c\ude25\u968f\ud863\udee7\ud863\ude66\ud863\ude65\u3ecc\ud852\udded\ud852\ude78\ud84f\udfee\u7412\u746b\u3efc\u9741\ud864\udcb0"],["9640","\u6847\u4a1d\ud864\udc93\ud855\udfdf\u975d\u9368\ud862\udd89\ud863\udc26\ud862\udf2f\ud858\udfbe\u92ba\u5b11\u8b69\u493c\u73f9\ud850\ude1b\u979b\u9771\u9938\ud843\udf26\u5dc1\ud862\udfc5\ud852\udeb2\u981f\ud865\udcda\u92f6\ud865\uddd7\u91e5\u44c0\ud862\udf50\ud852\ude67\ud862\udf64\u98dc\ud862\ude45\u3f00\u922a\u4925\u8414\u993b\u994d\ud85e\udf06\u3dfd\u999b\u4b6f\u99aa\u9a5c\ud862\udf65\ud856\udcc8\u6a8f\u9a21\u5afe\u9a2f\ud866\udcf1\u4b90\ud866\udd48\u99bc\u4bbd\u4b97\u937d\u5872\ud844\udf02\u5822\ud852\uddb8"],["96a1","\ud845\udce8\u7844\ud849\udf1f\ud84f\uddb8\u68c5\u3d7d\u9458\u3927\u6150\ud849\udf81\ud84a\udd6b\u6107\u9c4f\u9c53\u9c7b\u9c35\u9c10\u9b7f\u9bcf\ud867\ude2d\u9b9f\ud868\uddf5\ud868\udcfe\u9d21\u4cae\ud850\udd04\u9e18\u4cb0\u9d0c\ud868\uddb4\ud868\udced\ud868\udcf3\ud866\udd2f\u9da5\u84bd\ud85b\ude12\ud85b\udfdf\ud85a\udf82\u85fc\u4533\ud85b\udda4\ud85b\ude84\ud85b\uddf0\u8420\u85ee\ud85b\ude00\ud84d\udfd7\ud858\udc64\u79e2\ud84d\udd9c\ud84d\ude40\u492d\ud852\uddde\u3d62\u93db\u92be\u9348\ud840\udebf\u78b9\u9277\u944d\u4fe4\u3440\u9064\ud855\udd5d\u783d\u7854\u78b6\u784b\ud845\udf57\ud84c\uddc9\ud852\udd41\u369a\u4f72\u6fda\u6fd9\u701e\u701e\u5414\ud850\uddb5\u57bb\u58f3\u578a\u9d16\u57d7\u7134\u34af\ud850\uddac\u71eb\ud85b\udc40\ud853\udf97\u5b28\ud845\udfb5\ud862\ude49"],["9740","\u610c\u5ace\u5a0b\u42bc\ud851\udc88\u372c\u4b7b\ud862\uddfc\u93bb\u93b8\ud846\udcd6\ud843\udf1d\u8472\ud85b\udcc0\ud845\udc13\ud850\udefa\ud84b\udc26\ud850\udfc1\u5994\ud84f\uddb7\ud859\udf41\u7da8\ud858\udd5b\ud858\udca4\ud852\uddb9\ud852\udd8b\ud862\uddfa\u92e5\u73e2\u3ee9\u74b4\ud862\udf63\ud846\udc9f\u3ee1\ud852\udeb3\u6ad8\u73f3\u73fb\u3ed6\ud852\ude3e\ud852\ude94\ud845\udfd9\ud852\ude66\ud840\udfa7\ud845\udc24\ud852\udde5\u7448\ud852\udd16\u70a5\ud852\udd76\u9284\u73e6\u935f\ud841\udcfe\u9331\ud862\udece\ud862\ude16\u9386\ud862\udfe7\ud855\uddd5\u4935\ud862\ude82\u716b"],["97a1","\ud852\udd43\ud843\udcff\u56a4\ud841\ude1a\ud842\udfeb\ud843\udcb8\u5502\u79c4\ud845\udffa\u7dfe\ud845\udec2\ud852\ude50\ud846\udc52\u452e\u9401\u370a\ud862\udec0\ud852\uddad\u59b0\ud846\udcbf\ud846\udc83\ud85d\udc84\u5aa1\u36e2\ud84f\udd5b\u36b0\u925f\u5a79\ud862\ude81\ud846\udc62\u9374\u3ccd\ud842\udeb4\u4a96\u398a\u50f4\u3d69\u3d4c\ud844\udf9c\u7175\u42fb\ud860\ude18\u6e0f\ud864\udce4\u44eb\u6d57\ud85f\ude4f\u7067\u6caf\u3cd6\ud84f\udfed\ud84f\ude2d\u6e02\u6f0c\u3d6f\ud840\udff5\u7551\u36bc\u34c8\u4680\u3eda\u4871\u59c4\u926e\u493e\u8f41\ud863\udc1c\ud85a\udfc0\u5812\u57c8\u36d6\ud845\udc52\u70fe\ud850\udf62\ud852\ude71\ud84b\udfe3\ud844\udeb0\ud848\udfbd\u68b9\u6967\ud844\udf98\ud84d\udce5\ud85e\udff4\ud84d\udedf\ud862\ude83\ud84d\udfd6\ud84c\udffa\ud853\udc9f\u6a1a\ud84d\udead\ud85b\udcb7\u843e\u44df\u44ce"],["9840","\ud85b\udd26\ud85b\udd51\ud85b\udc82\ud85b\udfde\u6f17\ud85c\udd09\u833d\ud845\udf3a\u83ed\ud85b\udc80\ud85c\udc53\ud845\udfdb\u5989\u5a82\ud845\udfb3\u5a61\u5a71\ud846\udd05\ud850\uddfc\u372d\u59ef\ud845\udf3c\u36c7\u718e\u9390\u669a\ud850\udea5\u5a6e\u5a2b\ud850\ude93\u6a2b\ud84f\udef9\ud85d\udf36\ud851\udc5b\ud850\udeca\u711d\ud850\ude59\ud862\udde1\u4fb0\ud85b\udd28\u5cc2\ud851\udcce\ud85f\ude4d\ud850\udfbd\u6a0c\ud850\ude56\ud844\udf04\u70a6\u7133\ud850\udfe9\u3da5\u6cdf\ud87e\udc25\ud852\ude4f\u7e65\u59eb\u5d2f\u3df3\u5f5c\ud852\ude5d\ud845\udfdf\u7da4\u8426"],["98a1","\u5485\ud84e\udefa\ud84c\udf00\ud840\ude14\u577e\ud842\udcd5\ud841\ude19\u3fe5\ud847\udf9e\ud868\udeb6\u7003\ud864\udd5b\u5d70\u738f\u7cd3\ud862\ude59\ud865\udc20\u4fc8\u7fe7\u72cd\u7310\ud85e\udef4\u7338\u7339\ud855\udef6\u7341\u7348\u3ea9\ud85e\udf18\u906c\u71f5\ud852\udcf2\u73e1\u81f6\u3eca\u770c\u3ed1\u6ca2\u56fd\u7419\u741e\u741f\u3ee2\u3ef0\u3ef4\u3efa\u74d3\u3f0e\u3f53\u7542\u756d\u7572\u758d\u3f7c\u75c8\u75dc\u3fc0\u764d\u3fd7\u7674\u3fdc\u767a\ud853\udf5c\u7188\u5623\u8980\u5869\u401d\u7743\u4039\u6761\u4045\u35db\u7798\u406a\u406f\u5c5e\u77be\u77cb\u58f2\u7818\u70b9\u781c\u40a8\u7839\u7847\u7851\u7866\u8448\ud855\udd35\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8fbb\u7a06\u8fbc\u4167\u7a91\u41b2\u7abc\u8279\u41c4\u7acf\u7adb\u41cf\u4e21\u7b62\u7b6c\u7b7b\u7c12\u7c1b\u4260\u427a\u7c7b\u7c9c\u428c\u7cb8\u4294\u7ced\u8f93\u70c0\ud843\udccf\u7dcf\u7dd4\u7dd0\u7dfd\u7fae\u7fb4\u729f\u4397\u8020\u8025\u7b39\u802e\u8031\u8054\u3dcc\u57b4\u70a0\u80b7\u80e9\u43ed\u810c\u732a\u810e\u8112\u7560\u8114\u4401\u3b39\u8156\u8159\u815a"],["99a1","\u4413\u583a\u817c\u8184\u4425\u8193\u442d\u81a5\u57ef\u81c1\u81e4\u8254\u448f\u82a6\u8276\u82ca\u82d8\u82ff\u44b0\u8357\u9669\u698a\u8405\u70f5\u8464\u60e3\u8488\u4504\u84be\u84e1\u84f8\u8510\u8538\u8552\u453b\u856f\u8570\u85e0\u4577\u8672\u8692\u86b2\u86ef\u9645\u878b\u4606\u4617\u88ae\u88ff\u8924\u8947\u8991\ud85e\udd67\u8a29\u8a38\u8a94\u8ab4\u8c51\u8cd4\u8cf2\u8d1c\u4798\u585f\u8dc3\u47ed\u4eee\u8e3a\u55d8\u5754\u8e71\u55f5\u8eb0\u4837\u8ece\u8ee2\u8ee4\u8eed\u8ef2\u8fb7\u8fc1\u8fca\u8fcc\u9033\u99c4\u48ad\u98e0\u9213\u491e\u9228\u9258\u926b\u92b1\u92ae\u92bf"],["9a40","\u92e3\u92eb\u92f3\u92f4\u92fd\u9343\u9384\u93ad\u4945\u4951\u9ebf\u9417\u5301\u941d\u942d\u943e\u496a\u9454\u9479\u952d\u95a2\u49a7\u95f4\u9633\u49e5\u67a0\u4a24\u9740\u4a35\u97b2\u97c2\u5654\u4ae4\u60e8\u98b9\u4b19\u98f1\u5844\u990e\u9919\u51b4\u991c\u9937\u9942\u995d\u9962\u4b70\u99c5\u4b9d\u9a3c\u9b0f\u7a83\u9b69\u9b81\u9bdd\u9bf1\u9bf4\u4c6d\u9c20\u376f\ud846\udfc2\u9d49\u9c3a"],["9aa1","\u9efe\u5650\u9d93\u9dbd\u9dc0\u9dfc\u94f6\u8fb6\u9e7b\u9eac\u9eb1\u9ebd\u9ec6\u94dc\u9ee2\u9ef1\u9ef8\u7ac8\u9f44\ud840\udc94\ud840\udeb7\ud840\udfa0\u691a\u94c3\u59ac\ud841\udcd7\u5840\u94c1\u37b9\ud841\uddd5\ud841\ude15\ud841\ude76\ud845\udeba\u5757\u7173\ud842\udec2\ud842\udecd\ud842\udfbf\u546a\ud87e\udc3b\ud842\udfcb\u549e\ud842\udffb\ud843\udc3b\ud843\udc53\ud843\udc65\ud843\udc7c\u60e7\ud843\udc8d\u567a\ud843\udcb5\ud843\udcdd\ud843\udced\ud843\udd6f\ud843\uddb2\ud843\uddc8\u6955\u9c2f\u87a5\ud843\ude04\ud843\ude0e\ud843\uded7\ud843\udf90\ud843\udf2d\ud843\ude73\u5c20\ud843\udfbc\u5e0b\ud844\udc5c\ud844\udc4f\ud844\udc76\u671e\ud844\udc7b\ud844\udc88\ud844\udc96\u3647\ud844\udcbf\ud844\udcd3\ud844\udd2f\ud844\udd3b\u5364\u84ad\ud844\udee3\ud844\udf75\ud844\udf36\u8b81\ud845\udd77\ud845\ude19\ud845\udfc3\ud845\udfc7\u4e78\u70bb\ud846\udc2d\ud846\udd6a"],["9b40","\ud846\ude2d\ud846\ude45\ud847\udc2a\ud847\udc70\ud847\udcac\ud847\udec8\u62c3\ud847\uded5\ud847\udf15\u7198\u6855\ud848\udc45\u69e9\u36c8\ud848\ude7c\ud848\udfd7\ud848\udffa\ud849\udf2a\ud84a\udc71\ud84a\udd4f\u82fd\ud84a\udd67\ud84a\udd93\ud84a\uded5\u89a5\ud84a\udee8\u8fa0\ud84a\udf0e\u97b8\ud84a\udf3f\u9847\u9abd\ud84b\udc4c"],["9b62","\ud84b\udc88\ud84b\udcb7\ud856\udfe8\ud84b\udd08\ud84b\udd12\ud84b\uddb7\ud84b\udd95\ud84b\ude42\ud84b\udf74\ud84b\udfcc\ud84c\udc33\ud84c\udc66\ud84c\udf1f\ud84c\udfde\u5fb1\u6648\u66bf\ud85e\ude79\ud84d\udd67\ud84d\uddf3\u7201\ud852\uddba\u77d7\ud84d\ude1a\ud84d\udf16\u7e87\ud840\udf46\u58b5\u670e"],["9ba1","\u6918\ud84e\udea7\ud85d\ude57\ud857\udfe2\ud84f\ude11\ud84f\udeb9\ud85d\uddfe\ud848\udc9a\u48d0\u4ab8\ud850\udd19\ud862\ude9a\ud850\udeee\ud850\udf0d\ud850\udc3b\ud850\udf34\ud850\udf96\ud852\ude45\ud841\uddca\u51d2\ud841\ude11\u599f\ud847\udea8\u3bbe\ud84f\udcff\ud851\udc04\ud851\udcd6\u5788\ud851\ude74\u399b\ud851\udf2f\ud861\udde8\ud866\uddc9\u3762\ud848\uddc3\u8b5e\ud862\udf4e\u99d6\ud852\udc12\ud852\udcfb\ud852\ude15\u7209\ud852\udec0\ud843\udc78\u5965\ud853\udea5\ud853\udf86\ud841\udf79\u8eda\ud854\udc2c\u528f\u573f\u7171\ud854\ude99\ud855\udc19\ud84f\udf4a\ud852\udea7\u55bc\ud855\udc46\ud855\udc6e\ud85a\udf52\u91d4\u3473\ud855\udd3f\ud85d\ude32\ud855\udd5e\u4718\ud855\udd62\ud855\udd66\ud855\udfc7\ud852\udd3f\ud856\udc5d\u5066\u34fb\ud84c\udfcc\u60de\ud856\udd03\u477c\ud862\udd48\ud856\udeae\ud856\udf89\ud857\udc06\ud847\udd90\u57a1\u7151\u6fb6\ud858\udd02\ud85f\udc12\u9056\ud858\uddb2\ud853\udf9a\u8b62\ud859\udc02\ud859\udc4a"],["9c40","\u5d5b\ud85a\udff7\u8f36\ud859\udc84\ud846\udd1c\u8aea\ud852\uddf6\ud859\udc88\ud84f\udfef\ud859\udd12\u4bc0\ud859\uddbf\ud859\udeb5\ud849\udf1b\u9465\ud855\udfe1\u6195\u5a27\ud87e\udccd\u4fbb\u56b9\ud851\udd21\ud859\udefc\u4e6a\ud852\udd34\u9656\u6d8f\ud85b\udcbd\u3618\u8977\ud859\udf99\ud85a\udc6e\ud859\udc11\ud85a\udc5e\u71df\ud85a\udcc7\u7b42\ud864\udcc0\ud842\ude11\ud85a\udd26\u9104\ud85a\udd39\u7a45\u9df0\ud85a\uddfa\u9a26\ud85a\ude2d\u365f\ud859\udc69\ud840\udc21\u7983\ud85a\ude34\ud85a\udf5b\u5d2c\ud84d\udd19\u83cf\ud85a\udf9d\u46d0\ud85b\udca4\u753b\u8865\ud85b\uddae\u58b6"],["9ca1","\u371c\ud849\udd8d\ud85c\udc4b\ud85c\uddcd\u3c54\ud85c\ude80\ud85c\ude85\u9281\ud848\udd7a\ud85c\ude8b\u9330\ud85c\udee6\ud852\uddd0\u6c39\u949f\ud85d\udc50\ud843\udef8\u8827\u88f5\ud84a\udd26\ud861\udc73\ud845\udfb1\u6eb8\ud852\ude2a\ud846\udc20\u39a4\u36b9\u5c10\u79e3\u453f\u66b6\ud867\udcad\ud866\udca4\u8943\ud85d\udfcc\ud85e\udc58\u56d6\u40df\ud845\ude0a\u39a1\ud84d\udf2f\ud860\udce8\ud844\udfc5\u71ad\u8366\ud85e\udddd\ud864\udda8\u5a67\u4cb7\ud85c\udcaf\ud862\uddab\ud85e\uddfd\ud85e\ude0a\ud85e\udf0b\ud85f\udd66\ud850\udd7a\u7b43\u797e\ud860\udc09\u6fb5\ud868\udedf\u6a03\ud860\udf18\u53a2\ud85b\ude07\u93bf\u6836\u975d\ud860\udd6f\ud860\udc23\ud85a\uddb5\ud844\udfed\ud84c\ude2f\ud860\udc48\u5d85\ud863\udc30\ud860\udc83\u5715\u9823\ud862\udd49\u5dab\ud852\udd88\u65be\u69d5\u53d2\ud852\udea5\ud84f\udf81\u3c11\u6736\ud860\udc90\ud860\udcf4\ud860\udd2e\ud847\udfa1\ud860\udd4f"],["9d40","\ud860\udd89\ud860\uddaf\ud860\ude1a\ud860\udf06\ud860\udf2f\ud860\udf8a\u35ca\ud861\udc68\ud861\udeaa\u48fa\u63e6\ud862\udd56\u7808\u9255\ud862\uddb8\u43f2\ud862\udde7\u43df\ud862\udde8\ud862\udf46\ud862\udfd4\u59f8\ud863\udc09\u8f0b\ud863\udfc5\ud864\udcec\u7b51\ud864\udd10\ud864\udd3c\u3df7\ud864\udd5e\ud852\udeca\u8fd0\u728f\u568b\ud865\udce7\ud865\udde9\ud865\uddb0\ud865\uddb8\ud865\udf32\ud866\udcd1\ud866\udd49\ud866\udd6a\ud866\uddc3\ud866\ude28\ud866\udf0e\ud867\udd5a\ud867\udd9b\u7e9f\ud867\udef8\ud867\udf23\u4ca4\u9547\ud868\ude93\u71a2\ud868\udeff\u4d91\u9012\ud869\uddcb\u4d9c\ud843\udc9c\u8fbe\u55c1"],["9da1","\u8fba\ud849\udcb0\u8fb9\ud852\ude93\u4509\u7e7f\u6f56\u6ab1\u4eea\u34e4\ud862\udf2c\ud85e\udc9d\u373a\u8e80\ud845\udff5\ud860\udc24\ud862\udf6c\ud862\udf99\ud85e\ude3e\ud859\udeaf\u3deb\ud85d\ude55\ud84f\udcb7\ud855\ude35\ud856\udd56\u4e9a\ud857\ude81\ud858\ude58\u56bf\ud843\ude6d\u8e0e\u5b6d\ud84f\ude88\ud853\udc9e\u63de\u62d0\ud845\udff6\ud846\udc7b\u6530\u562d\ud857\udc4a\u541a\ud854\udf11\u3dc6\ud867\udd98\u4c7d\u5622\u561e\u7f49\ud857\uded8\u5975\ud84f\udd40\u8770\u4e1c\ud843\udfea\ud843\udd49\ud84d\udeba\u8117\u9d5e\u8d18\u763b\u9c45\u764e\u77b9\u9345\u5432\u8148\u82f7\u5625\u8132\u8418\u80bd\u55ea\u7962\u5643\u5416\ud843\ude9d\u35ce\u5605\u55f1\u66f1\ud860\udee2\u362d\u7534\u55f0\u55ba\u5497\u5572\ud843\udc41\ud843\udc96\u5ed0\ud854\udd48\ud843\ude76\ud84b\udc62"],["9e40","\ud843\udea2\u9eab\u7d5a\u55de\ud844\udc75\u629d\u976d\u5494\u8ccd\u71f6\u9176\u63fc\u63b9\u63fe\u5569\ud84a\udf43\u9c72\ud84b\udeb3\u519a\u34df\ud843\udda7\u51a7\u544d\u551e\u5513\u7666\u8e2d\ud85a\udc8a\u75b1\u80b6\u8804\u8786\u88c7\u81b6\u841c\ud844\udcc1\u44ec\u7304\ud851\udf06\u5b90\u830b\ud85a\udc93\u567b\ud849\udef4\ud85f\udd2f\ud850\udda3\ud85f\udd73\ud85b\uded0\ud85c\udeb6\u9170\ud844\uddd9\u9208\ud84f\udcfc\ud869\udea9\ud843\udeac\ud843\udef9\u7266\ud847\udca2\u474e\ud853\udfc2\ud85f\udff9\ud843\udfeb\u40fa"],["9ea1","\u9c5d\u651f\ud84b\udda0\u48f3\ud851\udfe0\ud867\udd7c\ud843\udfec\ud843\ude0a\u6062\ud85d\udda3\ud843\udfed"],["9ead","\ud858\udc48\ud844\udd87\u71a3\u7e8e\u9d50\u4e1a\u4e04\u3577\u5b0d\u6cb2\u5367\u36ac\u39dc\u537d\u36a5\ud851\ude18\u589a\ud852\udf6e\u822d\u544b\u57aa\ud856\ude95\ud842\udd79"],["9ec5","\u3a52\ud849\udc65\u7374\ud867\udeac\u4d09\u9bed\ud84f\udcfe\ud867\udf30\u4c5b\ud853\udfa9\ud865\udd9e\ud867\udfde\u845c\ud84f\uddb6\ud85c\udeb2\ud859\udfb3\ud84d\udf20\u632e\u7d25\ud84f\udef7\ud84f\ude2c\u3a2a\u9008\u52cc\u3e74\u367a\u45e9\ud841\udc8e\u7640\u5af0\ud843\udeb6\u787a\ud85f\udf2e\u58a7\u40bf\u567c\u9b8b\u5d74\u7654\ud869\udc34\u9e85\u4ce1\u75f9\u37fb\u6119\ud84c\udcda\ud850\udff2"],["9ef5","\u565d\ud844\udea9\u57a7\ud852\udd63\ud867\ude06\u5234\ud85c\udcae\u35ad\u6c4a\u9d7c"],["9f40","\u7c56\u9b39\u57de\ud845\udf6c\u5c53\u64d3\ud865\udcd0\ud858\udf35\ud85c\udd64\u86ad\ud843\udd28\ud85b\udd22\ud852\udee2\ud843\udd71"],["9f4f","\u51fe\ud847\udf0f\u5d8e\u9703\ud847\uddd1\u9e81\u904c\u7b1f\u9b02\u5cd1\u7ba3\u6268\u6335\u9aff\u7bcf\u9b2a\u7c7e\u9b2e\u7c42\u7c86\u9c15\u7bfc\u9b09\u9f17\u9c1b\ud852\udd3e\u9f5a\u5573\u5bc3\u4ffd\u9e98\u4ff2\u5260\u3e06\u52d1\u5767\u5056\u59b7\u5e12\u97c8\u9dab\u8f5c\u5469\u97b4\u9940\u97ba\u532c\u6130"],["9fa1","\u692c\u53da\u9c0a\u9d02\u4c3b\u9641\u6980\u50a6\u7546\ud845\udf6d\u99da\u5273"],["9fae","\u9159\u9681\u915c"],["9fb2","\u9151\ud863\ude97\u637f\ud85b\udd23\u6aca\u5611\u918e\u757a\u6285\ud840\udffc\u734f\u7c70\ud857\udc21\ud84f\udcfd"],["9fc1","\ud852\udd19\u76d6\u9b9d\u4e2a\ud843\udcd4\u83be\u8842"],["9fc9","\u5c4a\u69c0\u50ed\u577a\u521f\u5df5\u4ece\u6c31\ud840\uddf2\u4f39\u549c\u54da\u529a\u8d82\u35fe\u5f0c\u35f3"],["9fdb","\u6b52\u917c\u9fa5\u9b97\u982e\u98b4\u9aba\u9ea8\u9e84\u717a\u7b14"],["9fe7","\u6bfa\u8818\u7f78"],["9feb","\u5620\ud869\ude4a\u8e77\u9f53"],["9ff0","\u8dd4\u8e4f\u9e1c\u8e01\u6282\ud860\udf7d\u8e28\u8e75\u7ad3\ud852\ude77\u7a3e\u78d8\u6cea\u8a67\u7607"],["a040","\ud862\ude5a\u9f26\u6cce\u87d6\u75c3\ud868\udeb2\u7853\ud87e\udc40\u8d0c\u72e2\u7371\u8b2d\u7302\u74f1\u8ceb\ud852\udebb\u862f\u5fba\u88a0\u44b7"],["a055","\ud846\udc3b\ud85b\ude05"],["a058","\u8a7e\ud849\udd1b"],["a05b","\u60fd\u7667\u9ad7\u9d44\u936e\u9b8f\u87f5"],["a063","\u880f\u8cf7\u732c\u9721\u9bb0\u35d6\u72b2\u4c07\u7c51\u994a\ud858\udd59\u6159\u4c04\u9e96\u617d"],["a073","\u575f\u616f\u62a6\u6239\u62ce\u3a5c\u61e2\u53aa\ud84c\udff5\u6364\u6802\u35d2"],["a0a1","\u5d57\ud862\udfc2\u8fda\ud863\ude39"],["a0a6","\u50d9\ud847\udd46\u7906\u5332\u9638\ud843\udf3b\u4065"],["a0ae","\u77fe"],["a0b0","\u7cc2\ud857\udf1a\u7cda\u7a2d\u8066\u8063\u7d4d\u7505\u74f2\u8994\u821a\u670c\u8062\ud85d\udc86\u805b\u74f0\u8103\u7724\u8989\ud859\udfcc\u7553\ud85b\uded1\u87a9\u87ce\u81c8\u878c\u8a49\u8cad\u8b43\u772b\u74f8\u84da\u3635\u69b2\u8da6"],["a0d4","\u89a9\u7468\u6db9\u87c1\ud850\udc11\u74e7\u3ddb\u7176\u60a4\u619c\u3cd1\u7162\u6077"],["a0e2","\u7f71\ud862\udf2d\u7250\u60e9\u4b7e\u5220\u3c18\ud84f\udcc7\ud857\uded7\ud85d\ude56\ud855\udd31\ud846\udd44\ud844\udefe\ud866\udd03\ud85b\udddc\ud85c\udcad\u5cc1\ud858\uddad\ud862\ude0f\ud84d\ude77\ud840\udcee\ud85a\udc46\ud853\udf0e\u4562\u5b1f\ud858\udf4c\u9f50\u9ea6\ud858\ude6b"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4e36\u4e3f\u4e85\u4ea0\u5182\u5196\u51ab\u52f9\u5338\u5369\u53b6\u590a\u5b80\u5ddb\u2f33\u5e7f\u5ef4\u5f50\u5f61\u6534\u65e0\u7592\u7676\u8fb5\u96b6\xa8\u02c6\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\uff3b\uff3d\u273d\u3041",23],["c740","\u3059",58,"\u30a1\u30a2\u30a3\u30a4"],["c7a1","\u30a5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041b",26,"\u0451\u0436",25,"\u21e7\u21b8\u21b9\u31cf\ud840\udccc\u4e5a\ud840\udc8a\u5202\u4491"],["c8a1","\u9fb0\u5188\u9fb1\ud85d\ude07"],["c8cd","\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u309b\u309c\u2e80\u2e84\u2e86\u2e87\u2e88\u2e8a\u2e8c\u2e8d\u2e95\u2e9c\u2e9d\u2ea5\u2ea7\u2eaa\u2eac\u2eae\u2eb6\u2ebc\u2ebe\u2ec6\u2eca\u2ecc\u2ecd\u2ecf\u2ed6\u2ed7\u2ede\u2ee3"],["c8f5","\u0283\u0250\u025b\u0254\u0275\u0153\xf8\u014b\u028a\u026a"],["f9fe","\uffed"],["fa40","\ud841\udd47\u92db\ud841\udddf\ud84f\udfc5\u854c\u42b5\u73ef\u51b5\u3649\ud852\udd42\ud862\udde4\u9344\ud846\udddb\u82ee\ud84f\udcc8\u783c\u6744\u62df\ud852\udd33\ud862\uddaa\ud840\udea0\ud85a\udfb3\ud844\udf05\u4fab\ud849\udced\u5008\ud85b\udd29\ud85e\ude84\ud84d\ude00\ud852\udeb1\ud849\udd13\u5029\ud840\udf7e\u5fa4\ud840\udf80\ud840\udf47\u6edb\ud841\udc1f\u507d\u5101\u347a\u510e\u986c\u3743\u8416\ud852\udda4\ud841\udc87\u5160\ud84c\udfb4\u516a\ud842\udfff\ud848\udcfc\ud840\udee5\ud849\udd30\ud841\udd8e\ud84c\ude33\ud846\udd83\u5b82\u877d\ud841\uddb3\ud84f\udc99\u51b2\u51b8"],["faa1","\u9d34\u51c9\u51cf\u51d1\u3cdc\u51d3\ud852\udea6\u51b3\u51e2\u5342\u51ed\u83cd\u693e\ud84d\udf2d\u5f7b\u520b\u5226\u523c\u52b5\u5257\u5294\u52b9\u52c5\u7c15\u8542\u52e0\u860d\ud85a\udf13\u5305\ud862\udede\u5549\u6ed9\ud84f\udf80\ud842\udd54\ud84f\udfec\u5333\u5344\ud842\udfe2\u6ccb\ud845\udf26\u681b\u73d5\u604a\u3eaa\u38cc\ud845\udee8\u71dd\u44a2\u536d\u5374\ud861\udeab\u537e\u537f\ud845\udd96\ud845\ude13\u77e6\u5393\ud862\ude9b\u53a0\u53ab\u53ae\u73a7\ud855\udf72\u3f59\u739c\u53c1\u53c5\u6c49\u4e49\u57fe\u53d9\u3aab\ud842\udf8f\u53e0\ud84f\udfeb\ud84b\udda3\u53f6\ud843\udc77\u5413\u7079\u552b\u6657\u6d5b\u546d\ud85a\udf53\ud843\udd74\u555d\u548f\u54a4\u47a6\ud845\udf0d\ud843\udedd\u3db4\ud843\udd4d"],["fb40","\ud862\uddbc\ud849\ude98\u5547\u4ced\u542f\u7417\u5586\u55a9\u5605\ud846\udcd7\ud850\udc3a\u4552\ud851\udc35\u66b3\ud844\udcb4\u5637\u66cd\ud84c\ude8a\u66a4\u66ad\u564d\u564f\u78f1\u56f1\u9787\u53fe\u5700\u56ef\u56ed\ud862\udf66\u3623\ud844\ude4f\u5746\ud850\udda5\u6c6e\u708b\u5742\u36b1\ud85b\udc7e\u57e6\ud845\udc16\u5803\ud845\udc54\ud850\udf63\u5826\ud852\udff5\u585c\u58aa\u3561\u58e0\u58dc\ud844\ude3c\u58fb\u5bff\u5743\ud868\udd50\ud850\ude78\u93d3\u35a1\u591f\u68a6\u36c3\u6e59"],["fba1","\ud845\ude3e\u5a24\u5553\ud845\ude92\u8505\u59c9\ud843\udd4e\ud85b\udc81\ud85b\udd2a\ud845\udfdc\u59d9\ud845\udffb\ud845\udfb2\ud85b\udda6\u6d71\ud846\udc28\ud845\uded5\u59f9\ud85b\ude45\u5aab\u5a63\u36e6\ud852\udda9\u5a77\u3708\u5a96\u7465\u5ad3\ud85b\udfa1\ud849\udd54\u3d85\ud846\udd11\u3732\ud845\udeb8\u5e83\u52d0\u5b76\u6588\u5b7c\ud85e\ude0e\u4004\u485d\ud840\ude04\u5bd5\u6160\ud846\ude34\ud856\uddcc\ud841\udda5\u5bf3\u5b9d\u4d10\u5c05\ud846\udf44\u5c13\u73ce\u5c14\ud847\udca5\ud85a\udf28\u5c49\u48dd\u5c85\u5ce9\u5cef\u5d8b\ud847\uddf9\ud847\ude37\u5d10\u5d18\u5d46\ud847\udea4\u5cba\u5dd7\u82fc\u382d\ud852\udd01\ud848\udc49\ud848\udd73\u8287\u3836\u3bc2\u5e2e\u6a8a\u5e75\u5e7a\ud851\udcbc\ud843\udcd3\u53a6\u4eb7\u5ed0\u53a8\ud845\udf71\u5e09\u5ef4\ud861\udc82"],["fc40","\u5ef9\u5efb\u38a0\u5efc\u683e\u941b\u5f0d\ud840\uddc1\ud87e\udc94\u3ade\u48ae\ud844\udf3a\u5f3a\ud85a\udc88\ud848\udfd0\u5f58\ud849\udc71\u5f63\u97bd\ud85b\ude6e\u5f72\u9340\ud862\ude36\u5fa7\u5db6\u3d5f\ud854\ude50\ud847\udf6a\ud85c\udcf8\ud849\ude68\u91d6\ud840\ude9e\ud862\ude29\u6031\u6685\ud846\udc77\u3963\u3dc7\u3639\u5790\ud849\udfb4\u7971\u3e40\u609e\u60a4\u60b3\ud852\udd82\ud852\udd8f\ud85e\ude53\u74a4\u50e1\u5aa0\u6164\u8424\u6142\ud87e\udca6\ud85b\uded2\u6181\u51f4\ud841\ude56\u6187\u5baa\ud84f\udfb7"],["fca1","\ud84a\udc5f\u61d3\ud862\udf9d\ud866\udd5d\u61d0\u3932\ud84a\udd80\ud84a\udcc1\u6023\u615c\u651e\u638b\ud840\udd18\u62c5\ud845\udf70\u62d5\ud84b\ude0d\u636c\ud852\udddf\u3a17\u6438\u63f8\ud844\udf8e\ud845\udffc\u6490\u6f8a\ud84b\ude36\u9814\ud850\udc8c\ud855\udf1d\u64e1\u64e5\u947b\u3a66\u643a\u3a57\u654d\u6f16\ud852\ude28\ud852\ude23\u6585\u656d\u655f\ud84c\udc7e\u65b5\ud852\udd40\u4b37\u65d1\u40d8\ud846\udc29\u65e0\u65e3\u5fdf\ud84d\udc00\u6618\ud84c\uddf7\ud84c\uddf8\u6644\ud84c\udda4\ud84c\udda5\u664b\ud843\ude75\u6667\ud854\udde6\u6673\u6674\ud847\ude3d\ud84c\ude31\ud861\uddf4\ud84c\uddc8\ud854\udf13\u77c5\ud84a\udcf7\u99a4\u6702\ud850\udf9c\ud852\ude21\u3b2b\u69fa\ud84d\udfc2\u675e\u6767\u6762\ud850\uddcd\ud864\udced\u67d7\u44e9\u6822\u6e50\u923c\u6801\ud84c\udfe6\ud85b\udda0\u685d"],["fd40","\ud84d\udc6f\u69e1\u6a0b\ud862\udedf\u6973\u68c3\ud84d\uddcd\u6901\u6900\u3d32\u3a01\ud84d\ude3c\u3b80\u67ac\u6961\ud862\ude4a\u42fc\u6936\u6998\u3ba1\ud840\udfc9\u8363\u5090\u69f9\ud84d\ude59\ud848\udd2a\u6a45\ud84d\udf03\u6a9d\u3bf3\u67b1\u6ac8\ud864\udd9c\u3c0d\u6b1d\ud842\udd23\u60de\u6b35\u6b74\ud849\udfcd\u6eb5\ud84e\udedb\ud840\udfb5\ud846\udd58\u3740\u5421\ud84e\udf5a\u6be1\ud84f\udefc\u6bdc\u6c37\ud849\udc8b\ud852\udcf1\ud85a\udf51\u6c5a\u8226\u6c79\ud84f\uddbc\u44c5\ud84f\uddbd\ud850\udda4\ud852\udd0c\ud852\udd00"],["fda1","\ud84f\udcc9\u36e5\u3ceb\ud843\udd32\u9b83\ud84c\uddf9\ud849\udc91\u7f8f\u6837\ud85b\udd25\ud85b\udda1\ud85b\uddeb\u6d96\u6d5c\u6e7c\u6f04\ud852\udd7f\ud850\udc85\ud85b\ude72\u8533\ud85b\udf74\u51c7\u6c9c\u6e1d\u842e\ud862\udf21\u6e2f\ud84f\ude2f\u7453\ud84f\udf82\u79cc\u6e4f\u5a91\ud84c\udc4b\u6ff8\u370d\u6f9d\ud84f\ude30\u6efa\ud845\udc97\ud850\udc3d\u4555\u93f0\u6f44\u6f5c\u3d4e\u6f74\ud864\udd70\u3d3b\u6f9f\ud850\udd44\u6fd3\ud850\udc91\ud850\udd55\ud850\udc39\ud84f\udff0\ud84f\udfb4\ud850\udd3f\u51df\ud850\udd56\ud850\udd57\ud850\udd40\ud858\udddd\u704b\u707e\u70a7\u7081\u70cc\u70d5\u70d6\u70df\u4104\u3de8\u71b4\u7196\ud850\ude77\u712b\u7145\u5a88\u714a\u716e\u5c9c\ud850\udf65\u714f\u9362\ud850\udec1\u712c\ud851\udc5a\ud852\ude27\ud852\ude22\u71ba\ud862\udfe8\u70bd\u720e"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\ud855\ude05\u722e\u7240\ud852\udd74\u68bd\u7255\u7257\u3e55\ud84c\udc44\u680d\u6f3d\u7282\u732a\u732b\ud852\udc23\ud862\udc2b\u48ed\ud862\udc04\u7328\u732e\u73cf\u73aa\ud843\udc3a\ud85a\ude2e\u73c9\u7449\ud850\udde2\ud845\udee7\ud852\ude24\u6623\u36c5\ud852\uddb7\ud852\udd8d\ud852\uddfb\u73f7\u7415\u6903\ud852\ude26\u7439\ud841\uddc3\u3ed7\u745c\ud84a\udcad\u7460\ud863\udeb2\u7447\u73e4\u7476\u83b9\u746c\u3730\u7474\u93f1\u6a2c\u7482\u4953\ud852\ude8c"],["fea1","\ud850\udd5f\ud852\ude79\ud862\udf8f\u5b46\ud863\udc03\ud846\udc9e\u74c8\ud846\udd88\u750e\u74e9\u751e\ud863\uded9\ud846\ude4b\u5bd7\ud863\udeac\u9385\u754d\u754a\u7567\u756e\ud853\udf82\u3f04\ud853\udd13\u758e\u745d\u759e\u75b4\u7602\u762c\u7651\u764f\u766f\u7676\ud858\udff5\u7690\u81ef\u37f8\ud85a\udd11\ud85a\udd0e\u76a1\u76a5\u76b7\u76cc\ud85b\udf9f\u8462\ud854\udc9d\ud854\udd7d\ud847\ude1c\u771e\u7726\u7740\u64af\ud854\ude20\u7758\ud84c\udeac\u77af\ud862\udd64\ud862\udd68\ud845\udec1\u77f4\u7809\ud844\udf76\ud852\ude12\u68ca\u78af\u78c7\u78d3\u96a5\u792e\ud855\udde0\u78d7\u7934\u78b1\ud85d\ude0c\u8fb8\u8884\ud862\udf2b\ud858\udc83\ud849\ude1c\u7986\u8900\u6902\u7980\ud856\udc57\u799d\ud85e\udf39\u793c\u79a9\u6e2a\ud85c\udd26\u3ea8\u79c6\ud864\udd0d\u79d4"]]},{}],13:[function(require,module,exports){module.exports=[["0","\0",127,"\u20ac"],["8140","\u4e02\u4e04\u4e05\u4e06\u4e0f\u4e12\u4e17\u4e1f\u4e20\u4e21\u4e23\u4e26\u4e29\u4e2e\u4e2f\u4e31\u4e33\u4e35\u4e37\u4e3c\u4e40\u4e41\u4e42\u4e44\u4e46\u4e4a\u4e51\u4e55\u4e57\u4e5a\u4e5b\u4e62\u4e63\u4e64\u4e65\u4e67\u4e68\u4e6a",5,"\u4e72\u4e74",9,"\u4e7f",6,"\u4e87\u4e8a"],["8180","\u4e90\u4e96\u4e97\u4e99\u4e9c\u4e9d\u4e9e\u4ea3\u4eaa\u4eaf\u4eb0\u4eb1\u4eb4\u4eb6\u4eb7\u4eb8\u4eb9\u4ebc\u4ebd\u4ebe\u4ec8\u4ecc\u4ecf\u4ed0\u4ed2\u4eda\u4edb\u4edc\u4ee0\u4ee2\u4ee6\u4ee7\u4ee9\u4eed\u4eee\u4eef\u4ef1\u4ef4\u4ef8\u4ef9\u4efa\u4efc\u4efe\u4f00\u4f02",6,"\u4f0b\u4f0c\u4f12",4,"\u4f1c\u4f1d\u4f21\u4f23\u4f28\u4f29\u4f2c\u4f2d\u4f2e\u4f31\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e",4,"\u4f44\u4f45\u4f47",5,"\u4f52\u4f54\u4f56\u4f61\u4f62\u4f66\u4f68\u4f6a\u4f6b\u4f6d\u4f6e\u4f71\u4f72\u4f75\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f80\u4f81\u4f82\u4f85\u4f86\u4f87\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f95\u4f96\u4f98\u4f99\u4f9a\u4f9c\u4f9e\u4f9f\u4fa1\u4fa2"],["8240","\u4fa4\u4fab\u4fad\u4fb0",4,"\u4fb6",8,"\u4fc0\u4fc1\u4fc2\u4fc6\u4fc7\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fd2",4,"\u4fd9\u4fdb\u4fe0\u4fe2\u4fe4\u4fe5\u4fe7\u4feb\u4fec\u4ff0\u4ff2\u4ff4\u4ff5\u4ff6\u4ff7\u4ff9\u4ffb\u4ffc\u4ffd\u4fff",11],["8280","\u500b\u500e\u5010\u5011\u5013\u5015\u5016\u5017\u501b\u501d\u501e\u5020\u5022\u5023\u5024\u5027\u502b\u502f",10,"\u503b\u503d\u503f\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504a\u504b\u504d\u5050",4,"\u5056\u5057\u5058\u5059\u505b\u505d",7,"\u5066",5,"\u506d",8,"\u5078\u5079\u507a\u507c\u507d\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508a\u508b\u508c\u508e",20,"\u50a4\u50a6\u50aa\u50ab\u50ad",4,"\u50b3",6,"\u50bc"],["8340","\u50bd",17,"\u50d0",5,"\u50d7\u50d8\u50d9\u50db",10,"\u50e8\u50e9\u50ea\u50eb\u50ef\u50f0\u50f1\u50f2\u50f4\u50f6",4,"\u50fc",9,"\u5108"],["8380","\u5109\u510a\u510c",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514a\u514c\u514e\u514f\u5150\u5152\u5153\u5157\u5158\u5159\u515b\u515d",4,"\u5163\u5164\u5166\u5167\u5169\u516a\u516f\u5172\u517a\u517e\u517f\u5183\u5184\u5186\u5187\u518a\u518b\u518e\u518f\u5190\u5191\u5193\u5194\u5198\u519a\u519d\u519e\u519f\u51a1\u51a3\u51a6",4,"\u51ad\u51ae\u51b4\u51b8\u51b9\u51ba\u51be\u51bf\u51c1\u51c2\u51c3\u51c5\u51c8\u51ca\u51cd\u51ce\u51d0\u51d2",5],["8440","\u51d8\u51d9\u51da\u51dc\u51de\u51df\u51e2\u51e3\u51e5",5,"\u51ec\u51ee\u51f1\u51f2\u51f4\u51f7\u51fe\u5204\u5205\u5209\u520b\u520c\u520f\u5210\u5213\u5214\u5215\u521c\u521e\u521f\u5221\u5222\u5223\u5225\u5226\u5227\u522a\u522c\u522f\u5231\u5232\u5234\u5235\u523c\u523e\u5244",5,"\u524b\u524e\u524f\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525a\u525b\u525d\u525f\u5260\u5262\u5263\u5264\u5266\u5268\u526b\u526c\u526d\u526e\u5270\u5271\u5273",9,"\u527e\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529c\u52a4\u52a5\u52a6\u52a7\u52ae\u52af\u52b0\u52b4",9,"\u52c0\u52c1\u52c2\u52c4\u52c5\u52c6\u52c8\u52ca\u52cc\u52cd\u52ce\u52cf\u52d1\u52d3\u52d4\u52d5\u52d7\u52d9",5,"\u52e0\u52e1\u52e2\u52e3\u52e5",10,"\u52f1",7,"\u52fb\u52fc\u52fd\u5301\u5302\u5303\u5304\u5307\u5309\u530a\u530b\u530c\u530e"],["8540","\u5311\u5312\u5313\u5314\u5318\u531b\u531c\u531e\u531f\u5322\u5324\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u532f",9,"\u533c\u533d\u5340\u5342\u5344\u5346\u534b\u534c\u534d\u5350\u5354\u5358\u5359\u535b\u535d\u5365\u5368\u536a\u536c\u536d\u5372\u5376\u5379\u537b\u537c\u537d\u537e\u5380\u5381\u5383\u5387\u5388\u538a\u538e\u538f"],["8580","\u5390",4,"\u5396\u5397\u5399\u539b\u539c\u539e\u53a0\u53a1\u53a4\u53a7\u53aa\u53ab\u53ac\u53ad\u53af",6,"\u53b7\u53b8\u53b9\u53ba\u53bc\u53bd\u53be\u53c0\u53c3",4,"\u53ce\u53cf\u53d0\u53d2\u53d3\u53d5\u53da\u53dc\u53dd\u53de\u53e1\u53e2\u53e7\u53f4\u53fa\u53fe\u53ff\u5400\u5402\u5405\u5407\u540b\u5414\u5418\u5419\u541a\u541c\u5422\u5424\u5425\u542a\u5430\u5433\u5436\u5437\u543a\u543d\u543f\u5441\u5442\u5444\u5445\u5447\u5449\u544c\u544d\u544e\u544f\u5451\u545a\u545d",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547a\u547e\u547f\u5481\u5483\u5485\u5487\u5488\u5489\u548a\u548d\u5491\u5493\u5497\u5498\u549c\u549e\u549f\u54a0\u54a1"],["8640","\u54a2\u54a5\u54ae\u54b0\u54b2\u54b5\u54b6\u54b7\u54b9\u54ba\u54bc\u54be\u54c3\u54c5\u54ca\u54cb\u54d6\u54d8\u54db\u54e0",4,"\u54eb\u54ec\u54ef\u54f0\u54f1\u54f4",5,"\u54fb\u54fe\u5500\u5502\u5503\u5504\u5505\u5508\u550a",4,"\u5512\u5513\u5515",5,"\u551c\u551d\u551e\u551f\u5521\u5525\u5526"],["8680","\u5528\u5529\u552b\u552d\u5532\u5534\u5535\u5536\u5538\u5539\u553a\u553b\u553d\u5540\u5542\u5545\u5547\u5548\u554b",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555d\u555e\u555f\u5560\u5562\u5563\u5568\u5569\u556b\u556f",5,"\u5579\u557a\u557d\u557f\u5585\u5586\u558c\u558d\u558e\u5590\u5592\u5593\u5595\u5596\u5597\u559a\u559b\u559e\u55a0",6,"\u55a8",8,"\u55b2\u55b4\u55b6\u55b8\u55ba\u55bc\u55bf",4,"\u55c6\u55c7\u55c8\u55ca\u55cb\u55ce\u55cf\u55d0\u55d5\u55d7",4,"\u55de\u55e0\u55e2\u55e7\u55e9\u55ed\u55ee\u55f0\u55f1\u55f4\u55f6\u55f8",4,"\u55ff\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560a\u560b\u560d\u5610",7,"\u5619\u561a\u561c\u561d\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562a\u562b\u562e\u562f\u5630\u5633\u5635\u5637\u5638\u563a\u563c\u563d\u563e\u5640",11,"\u564f",4,"\u5655\u5656\u565a\u565b\u565d",4],["8780","\u5663\u5665\u5666\u5667\u566d\u566e\u566f\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567a\u567d",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56a4",10,"\u56b0",6,"\u56b8\u56b9\u56ba\u56bb\u56bd",12,"\u56cb",8,"\u56d5\u56d6\u56d8\u56d9\u56dc\u56e3\u56e5",5,"\u56ec\u56ee\u56ef\u56f2\u56f3\u56f6\u56f7\u56f8\u56fb\u56fc\u5700\u5701\u5702\u5705\u5707\u570b",6],["8840","\u5712",9,"\u571d\u571e\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572b\u5731\u5732\u5734",4,"\u573c\u573d\u573f\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574b\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576c\u576e\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577a\u577d\u577e\u577f\u5780"],["8880","\u5781\u5787\u5788\u5789\u578a\u578d",4,"\u5794",6,"\u579c\u579d\u579e\u579f\u57a5\u57a8\u57aa\u57ac\u57af\u57b0\u57b1\u57b3\u57b5\u57b6\u57b7\u57b9",8,"\u57c4",6,"\u57cc\u57cd\u57d0\u57d1\u57d3\u57d6\u57d7\u57db\u57dc\u57de\u57e1\u57e2\u57e3\u57e5",7,"\u57ee\u57f0\u57f1\u57f2\u57f3\u57f5\u57f6\u57f7\u57fb\u57fc\u57fe\u57ff\u5801\u5803\u5804\u5805\u5808\u5809\u580a\u580c\u580e\u580f\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581a\u581b\u581c\u581d\u581f\u5822\u5823\u5825",4,"\u582b",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583e",5,"\u5845",6,"\u584e\u584f\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585f",5,"\u5866",4,"\u586d",16,"\u587f\u5882\u5884\u5886\u5887\u5888\u588a\u588b\u588c"],["8980","\u588d",4,"\u5894",4,"\u589b\u589c\u589d\u58a0",7,"\u58aa",17,"\u58bd\u58be\u58bf\u58c0\u58c2\u58c3\u58c4\u58c6",10,"\u58d2\u58d3\u58d4\u58d6",13,"\u58e5",5,"\u58ed\u58ef\u58f1\u58f2\u58f4\u58f5\u58f7\u58f8\u58fa",7,"\u5903\u5905\u5906\u5908",4,"\u590e\u5910\u5911\u5912\u5913\u5917\u5918\u591b\u591d\u591e\u5920\u5921\u5922\u5923\u5926\u5928\u592c\u5930\u5932\u5933\u5935\u5936\u593b"],["8a40","\u593d\u593e\u593f\u5940\u5943\u5945\u5946\u594a\u594c\u594d\u5950\u5952\u5953\u5959\u595b",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597a\u597b\u597c\u597e\u597f\u5980\u5985\u5989\u598b\u598c\u598e\u598f\u5990\u5991\u5994\u5995\u5998\u599a\u599b\u599c\u599d\u599f\u59a0\u59a1\u59a2\u59a6"],["8a80","\u59a7\u59ac\u59ad\u59b0\u59b1\u59b3",5,"\u59ba\u59bc\u59bd\u59bf",6,"\u59c7\u59c8\u59c9\u59cc\u59cd\u59ce\u59cf\u59d5\u59d6\u59d9\u59db\u59de",4,"\u59e4\u59e6\u59e7\u59e9\u59ea\u59eb\u59ed",11,"\u59fa\u59fc\u59fd\u59fe\u5a00\u5a02\u5a0a\u5a0b\u5a0d\u5a0e\u5a0f\u5a10\u5a12\u5a14\u5a15\u5a16\u5a17\u5a19\u5a1a\u5a1b\u5a1d\u5a1e\u5a21\u5a22\u5a24\u5a26\u5a27\u5a28\u5a2a",6,"\u5a33\u5a35\u5a37",4,"\u5a3d\u5a3e\u5a3f\u5a41",4,"\u5a47\u5a48\u5a4b",9,"\u5a56\u5a57\u5a58\u5a59\u5a5b",5],["8b40","\u5a61\u5a63\u5a64\u5a65\u5a66\u5a68\u5a69\u5a6b",8,"\u5a78\u5a79\u5a7b\u5a7c\u5a7d\u5a7e\u5a80",17,"\u5a93",6,"\u5a9c",13,"\u5aab\u5aac"],["8b80","\u5aad",4,"\u5ab4\u5ab6\u5ab7\u5ab9",4,"\u5abf\u5ac0\u5ac3",5,"\u5aca\u5acb\u5acd",4,"\u5ad3\u5ad5\u5ad7\u5ad9\u5ada\u5adb\u5add\u5ade\u5adf\u5ae2\u5ae4\u5ae5\u5ae7\u5ae8\u5aea\u5aec",4,"\u5af2",22,"\u5b0a",11,"\u5b18",25,"\u5b33\u5b35\u5b36\u5b38",7,"\u5b41",6],["8c40","\u5b48",7,"\u5b52\u5b56\u5b5e\u5b60\u5b61\u5b67\u5b68\u5b6b\u5b6d\u5b6e\u5b6f\u5b72\u5b74\u5b76\u5b77\u5b78\u5b79\u5b7b\u5b7c\u5b7e\u5b7f\u5b82\u5b86\u5b8a\u5b8d\u5b8e\u5b90\u5b91\u5b92\u5b94\u5b96\u5b9f\u5ba7\u5ba8\u5ba9\u5bac\u5bad\u5bae\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbb\u5bbc\u5bc0\u5bc1\u5bc3\u5bc8\u5bc9\u5bca\u5bcb\u5bcd\u5bce\u5bcf"],["8c80","\u5bd1\u5bd4",8,"\u5be0\u5be2\u5be3\u5be6\u5be7\u5be9",4,"\u5bef\u5bf1",6,"\u5bfd\u5bfe\u5c00\u5c02\u5c03\u5c05\u5c07\u5c08\u5c0b\u5c0c\u5c0d\u5c0e\u5c10\u5c12\u5c13\u5c17\u5c19\u5c1b\u5c1e\u5c1f\u5c20\u5c21\u5c23\u5c26\u5c28\u5c29\u5c2a\u5c2b\u5c2d\u5c2e\u5c2f\u5c30\u5c32\u5c33\u5c35\u5c36\u5c37\u5c43\u5c44\u5c46\u5c47\u5c4c\u5c4d\u5c52\u5c53\u5c54\u5c56\u5c57\u5c58\u5c5a\u5c5b\u5c5c\u5c5d\u5c5f\u5c62\u5c64\u5c67",6,"\u5c70\u5c72",6,"\u5c7b\u5c7c\u5c7d\u5c7e\u5c80\u5c83",4,"\u5c89\u5c8a\u5c8b\u5c8e\u5c8f\u5c92\u5c93\u5c95\u5c9d",4,"\u5ca4",4],["8d40","\u5caa\u5cae\u5caf\u5cb0\u5cb2\u5cb4\u5cb6\u5cb9\u5cba\u5cbb\u5cbc\u5cbe\u5cc0\u5cc2\u5cc3\u5cc5",5,"\u5ccc",5,"\u5cd3",5,"\u5cda",6,"\u5ce2\u5ce3\u5ce7\u5ce9\u5ceb\u5cec\u5cee\u5cef\u5cf1",9,"\u5cfc",4],["8d80","\u5d01\u5d04\u5d05\u5d08",5,"\u5d0f",4,"\u5d15\u5d17\u5d18\u5d19\u5d1a\u5d1c\u5d1d\u5d1f",4,"\u5d25\u5d28\u5d2a\u5d2b\u5d2c\u5d2f",4,"\u5d35",7,"\u5d3f",7,"\u5d48\u5d49\u5d4d",10,"\u5d59\u5d5a\u5d5c\u5d5e",10,"\u5d6a\u5d6d\u5d6e\u5d70\u5d71\u5d72\u5d73\u5d75",12,"\u5d83",21,"\u5d9a\u5d9b\u5d9c\u5d9e\u5d9f\u5da0"],["8e40","\u5da1",21,"\u5db8",12,"\u5dc6",6,"\u5dce",12,"\u5ddc\u5ddf\u5de0\u5de3\u5de4\u5dea\u5dec\u5ded"],["8e80","\u5df0\u5df5\u5df6\u5df8",4,"\u5dff\u5e00\u5e04\u5e07\u5e09\u5e0a\u5e0b\u5e0d\u5e0e\u5e12\u5e13\u5e17\u5e1e",7,"\u5e28",4,"\u5e2f\u5e30\u5e32",4,"\u5e39\u5e3a\u5e3e\u5e3f\u5e40\u5e41\u5e43\u5e46",5,"\u5e4d",6,"\u5e56",4,"\u5e5c\u5e5d\u5e5f\u5e60\u5e63",14,"\u5e75\u5e77\u5e79\u5e7e\u5e81\u5e82\u5e83\u5e85\u5e88\u5e89\u5e8c\u5e8d\u5e8e\u5e92\u5e98\u5e9b\u5e9d\u5ea1\u5ea2\u5ea3\u5ea4\u5ea8",4,"\u5eae",4,"\u5eb4\u5eba\u5ebb\u5ebc\u5ebd\u5ebf",6],["8f40","\u5ec6\u5ec7\u5ec8\u5ecb",5,"\u5ed4\u5ed5\u5ed7\u5ed8\u5ed9\u5eda\u5edc",11,"\u5ee9\u5eeb",8,"\u5ef5\u5ef8\u5ef9\u5efb\u5efc\u5efd\u5f05\u5f06\u5f07\u5f09\u5f0c\u5f0d\u5f0e\u5f10\u5f12\u5f14\u5f16\u5f19\u5f1a\u5f1c\u5f1d\u5f1e\u5f21\u5f22\u5f23\u5f24"],["8f80","\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f32",6,"\u5f3b\u5f3d\u5f3e\u5f3f\u5f41",14,"\u5f51\u5f54\u5f59\u5f5a\u5f5b\u5f5c\u5f5e\u5f5f\u5f60\u5f63\u5f65\u5f67\u5f68\u5f6b\u5f6e\u5f6f\u5f72\u5f74\u5f75\u5f76\u5f78\u5f7a\u5f7d\u5f7e\u5f7f\u5f83\u5f86\u5f8d\u5f8e\u5f8f\u5f91\u5f93\u5f94\u5f96\u5f9a\u5f9b\u5f9d\u5f9e\u5f9f\u5fa0\u5fa2",5,"\u5fa9\u5fab\u5fac\u5faf",5,"\u5fb6\u5fb8\u5fb9\u5fba\u5fbb\u5fbe",4,"\u5fc7\u5fc8\u5fca\u5fcb\u5fce\u5fd3\u5fd4\u5fd5\u5fda\u5fdb\u5fdc\u5fde\u5fdf\u5fe2\u5fe3\u5fe5\u5fe6\u5fe8\u5fe9\u5fec\u5fef\u5ff0\u5ff2\u5ff3\u5ff4\u5ff6\u5ff7\u5ff9\u5ffa\u5ffc\u6007"],["9040","\u6008\u6009\u600b\u600c\u6010\u6011\u6013\u6017\u6018\u601a\u601e\u601f\u6022\u6023\u6024\u602c\u602d\u602e\u6030",4,"\u6036",4,"\u603d\u603e\u6040\u6044",6,"\u604c\u604e\u604f\u6051\u6053\u6054\u6056\u6057\u6058\u605b\u605c\u605e\u605f\u6060\u6061\u6065\u6066\u606e\u6071\u6072\u6074\u6075\u6077\u607e\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608a\u608b\u608e\u608f\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609c\u609e\u60a1\u60a2\u60a4\u60a5\u60a7\u60a9\u60aa\u60ae\u60b0\u60b3\u60b5\u60b6\u60b7\u60b9\u60ba\u60bd",7,"\u60c7\u60c8\u60c9\u60cc",4,"\u60d2\u60d3\u60d4\u60d6\u60d7\u60d9\u60db\u60de\u60e1",4,"\u60ea\u60f1\u60f2\u60f5\u60f7\u60f8\u60fb",4,"\u6102\u6103\u6104\u6105\u6107\u610a\u610b\u610c\u6110",4,"\u6116\u6117\u6118\u6119\u611b\u611c\u611d\u611e\u6121\u6122\u6125\u6128\u6129\u612a\u612c",18,"\u6140",6],["9140","\u6147\u6149\u614b\u614d\u614f\u6150\u6152\u6153\u6154\u6156",6,"\u615e\u615f\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618c\u618d\u618f",4,"\u6195"],["9180","\u6196",6,"\u619e",8,"\u61aa\u61ab\u61ad",9,"\u61b8",5,"\u61bf\u61c0\u61c1\u61c3",4,"\u61c9\u61cc",4,"\u61d3\u61d5",16,"\u61e7",13,"\u61f6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621c\u621d\u621e\u6220\u6223\u6226\u6227\u6228\u6229\u622b\u622d\u622f\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624a"],["9240","\u624f\u6250\u6255\u6256\u6257\u6259\u625a\u625c",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627a\u627b\u627d\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628b",5,"\u6294\u6299\u629c\u629d\u629e\u62a3\u62a6\u62a7\u62a9\u62aa\u62ad\u62ae\u62af\u62b0\u62b2\u62b3\u62b4\u62b6\u62b7\u62b8\u62ba\u62be\u62c0\u62c1"],["9280","\u62c3\u62cb\u62cf\u62d1\u62d5\u62dd\u62de\u62e0\u62e1\u62e4\u62ea\u62eb\u62f0\u62f2\u62f5\u62f8\u62f9\u62fa\u62fb\u6300\u6303\u6304\u6305\u6306\u630a\u630b\u630c\u630d\u630f\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631c\u6326\u6327\u6329\u632c\u632d\u632e\u6330\u6331\u6333",5,"\u633b\u633c\u633e\u633f\u6340\u6341\u6344\u6347\u6348\u634a\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636a\u636b\u636c\u636f\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637c\u637d\u637e\u637f\u6381\u6383\u6384\u6385\u6386\u638b\u638d\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63a1\u63a4\u63a6\u63ab\u63af\u63b1\u63b2\u63b5\u63b6\u63b9\u63bb\u63bd\u63bf\u63c0"],["9340","\u63c1\u63c2\u63c3\u63c5\u63c7\u63c8\u63ca\u63cb\u63cc\u63d1\u63d3\u63d4\u63d5\u63d7",6,"\u63df\u63e2\u63e4",4,"\u63eb\u63ec\u63ee\u63ef\u63f0\u63f1\u63f3\u63f5\u63f7\u63f9\u63fa\u63fb\u63fc\u63fe\u6403\u6404\u6406",4,"\u640d\u640e\u6411\u6412\u6415",5,"\u641d\u641f\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642b\u642e",5,"\u6435",4,"\u643b\u643c\u643e\u6440\u6442\u6443\u6449\u644b",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645f",7,"\u6468\u646a\u646b\u646c\u646e",9,"\u647b",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649a\u649b\u649c\u649d\u649f",4,"\u64a5\u64a6\u64a7\u64a8\u64aa\u64ab\u64af\u64b1\u64b2\u64b3\u64b4\u64b6\u64b9\u64bb\u64bd\u64be\u64bf\u64c1\u64c3\u64c4\u64c6",6,"\u64cf\u64d1\u64d3\u64d4\u64d5\u64d6\u64d9\u64da"],["9440","\u64db\u64dc\u64dd\u64df\u64e0\u64e1\u64e3\u64e5\u64e7",24,"\u6501",7,"\u650a",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652c\u652d\u6530\u6531\u6532\u6533\u6537\u653a\u653c\u653d\u6540",4,"\u6546\u6547\u654a\u654b\u654d\u654e\u6550\u6552\u6553\u6554\u6557\u6558\u655a\u655c\u655f\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656a\u656d\u656e\u656f\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658a\u658d\u658e\u658f\u6592\u6594\u6595\u6596\u6598\u659a\u659d\u659e\u65a0\u65a2\u65a3\u65a6\u65a8\u65aa\u65ac\u65ae\u65b1",7,"\u65ba\u65bb\u65be\u65bf\u65c0\u65c2\u65c7\u65c8\u65c9\u65ca\u65cd\u65d0\u65d1\u65d3\u65d4\u65d5\u65d8",7,"\u65e1\u65e3\u65e4\u65ea\u65eb"],["9540","\u65f2\u65f3\u65f4\u65f5\u65f8\u65f9\u65fb",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660b\u660d\u6610\u6611\u6612\u6616\u6617\u6618\u661a\u661b\u661c\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6632\u6633\u6637",4,"\u663d\u663f\u6640\u6642\u6644",6,"\u664d\u664e\u6650\u6651\u6658"],["9580","\u6659\u665b\u665c\u665d\u665e\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667b\u667c\u667d\u667f\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668a\u668b\u668d\u668e\u668f\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669e",8,"\u66a9",4,"\u66af",4,"\u66b5\u66b6\u66b7\u66b8\u66ba\u66bb\u66bc\u66bd\u66bf",25,"\u66da\u66de",7,"\u66e7\u66e8\u66ea",5,"\u66f1\u66f5\u66f6\u66f8\u66fa\u66fb\u66fd\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670c\u670e\u670f\u6711\u6712\u6713\u6716\u6718\u6719\u671a\u671c\u671e\u6720",5,"\u6727\u6729\u672e\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673b\u673c\u673e\u673f\u6741\u6744\u6745\u6747\u674a\u674b\u674d\u6752\u6754\u6755\u6757",4,"\u675d\u6762\u6763\u6764\u6766\u6767\u676b\u676c\u676e\u6771\u6774\u6776"],["9680","\u6778\u6779\u677a\u677b\u677d\u6780\u6782\u6783\u6785\u6786\u6788\u678a\u678c\u678d\u678e\u678f\u6791\u6792\u6793\u6794\u6796\u6799\u679b\u679f\u67a0\u67a1\u67a4\u67a6\u67a9\u67ac\u67ae\u67b1\u67b2\u67b4\u67b9",7,"\u67c2\u67c5",9,"\u67d5\u67d6\u67d7\u67db\u67df\u67e1\u67e3\u67e4\u67e6\u67e7\u67e8\u67ea\u67eb\u67ed\u67ee\u67f2\u67f5",7,"\u67fe\u6801\u6802\u6803\u6804\u6806\u680d\u6810\u6812\u6814\u6815\u6818",4,"\u681e\u681f\u6820\u6822",6,"\u682b",6,"\u6834\u6835\u6836\u683a\u683b\u683f\u6847\u684b\u684d\u684f\u6852\u6856",5],["9740","\u685c\u685d\u685e\u685f\u686a\u686c",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68a3\u68a4\u68a5\u68a9\u68aa\u68ab\u68ac\u68ae\u68b1\u68b2\u68b4\u68b6\u68b7\u68b8"],["9780","\u68b9",6,"\u68c1\u68c3",5,"\u68ca\u68cc\u68ce\u68cf\u68d0\u68d1\u68d3\u68d4\u68d6\u68d7\u68d9\u68db",4,"\u68e1\u68e2\u68e4",9,"\u68ef\u68f2\u68f3\u68f4\u68f6\u68f7\u68f8\u68fb\u68fd\u68fe\u68ff\u6900\u6902\u6903\u6904\u6906",4,"\u690c\u690f\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692e\u692f\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693a\u693b\u693c\u693e\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695b\u695c\u695f"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696a\u696c\u696d\u696f\u6970\u6972",4,"\u697a\u697b\u697d\u697e\u697f\u6981\u6983\u6985\u698a\u698b\u698c\u698e",5,"\u6996\u6997\u6999\u699a\u699d",9,"\u69a9\u69aa\u69ac\u69ae\u69af\u69b0\u69b2\u69b3\u69b5\u69b6\u69b8\u69b9\u69ba\u69bc\u69bd"],["9880","\u69be\u69bf\u69c0\u69c2",7,"\u69cb\u69cd\u69cf\u69d1\u69d2\u69d3\u69d5",5,"\u69dc\u69dd\u69de\u69e1",11,"\u69ee\u69ef\u69f0\u69f1\u69f3",9,"\u69fe\u6a00",9,"\u6a0b",11,"\u6a19",5,"\u6a20\u6a22",5,"\u6a29\u6a2b\u6a2c\u6a2d\u6a2e\u6a30\u6a32\u6a33\u6a34\u6a36",6,"\u6a3f",4,"\u6a45\u6a46\u6a48",7,"\u6a51",6,"\u6a5a"],["9940","\u6a5c",4,"\u6a62\u6a63\u6a64\u6a66",10,"\u6a72",6,"\u6a7a\u6a7b\u6a7d\u6a7e\u6a7f\u6a81\u6a82\u6a83\u6a85",8,"\u6a8f\u6a92",4,"\u6a98",7,"\u6aa1",5],["9980","\u6aa7\u6aa8\u6aaa\u6aad",114,"\u6b25\u6b26\u6b28",6],["9a40","\u6b2f\u6b30\u6b31\u6b33\u6b34\u6b35\u6b36\u6b38\u6b3b\u6b3c\u6b3d\u6b3f\u6b40\u6b41\u6b42\u6b44\u6b45\u6b48\u6b4a\u6b4b\u6b4d",11,"\u6b5a",7,"\u6b68\u6b69\u6b6b",13,"\u6b7a\u6b7d\u6b7e\u6b7f\u6b80\u6b85\u6b88"],["9a80","\u6b8c\u6b8e\u6b8f\u6b90\u6b91\u6b94\u6b95\u6b97\u6b98\u6b99\u6b9c",4,"\u6ba2",7,"\u6bab",7,"\u6bb6\u6bb8",6,"\u6bc0\u6bc3\u6bc4\u6bc6",4,"\u6bcc\u6bce\u6bd0\u6bd1\u6bd8\u6bda\u6bdc",4,"\u6be2",7,"\u6bec\u6bed\u6bee\u6bf0\u6bf1\u6bf2\u6bf4\u6bf6\u6bf7\u6bf8\u6bfa\u6bfb\u6bfc\u6bfe",6,"\u6c08",4,"\u6c0e\u6c12\u6c17\u6c1c\u6c1d\u6c1e\u6c20\u6c23\u6c25\u6c2b\u6c2c\u6c2d\u6c31\u6c33\u6c36\u6c37\u6c39\u6c3a\u6c3b\u6c3c\u6c3e\u6c3f\u6c43\u6c44\u6c45\u6c48\u6c4b",4,"\u6c51\u6c52\u6c53\u6c56\u6c58"],["9b40","\u6c59\u6c5a\u6c62\u6c63\u6c65\u6c66\u6c67\u6c6b",4,"\u6c71\u6c73\u6c75\u6c77\u6c78\u6c7a\u6c7b\u6c7c\u6c7f\u6c80\u6c84\u6c87\u6c8a\u6c8b\u6c8d\u6c8e\u6c91\u6c92\u6c95\u6c96\u6c97\u6c98\u6c9a\u6c9c\u6c9d\u6c9e\u6ca0\u6ca2\u6ca8\u6cac\u6caf\u6cb0\u6cb4\u6cb5\u6cb6\u6cb7\u6cba\u6cc0\u6cc1\u6cc2\u6cc3\u6cc6\u6cc7\u6cc8\u6ccb\u6ccd\u6cce\u6ccf\u6cd1\u6cd2\u6cd8"],["9b80","\u6cd9\u6cda\u6cdc\u6cdd\u6cdf\u6ce4\u6ce6\u6ce7\u6ce9\u6cec\u6ced\u6cf2\u6cf4\u6cf9\u6cff\u6d00\u6d02\u6d03\u6d05\u6d06\u6d08\u6d09\u6d0a\u6d0d\u6d0f\u6d10\u6d11\u6d13\u6d14\u6d15\u6d16\u6d18\u6d1c\u6d1d\u6d1f",5,"\u6d26\u6d28\u6d29\u6d2c\u6d2d\u6d2f\u6d30\u6d34\u6d36\u6d37\u6d38\u6d3a\u6d3f\u6d40\u6d42\u6d44\u6d49\u6d4c\u6d50\u6d55\u6d56\u6d57\u6d58\u6d5b\u6d5d\u6d5f\u6d61\u6d62\u6d64\u6d65\u6d67\u6d68\u6d6b\u6d6c\u6d6d\u6d70\u6d71\u6d72\u6d73\u6d75\u6d76\u6d79\u6d7a\u6d7b\u6d7d",4,"\u6d83\u6d84\u6d86\u6d87\u6d8a\u6d8b\u6d8d\u6d8f\u6d90\u6d92\u6d96",4,"\u6d9c\u6da2\u6da5\u6dac\u6dad\u6db0\u6db1\u6db3\u6db4\u6db6\u6db7\u6db9",5,"\u6dc1\u6dc2\u6dc3\u6dc8\u6dc9\u6dca"],["9c40","\u6dcd\u6dce\u6dcf\u6dd0\u6dd2\u6dd3\u6dd4\u6dd5\u6dd7\u6dda\u6ddb\u6ddc\u6ddf\u6de2\u6de3\u6de5\u6de7\u6de8\u6de9\u6dea\u6ded\u6def\u6df0\u6df2\u6df4\u6df5\u6df6\u6df8\u6dfa\u6dfd",7,"\u6e06\u6e07\u6e08\u6e09\u6e0b\u6e0f\u6e12\u6e13\u6e15\u6e18\u6e19\u6e1b\u6e1c\u6e1e\u6e1f\u6e22\u6e26\u6e27\u6e28\u6e2a\u6e2c\u6e2e\u6e30\u6e31\u6e33\u6e35"],["9c80","\u6e36\u6e37\u6e39\u6e3b",7,"\u6e45",7,"\u6e4f\u6e50\u6e51\u6e52\u6e55\u6e57\u6e59\u6e5a\u6e5c\u6e5d\u6e5e\u6e60",10,"\u6e6c\u6e6d\u6e6f",14,"\u6e80\u6e81\u6e82\u6e84\u6e87\u6e88\u6e8a",4,"\u6e91",6,"\u6e99\u6e9a\u6e9b\u6e9d\u6e9e\u6ea0\u6ea1\u6ea3\u6ea4\u6ea6\u6ea8\u6ea9\u6eab\u6eac\u6ead\u6eae\u6eb0\u6eb3\u6eb5\u6eb8\u6eb9\u6ebc\u6ebe\u6ebf\u6ec0\u6ec3\u6ec4\u6ec5\u6ec6\u6ec8\u6ec9\u6eca\u6ecc\u6ecd\u6ece\u6ed0\u6ed2\u6ed6\u6ed8\u6ed9\u6edb\u6edc\u6edd\u6ee3\u6ee7\u6eea",5],["9d40","\u6ef0\u6ef1\u6ef2\u6ef3\u6ef5\u6ef6\u6ef7\u6ef8\u6efa",7,"\u6f03\u6f04\u6f05\u6f07\u6f08\u6f0a",4,"\u6f10\u6f11\u6f12\u6f16",9,"\u6f21\u6f22\u6f23\u6f25\u6f26\u6f27\u6f28\u6f2c\u6f2e\u6f30\u6f32\u6f34\u6f35\u6f37",6,"\u6f3f\u6f40\u6f41\u6f42"],["9d80","\u6f43\u6f44\u6f45\u6f48\u6f49\u6f4a\u6f4c\u6f4e",9,"\u6f59\u6f5a\u6f5b\u6f5d\u6f5f\u6f60\u6f61\u6f63\u6f64\u6f65\u6f67",5,"\u6f6f\u6f70\u6f71\u6f73\u6f75\u6f76\u6f77\u6f79\u6f7b\u6f7d",6,"\u6f85\u6f86\u6f87\u6f8a\u6f8b\u6f8f",12,"\u6f9d\u6f9e\u6f9f\u6fa0\u6fa2",4,"\u6fa8",10,"\u6fb4\u6fb5\u6fb7\u6fb8\u6fba",5,"\u6fc1\u6fc3",5,"\u6fca",6,"\u6fd3",10,"\u6fdf\u6fe2\u6fe3\u6fe4\u6fe5"],["9e40","\u6fe6",7,"\u6ff0",32,"\u7012",7,"\u701c",6,"\u7024",6],["9e80","\u702b",9,"\u7036\u7037\u7038\u703a",17,"\u704d\u704e\u7050",13,"\u705f",11,"\u706e\u7071\u7072\u7073\u7074\u7077\u7079\u707a\u707b\u707d\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708b\u708c\u708d\u708f\u7090\u7091\u7093\u7097\u7098\u709a\u709b\u709e",12,"\u70b0\u70b2\u70b4\u70b5\u70b6\u70ba\u70be\u70bf\u70c4\u70c5\u70c6\u70c7\u70c9\u70cb",12,"\u70da"],["9f40","\u70dc\u70dd\u70de\u70e0\u70e1\u70e2\u70e3\u70e5\u70ea\u70ee\u70f0",6,"\u70f8\u70fa\u70fb\u70fc\u70fe",10,"\u710b",4,"\u7111\u7112\u7114\u7117\u711b",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714b\u714d\u714f",12,"\u715d\u715f",4,"\u7165\u7169",4,"\u716f\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717b\u717c\u717e",5,"\u7185",4,"\u718b\u718c\u718d\u718e\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719a",4,"\u71a1",6,"\u71a9\u71aa\u71ab\u71ad",5,"\u71b4\u71b6\u71b7\u71b8\u71ba",8,"\u71c4",9,"\u71cf",4],["a040","\u71d6",9,"\u71e1\u71e2\u71e3\u71e4\u71e6\u71e8",5,"\u71ef",9,"\u71fa",11,"\u7207",19],["a080","\u721b\u721c\u721e",9,"\u7229\u722b\u722d\u722e\u722f\u7232\u7233\u7234\u723a\u723c\u723e\u7240",6,"\u7249\u724a\u724b\u724e\u724f\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725a\u725c\u725e\u7260\u7263\u7264\u7265\u7268\u726a\u726b\u726c\u726d\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727b\u727c\u727d\u7282\u7283\u7285",4,"\u728c\u728e\u7290\u7291\u7293",11,"\u72a0",11,"\u72ae\u72b1\u72b2\u72b3\u72b5\u72ba",6,"\u72c5\u72c6\u72c7\u72c9\u72ca\u72cb\u72cc\u72cf\u72d1\u72d3\u72d4\u72d5\u72d6\u72d8\u72da\u72db"],["a1a1","\u3000\u3001\u3002\xb7\u02c9\u02c7\xa8\u3003\u3005\u2014\uff5e\u2016\u2026\u2018\u2019\u201c\u201d\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xb1\xd7\xf7\u2236\u2227\u2228\u2211\u220f\u222a\u2229\u2208\u2237\u221a\u22a5\u2225\u2220\u2312\u2299\u222b\u222e\u2261\u224c\u2248\u223d\u221d\u2260\u226e\u226f\u2264\u2265\u221e\u2235\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uff04\xa4\uffe0\uffe1\u2030\xa7\u2116\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u203b\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uff01\uff02\uff03\uffe5\uff05",88,"\uffe3"],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a6e0","\ufe35\ufe36\ufe39\ufe3a\ufe3f\ufe40\ufe3d\ufe3e\ufe41\ufe42\ufe43\ufe44"],["a6ee","\ufe3b\ufe3c\ufe37\ufe38\ufe31"],["a6f4","\ufe33\ufe34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02ca\u02cb\u02d9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221f\u2223\u2252\u2266\u2267\u22bf\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25bc\u25bd\u25e2\u25e3\u25e4\u25e5\u2609\u2295\u3012\u301d\u301e"],["a8a1","\u0101\xe1\u01ce\xe0\u0113\xe9\u011b\xe8\u012b\xed\u01d0\xec\u014d\xf3\u01d2\xf2\u016b\xfa\u01d4\xf9\u01d6\u01d8\u01da\u01dc\xfc\xea\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32a3\u338e\u338f\u339c\u339d\u339e\u33a1\u33c4\u33ce\u33d1\u33d2\u33d5\ufe30\uffe2\uffe4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30fc\u309b\u309c\u30fd\u30fe\u3006\u309d\u309e\ufe49",9,"\ufe54\ufe55\ufe56\ufe57\ufe59",8],["a980","\ufe62",4,"\ufe68\ufe69\ufe6a\ufe6b"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72dc\u72dd\u72df\u72e2",5,"\u72ea\u72eb\u72f5\u72f6\u72f9\u72fd\u72fe\u72ff\u7300\u7302\u7304",5,"\u730b\u730c\u730d\u730f\u7310\u7311\u7312\u7314\u7318\u7319\u731a\u731f\u7320\u7323\u7324\u7326\u7327\u7328\u732d\u732f\u7330\u7332\u7333\u7335\u7336\u733a\u733b\u733c\u733d\u7340",8],["aa80","\u7349\u734a\u734b\u734c\u734e\u734f\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736e\u7370\u7371"],["ab40","\u7372",11,"\u737f",4,"\u7385\u7386\u7388\u738a\u738c\u738d\u738f\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739a\u739c\u739d\u739e\u73a0\u73a1\u73a3",5,"\u73aa\u73ac\u73ad\u73b1\u73b4\u73b5\u73b6\u73b8\u73b9\u73bc\u73bd\u73be\u73bf\u73c1\u73c3",4],["ab80","\u73cb\u73cc\u73ce\u73d2",6,"\u73da\u73db\u73dc\u73dd\u73df\u73e1\u73e2\u73e3\u73e4\u73e6\u73e8\u73ea\u73eb\u73ec\u73ee\u73ef\u73f0\u73f1\u73f3",4],["ac40","\u73f8",10,"\u7404\u7407\u7408\u740b\u740c\u740d\u740e\u7411",8,"\u741c",5,"\u7423\u7424\u7427\u7429\u742b\u742d\u742f\u7431\u7432\u7437",4,"\u743d\u743e\u743f\u7440\u7442",11],["ac80","\u744e",6,"\u7456\u7458\u745d\u7460",12,"\u746e\u746f\u7471",4,"\u7478\u7479\u747a"],["ad40","\u747b\u747c\u747d\u747f\u7482\u7484\u7485\u7486\u7488\u7489\u748a\u748c\u748d\u748f\u7491",10,"\u749d\u749f",7,"\u74aa",15,"\u74bb",12],["ad80","\u74c8",9,"\u74d3",8,"\u74dd\u74df\u74e1\u74e5\u74e7",6,"\u74f0\u74f1\u74f2"],["ae40","\u74f3\u74f5\u74f8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750e\u7510\u7512\u7514\u7515\u7516\u7517\u751b\u751d\u751e\u7520",4,"\u7526\u7527\u752a\u752e\u7534\u7536\u7539\u753c\u753d\u753f\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754a\u754d\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755d",7,"\u7567\u7568\u7569\u756b",6,"\u7573\u7575\u7576\u7577\u757a",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758a\u758c\u758d\u758e\u7590\u7593\u7595\u7598\u759b\u759c\u759e\u75a2\u75a6",4,"\u75ad\u75b6\u75b7\u75ba\u75bb\u75bf\u75c0\u75c1\u75c6\u75cb\u75cc\u75ce\u75cf\u75d0\u75d1\u75d3\u75d7\u75d9\u75da\u75dc\u75dd\u75df\u75e0\u75e1\u75e5\u75e9\u75ec\u75ed\u75ee\u75ef\u75f2\u75f3\u75f5\u75f6\u75f7\u75f8\u75fa\u75fb\u75fd\u75fe\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760b\u760d\u760e\u760f\u7611\u7612\u7613\u7614\u7616\u761a\u761c\u761d\u761e\u7621\u7623\u7627\u7628\u762c\u762e\u762f\u7631\u7632\u7636\u7637\u7639\u763a\u763b\u763d\u7641\u7642\u7644"],["b040","\u7645",6,"\u764e",5,"\u7655\u7657",4,"\u765d\u765f\u7660\u7661\u7662\u7664",6,"\u766c\u766d\u766e\u7670",7,"\u7679\u767a\u767c\u767f\u7680\u7681\u7683\u7685\u7689\u768a\u768c\u768d\u768f\u7690\u7692\u7694\u7695\u7697\u7698\u769a\u769b"],["b080","\u769c",7,"\u76a5",8,"\u76af\u76b0\u76b3\u76b5",9,"\u76c0\u76c1\u76c3\u554a\u963f\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u80ae\u6602\u76ce\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u82de\u80de\u5305\u8912\u5265"],["b140","\u76c4\u76c7\u76c9\u76cb\u76cc\u76d3\u76d5\u76d9\u76da\u76dc\u76dd\u76de\u76e0",4,"\u76e6",7,"\u76f0\u76f3\u76f5\u76f6\u76f7\u76fa\u76fb\u76fd\u76ff\u7700\u7702\u7703\u7705\u7706\u770a\u770c\u770e",10,"\u771b\u771c\u771d\u771e\u7721\u7723\u7724\u7725\u7727\u772a\u772b"],["b180","\u772c\u772e\u7730",4,"\u7739\u773b\u773d\u773e\u773f\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775c\u8584\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5954\u82ef\u672c\u7b28\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u6807\u5f6a\u8198\u8868\u9cd6\u618b\u522b\u762a\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3"],["b240","\u775d\u775e\u775f\u7760\u7764\u7767\u7769\u776a\u776d",11,"\u777a\u777b\u777c\u7781\u7782\u7783\u7786",5,"\u778f\u7790\u7793",11,"\u77a1\u77a3\u77a4\u77a6\u77a8\u77ab\u77ad\u77ae\u77af\u77b1\u77b2\u77b4\u77b6",4],["b280","\u77bc\u77be\u77c0",12,"\u77ce",8,"\u77d8\u77d9\u77da\u77dd",4,"\u77e4\u75c5\u5e76\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u64e6\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u82cd\u8231\u4ed3\u6ca7\u85cf\u64cd\u7cd9\u69fd\u66f9\u8349\u5395\u7b56\u4fa7\u518c\u6d4b\u5c42\u8e6d\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u62c6\u67f4\u8c7a\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u660c\u7316"],["b340","\u77e6\u77e8\u77ea\u77ef\u77f0\u77f1\u77f2\u77f4\u77f5\u77f7\u77f9\u77fa\u77fb\u77fc\u7803",5,"\u780a\u780b\u780e\u780f\u7810\u7813\u7815\u7819\u781b\u781e\u7820\u7821\u7822\u7824\u7828\u782a\u782b\u782e\u782f\u7831\u7832\u7833\u7835\u7836\u783d\u783f\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784a\u784b\u784d\u784f\u7851\u7853\u7854\u7858\u7859\u785a"],["b380","\u785b\u785c\u785e",11,"\u786f",7,"\u7878\u7879\u787a\u787b\u787d",6,"\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u6491\u79f0\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u5145\u51b2\u866b\u5d07\u5ba0\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a"],["b440","\u7884\u7885\u7886\u7888\u788a\u788b\u788f\u7890\u7892\u7894\u7895\u7896\u7899\u789d\u789e\u78a0\u78a2\u78a4\u78a6\u78a8",7,"\u78b5\u78b6\u78b7\u78b8\u78ba\u78bb\u78bc\u78bd\u78bf\u78c0\u78c2\u78c3\u78c4\u78c6\u78c7\u78c8\u78cc\u78cd\u78ce\u78cf\u78d1\u78d2\u78d3\u78d6\u78d7\u78d8\u78da",9],["b480","\u78e4\u78e5\u78e6\u78e7\u78e9\u78ea\u78eb\u78ed",4,"\u78f3\u78f5\u78f6\u78f8\u78f9\u78fb",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50a8\u77d7\u6410\u89e6\u5904\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u5439\u708a\u6376\u9524\u5782\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u6233\u7ef0\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u51d1\u7c97\u918b\u7c07\u4fc3\u8e7f\u7be1\u7a9c\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u6751\u5b58\u5bf8\u78cb\u64ae\u6413\u63aa\u632b\u9519\u642d\u8fbe\u7b54\u7629\u6253\u5927\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e"],["b540","\u790d",5,"\u7914",9,"\u791f",4,"\u7925",14,"\u7935",4,"\u793d\u793f\u7942\u7943\u7944\u7945\u7947\u794a",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796a\u796b\u796c\u796e\u7970",6,"\u7979\u797b",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798b\u798c\u798d\u798e\u7990\u7991\u7992\u6020\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u5f53\u6321\u515a\u8361\u6863\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u5fb7\u5f97\u7684\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0"],["b640","\u7993",6,"\u799b",11,"\u79a8",10,"\u79b4",4,"\u79bc\u79bf\u79c2\u79c4\u79c5\u79c7\u79c8\u79ca\u79cc\u79ce\u79cf\u79d0\u79d3\u79d4\u79d6\u79d7\u79d9",5,"\u79e0\u79e1\u79e2\u79e5\u79e8\u79ea"],["b680","\u79ec\u79ee\u79f1",6,"\u79f9\u79fa\u79fc\u79fe\u79ff\u7a01\u7a04\u7a05\u7a07\u7a08\u7a09\u7a0a\u7a0c\u7a0f",4,"\u7a15\u7a16\u7a18\u7a19\u7a1b\u7a1c\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5806\u5151\u961f\u5bf9\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u6069\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c"],["b740","\u7a1d\u7a1f\u7a21\u7a22\u7a24",14,"\u7a34\u7a35\u7a36\u7a38\u7a3a\u7a3e\u7a40",5,"\u7a47",9,"\u7a52",4,"\u7a58",16],["b780","\u7a69",6,"\u7a71\u7a72\u7a73\u7a75\u7a7b\u7a7c\u7a7d\u7a7e\u7a82\u7a85\u7a87\u7a89\u7a8a\u7a8b\u7a8c\u7a8e\u7a8f\u7a90\u7a93\u7a94\u7a99\u7a9a\u7a9b\u7a9e\u7aa1\u7aa2\u8d30\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d"],["b840","\u7aa3\u7aa4\u7aa7\u7aa9\u7aaa\u7aab\u7aae",4,"\u7ab4",10,"\u7ac0",10,"\u7acc",9,"\u7ad7\u7ad8\u7ada\u7adb\u7adc\u7add\u7ae1\u7ae2\u7ae4\u7ae7",5,"\u7aee\u7af0\u7af1\u7af2\u7af3"],["b880","\u7af4",4,"\u7afb\u7afc\u7afe\u7b00\u7b01\u7b02\u7b05\u7b07\u7b09\u7b0c\u7b0d\u7b0e\u7b10\u7b12\u7b13\u7b16\u7b17\u7b18\u7b1a\u7b1c\u7b1d\u7b1f\u7b21\u7b22\u7b23\u7b27\u7b29\u7b2d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5676\u560e\u8be5\u6539\u6982\u9499\u76d6\u6e89\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6760\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u86e4\u9601\u9694\u94ec\u4e2a\u5404\u7ed9\u6839\u8ddf\u8015\u66f4\u5e9a\u7fb9"],["b940","\u7b2f\u7b30\u7b32\u7b34\u7b35\u7b36\u7b37\u7b39\u7b3b\u7b3d\u7b3f",5,"\u7b46\u7b48\u7b4a\u7b4d\u7b4e\u7b53\u7b55\u7b57\u7b59\u7b5c\u7b5e\u7b5f\u7b61\u7b63",10,"\u7b6f\u7b70\u7b73\u7b74\u7b76\u7b78\u7b7a\u7b7c\u7b7d\u7b7f\u7b81\u7b82\u7b83\u7b84\u7b86",6,"\u7b8e\u7b8f"],["b980","\u7b91\u7b92\u7b93\u7b96\u7b98\u7b99\u7b9a\u7b9b\u7b9e\u7b9f\u7ba0\u7ba3\u7ba4\u7ba5\u7bae\u7baf\u7bb0\u7bb2\u7bb3\u7bb5\u7bb6\u7bb7\u7bb9",7,"\u7bc2\u7bc3\u7bc4\u57c2\u803f\u6897\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u522e\u74dc\u5250\u5be1\u6302\u8902\u4e56\u62d0\u602a\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u5149\u5e7f\u901b\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u8f8a\u6eda\u68cd\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u54c8"],["ba40","\u7bc5\u7bc8\u7bc9\u7bca\u7bcb\u7bcd\u7bce\u7bcf\u7bd0\u7bd2\u7bd4",4,"\u7bdb\u7bdc\u7bde\u7bdf\u7be0\u7be2\u7be3\u7be4\u7be7\u7be8\u7be9\u7beb\u7bec\u7bed\u7bef\u7bf0\u7bf2",4,"\u7bf8\u7bf9\u7bfa\u7bfb\u7bfd\u7bff",7,"\u7c08\u7c09\u7c0a\u7c0d\u7c0e\u7c10",5,"\u7c17\u7c18\u7c19"],["ba80","\u7c1a",4,"\u7c20",5,"\u7c28\u7c29\u7c2b",12,"\u7c39",5,"\u7c42\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u592f\u676d\u822a\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u563f\u9ed1\u75d5\u5f88\u72e0\u6068\u54fc\u4ea8\u6a2a\u8861\u6052\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56"],["bb40","\u7c43",9,"\u7c4e",36,"\u7c75",5,"\u7c7e",9],["bb80","\u7c88\u7c8a",6,"\u7c93\u7c94\u7c96\u7c99\u7c9a\u7c9b\u7ca0\u7ca1\u7ca3\u7ca6\u7ca7\u7ca8\u7ca9\u7cab\u7cac\u7cad\u7caf\u7cb0\u7cb4",4,"\u7cba\u7cbb\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u69d0\u5f8a\u6000\u6dee\u574f\u6b22\u73af\u6853\u8fd8\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95"],["bc40","\u7cbf\u7cc0\u7cc2\u7cc3\u7cc4\u7cc6\u7cc9\u7ccb\u7cce",6,"\u7cd8\u7cda\u7cdb\u7cdd\u7cde\u7ce1",6,"\u7ce9",5,"\u7cf0",7,"\u7cf9\u7cfa\u7cfc",13,"\u7d0b",5],["bc80","\u7d11",14,"\u7d21\u7d23\u7d24\u7d25\u7d26\u7d28\u7d29\u7d2a\u7d2c\u7d2d\u7d2e\u7d30",6,"\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u5993\u7ee7\u7eaa\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6"],["bd40","\u7d37",54,"\u7d6f",7],["bd80","\u7d78",32,"\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78"],["be40","\u7d99",12,"\u7da7",6,"\u7daf",42],["be80","\u7dda",32,"\u5c3d\u52b2\u8346\u5162\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u70af\u7a98\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u97a0\u62d8\u72d9\u75bd\u5c45\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u6485\u652b\u6289\u6398\u5014\u7235\u89c9\u51b3\u8bc0\u7edd\u5747\u83cc\u94a7\u519b\u541b\u5cfb"],["bf40","\u7dfb",62],["bf80","\u7e3a\u7e3c",4,"\u7e42",4,"\u7e48",21,"\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u5580\u5496\u5361\u54af\u5f00\u63e9\u6977\u51ef\u6168\u520a\u582a\u52d8\u574e\u780d\u770b\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u8003\u62f7\u70e4\u9760\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u80af\u5543\u57a6\u6073\u5751\u542d\u7a7a\u6050\u5b54\u63a7\u62a0\u53e3\u6263\u5bc7\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5938\u57ae\u630e\u8de8\u80ef\u5757\u7b77\u4fa9\u5feb\u5bbd\u6b3e\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080"],["c040","\u7e5e",35,"\u7e83",23,"\u7e9c\u7e9d\u7e9e"],["c080","\u7eae\u7eb4\u7ebb\u7ebc\u7ed6\u7ee4\u7eec\u7ef9\u7f0a\u7f10\u7f1e\u7f37\u7f39\u7f3b",6,"\u7f43\u7f46",9,"\u7f52\u7f53\u9988\u6127\u6e83\u5764\u6606\u6346\u56f0\u62ec\u6269\u5ed3\u9614\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u83b1\u6765\u8d56\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u52d2\u4e50\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u808b\u7c7b\u6cea\u68f1\u695e\u51b7\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0"],["c140","\u7f56\u7f59\u7f5b\u7f5c\u7f5d\u7f5e\u7f60\u7f63",4,"\u7f6b\u7f6c\u7f6d\u7f6f\u7f70\u7f73\u7f75\u7f76\u7f77\u7f78\u7f7a\u7f7b\u7f7c\u7f7d\u7f7f\u7f80\u7f82",7,"\u7f8b\u7f8d\u7f8f",4,"\u7f95",4,"\u7f9b\u7f9c\u7fa0\u7fa2\u7fa3\u7fa5\u7fa6\u7fa8",6,"\u7fb1"],["c180","\u7fb3",4,"\u7fba\u7fbb\u7fbe\u7fc0\u7fc2\u7fc3\u7fc4\u7fc6\u7fc7\u7fc8\u7fc9\u7fcb\u7fcd\u7fcf",4,"\u7fd6\u7fd7\u7fd9",5,"\u7fe2\u7fe3\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u5217\u88c2\u70c8\u52a3\u730e\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u9f99\u804b\u5499\u7b3c\u7abf"],["c240","\u7fe4\u7fe7\u7fe8\u7fea\u7feb\u7fec\u7fed\u7fef\u7ff2\u7ff4",6,"\u7ffd\u7ffe\u7fff\u8002\u8007\u8008\u8009\u800a\u800e\u800f\u8011\u8013\u801a\u801b\u801d\u801e\u801f\u8021\u8023\u8024\u802b",5,"\u8032\u8034\u8039\u803a\u803c\u803e\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804e\u804f\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805b",13,"\u806b",5,"\u8072",11,"\u9686\u5784\u62e2\u9647\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u5ce6\u631b\u5b6a\u6ee6\u5375\u4e71\u63a0\u7565\u62a1\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b"],["c340","\u807e\u8081\u8082\u8085\u8088\u808a\u808d",5,"\u8094\u8095\u8097\u8099\u809e\u80a3\u80a6\u80a7\u80a8\u80ac\u80b0\u80b3\u80b5\u80b6\u80b8\u80b9\u80bb\u80c5\u80c7",4,"\u80cf",6,"\u80d8\u80df\u80e0\u80e2\u80e3\u80e6\u80ee\u80f5\u80f7\u80f9\u80fb\u80fe\u80ff\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810b"],["c380","\u810c\u8115\u8117\u8119\u811b\u811c\u811d\u811f",12,"\u812d\u812e\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813f\u8c29\u8292\u832b\u76f2\u6c13\u5fd9\u83bd\u732b\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4e48\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u95e8\u95f7\u4eec\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u8511\u706d\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u660e\u879f\u9e23\u94ed\u540d\u547d\u8c2c\u6478"],["c440","\u8140",5,"\u8147\u8149\u814d\u814e\u814f\u8152\u8156\u8157\u8158\u815b",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816a\u816b\u816c\u816f\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818b\u818c\u818d\u818e\u8190\u8192",5,"\u8199\u819a\u819e",4,"\u81a4\u81a5"],["c480","\u81a7\u81a9\u81ab",7,"\u81b4",5,"\u81bc\u81bd\u81be\u81bf\u81c4\u81c5\u81c7\u81c8\u81c9\u81cb\u81cd",6,"\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c0b\u725f\u67d0\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u6c16\u4e43\u5976\u8010\u5948\u5357\u7537\u96be\u56ca\u6320\u8111\u607c\u95f9\u6dd6\u5462\u9981\u5185\u5ae9\u80fd\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5a18\u917f\u9e1f\u5c3f\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u60a8\u67e0\u72de\u51dd\u5b81"],["c540","\u81d4",14,"\u81e4\u81e5\u81e6\u81e8\u81e9\u81eb\u81ee",4,"\u81f5",5,"\u81fd\u81ff\u8203\u8207",4,"\u820e\u820f\u8211\u8213\u8215",5,"\u821d\u8220\u8224\u8225\u8226\u8227\u8229\u822e\u8232\u823a\u823c\u823d\u823f"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824a\u824c\u824d\u824e\u8250",7,"\u8259\u825b\u825c\u825d\u825e\u8260",7,"\u8269\u62e7\u6cde\u725b\u626d\u94ae\u7ebd\u8113\u6d53\u519c\u5f04\u5974\u52aa\u6012\u5973\u6696\u8650\u759f\u632a\u61e6\u7cef\u8bfa\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u556a\u8db4\u722c\u5e15\u6015\u7436\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u4e53\u5e9e\u65c1\u802a\u80d6\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u55b7\u76c6\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7"],["c640","\u826a\u826b\u826c\u826d\u8271\u8275\u8276\u8277\u8278\u827b\u827c\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828c\u8290\u8293\u8294\u8295\u8296\u829a\u829b\u829e\u82a0\u82a2\u82a3\u82a7\u82b2\u82b5\u82b6\u82ba\u82bb\u82bc\u82bf\u82c0\u82c2\u82c3\u82c5\u82c6\u82c9\u82d0\u82d6\u82d9\u82da\u82dd\u82e2\u82e7\u82e8\u82e9\u82ea\u82ec\u82ed\u82ee\u82f0\u82f2\u82f3\u82f5\u82f6\u82f8"],["c680","\u82fa\u82fc",4,"\u830a\u830b\u830d\u8310\u8312\u8313\u8316\u8318\u8319\u831d",9,"\u8329\u832a\u832e\u8330\u8332\u8337\u833b\u833d\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u7bc7\u504f\u7247\u9a97\u98d8\u6f02\u74e2\u7968\u6487\u77a5\u62fc\u9891\u8d2b\u54c1\u8058\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u5256\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u6390"],["c740","\u833e\u833f\u8341\u8342\u8344\u8345\u8348\u834a",4,"\u8353\u8355",4,"\u835d\u8362\u8370",6,"\u8379\u837a\u837e",6,"\u8387\u8388\u838a\u838b\u838c\u838d\u838f\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839a\u839d\u839f\u83a1",6,"\u83ac\u83ad\u83ae"],["c780","\u83af\u83b5\u83bb\u83be\u83bf\u83c2\u83c3\u83c4\u83c6\u83c8\u83c9\u83cb\u83cd\u83ce\u83d0\u83d1\u83d2\u83d3\u83d5\u83d7\u83d9\u83da\u83db\u83de\u83e2\u83e3\u83e4\u83e6\u83e7\u83e8\u83eb\u83ec\u83ed\u6070\u6d3d\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5207\u8304\u4e14\u602f\u7a83\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u743c\u7a77\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20"],["c840","\u83ee\u83ef\u83f3",4,"\u83fa\u83fb\u83fc\u83fe\u83ff\u8400\u8402\u8405\u8407\u8408\u8409\u840a\u8410\u8412",5,"\u8419\u841a\u841b\u841e",5,"\u8429",7,"\u8432",5,"\u8439\u843a\u843b\u843e",7,"\u8447\u8448\u8449"],["c880","\u844a",6,"\u8452",4,"\u8458\u845d\u845e\u845f\u8460\u8462\u8464",4,"\u846a\u846e\u846f\u8470\u8472\u8474\u8477\u8479\u847b\u847c\u53d6\u5a36\u9f8b\u8da3\u53bb\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u88d9\u7fa4\u7136\u71c3\u5189\u67d3\u74e4\u58e4\u6518\u56b7\u8ba9\u9976\u6270\u7ed5\u60f9\u70ed\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u6254\u4ecd\u65e5\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u63c9\u67d4\u8089\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u8f6f\u962e\u854a\u745e\u9510\u95f0\u6da6\u82e5\u5f31\u6492\u6d12\u8428\u816e\u9cc3\u585e\u8d5b\u4e09\u53c1"],["c940","\u847d",4,"\u8483\u8484\u8485\u8486\u848a\u848d\u848f",7,"\u8498\u849a\u849b\u849d\u849e\u849f\u84a0\u84a2",12,"\u84b0\u84b1\u84b3\u84b5\u84b6\u84b7\u84bb\u84bc\u84be\u84c0\u84c2\u84c3\u84c5\u84c6\u84c7\u84c8\u84cb\u84cc\u84ce\u84cf\u84d2\u84d4\u84d5\u84d7"],["c980","\u84d8",4,"\u84de\u84e1\u84e2\u84e4\u84e7",4,"\u84ed\u84ee\u84ef\u84f1",10,"\u84fd\u84fe\u8500\u8501\u8502\u4f1e\u6563\u6851\u55d3\u4e27\u6414\u9a9a\u626b\u5ac2\u745f\u8272\u6da9\u68ee\u50e7\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u7b5b\u6652\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u58f0\u751f\u7525\u7272\u5347\u7ef3"],["ca40","\u8503",8,"\u850d\u850e\u850f\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851b\u851c\u851d\u851e\u8520\u8522",8,"\u852d",9,"\u853e",4,"\u8544\u8545\u8546\u8547\u854b",10],["ca80","\u8557\u8558\u855a\u855b\u855c\u855d\u855f",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857c\u857d\u857f\u8580\u8581\u7701\u76db\u5269\u80dc\u5723\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859d",6,"\u85a5\u85a6\u85a7\u85a9\u85ab\u85ac\u85ad\u85b1",5,"\u85b8\u85ba",6,"\u85c2",6,"\u85ca",4,"\u85d1\u85d2"],["cb80","\u85d4\u85d6",5,"\u85dd",6,"\u85e5\u85e6\u85e7\u85e8\u85ea",14,"\u6055\u5237\u800d\u6454\u8870\u7529\u5e05\u6813\u62f4\u971c\u53cc\u723d\u8c01\u6c34\u7761\u7a0e\u542e\u77ac\u987a\u821c\u8bf4\u7855\u6714\u70c1\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u641c\u8258\u64de\u55fd\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u9178\u849c\u7b97\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u5b59\u635f\u7b0b\u84d1\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u584c\u4ed6\u5b83\u5979\u5854"],["cc40","\u85f9\u85fa\u85fc\u85fd\u85fe\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862a",13,"\u8639\u863a\u863b\u863d\u863e\u863f\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865b\u865c\u865d\u865f\u8660\u8661\u8663",7,"\u736d\u631e\u8e4b\u8e0f\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u5018\u8eba\u6dcc\u8d9f\u70eb\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u7279\u85e4\u817e\u75bc\u8a8a\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u6311\u6761\u8fe2\u773a\u8df3\u8d34\u94c1\u5e16\u5385\u542c\u70c3"],["cd40","\u866d\u866f\u8670\u8672",6,"\u8683",6,"\u868e",4,"\u8694\u8696",5,"\u869e",4,"\u86a5\u86a6\u86ab\u86ad\u86ae\u86b2\u86b3\u86b7\u86b8\u86b9\u86bb",4,"\u86c1\u86c2\u86c3\u86c5\u86c8\u86cc\u86cd\u86d2\u86d3\u86d5\u86d6\u86d7\u86da\u86dc"],["cd80","\u86dd\u86e0\u86e1\u86e2\u86e3\u86e5\u86e6\u86e7\u86e8\u86ea\u86eb\u86ec\u86ef\u86f5\u86f6\u86f7\u86fa\u86fb\u86fc\u86fd\u86ff\u8701\u8704\u8705\u8706\u870b\u870c\u870e\u870f\u8710\u8711\u8714\u8716\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u5077\u6295\u5934\u900f\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u6e4d\u56e2\u63a8\u9893\u817f\u8715\u892a\u9000\u541e\u5c6f\u81c0\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u6b6a\u5916\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u5a01"],["ce40","\u8719\u871b\u871d\u871f\u8720\u8724\u8726\u8727\u8728\u872a\u872b\u872c\u872d\u872f\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873a\u873c\u873d\u8740",6,"\u874a\u874b\u874d\u874f\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875a",5,"\u8761\u8762\u8766",7,"\u876f\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877a\u877f\u8780\u8781\u8784\u8786\u8787\u8789\u878a\u878c\u878e",4,"\u8794\u8795\u8796\u8798",6,"\u87a0",4,"\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u55e1\u7fc1\u74ee\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a"],["cf40","\u87a5\u87a6\u87a7\u87a9\u87aa\u87ae\u87b0\u87b1\u87b2\u87b4\u87b6\u87b7\u87b8\u87b9\u87bb\u87bc\u87be\u87bf\u87c1",4,"\u87c7\u87c8\u87c9\u87cc",4,"\u87d4",6,"\u87dc\u87dd\u87de\u87df\u87e1\u87e2\u87e3\u87e4\u87e6\u87e7\u87e8\u87e9\u87eb\u87ec\u87ed\u87ef",9],["cf80","\u87fa\u87fb\u87fc\u87fd\u87ff\u8800\u8801\u8802\u8804",5,"\u880b",7,"\u8814\u8817\u8818\u8819\u881a\u881c",4,"\u8823\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883a\u883b\u883d\u883e\u883f\u8841\u8842\u8843\u8846",5,"\u884e",5,"\u8855\u8856\u8858\u885a",6,"\u8866\u8867\u886a\u886d\u886f\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887a"],["d080","\u887b\u887c\u8880\u8883\u8886\u8887\u8889\u888a\u888c\u888e\u888f\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889d",4,"\u88a3\u88a5",5,"\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384"],["d140","\u88ac\u88ae\u88af\u88b0\u88b2",4,"\u88b8\u88b9\u88ba\u88bb\u88bd\u88be\u88bf\u88c0\u88c3\u88c4\u88c7\u88c8\u88ca\u88cb\u88cc\u88cd\u88cf\u88d0\u88d1\u88d3\u88d6\u88d7\u88da",4,"\u88e0\u88e1\u88e6\u88e7\u88e9",6,"\u88f2\u88f5\u88f6\u88f7\u88fa\u88fb\u88fd\u88ff\u8900\u8901\u8903",5],["d180","\u8909\u890b",4,"\u8911\u8914",4,"\u891c",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892c\u892d\u892e\u892f\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7eda\u9774\u859b\u5b66\u7a74\u96ea\u8840\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897c"],["d280","\u897d\u897e\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690"],["d340","\u89a2",30,"\u89c3\u89cd\u89d3\u89d4\u89d5\u89d7\u89d8\u89d9\u89db\u89dd\u89df\u89e0\u89e1\u89e2\u89e4\u89e7\u89e8\u89e9\u89ea\u89ec\u89ed\u89ee\u89f0\u89f1\u89f2\u89f4",6],["d380","\u89fb",4,"\u8a01",5,"\u8a08",21,"\u5370\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u54df\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89"],["d440","\u8a1e",31,"\u8a3f",8,"\u8a49",21],["d480","\u8a5f",25,"\u8a7a",6,"\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u531d\u7838\u6742\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u6512\u6682\u8d5e\u8d43\u810f\u846c\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u8d23\u62e9\u5219\u6cfd\u8d3c\u600e\u589e\u618e\u66fe\u8d60\u624e\u55b3\u6e23\u672d\u8f67"],["d540","\u8a81",7,"\u8a8b",7,"\u8a94",46],["d580","\u8ac3",32,"\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u6458\u658b\u5b85\u7a84\u503a\u5be8\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f"],["d640","\u8ae4",34,"\u8b08",27],["d680","\u8b24\u8b25\u8b27",30,"\u5e27\u75c7\u90d1\u8bc1\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51"],["d740","\u8b46",31,"\u8b67",4,"\u8b6d",25],["d780","\u8b87",24,"\u8bac\u8bb1\u8bbb\u8bc7\u8bd0\u8bea\u8c09\u8c1e\u4f4f\u6ce8\u795d\u9a7b\u6293\u722a\u62fd\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8c06\u51c6\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u5544\u7740\u707c\u6d4a\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u90b9\u8d70\u594f\u63cd\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u94bb\u7e82\u5634\u9189\u6700\u7f6a\u5c0a\u9075\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7"],["d840","\u8c38",8,"\u8c42\u8c43\u8c44\u8c45\u8c48\u8c4a\u8c4b\u8c4d",7,"\u8c56\u8c57\u8c58\u8c59\u8c5b",5,"\u8c63",6,"\u8c6c",6,"\u8c74\u8c75\u8c76\u8c77\u8c7b",6,"\u8c83\u8c84\u8c86\u8c87"],["d880","\u8c88\u8c8b\u8c8d",6,"\u8c95\u8c96\u8c97\u8c99",20,"\u4e8d\u4e0c\u5140\u4e10\u5eff\u5345\u4e15\u4e98\u4e1e\u9b32\u5b6c\u5669\u4e28\u79ba\u4e3f\u5315\u4e47\u592d\u723b\u536e\u6c10\u56df\u80e4\u9997\u6bd3\u777e\u9f17\u4e36\u4e9f\u9f10\u4e5c\u4e69\u4e93\u8288\u5b5b\u556c\u560f\u4ec4\u538d\u539d\u53a3\u53a5\u53ae\u9765\u8d5d\u531a\u53f5\u5326\u532e\u533e\u8d5c\u5366\u5363\u5202\u5208\u520e\u522d\u5233\u523f\u5240\u524c\u525e\u5261\u525c\u84af\u527d\u5282\u5281\u5290\u5293\u5182\u7f54\u4ebb\u4ec3\u4ec9\u4ec2\u4ee8\u4ee1\u4eeb\u4ede\u4f1b\u4ef3\u4f22\u4f64\u4ef5\u4f25\u4f27\u4f09\u4f2b\u4f5e\u4f67\u6538\u4f5a\u4f5d"],["d940","\u8cae",62],["d980","\u8ced",32,"\u4f5f\u4f57\u4f32\u4f3d\u4f76\u4f74\u4f91\u4f89\u4f83\u4f8f\u4f7e\u4f7b\u4faa\u4f7c\u4fac\u4f94\u4fe6\u4fe8\u4fea\u4fc5\u4fda\u4fe3\u4fdc\u4fd1\u4fdf\u4ff8\u5029\u504c\u4ff3\u502c\u500f\u502e\u502d\u4ffe\u501c\u500c\u5025\u5028\u507e\u5043\u5055\u5048\u504e\u506c\u507b\u50a5\u50a7\u50a9\u50ba\u50d6\u5106\u50ed\u50ec\u50e6\u50ee\u5107\u510b\u4edd\u6c3d\u4f58\u4f65\u4fce\u9fa0\u6c46\u7c74\u516e\u5dfd\u9ec9\u9998\u5181\u5914\u52f9\u530d\u8a07\u5310\u51eb\u5919\u5155\u4ea0\u5156\u4eb3\u886e\u88a4\u4eb5\u8114\u88d2\u7980\u5b34\u8803\u7fb8\u51ab\u51b1\u51bd\u51bc"],["da40","\u8d0e",14,"\u8d20\u8d51\u8d52\u8d57\u8d5f\u8d65\u8d68\u8d69\u8d6a\u8d6c\u8d6e\u8d6f\u8d71\u8d72\u8d78",8,"\u8d82\u8d83\u8d86\u8d87\u8d88\u8d89\u8d8c",4,"\u8d92\u8d93\u8d95",9,"\u8da0\u8da1"],["da80","\u8da2\u8da4",12,"\u8db2\u8db6\u8db7\u8db9\u8dbb\u8dbd\u8dc0\u8dc1\u8dc2\u8dc5\u8dc7\u8dc8\u8dc9\u8dca\u8dcd\u8dd0\u8dd2\u8dd3\u8dd4\u51c7\u5196\u51a2\u51a5\u8ba0\u8ba6\u8ba7\u8baa\u8bb4\u8bb5\u8bb7\u8bc2\u8bc3\u8bcb\u8bcf\u8bce\u8bd2\u8bd3\u8bd4\u8bd6\u8bd8\u8bd9\u8bdc\u8bdf\u8be0\u8be4\u8be8\u8be9\u8bee\u8bf0\u8bf3\u8bf6\u8bf9\u8bfc\u8bff\u8c00\u8c02\u8c04\u8c07\u8c0c\u8c0f\u8c11\u8c12\u8c14\u8c15\u8c16\u8c19\u8c1b\u8c18\u8c1d\u8c1f\u8c20\u8c21\u8c25\u8c27\u8c2a\u8c2b\u8c2e\u8c2f\u8c32\u8c33\u8c35\u8c36\u5369\u537a\u961d\u9622\u9621\u9631\u962a\u963d\u963c\u9642\u9649\u9654\u965f\u9667\u966c\u9672\u9674\u9688\u968d\u9697\u96b0\u9097\u909b\u909d\u9099\u90ac\u90a1\u90b4\u90b3\u90b6\u90ba"],["db40","\u8dd5\u8dd8\u8dd9\u8ddc\u8de0\u8de1\u8de2\u8de5\u8de6\u8de7\u8de9\u8ded\u8dee\u8df0\u8df1\u8df2\u8df4\u8df6\u8dfc\u8dfe",6,"\u8e06\u8e07\u8e08\u8e0b\u8e0d\u8e0e\u8e10\u8e11\u8e12\u8e13\u8e15",7,"\u8e20\u8e21\u8e24",4,"\u8e2b\u8e2d\u8e30\u8e32\u8e33\u8e34\u8e36\u8e37\u8e38\u8e3b\u8e3c\u8e3e"],["db80","\u8e3f\u8e43\u8e45\u8e46\u8e4c",4,"\u8e53",5,"\u8e5a",11,"\u8e67\u8e68\u8e6a\u8e6b\u8e6e\u8e71\u90b8\u90b0\u90cf\u90c5\u90be\u90d0\u90c4\u90c7\u90d3\u90e6\u90e2\u90dc\u90d7\u90db\u90eb\u90ef\u90fe\u9104\u9122\u911e\u9123\u9131\u912f\u9139\u9143\u9146\u520d\u5942\u52a2\u52ac\u52ad\u52be\u54ff\u52d0\u52d6\u52f0\u53df\u71ee\u77cd\u5ef4\u51f5\u51fc\u9b2f\u53b6\u5f01\u755a\u5def\u574c\u57a9\u57a1\u587e\u58bc\u58c5\u58d1\u5729\u572c\u572a\u5733\u5739\u572e\u572f\u575c\u573b\u5742\u5769\u5785\u576b\u5786\u577c\u577b\u5768\u576d\u5776\u5773\u57ad\u57a4\u578c\u57b2\u57cf\u57a7\u57b4\u5793\u57a0\u57d5\u57d8\u57da\u57d9\u57d2\u57b8\u57f4\u57ef\u57f8\u57e4\u57dd"],["dc40","\u8e73\u8e75\u8e77",4,"\u8e7d\u8e7e\u8e80\u8e82\u8e83\u8e84\u8e86\u8e88",6,"\u8e91\u8e92\u8e93\u8e95",6,"\u8e9d\u8e9f",11,"\u8ead\u8eae\u8eb0\u8eb1\u8eb3",6,"\u8ebb",7],["dc80","\u8ec3",10,"\u8ecf",21,"\u580b\u580d\u57fd\u57ed\u5800\u581e\u5819\u5844\u5820\u5865\u586c\u5881\u5889\u589a\u5880\u99a8\u9f19\u61ff\u8279\u827d\u827f\u828f\u828a\u82a8\u8284\u828e\u8291\u8297\u8299\u82ab\u82b8\u82be\u82b0\u82c8\u82ca\u82e3\u8298\u82b7\u82ae\u82cb\u82cc\u82c1\u82a9\u82b4\u82a1\u82aa\u829f\u82c4\u82ce\u82a4\u82e1\u8309\u82f7\u82e4\u830f\u8307\u82dc\u82f4\u82d2\u82d8\u830c\u82fb\u82d3\u8311\u831a\u8306\u8314\u8315\u82e0\u82d5\u831c\u8351\u835b\u835c\u8308\u8392\u833c\u8334\u8331\u839b\u835e\u832f\u834f\u8347\u8343\u835f\u8340\u8317\u8360\u832d\u833a\u8333\u8366\u8365"],["dd40","\u8ee5",62],["dd80","\u8f24",32,"\u8368\u831b\u8369\u836c\u836a\u836d\u836e\u83b0\u8378\u83b3\u83b4\u83a0\u83aa\u8393\u839c\u8385\u837c\u83b6\u83a9\u837d\u83b8\u837b\u8398\u839e\u83a8\u83ba\u83bc\u83c1\u8401\u83e5\u83d8\u5807\u8418\u840b\u83dd\u83fd\u83d6\u841c\u8438\u8411\u8406\u83d4\u83df\u840f\u8403\u83f8\u83f9\u83ea\u83c5\u83c0\u8426\u83f0\u83e1\u845c\u8451\u845a\u8459\u8473\u8487\u8488\u847a\u8489\u8478\u843c\u8446\u8469\u8476\u848c\u848e\u8431\u846d\u84c1\u84cd\u84d0\u84e6\u84bd\u84d3\u84ca\u84bf\u84ba\u84e0\u84a1\u84b9\u84b4\u8497\u84e5\u84e3\u850c\u750d\u8538\u84f0\u8539\u851f\u853a"],["de40","\u8f45",32,"\u8f6a\u8f80\u8f8c\u8f92\u8f9d\u8fa0\u8fa1\u8fa2\u8fa4\u8fa5\u8fa6\u8fa7\u8faa\u8fac\u8fad\u8fae\u8faf\u8fb2\u8fb3\u8fb4\u8fb5\u8fb7\u8fb8\u8fba\u8fbb\u8fbc\u8fbf\u8fc0\u8fc3\u8fc6"],["de80","\u8fc9",4,"\u8fcf\u8fd2\u8fd6\u8fd7\u8fda\u8fe0\u8fe1\u8fe3\u8fe7\u8fec\u8fef\u8ff1\u8ff2\u8ff4\u8ff5\u8ff6\u8ffa\u8ffb\u8ffc\u8ffe\u8fff\u9007\u9008\u900c\u900e\u9013\u9015\u9018\u8556\u853b\u84ff\u84fc\u8559\u8548\u8568\u8564\u855e\u857a\u77a2\u8543\u8572\u857b\u85a4\u85a8\u8587\u858f\u8579\u85ae\u859c\u8585\u85b9\u85b7\u85b0\u85d3\u85c1\u85dc\u85ff\u8627\u8605\u8629\u8616\u863c\u5efe\u5f08\u593c\u5941\u8037\u5955\u595a\u5958\u530f\u5c22\u5c25\u5c2c\u5c34\u624c\u626a\u629f\u62bb\u62ca\u62da\u62d7\u62ee\u6322\u62f6\u6339\u634b\u6343\u63ad\u63f6\u6371\u637a\u638e\u63b4\u636d\u63ac\u638a\u6369\u63ae\u63bc\u63f2\u63f8\u63e0\u63ff\u63c4\u63de\u63ce\u6452\u63c6\u63be\u6445\u6441\u640b\u641b\u6420\u640c\u6426\u6421\u645e\u6484\u646d\u6496"],["df40","\u9019\u901c\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903a\u903d\u903f\u9040\u9043\u9045\u9046\u9048",4,"\u904e\u9054\u9055\u9056\u9059\u905a\u905c",5,"\u9064\u9066\u9067\u9069\u906a\u906b\u906c\u906f",4,"\u9076",6,"\u907e\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908a\u908c",4,"\u9092\u9094\u9096\u9098\u909a\u909c\u909e\u909f\u90a0\u90a4\u90a5\u90a7\u90a8\u90a9\u90ab\u90ad\u90b2\u90b7\u90bc\u90bd\u90bf\u90c0\u647a\u64b7\u64b8\u6499\u64ba\u64c0\u64d0\u64d7\u64e4\u64e2\u6509\u6525\u652e\u5f0b\u5fd2\u7519\u5f11\u535f\u53f1\u53fd\u53e9\u53e8\u53fb\u5412\u5416\u5406\u544b\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549a\u549b\u5484\u5476\u5466\u549d\u54d0\u54ad\u54c2\u54b4\u54d2\u54a7\u54a6\u54d3\u54d4\u5472\u54a3\u54d5\u54bb\u54bf\u54cc\u54d9\u54da\u54dc\u54a9\u54aa\u54a4\u54dd\u54cf\u54de\u551b\u54e7\u5520\u54fd\u5514\u54f3\u5522\u5523\u550f\u5511\u5527\u552a\u5567\u558f\u55b5\u5549\u556d\u5541\u5555\u553f\u5550\u553c"],["e040","\u90c2\u90c3\u90c6\u90c8\u90c9\u90cb\u90cc\u90cd\u90d2\u90d4\u90d5\u90d6\u90d8\u90d9\u90da\u90de\u90df\u90e0\u90e3\u90e4\u90e5\u90e9\u90ea\u90ec\u90ee\u90f0\u90f1\u90f2\u90f3\u90f5\u90f6\u90f7\u90f9\u90fa\u90fb\u90fc\u90ff\u9100\u9101\u9103\u9105",19,"\u911a\u911b\u911c"],["e080","\u911d\u911f\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913a",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555c\u558b\u55d2\u5583\u55b1\u55b9\u5588\u5581\u559f\u557e\u55d6\u5591\u557b\u55df\u55bd\u55be\u5594\u5599\u55ea\u55f7\u55c9\u561f\u55d1\u55eb\u55ec\u55d4\u55e6\u55dd\u55c4\u55ef\u55e5\u55f2\u55f3\u55cc\u55cd\u55e8\u55f5\u55e4\u8f94\u561e\u5608\u560c\u5601\u5624\u5623\u55fe\u5600\u5627\u562d\u5658\u5639\u5657\u562c\u564d\u5662\u5659\u565c\u564c\u5654\u5686\u5664\u5671\u566b\u567b\u567c\u5685\u5693\u56af\u56d4\u56d7\u56dd\u56e1\u56f5\u56eb\u56f9\u56ff\u5704\u570a\u5709\u571c\u5e0f\u5e19\u5e14\u5e11\u5e31\u5e3b\u5e3c"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915b\u915c\u915f\u9160\u9166\u9167\u9168\u916b\u916d\u9173\u917a\u917b\u917c\u9180",4,"\u9186\u9188\u918a\u918e\u918f\u9193",6,"\u919c",5,"\u91a4",5,"\u91ab\u91ac\u91b0\u91b1\u91b2\u91b3\u91b6\u91b7\u91b8\u91b9\u91bb"],["e180","\u91bc",10,"\u91c8\u91cb\u91d0\u91d2",9,"\u91dd",8,"\u5e37\u5e44\u5e54\u5e5b\u5e5e\u5e61\u5c8c\u5c7a\u5c8d\u5c90\u5c96\u5c88\u5c98\u5c99\u5c91\u5c9a\u5c9c\u5cb5\u5ca2\u5cbd\u5cac\u5cab\u5cb1\u5ca3\u5cc1\u5cb7\u5cc4\u5cd2\u5ce4\u5ccb\u5ce5\u5d02\u5d03\u5d27\u5d26\u5d2e\u5d24\u5d1e\u5d06\u5d1b\u5d58\u5d3e\u5d34\u5d3d\u5d6c\u5d5b\u5d6f\u5d5d\u5d6b\u5d4b\u5d4a\u5d69\u5d74\u5d82\u5d99\u5d9d\u8c73\u5db7\u5dc5\u5f73\u5f77\u5f82\u5f87\u5f89\u5f8c\u5f95\u5f99\u5f9c\u5fa8\u5fad\u5fb5\u5fbc\u8862\u5f61\u72ad\u72b0\u72b4\u72b7\u72b8\u72c3\u72c1\u72ce\u72cd\u72d2\u72e8\u72ef\u72e9\u72f2\u72f4\u72f7\u7301\u72f3\u7303\u72fa"],["e240","\u91e6",62],["e280","\u9225",32,"\u72fb\u7317\u7313\u7321\u730a\u731e\u731d\u7315\u7322\u7339\u7325\u732c\u7338\u7331\u7350\u734d\u7357\u7360\u736c\u736f\u737e\u821b\u5925\u98e7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997d\u9980\u9984\u9987\u998a\u998d\u9990\u9991\u9993\u9994\u9995\u5e80\u5e91\u5e8b\u5e96\u5ea5\u5ea0\u5eb9\u5eb5\u5ebe\u5eb3\u8d53\u5ed2\u5ed1\u5edb\u5ee8\u5eea\u81ba\u5fc4\u5fc9\u5fd6\u5fcf\u6003\u5fee\u6004\u5fe1\u5fe4\u5ffe\u6005\u6006\u5fea\u5fed\u5ff8\u6019\u6035\u6026\u601b\u600f\u600d\u6029\u602b\u600a\u603f\u6021\u6078\u6079\u607b\u607a\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928f",24,"\u606a\u607d\u6096\u609a\u60ad\u609d\u6083\u6092\u608c\u609b\u60ec\u60bb\u60b1\u60dd\u60d8\u60c6\u60da\u60b4\u6120\u6126\u6115\u6123\u60f4\u6100\u610e\u612b\u614a\u6175\u61ac\u6194\u61a7\u61b7\u61d4\u61f5\u5fdd\u96b3\u95e9\u95eb\u95f1\u95f3\u95f5\u95f6\u95fc\u95fe\u9603\u9604\u9606\u9608\u960a\u960b\u960c\u960d\u960f\u9612\u9615\u9616\u9617\u9619\u961a\u4e2c\u723f\u6215\u6c35\u6c54\u6c5c\u6c4a\u6ca3\u6c85\u6c90\u6c94\u6c8c\u6c68\u6c69\u6c74\u6c76\u6c86\u6ca9\u6cd0\u6cd4\u6cad\u6cf7\u6cf8\u6cf1\u6cd7\u6cb2\u6ce0\u6cd6\u6cfa\u6ceb\u6cee\u6cb1\u6cd3\u6cef\u6cfe"],["e440","\u92a8",5,"\u92af",24,"\u92c9",31],["e480","\u92e9",32,"\u6d39\u6d27\u6d0c\u6d43\u6d48\u6d07\u6d04\u6d19\u6d0e\u6d2b\u6d4d\u6d2e\u6d35\u6d1a\u6d4f\u6d52\u6d54\u6d33\u6d91\u6d6f\u6d9e\u6da0\u6d5e\u6d93\u6d94\u6d5c\u6d60\u6d7c\u6d63\u6e1a\u6dc7\u6dc5\u6dde\u6e0e\u6dbf\u6de0\u6e11\u6de6\u6ddd\u6dd9\u6e16\u6dab\u6e0c\u6dae\u6e2b\u6e6e\u6e4e\u6e6b\u6eb2\u6e5f\u6e86\u6e53\u6e54\u6e32\u6e25\u6e44\u6edf\u6eb1\u6e98\u6ee0\u6f2d\u6ee2\u6ea5\u6ea7\u6ebd\u6ebb\u6eb7\u6ed7\u6eb4\u6ecf\u6e8f\u6ec2\u6e9f\u6f62\u6f46\u6f47\u6f24\u6f15\u6ef9\u6f2f\u6f36\u6f4b\u6f74\u6f2a\u6f09\u6f29\u6f89\u6f8d\u6f8c\u6f78\u6f72\u6f7c\u6f7a\u6fd1"],["e540","\u930a",51,"\u933f",10],["e580","\u934a",31,"\u936b\u6fc9\u6fa7\u6fb9\u6fb6\u6fc2\u6fe1\u6fee\u6fde\u6fe0\u6fef\u701a\u7023\u701b\u7039\u7035\u704f\u705e\u5b80\u5b84\u5b95\u5b93\u5ba5\u5bb8\u752f\u9a9e\u6434\u5be4\u5bee\u8930\u5bf0\u8e47\u8b07\u8fb6\u8fd3\u8fd5\u8fe5\u8fee\u8fe4\u8fe9\u8fe6\u8ff3\u8fe8\u9005\u9004\u900b\u9026\u9011\u900d\u9016\u9021\u9035\u9036\u902d\u902f\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905b\u66b9\u9074\u907d\u9082\u9088\u9083\u908b\u5f50\u5f57\u5f56\u5f58\u5c3b\u54ab\u5c50\u5c59\u5b71\u5c63\u5c66\u7fbc\u5f2a\u5f29\u5f2d\u8274\u5f3c\u9b3b\u5c6e\u5981\u5983\u598d\u59a9\u59aa\u59a3"],["e640","\u936c",34,"\u9390",27],["e680","\u93ac",29,"\u93cb\u93cc\u93cd\u5997\u59ca\u59ab\u599e\u59a4\u59d2\u59b2\u59af\u59d7\u59be\u5a05\u5a06\u59dd\u5a08\u59e3\u59d8\u59f9\u5a0c\u5a09\u5a32\u5a34\u5a11\u5a23\u5a13\u5a40\u5a67\u5a4a\u5a55\u5a3c\u5a62\u5a75\u80ec\u5aaa\u5a9b\u5a77\u5a7a\u5abe\u5aeb\u5ab2\u5ad2\u5ad4\u5ab8\u5ae0\u5ae3\u5af1\u5ad6\u5ae6\u5ad8\u5adc\u5b09\u5b17\u5b16\u5b32\u5b37\u5b40\u5c15\u5c1c\u5b5a\u5b65\u5b73\u5b51\u5b53\u5b62\u9a75\u9a77\u9a78\u9a7a\u9a7f\u9a7d\u9a80\u9a81\u9a85\u9a88\u9a8a\u9a90\u9a92\u9a93\u9a96\u9a98\u9a9b\u9a9c\u9a9d\u9a9f\u9aa0\u9aa2\u9aa3\u9aa5\u9aa7\u7e9f\u7ea1\u7ea3\u7ea5\u7ea8\u7ea9"],["e740","\u93ce",7,"\u93d7",54],["e780","\u940e",32,"\u7ead\u7eb0\u7ebe\u7ec0\u7ec1\u7ec2\u7ec9\u7ecb\u7ecc\u7ed0\u7ed4\u7ed7\u7edb\u7ee0\u7ee1\u7ee8\u7eeb\u7eee\u7eef\u7ef1\u7ef2\u7f0d\u7ef6\u7efa\u7efb\u7efe\u7f01\u7f02\u7f03\u7f07\u7f08\u7f0b\u7f0c\u7f0f\u7f11\u7f12\u7f17\u7f19\u7f1c\u7f1b\u7f1f\u7f21",6,"\u7f2a\u7f2b\u7f2c\u7f2d\u7f2f",4,"\u7f35\u5e7a\u757f\u5ddb\u753e\u9095\u738e\u7391\u73ae\u73a2\u739f\u73cf\u73c2\u73d1\u73b7\u73b3\u73c0\u73c9\u73c8\u73e5\u73d9\u987c\u740a\u73e9\u73e7\u73de\u73ba\u73f2\u740f\u742a\u745b\u7426\u7425\u7428\u7430\u742e\u742c"],["e840","\u942f",14,"\u943f",43,"\u946c\u946d\u946e\u946f"],["e880","\u9470",20,"\u9491\u9496\u9498\u94c7\u94cf\u94d3\u94d4\u94da\u94e6\u94fb\u951c\u9520\u741b\u741a\u7441\u745c\u7457\u7455\u7459\u7477\u746d\u747e\u749c\u748e\u7480\u7481\u7487\u748b\u749e\u74a8\u74a9\u7490\u74a7\u74d2\u74ba\u97ea\u97eb\u97ec\u674c\u6753\u675e\u6748\u6769\u67a5\u6787\u676a\u6773\u6798\u67a7\u6775\u67a8\u679e\u67ad\u678b\u6777\u677c\u67f0\u6809\u67d8\u680a\u67e9\u67b0\u680c\u67d9\u67b5\u67da\u67b3\u67dd\u6800\u67c3\u67b8\u67e2\u680e\u67c1\u67fd\u6832\u6833\u6860\u6861\u684e\u6862\u6844\u6864\u6883\u681d\u6855\u6866\u6841\u6867\u6840\u683e\u684a\u6849\u6829\u68b5\u688f\u6874\u6877\u6893\u686b\u68c2\u696e\u68fc\u691f\u6920\u68f9"],["e940","\u9527\u9533\u953d\u9543\u9548\u954b\u9555\u955a\u9560\u956e\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95ab",32,"\u6924\u68f0\u690b\u6901\u6957\u68e3\u6910\u6971\u6939\u6960\u6942\u695d\u6984\u696b\u6980\u6998\u6978\u6934\u69cc\u6987\u6988\u69ce\u6989\u6966\u6963\u6979\u699b\u69a7\u69bb\u69ab\u69ad\u69d4\u69b1\u69c1\u69ca\u69df\u6995\u69e0\u698d\u69ff\u6a2f\u69ed\u6a17\u6a18\u6a65\u69f2\u6a44\u6a3e\u6aa0\u6a50\u6a5b\u6a35\u6a8e\u6a79\u6a3d\u6a28\u6a58\u6a7c\u6a91\u6a90\u6aa9\u6a97\u6aab\u7337\u7352\u6b81\u6b82\u6b87\u6b84\u6b92\u6b93\u6b8d\u6b9a\u6b9b\u6ba1\u6baa\u8f6b\u8f6d\u8f71\u8f72\u8f73\u8f75\u8f76\u8f78\u8f77\u8f79\u8f7a\u8f7c\u8f7e\u8f81\u8f82\u8f84\u8f87\u8f8b"],["ea40","\u95cc",27,"\u95ec\u95ff\u9607\u9613\u9618\u961b\u961e\u9620\u9623",6,"\u962b\u962c\u962d\u962f\u9630\u9637\u9638\u9639\u963a\u963e\u9641\u9643\u964a\u964e\u964f\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965a\u965c\u965d\u965e\u9660\u9663\u9665\u9666\u966b\u966d",4,"\u9673\u9678",12,"\u9687\u9689\u968a\u8f8d\u8f8e\u8f8f\u8f98\u8f9a\u8ece\u620b\u6217\u621b\u621f\u6222\u6221\u6225\u6224\u622c\u81e7\u74ef\u74f4\u74ff\u750f\u7511\u7513\u6534\u65ee\u65ef\u65f0\u660a\u6619\u6772\u6603\u6615\u6600\u7085\u66f7\u661d\u6634\u6631\u6636\u6635\u8006\u665f\u6654\u6641\u664f\u6656\u6661\u6657\u6677\u6684\u668c\u66a7\u669d\u66be\u66db\u66dc\u66e6\u66e9\u8d32\u8d33\u8d36\u8d3b\u8d3d\u8d40\u8d45\u8d46\u8d48\u8d49\u8d47\u8d4d\u8d55\u8d59\u89c7\u89ca\u89cb\u89cc\u89ce\u89cf\u89d0\u89d1\u726e\u729f\u725d\u7266\u726f\u727e\u727f\u7284\u728b\u728d\u728f\u7292\u6308\u6332\u63b0"],["eb40","\u968c\u968e\u9691\u9692\u9693\u9695\u9696\u969a\u969b\u969d",9,"\u96a8",7,"\u96b1\u96b2\u96b4\u96b5\u96b7\u96b8\u96ba\u96bb\u96bf\u96c2\u96c3\u96c8\u96ca\u96cb\u96d0\u96d1\u96d3\u96d4\u96d6",9,"\u96e1",6,"\u96eb"],["eb80","\u96ec\u96ed\u96ee\u96f0\u96f1\u96f2\u96f4\u96f5\u96f8\u96fa\u96fb\u96fc\u96fd\u96ff\u9702\u9703\u9705\u970a\u970b\u970c\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971d\u971f\u9720\u643f\u64d8\u8004\u6bea\u6bf3\u6bfd\u6bf5\u6bf9\u6c05\u6c07\u6c06\u6c0d\u6c15\u6c18\u6c19\u6c1a\u6c21\u6c29\u6c24\u6c2a\u6c32\u6535\u6555\u656b\u724d\u7252\u7256\u7230\u8662\u5216\u809f\u809c\u8093\u80bc\u670a\u80bd\u80b1\u80ab\u80ad\u80b4\u80b7\u80e7\u80e8\u80e9\u80ea\u80db\u80c2\u80c4\u80d9\u80cd\u80d7\u6710\u80dd\u80eb\u80f1\u80f4\u80ed\u810d\u810e\u80f2\u80fc\u6715\u8112\u8c5a\u8136\u811e\u812c\u8118\u8132\u8148\u814c\u8153\u8174\u8159\u815a\u8171\u8160\u8169\u817c\u817d\u816d\u8167\u584d\u5ab5\u8188\u8182\u8191\u6ed5\u81a3\u81aa\u81cc\u6726\u81ca\u81bb"],["ec40","\u9721",8,"\u972b\u972c\u972e\u972f\u9731\u9733",4,"\u973a\u973b\u973c\u973d\u973f",18,"\u9754\u9755\u9757\u9758\u975a\u975c\u975d\u975f\u9763\u9764\u9766\u9767\u9768\u976a",7],["ec80","\u9772\u9775\u9777",4,"\u977d",7,"\u9786",4,"\u978c\u978e\u978f\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81c1\u81a6\u6b24\u6b37\u6b39\u6b43\u6b46\u6b59\u98d1\u98d2\u98d3\u98d5\u98d9\u98da\u6bb3\u5f40\u6bc2\u89f3\u6590\u9f51\u6593\u65bc\u65c6\u65c4\u65c3\u65cc\u65ce\u65d2\u65d6\u7080\u709c\u7096\u709d\u70bb\u70c0\u70b7\u70ab\u70b1\u70e8\u70ca\u7110\u7113\u7116\u712f\u7131\u7173\u715c\u7168\u7145\u7172\u714a\u7178\u717a\u7198\u71b3\u71b5\u71a8\u71a0\u71e0\u71d4\u71e7\u71f9\u721d\u7228\u706c\u7118\u7166\u71b9\u623e\u623d\u6243\u6248\u6249\u793b\u7940\u7946\u7949\u795b\u795c\u7953\u795a\u7962\u7957\u7960\u796f\u7967\u797a\u7985\u798a\u799a\u79a7\u79b3\u5fd1\u5fd0"],["ed40","\u979e\u979f\u97a1\u97a2\u97a4",6,"\u97ac\u97ae\u97b0\u97b1\u97b3\u97b5",46],["ed80","\u97e4\u97e5\u97e8\u97ee",4,"\u97f4\u97f7",23,"\u603c\u605d\u605a\u6067\u6041\u6059\u6063\u60ab\u6106\u610d\u615d\u61a9\u619d\u61cb\u61d1\u6206\u8080\u807f\u6c93\u6cf6\u6dfc\u77f6\u77f8\u7800\u7809\u7817\u7818\u7811\u65ab\u782d\u781c\u781d\u7839\u783a\u783b\u781f\u783c\u7825\u782c\u7823\u7829\u784e\u786d\u7856\u7857\u7826\u7850\u7847\u784c\u786a\u789b\u7893\u789a\u7887\u789c\u78a1\u78a3\u78b2\u78b9\u78a5\u78d4\u78d9\u78c9\u78ec\u78f2\u7905\u78f4\u7913\u7924\u791e\u7934\u9f9b\u9ef9\u9efb\u9efc\u76f1\u7704\u770d\u76f9\u7707\u7708\u771a\u7722\u7719\u772d\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775a\u7768"],["ee40","\u980f",62],["ee80","\u984e",32,"\u7762\u7765\u777f\u778d\u777d\u7780\u778c\u7791\u779f\u77a0\u77b0\u77b5\u77bd\u753a\u7540\u754e\u754b\u7548\u755b\u7572\u7579\u7583\u7f58\u7f61\u7f5f\u8a48\u7f68\u7f74\u7f71\u7f79\u7f81\u7f7e\u76cd\u76e5\u8832\u9485\u9486\u9487\u948b\u948a\u948c\u948d\u948f\u9490\u9494\u9497\u9495\u949a\u949b\u949c\u94a3\u94a4\u94ab\u94aa\u94ad\u94ac\u94af\u94b0\u94b2\u94b4\u94b6",4,"\u94bc\u94bd\u94bf\u94c4\u94c8",6,"\u94d0\u94d1\u94d2\u94d5\u94d6\u94d7\u94d9\u94d8\u94db\u94de\u94df\u94e0\u94e2\u94e4\u94e5\u94e7\u94e8\u94ea"],["ef40","\u986f",5,"\u988b\u988e\u9892\u9895\u9899\u98a3\u98a8",37,"\u98cf\u98d0\u98d4\u98d6\u98d7\u98db\u98dc\u98dd\u98e0",4],["ef80","\u98e5\u98e6\u98e9",30,"\u94e9\u94eb\u94ee\u94ef\u94f3\u94f4\u94f5\u94f7\u94f9\u94fc\u94fd\u94ff\u9503\u9502\u9506\u9507\u9509\u950a\u950d\u950e\u950f\u9512",4,"\u9518\u951b\u951d\u951e\u951f\u9522\u952a\u952b\u9529\u952c\u9531\u9532\u9534\u9536\u9537\u9538\u953c\u953e\u953f\u9542\u9535\u9544\u9545\u9546\u9549\u954c\u954e\u954f\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955b\u955e\u955f\u955d\u9561\u9562\u9564",8,"\u956f\u9571\u9572\u9573\u953a\u77e7\u77ec\u96c9\u79d5\u79ed\u79e3\u79eb\u7a06\u5d47\u7a03\u7a02\u7a1e\u7a14"],["f040","\u9908",4,"\u990e\u990f\u9911",28,"\u992f",26],["f080","\u994a",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997b\u997e\u9982\u9983\u9989\u7a39\u7a37\u7a51\u9ecf\u99a5\u7a70\u7688\u768e\u7693\u7699\u76a4\u74de\u74e0\u752c\u9e20\u9e22\u9e28",4,"\u9e32\u9e31\u9e36\u9e38\u9e37\u9e39\u9e3a\u9e3e\u9e41\u9e42\u9e44\u9e46\u9e47\u9e48\u9e49\u9e4b\u9e4c\u9e4e\u9e51\u9e55\u9e57\u9e5a\u9e5b\u9e5c\u9e5e\u9e63\u9e66",6,"\u9e71\u9e6d\u9e73\u7592\u7594\u7596\u75a0\u759d\u75ac\u75a3\u75b3\u75b4\u75b8\u75c4\u75b1\u75b0\u75c3\u75c2\u75d6\u75cd\u75e3\u75e8\u75e6\u75e4\u75eb\u75e7\u7603\u75f1\u75fc\u75ff\u7610\u7600\u7605\u760c\u7617\u760a\u7625\u7618\u7615\u7619"],["f140","\u998c\u998e\u999a",10,"\u99a6\u99a7\u99a9",47],["f180","\u99d9",32,"\u761b\u763c\u7622\u7620\u7640\u762d\u7630\u763f\u7635\u7643\u763e\u7633\u764d\u765e\u7654\u765c\u7656\u766b\u766f\u7fca\u7ae6\u7a78\u7a79\u7a80\u7a86\u7a88\u7a95\u7aa6\u7aa0\u7aac\u7aa8\u7aad\u7ab3\u8864\u8869\u8872\u887d\u887f\u8882\u88a2\u88c6\u88b7\u88bc\u88c9\u88e2\u88ce\u88e3\u88e5\u88f1\u891a\u88fc\u88e8\u88fe\u88f0\u8921\u8919\u8913\u891b\u890a\u8934\u892b\u8936\u8941\u8966\u897b\u758b\u80e5\u76b2\u76b4\u77dc\u8012\u8014\u8016\u801c\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800b\u8035\u8043\u8046\u804d\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99fa",62],["f280","\u9a39",32,"\u9889\u988c\u988d\u988f\u9894\u989a\u989b\u989e\u989f\u98a1\u98a2\u98a5\u98a6\u864d\u8654\u866c\u866e\u867f\u867a\u867c\u867b\u86a8\u868d\u868b\u86ac\u869d\u86a7\u86a3\u86aa\u8693\u86a9\u86b6\u86c4\u86b5\u86ce\u86b0\u86ba\u86b1\u86af\u86c9\u86cf\u86b4\u86e9\u86f1\u86f2\u86ed\u86f3\u86d0\u8713\u86de\u86f4\u86df\u86d8\u86d1\u8703\u8707\u86f8\u8708\u870a\u870d\u8709\u8723\u873b\u871e\u8725\u872e\u871a\u873e\u8748\u8734\u8731\u8729\u8737\u873f\u8782\u8722\u877d\u877e\u877b\u8760\u8770\u874c\u876e\u878b\u8753\u8763\u877c\u8764\u8759\u8765\u8793\u87af\u87a8\u87d2"],["f340","\u9a5a",17,"\u9a72\u9a83\u9a89\u9a8d\u9a8e\u9a94\u9a95\u9a99\u9aa6\u9aa9",6,"\u9ab2\u9ab3\u9ab4\u9ab5\u9ab9\u9abb\u9abd\u9abe\u9abf\u9ac3\u9ac4\u9ac6",4,"\u9acd\u9ace\u9acf\u9ad0\u9ad2\u9ad4\u9ad5\u9ad6\u9ad7\u9ad9\u9ada\u9adb\u9adc"],["f380","\u9add\u9ade\u9ae0\u9ae2\u9ae3\u9ae4\u9ae5\u9ae7\u9ae8\u9ae9\u9aea\u9aec\u9aee\u9af0",8,"\u9afa\u9afc",6,"\u9b04\u9b05\u9b06\u87c6\u8788\u8785\u87ad\u8797\u8783\u87ab\u87e5\u87ac\u87b5\u87b3\u87cb\u87d3\u87bd\u87d1\u87c0\u87ca\u87db\u87ea\u87e0\u87ee\u8816\u8813\u87fe\u880a\u881b\u8821\u8839\u883c\u7f36\u7f42\u7f44\u7f45\u8210\u7afa\u7afd\u7b08\u7b03\u7b04\u7b15\u7b0a\u7b2b\u7b0f\u7b47\u7b38\u7b2a\u7b19\u7b2e\u7b31\u7b20\u7b25\u7b24\u7b33\u7b3e\u7b1e\u7b58\u7b5a\u7b45\u7b75\u7b4c\u7b5d\u7b60\u7b6e\u7b7b\u7b62\u7b72\u7b71\u7b90\u7ba6\u7ba7\u7bb8\u7bac\u7b9d\u7ba8\u7b85\u7baa\u7b9c\u7ba2\u7bab\u7bb4\u7bd1\u7bc1\u7bcc\u7bdd\u7bda\u7be5\u7be6\u7bea\u7c0c\u7bfe\u7bfc\u7c0f\u7c16\u7c0b"],["f440","\u9b07\u9b09",5,"\u9b10\u9b11\u9b12\u9b14",10,"\u9b20\u9b21\u9b22\u9b24",10,"\u9b30\u9b31\u9b33",7,"\u9b3d\u9b3e\u9b3f\u9b40\u9b46\u9b4a\u9b4b\u9b4c\u9b4e\u9b50\u9b52\u9b53\u9b55",5],["f480","\u9b5b",32,"\u7c1f\u7c2a\u7c26\u7c38\u7c41\u7c40\u81fe\u8201\u8202\u8204\u81ec\u8844\u8221\u8222\u8223\u822d\u822f\u8228\u822b\u8238\u823b\u8233\u8234\u823e\u8244\u8249\u824b\u824f\u825a\u825f\u8268\u887e\u8885\u8888\u88d8\u88df\u895e\u7f9d\u7f9f\u7fa7\u7faf\u7fb0\u7fb2\u7c7c\u6549\u7c91\u7c9d\u7c9c\u7c9e\u7ca2\u7cb2\u7cbc\u7cbd\u7cc1\u7cc7\u7ccc\u7ccd\u7cc8\u7cc5\u7cd7\u7ce8\u826e\u66a8\u7fbf\u7fce\u7fd5\u7fe5\u7fe1\u7fe6\u7fe9\u7fee\u7ff3\u7cf8\u7d77\u7da6\u7dae\u7e47\u7e9b\u9eb8\u9eb4\u8d73\u8d84\u8d94\u8d91\u8db1\u8d67\u8d6d\u8c47\u8c49\u914a\u9150\u914e\u914f\u9164"],["f540","\u9b7c",62],["f580","\u9bbb",32,"\u9162\u9161\u9170\u9169\u916f\u917d\u917e\u9172\u9174\u9179\u918c\u9185\u9190\u918d\u9191\u91a2\u91a3\u91aa\u91ad\u91ae\u91af\u91b5\u91b4\u91ba\u8c55\u9e7e\u8db8\u8deb\u8e05\u8e59\u8e69\u8db5\u8dbf\u8dbc\u8dba\u8dc4\u8dd6\u8dd7\u8dda\u8dde\u8dce\u8dcf\u8ddb\u8dc6\u8dec\u8df7\u8df8\u8de3\u8df9\u8dfb\u8de4\u8e09\u8dfd\u8e14\u8e1d\u8e1f\u8e2c\u8e2e\u8e23\u8e2f\u8e3a\u8e40\u8e39\u8e35\u8e3d\u8e31\u8e49\u8e41\u8e42\u8e51\u8e52\u8e4a\u8e70\u8e76\u8e7c\u8e6f\u8e74\u8e85\u8e8f\u8e94\u8e90\u8e9c\u8e9e\u8c78\u8c82\u8c8a\u8c85\u8c98\u8c94\u659b\u89d6\u89de\u89da\u89dc"],["f640","\u9bdc",62],["f680","\u9c1b",32,"\u89e5\u89eb\u89ef\u8a3e\u8b26\u9753\u96e9\u96f3\u96ef\u9706\u9701\u9708\u970f\u970e\u972a\u972d\u9730\u973e\u9f80\u9f83\u9f85",5,"\u9f8c\u9efe\u9f0b\u9f0d\u96b9\u96bc\u96bd\u96ce\u96d2\u77bf\u96e0\u928e\u92ae\u92c8\u933e\u936a\u93ca\u938f\u943e\u946b\u9c7f\u9c82\u9c85\u9c86\u9c87\u9c88\u7a23\u9c8b\u9c8e\u9c90\u9c91\u9c92\u9c94\u9c95\u9c9a\u9c9b\u9c9e",5,"\u9ca5",4,"\u9cab\u9cad\u9cae\u9cb0",7,"\u9cba\u9cbb\u9cbc\u9cbd\u9cc4\u9cc5\u9cc6\u9cc7\u9cca\u9ccb"],["f740","\u9c3c",62],["f780","\u9c7b\u9c7d\u9c7e\u9c80\u9c83\u9c84\u9c89\u9c8a\u9c8c\u9c8f\u9c93\u9c96\u9c97\u9c98\u9c99\u9c9d\u9caa\u9cac\u9caf\u9cb9\u9cbe",4,"\u9cc8\u9cc9\u9cd1\u9cd2\u9cda\u9cdb\u9ce0\u9ce1\u9ccc",4,"\u9cd3\u9cd4\u9cd5\u9cd7\u9cd8\u9cd9\u9cdc\u9cdd\u9cdf\u9ce2\u977c\u9785\u9791\u9792\u9794\u97af\u97ab\u97a3\u97b2\u97b4\u9ab1\u9ab0\u9ab7\u9e58\u9ab6\u9aba\u9abc\u9ac1\u9ac0\u9ac5\u9ac2\u9acb\u9acc\u9ad1\u9b45\u9b43\u9b47\u9b49\u9b48\u9b4d\u9b51\u98e8\u990d\u992e\u9955\u9954\u9adf\u9ae1\u9ae6\u9aef\u9aeb\u9afb\u9aed\u9af9\u9b08\u9b0f\u9b13\u9b1f\u9b23\u9ebd\u9ebe\u7e3b\u9e82\u9e87\u9e88\u9e8b\u9e92\u93d6\u9e9d\u9e9f\u9edb\u9edc\u9edd\u9ee0\u9edf\u9ee2\u9ee9\u9ee7\u9ee5\u9eea\u9eef\u9f22\u9f2c\u9f2f\u9f39\u9f37\u9f3d\u9f3e\u9f44"],["f840","\u9ce3",62],["f880","\u9d22",32],["f940","\u9d43",62],["f980","\u9d82",32],["fa40","\u9da3",62],["fa80","\u9de2",32],["fb40","\u9e03",27,"\u9e24\u9e27\u9e2e\u9e30\u9e34\u9e3b\u9e3c\u9e40\u9e4d\u9e50\u9e52\u9e53\u9e54\u9e56\u9e59\u9e5d\u9e5f\u9e60\u9e61\u9e62\u9e65\u9e6e\u9e6f\u9e72\u9e74",9,"\u9e80"],["fb80","\u9e81\u9e83\u9e84\u9e85\u9e86\u9e89\u9e8a\u9e8c",5,"\u9e94",8,"\u9e9e\u9ea0",5,"\u9ea7\u9ea8\u9ea9\u9eaa"],["fc40","\u9eab",8,"\u9eb5\u9eb6\u9eb7\u9eb9\u9eba\u9ebc\u9ebf",4,"\u9ec5\u9ec6\u9ec7\u9ec8\u9eca\u9ecb\u9ecc\u9ed0\u9ed2\u9ed3\u9ed5\u9ed6\u9ed7\u9ed9\u9eda\u9ede\u9ee1\u9ee3\u9ee4\u9ee6\u9ee8\u9eeb\u9eec\u9eed\u9eee\u9ef0",8,"\u9efa\u9efd\u9eff",6],["fc80","\u9f06",4,"\u9f0c\u9f0f\u9f11\u9f12\u9f14\u9f15\u9f16\u9f18\u9f1a",5,"\u9f21\u9f23",8,"\u9f2d\u9f2e\u9f30\u9f31"],["fd40","\u9f32",4,"\u9f38\u9f3a\u9f3c\u9f3f",4,"\u9f45",10,"\u9f52",38],["fd80","\u9f79",5,"\u9f81\u9f82\u9f8d",11,"\u9f9c\u9f9d\u9f9e\u9fa1",4,"\uf92c\uf979\uf995\uf9e7\uf9f1"],["fe40","\ufa0c\ufa0d\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa18\ufa1f\ufa20\ufa21\ufa23\ufa24\ufa27\ufa28\ufa29"]]},{}],14:[function(require,module,exports){module.exports=[["0","\0",127],["8141","\uac02\uac03\uac05\uac06\uac0b",4,"\uac18\uac1e\uac1f\uac21\uac22\uac23\uac25",6,"\uac2e\uac32\uac33\uac34"],["8161","\uac35\uac36\uac37\uac3a\uac3b\uac3d\uac3e\uac3f\uac41",9,"\uac4c\uac4e",5,"\uac55"],["8181","\uac56\uac57\uac59\uac5a\uac5b\uac5d",18,"\uac72\uac73\uac75\uac76\uac79\uac7b",4,"\uac82\uac87\uac88\uac8d\uac8e\uac8f\uac91\uac92\uac93\uac95",6,"\uac9e\uaca2",5,"\uacab\uacad\uacae\uacb1",6,"\uacba\uacbe\uacbf\uacc0\uacc2\uacc3\uacc5\uacc6\uacc7\uacc9\uacca\uaccb\uaccd",7,"\uacd6\uacd8",7,"\uace2\uace3\uace5\uace6\uace9\uaceb\uaced\uacee\uacf2\uacf4\uacf7",4,"\uacfe\uacff\uad01\uad02\uad03\uad05\uad07",4,"\uad0e\uad10\uad12\uad13"],["8241","\uad14\uad15\uad16\uad17\uad19\uad1a\uad1b\uad1d\uad1e\uad1f\uad21",7,"\uad2a\uad2b\uad2e",5],["8261","\uad36\uad37\uad39\uad3a\uad3b\uad3d",6,"\uad46\uad48\uad4a",5,"\uad51\uad52\uad53\uad55\uad56\uad57"],["8281","\uad59",7,"\uad62\uad64",7,"\uad6e\uad6f\uad71\uad72\uad77\uad78\uad79\uad7a\uad7e\uad80\uad83",4,"\uad8a\uad8b\uad8d\uad8e\uad8f\uad91",10,"\uad9e",5,"\uada5",17,"\uadb8",7,"\uadc2\uadc3\uadc5\uadc6\uadc7\uadc9",6,"\uadd2\uadd4",7,"\uaddd\uadde\uaddf\uade1\uade2\uade3\uade5",18],["8341","\uadfa\uadfb\uadfd\uadfe\uae02",5,"\uae0a\uae0c\uae0e",5,"\uae15",7],["8361","\uae1d",18,"\uae32\uae33\uae35\uae36\uae39\uae3b\uae3c"],["8381","\uae3d\uae3e\uae3f\uae42\uae44\uae47\uae48\uae49\uae4b\uae4f\uae51\uae52\uae53\uae55\uae57",4,"\uae5e\uae62\uae63\uae64\uae66\uae67\uae6a\uae6b\uae6d\uae6e\uae6f\uae71",6,"\uae7a\uae7e",5,"\uae86",5,"\uae8d",46,"\uaebf\uaec1\uaec2\uaec3\uaec5",6,"\uaece\uaed2",5,"\uaeda\uaedb\uaedd",8],["8441","\uaee6\uaee7\uaee9\uaeea\uaeec\uaeee",5,"\uaef5\uaef6\uaef7\uaef9\uaefa\uaefb\uaefd",8],["8461","\uaf06\uaf09\uaf0a\uaf0b\uaf0c\uaf0e\uaf0f\uaf11",18],["8481","\uaf24",7,"\uaf2e\uaf2f\uaf31\uaf33\uaf35",6,"\uaf3e\uaf40\uaf44\uaf45\uaf46\uaf47\uaf4a",5,"\uaf51",10,"\uaf5e",5,"\uaf66",18,"\uaf7a",5,"\uaf81\uaf82\uaf83\uaf85\uaf86\uaf87\uaf89",6,"\uaf92\uaf93\uaf94\uaf96",5,"\uaf9d",26,"\uafba\uafbb\uafbd\uafbe"],["8541","\uafbf\uafc1",5,"\uafca\uafcc\uafcf",4,"\uafd5",6,"\uafdd",4],["8561","\uafe2",5,"\uafea",5,"\uaff2\uaff3\uaff5\uaff6\uaff7\uaff9",6,"\ub002\ub003"],["8581","\ub005",6,"\ub00d\ub00e\ub00f\ub011\ub012\ub013\ub015",6,"\ub01e",9,"\ub029",26,"\ub046\ub047\ub049\ub04b\ub04d\ub04f\ub050\ub051\ub052\ub056\ub058\ub05a\ub05b\ub05c\ub05e",29,"\ub07e\ub07f\ub081\ub082\ub083\ub085",6,"\ub08e\ub090\ub092",5,"\ub09b\ub09d\ub09e\ub0a3\ub0a4"],["8641","\ub0a5\ub0a6\ub0a7\ub0aa\ub0b0\ub0b2\ub0b6\ub0b7\ub0b9\ub0ba\ub0bb\ub0bd",6,"\ub0c6\ub0ca",5,"\ub0d2"],["8661","\ub0d3\ub0d5\ub0d6\ub0d7\ub0d9",6,"\ub0e1\ub0e2\ub0e3\ub0e4\ub0e6",10],["8681","\ub0f1",22,"\ub10a\ub10d\ub10e\ub10f\ub111\ub114\ub115\ub116\ub117\ub11a\ub11e",4,"\ub126\ub127\ub129\ub12a\ub12b\ub12d",6,"\ub136\ub13a",5,"\ub142\ub143\ub145\ub146\ub147\ub149",6,"\ub152\ub153\ub156\ub157\ub159\ub15a\ub15b\ub15d\ub15e\ub15f\ub161",22,"\ub17a\ub17b\ub17d\ub17e\ub17f\ub181\ub183",4,"\ub18a\ub18c\ub18e\ub18f\ub190\ub191\ub195\ub196\ub197\ub199\ub19a\ub19b\ub19d"],["8741","\ub19e",9,"\ub1a9",15],["8761","\ub1b9",18,"\ub1cd\ub1ce\ub1cf\ub1d1\ub1d2\ub1d3\ub1d5"],["8781","\ub1d6",5,"\ub1de\ub1e0",7,"\ub1ea\ub1eb\ub1ed\ub1ee\ub1ef\ub1f1",7,"\ub1fa\ub1fc\ub1fe",5,"\ub206\ub207\ub209\ub20a\ub20d",6,"\ub216\ub218\ub21a",5,"\ub221",18,"\ub235",6,"\ub23d",26,"\ub259\ub25a\ub25b\ub25d\ub25e\ub25f\ub261",6,"\ub26a",4],["8841","\ub26f",4,"\ub276",5,"\ub27d",6,"\ub286\ub287\ub288\ub28a",4],["8861","\ub28f\ub292\ub293\ub295\ub296\ub297\ub29b",4,"\ub2a2\ub2a4\ub2a7\ub2a8\ub2a9\ub2ab\ub2ad\ub2ae\ub2af\ub2b1\ub2b2\ub2b3\ub2b5\ub2b6\ub2b7"],["8881","\ub2b8",15,"\ub2ca\ub2cb\ub2cd\ub2ce\ub2cf\ub2d1\ub2d3",4,"\ub2da\ub2dc\ub2de\ub2df\ub2e0\ub2e1\ub2e3\ub2e7\ub2e9\ub2ea\ub2f0\ub2f1\ub2f2\ub2f6\ub2fc\ub2fd\ub2fe\ub302\ub303\ub305\ub306\ub307\ub309",6,"\ub312\ub316",5,"\ub31d",54,"\ub357\ub359\ub35a\ub35d\ub360\ub361\ub362\ub363"],["8941","\ub366\ub368\ub36a\ub36c\ub36d\ub36f\ub372\ub373\ub375\ub376\ub377\ub379",6,"\ub382\ub386",5,"\ub38d"],["8961","\ub38e\ub38f\ub391\ub392\ub393\ub395",10,"\ub3a2",5,"\ub3a9\ub3aa\ub3ab\ub3ad"],["8981","\ub3ae",21,"\ub3c6\ub3c7\ub3c9\ub3ca\ub3cd\ub3cf\ub3d1\ub3d2\ub3d3\ub3d6\ub3d8\ub3da\ub3dc\ub3de\ub3df\ub3e1\ub3e2\ub3e3\ub3e5\ub3e6\ub3e7\ub3e9",18,"\ub3fd",18,"\ub411",6,"\ub419\ub41a\ub41b\ub41d\ub41e\ub41f\ub421",6,"\ub42a\ub42c",7,"\ub435",15],["8a41","\ub445",10,"\ub452\ub453\ub455\ub456\ub457\ub459",6,"\ub462\ub464\ub466"],["8a61","\ub467",4,"\ub46d",18,"\ub481\ub482"],["8a81","\ub483",4,"\ub489",19,"\ub49e",5,"\ub4a5\ub4a6\ub4a7\ub4a9\ub4aa\ub4ab\ub4ad",7,"\ub4b6\ub4b8\ub4ba",5,"\ub4c1\ub4c2\ub4c3\ub4c5\ub4c6\ub4c7\ub4c9",6,"\ub4d1\ub4d2\ub4d3\ub4d4\ub4d6",5,"\ub4de\ub4df\ub4e1\ub4e2\ub4e5\ub4e7",4,"\ub4ee\ub4f0\ub4f2",5,"\ub4f9",26,"\ub516\ub517\ub519\ub51a\ub51d"],["8b41","\ub51e",5,"\ub526\ub52b",4,"\ub532\ub533\ub535\ub536\ub537\ub539",6,"\ub542\ub546"],["8b61","\ub547\ub548\ub549\ub54a\ub54e\ub54f\ub551\ub552\ub553\ub555",6,"\ub55e\ub562",8],["8b81","\ub56b",52,"\ub5a2\ub5a3\ub5a5\ub5a6\ub5a7\ub5a9\ub5ac\ub5ad\ub5ae\ub5af\ub5b2\ub5b6",4,"\ub5be\ub5bf\ub5c1\ub5c2\ub5c3\ub5c5",6,"\ub5ce\ub5d2",5,"\ub5d9",18,"\ub5ed",18],["8c41","\ub600",15,"\ub612\ub613\ub615\ub616\ub617\ub619",4],["8c61","\ub61e",6,"\ub626",5,"\ub62d",6,"\ub635",5],["8c81","\ub63b",12,"\ub649",26,"\ub665\ub666\ub667\ub669",50,"\ub69e\ub69f\ub6a1\ub6a2\ub6a3\ub6a5",5,"\ub6ad\ub6ae\ub6af\ub6b0\ub6b2",16],["8d41","\ub6c3",16,"\ub6d5",8],["8d61","\ub6de",17,"\ub6f1\ub6f2\ub6f3\ub6f5\ub6f6\ub6f7\ub6f9\ub6fa"],["8d81","\ub6fb",4,"\ub702\ub703\ub704\ub706",33,"\ub72a\ub72b\ub72d\ub72e\ub731",6,"\ub73a\ub73c",7,"\ub745\ub746\ub747\ub749\ub74a\ub74b\ub74d",6,"\ub756",9,"\ub761\ub762\ub763\ub765\ub766\ub767\ub769",6,"\ub772\ub774\ub776",5,"\ub77e\ub77f\ub781\ub782\ub783\ub785",6,"\ub78e\ub793\ub794\ub795\ub79a\ub79b\ub79d\ub79e"],["8e41","\ub79f\ub7a1",6,"\ub7aa\ub7ae",5,"\ub7b6\ub7b7\ub7b9",8],["8e61","\ub7c2",4,"\ub7c8\ub7ca",19],["8e81","\ub7de",13,"\ub7ee\ub7ef\ub7f1\ub7f2\ub7f3\ub7f5",6,"\ub7fe\ub802",4,"\ub80a\ub80b\ub80d\ub80e\ub80f\ub811",6,"\ub81a\ub81c\ub81e",5,"\ub826\ub827\ub829\ub82a\ub82b\ub82d",6,"\ub836\ub83a",5,"\ub841\ub842\ub843\ub845",11,"\ub852\ub854",7,"\ub85e\ub85f\ub861\ub862\ub863\ub865",6,"\ub86e\ub870\ub872",5,"\ub879\ub87a\ub87b\ub87d",7],["8f41","\ub885",7,"\ub88e",17],["8f61","\ub8a0",7,"\ub8a9",6,"\ub8b1\ub8b2\ub8b3\ub8b5\ub8b6\ub8b7\ub8b9",4],["8f81","\ub8be\ub8bf\ub8c2\ub8c4\ub8c6",5,"\ub8cd\ub8ce\ub8cf\ub8d1\ub8d2\ub8d3\ub8d5",7,"\ub8de\ub8e0\ub8e2",5,"\ub8ea\ub8eb\ub8ed\ub8ee\ub8ef\ub8f1",6,"\ub8fa\ub8fc\ub8fe",5,"\ub905",18,"\ub919",6,"\ub921",26,"\ub93e\ub93f\ub941\ub942\ub943\ub945",6,"\ub94d\ub94e\ub950\ub952",5],["9041","\ub95a\ub95b\ub95d\ub95e\ub95f\ub961",6,"\ub96a\ub96c\ub96e",5,"\ub976\ub977\ub979\ub97a\ub97b\ub97d"],["9061","\ub97e",5,"\ub986\ub988\ub98b\ub98c\ub98f",15],["9081","\ub99f",12,"\ub9ae\ub9af\ub9b1\ub9b2\ub9b3\ub9b5",6,"\ub9be\ub9c0\ub9c2",5,"\ub9ca\ub9cb\ub9cd\ub9d3",4,"\ub9da\ub9dc\ub9df\ub9e0\ub9e2\ub9e6\ub9e7\ub9e9\ub9ea\ub9eb\ub9ed",6,"\ub9f6\ub9fb",4,"\uba02",5,"\uba09",11,"\uba16",33,"\uba3a\uba3b\uba3d\uba3e\uba3f\uba41\uba43\uba44\uba45\uba46"],["9141","\uba47\uba4a\uba4c\uba4f\uba50\uba51\uba52\uba56\uba57\uba59\uba5a\uba5b\uba5d",6,"\uba66\uba6a",5],["9161","\uba72\uba73\uba75\uba76\uba77\uba79",9,"\uba86\uba88\uba89\uba8a\uba8b\uba8d",5],["9181","\uba93",20,"\ubaaa\ubaad\ubaae\ubaaf\ubab1\ubab3",4,"\ubaba\ubabc\ubabe",5,"\ubac5\ubac6\ubac7\ubac9",14,"\ubada",33,"\ubafd\ubafe\ubaff\ubb01\ubb02\ubb03\ubb05",7,"\ubb0e\ubb10\ubb12",5,"\ubb19\ubb1a\ubb1b\ubb1d\ubb1e\ubb1f\ubb21",6],["9241","\ubb28\ubb2a\ubb2c",7,"\ubb37\ubb39\ubb3a\ubb3f",4,"\ubb46\ubb48\ubb4a\ubb4b\ubb4c\ubb4e\ubb51\ubb52"],["9261","\ubb53\ubb55\ubb56\ubb57\ubb59",7,"\ubb62\ubb64",7,"\ubb6d",4],["9281","\ubb72",21,"\ubb89\ubb8a\ubb8b\ubb8d\ubb8e\ubb8f\ubb91",18,"\ubba5\ubba6\ubba7\ubba9\ubbaa\ubbab\ubbad",6,"\ubbb5\ubbb6\ubbb8",7,"\ubbc1\ubbc2\ubbc3\ubbc5\ubbc6\ubbc7\ubbc9",6,"\ubbd1\ubbd2\ubbd4",35,"\ubbfa\ubbfb\ubbfd\ubbfe\ubc01"],["9341","\ubc03",4,"\ubc0a\ubc0e\ubc10\ubc12\ubc13\ubc19\ubc1a\ubc20\ubc21\ubc22\ubc23\ubc26\ubc28\ubc2a\ubc2b\ubc2c\ubc2e\ubc2f\ubc32\ubc33\ubc35"],["9361","\ubc36\ubc37\ubc39",6,"\ubc42\ubc46\ubc47\ubc48\ubc4a\ubc4b\ubc4e\ubc4f\ubc51",8],["9381","\ubc5a\ubc5b\ubc5c\ubc5e",37,"\ubc86\ubc87\ubc89\ubc8a\ubc8d\ubc8f",4,"\ubc96\ubc98\ubc9b",4,"\ubca2\ubca3\ubca5\ubca6\ubca9",6,"\ubcb2\ubcb6",5,"\ubcbe\ubcbf\ubcc1\ubcc2\ubcc3\ubcc5",7,"\ubcce\ubcd2\ubcd3\ubcd4\ubcd6\ubcd7\ubcd9\ubcda\ubcdb\ubcdd",22,"\ubcf7\ubcf9\ubcfa\ubcfb\ubcfd"],["9441","\ubcfe",5,"\ubd06\ubd08\ubd0a",5,"\ubd11\ubd12\ubd13\ubd15",8],["9461","\ubd1e",5,"\ubd25",6,"\ubd2d",12],["9481","\ubd3a",5,"\ubd41",6,"\ubd4a\ubd4b\ubd4d\ubd4e\ubd4f\ubd51",6,"\ubd5a",9,"\ubd65\ubd66\ubd67\ubd69",22,"\ubd82\ubd83\ubd85\ubd86\ubd8b",4,"\ubd92\ubd94\ubd96\ubd97\ubd98\ubd9b\ubd9d",6,"\ubda5",10,"\ubdb1",6,"\ubdb9",24],["9541","\ubdd2\ubdd3\ubdd6\ubdd7\ubdd9\ubdda\ubddb\ubddd",11,"\ubdea",5,"\ubdf1"],["9561","\ubdf2\ubdf3\ubdf5\ubdf6\ubdf7\ubdf9",6,"\ube01\ube02\ube04\ube06",5,"\ube0e\ube0f\ube11\ube12\ube13"],["9581","\ube15",6,"\ube1e\ube20",35,"\ube46\ube47\ube49\ube4a\ube4b\ube4d\ube4f",4,"\ube56\ube58\ube5c\ube5d\ube5e\ube5f\ube62\ube63\ube65\ube66\ube67\ube69\ube6b",4,"\ube72\ube76",4,"\ube7e\ube7f\ube81\ube82\ube83\ube85",6,"\ube8e\ube92",5,"\ube9a",13,"\ubea9",14],["9641","\ubeb8",23,"\ubed2\ubed3"],["9661","\ubed5\ubed6\ubed9",6,"\ubee1\ubee2\ubee6",5,"\ubeed",8],["9681","\ubef6",10,"\ubf02",5,"\ubf0a",13,"\ubf1a\ubf1e",33,"\ubf42\ubf43\ubf45\ubf46\ubf47\ubf49",6,"\ubf52\ubf53\ubf54\ubf56",44],["9741","\ubf83",16,"\ubf95",8],["9761","\ubf9e",17,"\ubfb1",7],["9781","\ubfb9",11,"\ubfc6",5,"\ubfce\ubfcf\ubfd1\ubfd2\ubfd3\ubfd5",6,"\ubfdd\ubfde\ubfe0\ubfe2",89,"\uc03d\uc03e\uc03f"],["9841","\uc040",16,"\uc052",5,"\uc059\uc05a\uc05b"],["9861","\uc05d\uc05e\uc05f\uc061",6,"\uc06a",15],["9881","\uc07a",21,"\uc092\uc093\uc095\uc096\uc097\uc099",6,"\uc0a2\uc0a4\uc0a6",5,"\uc0ae\uc0b1\uc0b2\uc0b7",4,"\uc0be\uc0c2\uc0c3\uc0c4\uc0c6\uc0c7\uc0ca\uc0cb\uc0cd\uc0ce\uc0cf\uc0d1",6,"\uc0da\uc0de",5,"\uc0e6\uc0e7\uc0e9\uc0ea\uc0eb\uc0ed",6,"\uc0f6\uc0f8\uc0fa",5,"\uc101\uc102\uc103\uc105\uc106\uc107\uc109",6,"\uc111\uc112\uc113\uc114\uc116",5,"\uc121\uc122\uc125\uc128\uc129\uc12a\uc12b\uc12e"],["9941","\uc132\uc133\uc134\uc135\uc137\uc13a\uc13b\uc13d\uc13e\uc13f\uc141",6,"\uc14a\uc14e",5,"\uc156\uc157"],["9961","\uc159\uc15a\uc15b\uc15d",6,"\uc166\uc16a",5,"\uc171\uc172\uc173\uc175\uc176\uc177\uc179\uc17a\uc17b"],["9981","\uc17c",8,"\uc186",5,"\uc18f\uc191\uc192\uc193\uc195\uc197",4,"\uc19e\uc1a0\uc1a2\uc1a3\uc1a4\uc1a6\uc1a7\uc1aa\uc1ab\uc1ad\uc1ae\uc1af\uc1b1",11,"\uc1be",5,"\uc1c5\uc1c6\uc1c7\uc1c9\uc1ca\uc1cb\uc1cd",6,"\uc1d5\uc1d6\uc1d9",6,"\uc1e1\uc1e2\uc1e3\uc1e5\uc1e6\uc1e7\uc1e9",6,"\uc1f2\uc1f4",7,"\uc1fe\uc1ff\uc201\uc202\uc203\uc205",6,"\uc20e\uc210\uc212",5,"\uc21a\uc21b\uc21d\uc21e\uc221\uc222\uc223"],["9a41","\uc224\uc225\uc226\uc227\uc22a\uc22c\uc22e\uc230\uc233\uc235",16],["9a61","\uc246\uc247\uc249",6,"\uc252\uc253\uc255\uc256\uc257\uc259",6,"\uc261\uc262\uc263\uc264\uc266"],["9a81","\uc267",4,"\uc26e\uc26f\uc271\uc272\uc273\uc275",6,"\uc27e\uc280\uc282",5,"\uc28a",5,"\uc291",6,"\uc299\uc29a\uc29c\uc29e",5,"\uc2a6\uc2a7\uc2a9\uc2aa\uc2ab\uc2ae",5,"\uc2b6\uc2b8\uc2ba",33,"\uc2de\uc2df\uc2e1\uc2e2\uc2e5",5,"\uc2ee\uc2f0\uc2f2\uc2f3\uc2f4\uc2f5\uc2f7\uc2fa\uc2fd\uc2fe\uc2ff\uc301",6,"\uc30a\uc30b\uc30e\uc30f"],["9b41","\uc310\uc311\uc312\uc316\uc317\uc319\uc31a\uc31b\uc31d",6,"\uc326\uc327\uc32a",8],["9b61","\uc333",17,"\uc346",7],["9b81","\uc34e",25,"\uc36a\uc36b\uc36d\uc36e\uc36f\uc371\uc373",4,"\uc37a\uc37b\uc37e",5,"\uc385\uc386\uc387\uc389\uc38a\uc38b\uc38d",50,"\uc3c1",22,"\uc3da"],["9c41","\uc3db\uc3dd\uc3de\uc3e1\uc3e3",4,"\uc3ea\uc3eb\uc3ec\uc3ee",5,"\uc3f6\uc3f7\uc3f9",5],["9c61","\uc3ff",8,"\uc409",6,"\uc411",9],["9c81","\uc41b",8,"\uc425",6,"\uc42d\uc42e\uc42f\uc431\uc432\uc433\uc435",6,"\uc43e",9,"\uc449",26,"\uc466\uc467\uc469\uc46a\uc46b\uc46d",6,"\uc476\uc477\uc478\uc47a",5,"\uc481",18,"\uc495",6,"\uc49d",12],["9d41","\uc4aa",13,"\uc4b9\uc4ba\uc4bb\uc4bd",8],["9d61","\uc4c6",25],["9d81","\uc4e0",8,"\uc4ea",5,"\uc4f2\uc4f3\uc4f5\uc4f6\uc4f7\uc4f9\uc4fb\uc4fc\uc4fd\uc4fe\uc502",9,"\uc50d\uc50e\uc50f\uc511\uc512\uc513\uc515",6,"\uc51d",10,"\uc52a\uc52b\uc52d\uc52e\uc52f\uc531",6,"\uc53a\uc53c\uc53e",5,"\uc546\uc547\uc54b\uc54f\uc550\uc551\uc552\uc556\uc55a\uc55b\uc55c\uc55f\uc562\uc563\uc565\uc566\uc567\uc569",6,"\uc572\uc576",5,"\uc57e\uc57f\uc581\uc582\uc583\uc585\uc586\uc588\uc589\uc58a\uc58b\uc58e\uc590\uc592\uc593\uc594"],["9e41","\uc596\uc599\uc59a\uc59b\uc59d\uc59e\uc59f\uc5a1",7,"\uc5aa",9,"\uc5b6"],["9e61","\uc5b7\uc5ba\uc5bf",4,"\uc5cb\uc5cd\uc5cf\uc5d2\uc5d3\uc5d5\uc5d6\uc5d7\uc5d9",6,"\uc5e2\uc5e4\uc5e6\uc5e7"],["9e81","\uc5e8\uc5e9\uc5ea\uc5eb\uc5ef\uc5f1\uc5f2\uc5f3\uc5f5\uc5f8\uc5f9\uc5fa\uc5fb\uc602\uc603\uc604\uc609\uc60a\uc60b\uc60d\uc60e\uc60f\uc611",6,"\uc61a\uc61d",6,"\uc626\uc627\uc629\uc62a\uc62b\uc62f\uc631\uc632\uc636\uc638\uc63a\uc63c\uc63d\uc63e\uc63f\uc642\uc643\uc645\uc646\uc647\uc649",6,"\uc652\uc656",5,"\uc65e\uc65f\uc661",10,"\uc66d\uc66e\uc670\uc672",5,"\uc67a\uc67b\uc67d\uc67e\uc67f\uc681",6,"\uc68a\uc68c\uc68e",5,"\uc696\uc697\uc699\uc69a\uc69b\uc69d",6,"\uc6a6"],["9f41","\uc6a8\uc6aa",5,"\uc6b2\uc6b3\uc6b5\uc6b6\uc6b7\uc6bb",4,"\uc6c2\uc6c4\uc6c6",5,"\uc6ce"],["9f61","\uc6cf\uc6d1\uc6d2\uc6d3\uc6d5",6,"\uc6de\uc6df\uc6e2",5,"\uc6ea\uc6eb\uc6ed\uc6ee\uc6ef\uc6f1\uc6f2"],["9f81","\uc6f3",4,"\uc6fa\uc6fb\uc6fc\uc6fe",5,"\uc706\uc707\uc709\uc70a\uc70b\uc70d",6,"\uc716\uc718\uc71a",5,"\uc722\uc723\uc725\uc726\uc727\uc729",6,"\uc732\uc734\uc736\uc738\uc739\uc73a\uc73b\uc73e\uc73f\uc741\uc742\uc743\uc745",4,"\uc74b\uc74e\uc750\uc759\uc75a\uc75b\uc75d\uc75e\uc75f\uc761",6,"\uc769\uc76a\uc76c",7,"\uc776\uc777\uc779\uc77a\uc77b\uc77f\uc780\uc781\uc782\uc786\uc78b\uc78c\uc78d\uc78f\uc792\uc793\uc795\uc799\uc79b",4,"\uc7a2\uc7a7",4,"\uc7ae\uc7af\uc7b1\uc7b2\uc7b3\uc7b5\uc7b6\uc7b7"],["a041","\uc7b8\uc7b9\uc7ba\uc7bb\uc7be\uc7c2",5,"\uc7ca\uc7cb\uc7cd\uc7cf\uc7d1",6,"\uc7d9\uc7da\uc7db\uc7dc"],["a061","\uc7de",5,"\uc7e5\uc7e6\uc7e7\uc7e9\uc7ea\uc7eb\uc7ed",13],["a081","\uc7fb",4,"\uc802\uc803\uc805\uc806\uc807\uc809\uc80b",4,"\uc812\uc814\uc817",4,"\uc81e\uc81f\uc821\uc822\uc823\uc825",6,"\uc82e\uc830\uc832",5,"\uc839\uc83a\uc83b\uc83d\uc83e\uc83f\uc841",6,"\uc84a\uc84b\uc84e",5,"\uc855",26,"\uc872\uc873\uc875\uc876\uc877\uc879\uc87b",4,"\uc882\uc884\uc888\uc889\uc88a\uc88e",5,"\uc895",7,"\uc89e\uc8a0\uc8a2\uc8a3\uc8a4"],["a141","\uc8a5\uc8a6\uc8a7\uc8a9",18,"\uc8be\uc8bf\uc8c0\uc8c1"],["a161","\uc8c2\uc8c3\uc8c5\uc8c6\uc8c7\uc8c9\uc8ca\uc8cb\uc8cd",6,"\uc8d6\uc8d8\uc8da",5,"\uc8e2\uc8e3\uc8e5"],["a181","\uc8e6",14,"\uc8f6",5,"\uc8fe\uc8ff\uc901\uc902\uc903\uc907",4,"\uc90e\u3000\u3001\u3002\xb7\u2025\u2026\xa8\u3003\xad\u2015\u2225\uff3c\u223c\u2018\u2019\u201c\u201d\u3014\u3015\u3008",9,"\xb1\xd7\xf7\u2260\u2264\u2265\u221e\u2234\xb0\u2032\u2033\u2103\u212b\uffe0\uffe1\uffe5\u2642\u2640\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\xa7\u203b\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u2192\u2190\u2191\u2193\u2194\u3013\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229\u2227\u2228\uffe2"],["a241","\uc910\uc912",5,"\uc919",18],["a261","\uc92d",6,"\uc935",18],["a281","\uc948",7,"\uc952\uc953\uc955\uc956\uc957\uc959",6,"\uc962\uc964",7,"\uc96d\uc96e\uc96f\u21d2\u21d4\u2200\u2203\xb4\uff5e\u02c7\u02d8\u02dd\u02da\u02d9\xb8\u02db\xa1\xbf\u02d0\u222e\u2211\u220f\xa4\u2109\u2030\u25c1\u25c0\u25b7\u25b6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25c8\u25a3\u25d0\u25d1\u2592\u25a4\u25a5\u25a8\u25a7\u25a6\u25a9\u2668\u260f\u260e\u261c\u261e\xb6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266d\u2669\u266a\u266c\u327f\u321c\u2116\u33c7\u2122\u33c2\u33d8\u2121\u20ac\xae"],["a341","\uc971\uc972\uc973\uc975",6,"\uc97d",10,"\uc98a\uc98b\uc98d\uc98e\uc98f"],["a361","\uc991",6,"\uc99a\uc99c\uc99e",16],["a381","\uc9af",16,"\uc9c2\uc9c3\uc9c5\uc9c6\uc9c9\uc9cb",4,"\uc9d2\uc9d4\uc9d7\uc9d8\uc9db\uff01",58,"\uffe6\uff3d",32,"\uffe3"],["a441","\uc9de\uc9df\uc9e1\uc9e3\uc9e5\uc9e6\uc9e8\uc9e9\uc9ea\uc9eb\uc9ee\uc9f2",5,"\uc9fa\uc9fb\uc9fd\uc9fe\uc9ff\uca01\uca02\uca03\uca04"],["a461","\uca05\uca06\uca07\uca0a\uca0e",5,"\uca15\uca16\uca17\uca19",12],["a481","\uca26\uca27\uca28\uca2a",28,"\u3131",93],["a541","\uca47",4,"\uca4e\uca4f\uca51\uca52\uca53\uca55",6,"\uca5e\uca62",5,"\uca69\uca6a"],["a561","\uca6b",17,"\uca7e",5,"\uca85\uca86"],["a581","\uca87",16,"\uca99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03a3",6],["a5e1","\u03b1",16,"\u03c3",6],["a641","\ucaa8",19,"\ucabe\ucabf\ucac1\ucac2\ucac3\ucac5"],["a661","\ucac6",5,"\ucace\ucad0\ucad2\ucad4\ucad5\ucad6\ucad7\ucada",5,"\ucae1",6],["a681","\ucae8\ucae9\ucaea\ucaeb\ucaed",6,"\ucaf5",18,"\ucb09\ucb0a\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542\u2512\u2511\u251a\u2519\u2516\u2515\u250e\u250d\u251e\u251f\u2521\u2522\u2526\u2527\u2529\u252a\u252d\u252e\u2531\u2532\u2535\u2536\u2539\u253a\u253d\u253e\u2540\u2541\u2543",7],["a741","\ucb0b",4,"\ucb11\ucb12\ucb13\ucb15\ucb16\ucb17\ucb19",6,"\ucb22",7],["a761","\ucb2a",22,"\ucb42\ucb43\ucb44"],["a781","\ucb45\ucb46\ucb47\ucb4a\ucb4b\ucb4d\ucb4e\ucb4f\ucb51",6,"\ucb5a\ucb5b\ucb5c\ucb5e",5,"\ucb65",7,"\u3395\u3396\u3397\u2113\u3398\u33c4\u33a3\u33a4\u33a5\u33a6\u3399",9,"\u33ca\u338d\u338e\u338f\u33cf\u3388\u3389\u33c8\u33a7\u33a8\u33b0",9,"\u3380",4,"\u33ba",5,"\u3390",4,"\u2126\u33c0\u33c1\u338a\u338b\u338c\u33d6\u33c5\u33ad\u33ae\u33af\u33db\u33a9\u33aa\u33ab\u33ac\u33dd\u33d0\u33d3\u33c3\u33c9\u33dc\u33c6"],["a841","\ucb6d",10,"\ucb7a",14],["a861","\ucb89",18,"\ucb9d",6],["a881","\ucba4",19,"\ucbb9",11,"\xc6\xd0\xaa\u0126"],["a8a6","\u0132"],["a8a8","\u013f\u0141\xd8\u0152\xba\xde\u0166\u014a"],["a8b1","\u3260",27,"\u24d0",25,"\u2460",14,"\xbd\u2153\u2154\xbc\xbe\u215b\u215c\u215d\u215e"],["a941","\ucbc5",14,"\ucbd5",10],["a961","\ucbe0\ucbe1\ucbe2\ucbe3\ucbe5\ucbe6\ucbe8\ucbea",18],["a981","\ucbfd",14,"\ucc0e\ucc0f\ucc11\ucc12\ucc13\ucc15",6,"\ucc1e\ucc1f\ucc20\ucc23\ucc24\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0140\u0142\xf8\u0153\xdf\xfe\u0167\u014b\u0149\u3200",27,"\u249c",25,"\u2474",14,"\xb9\xb2\xb3\u2074\u207f\u2081\u2082\u2083\u2084"],["aa41","\ucc25\ucc26\ucc2a\ucc2b\ucc2d\ucc2f\ucc31",6,"\ucc3a\ucc3f",4,"\ucc46\ucc47\ucc49\ucc4a\ucc4b\ucc4d\ucc4e"],["aa61","\ucc4f",4,"\ucc56\ucc5a",5,"\ucc61\ucc62\ucc63\ucc65\ucc67\ucc69",6,"\ucc71\ucc72"],["aa81","\ucc73\ucc74\ucc76",29,"\u3041",82],["ab41","\ucc94\ucc95\ucc96\ucc97\ucc9a\ucc9b\ucc9d\ucc9e\ucc9f\ucca1",6,"\uccaa\uccae",5,"\uccb6\uccb7\uccb9"],["ab61","\uccba\uccbb\uccbd",6,"\uccc6\uccc8\uccca",5,"\uccd1\uccd2\uccd3\uccd5",5],["ab81","\uccdb",8,"\ucce5",6,"\ucced\uccee\uccef\uccf1",12,"\u30a1",85],["ac41","\uccfe\uccff\ucd00\ucd02",5,"\ucd0a\ucd0b\ucd0d\ucd0e\ucd0f\ucd11",6,"\ucd1a\ucd1c\ucd1e\ucd1f\ucd20"],["ac61","\ucd21\ucd22\ucd23\ucd25\ucd26\ucd27\ucd29\ucd2a\ucd2b\ucd2d",11,"\ucd3a",4],["ac81","\ucd3f",28,"\ucd5d\ucd5e\ucd5f\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\ucd61\ucd62\ucd63\ucd65",6,"\ucd6e\ucd70\ucd72",5,"\ucd79",7],["ad61","\ucd81",6,"\ucd89",10,"\ucd96\ucd97\ucd99\ucd9a\ucd9b\ucd9d\ucd9e\ucd9f"],["ad81","\ucda0\ucda1\ucda2\ucda3\ucda6\ucda8\ucdaa",5,"\ucdb1",18,"\ucdc5"],["ae41","\ucdc6",5,"\ucdcd\ucdce\ucdcf\ucdd1",16],["ae61","\ucde2",5,"\ucde9\ucdea\ucdeb\ucded\ucdee\ucdef\ucdf1",6,"\ucdfa\ucdfc\ucdfe",4],["ae81","\uce03\uce05\uce06\uce07\uce09\uce0a\uce0b\uce0d",6,"\uce15\uce16\uce17\uce18\uce1a",5,"\uce22\uce23\uce25\uce26\uce27\uce29\uce2a\uce2b"],["af41","\uce2c\uce2d\uce2e\uce2f\uce32\uce34\uce36",19],["af61","\uce4a",13,"\uce5a\uce5b\uce5d\uce5e\uce62",5,"\uce6a\uce6c"],["af81","\uce6e",5,"\uce76\uce77\uce79\uce7a\uce7b\uce7d",6,"\uce86\uce88\uce8a",5,"\uce92\uce93\uce95\uce96\uce97\uce99"],["b041","\uce9a",5,"\ucea2\ucea6",5,"\uceae",12],["b061","\ucebb",5,"\ucec2",19],["b081","\uced6",13,"\ucee6\ucee7\ucee9\uceea\uceed",6,"\ucef6\ucefa",5,"\uac00\uac01\uac04\uac07\uac08\uac09\uac0a\uac10",7,"\uac19",4,"\uac20\uac24\uac2c\uac2d\uac2f\uac30\uac31\uac38\uac39\uac3c\uac40\uac4b\uac4d\uac54\uac58\uac5c\uac70\uac71\uac74\uac77\uac78\uac7a\uac80\uac81\uac83\uac84\uac85\uac86\uac89\uac8a\uac8b\uac8c\uac90\uac94\uac9c\uac9d\uac9f\uaca0\uaca1\uaca8\uaca9\uacaa\uacac\uacaf\uacb0\uacb8\uacb9\uacbb\uacbc\uacbd\uacc1\uacc4\uacc8\uaccc\uacd5\uacd7\uace0\uace1\uace4\uace7\uace8\uacea\uacec\uacef\uacf0\uacf1\uacf3\uacf5\uacf6\uacfc\uacfd\uad00\uad04\uad06"],["b141","\ucf02\ucf03\ucf05\ucf06\ucf07\ucf09",6,"\ucf12\ucf14\ucf16",5,"\ucf1d\ucf1e\ucf1f\ucf21\ucf22\ucf23"],["b161","\ucf25",6,"\ucf2e\ucf32",5,"\ucf39",11],["b181","\ucf45",14,"\ucf56\ucf57\ucf59\ucf5a\ucf5b\ucf5d",6,"\ucf66\ucf68\ucf6a\ucf6b\ucf6c\uad0c\uad0d\uad0f\uad11\uad18\uad1c\uad20\uad29\uad2c\uad2d\uad34\uad35\uad38\uad3c\uad44\uad45\uad47\uad49\uad50\uad54\uad58\uad61\uad63\uad6c\uad6d\uad70\uad73\uad74\uad75\uad76\uad7b\uad7c\uad7d\uad7f\uad81\uad82\uad88\uad89\uad8c\uad90\uad9c\uad9d\uada4\uadb7\uadc0\uadc1\uadc4\uadc8\uadd0\uadd1\uadd3\uaddc\uade0\uade4\uadf8\uadf9\uadfc\uadff\uae00\uae01\uae08\uae09\uae0b\uae0d\uae14\uae30\uae31\uae34\uae37\uae38\uae3a\uae40\uae41\uae43\uae45\uae46\uae4a\uae4c\uae4d\uae4e\uae50\uae54\uae56\uae5c\uae5d\uae5f\uae60\uae61\uae65\uae68\uae69\uae6c\uae70\uae78"],["b241","\ucf6d\ucf6e\ucf6f\ucf72\ucf73\ucf75\ucf76\ucf77\ucf79",6,"\ucf81\ucf82\ucf83\ucf84\ucf86",5,"\ucf8d"],["b261","\ucf8e",18,"\ucfa2",5,"\ucfa9"],["b281","\ucfaa",5,"\ucfb1",18,"\ucfc5",6,"\uae79\uae7b\uae7c\uae7d\uae84\uae85\uae8c\uaebc\uaebd\uaebe\uaec0\uaec4\uaecc\uaecd\uaecf\uaed0\uaed1\uaed8\uaed9\uaedc\uaee8\uaeeb\uaeed\uaef4\uaef8\uaefc\uaf07\uaf08\uaf0d\uaf10\uaf2c\uaf2d\uaf30\uaf32\uaf34\uaf3c\uaf3d\uaf3f\uaf41\uaf42\uaf43\uaf48\uaf49\uaf50\uaf5c\uaf5d\uaf64\uaf65\uaf79\uaf80\uaf84\uaf88\uaf90\uaf91\uaf95\uaf9c\uafb8\uafb9\uafbc\uafc0\uafc7\uafc8\uafc9\uafcb\uafcd\uafce\uafd4\uafdc\uafe8\uafe9\uaff0\uaff1\uaff4\uaff8\ub000\ub001\ub004\ub00c\ub010\ub014\ub01c\ub01d\ub028\ub044\ub045\ub048\ub04a\ub04c\ub04e\ub053\ub054\ub055\ub057\ub059"],["b341","\ucfcc",19,"\ucfe2\ucfe3\ucfe5\ucfe6\ucfe7\ucfe9"],["b361","\ucfea",5,"\ucff2\ucff4\ucff6",5,"\ucffd\ucffe\ucfff\ud001\ud002\ud003\ud005",5],["b381","\ud00b",5,"\ud012",5,"\ud019",19,"\ub05d\ub07c\ub07d\ub080\ub084\ub08c\ub08d\ub08f\ub091\ub098\ub099\ub09a\ub09c\ub09f\ub0a0\ub0a1\ub0a2\ub0a8\ub0a9\ub0ab",4,"\ub0b1\ub0b3\ub0b4\ub0b5\ub0b8\ub0bc\ub0c4\ub0c5\ub0c7\ub0c8\ub0c9\ub0d0\ub0d1\ub0d4\ub0d8\ub0e0\ub0e5\ub108\ub109\ub10b\ub10c\ub110\ub112\ub113\ub118\ub119\ub11b\ub11c\ub11d\ub123\ub124\ub125\ub128\ub12c\ub134\ub135\ub137\ub138\ub139\ub140\ub141\ub144\ub148\ub150\ub151\ub154\ub155\ub158\ub15c\ub160\ub178\ub179\ub17c\ub180\ub182\ub188\ub189\ub18b\ub18d\ub192\ub193\ub194\ub198\ub19c\ub1a8\ub1cc\ub1d0\ub1d4\ub1dc\ub1dd"],["b441","\ud02e",5,"\ud036\ud037\ud039\ud03a\ud03b\ud03d",6,"\ud046\ud048\ud04a",5],["b461","\ud051\ud052\ud053\ud055\ud056\ud057\ud059",6,"\ud061",10,"\ud06e\ud06f"],["b481","\ud071\ud072\ud073\ud075",6,"\ud07e\ud07f\ud080\ud082",18,"\ub1df\ub1e8\ub1e9\ub1ec\ub1f0\ub1f9\ub1fb\ub1fd\ub204\ub205\ub208\ub20b\ub20c\ub214\ub215\ub217\ub219\ub220\ub234\ub23c\ub258\ub25c\ub260\ub268\ub269\ub274\ub275\ub27c\ub284\ub285\ub289\ub290\ub291\ub294\ub298\ub299\ub29a\ub2a0\ub2a1\ub2a3\ub2a5\ub2a6\ub2aa\ub2ac\ub2b0\ub2b4\ub2c8\ub2c9\ub2cc\ub2d0\ub2d2\ub2d8\ub2d9\ub2db\ub2dd\ub2e2\ub2e4\ub2e5\ub2e6\ub2e8\ub2eb",4,"\ub2f3\ub2f4\ub2f5\ub2f7",4,"\ub2ff\ub300\ub301\ub304\ub308\ub310\ub311\ub313\ub314\ub315\ub31c\ub354\ub355\ub356\ub358\ub35b\ub35c\ub35e\ub35f\ub364\ub365"],["b541","\ud095",14,"\ud0a6\ud0a7\ud0a9\ud0aa\ud0ab\ud0ad",5],["b561","\ud0b3\ud0b6\ud0b8\ud0ba",5,"\ud0c2\ud0c3\ud0c5\ud0c6\ud0c7\ud0ca",5,"\ud0d2\ud0d6",4],["b581","\ud0db\ud0de\ud0df\ud0e1\ud0e2\ud0e3\ud0e5",6,"\ud0ee\ud0f2",5,"\ud0f9",11,"\ub367\ub369\ub36b\ub36e\ub370\ub371\ub374\ub378\ub380\ub381\ub383\ub384\ub385\ub38c\ub390\ub394\ub3a0\ub3a1\ub3a8\ub3ac\ub3c4\ub3c5\ub3c8\ub3cb\ub3cc\ub3ce\ub3d0\ub3d4\ub3d5\ub3d7\ub3d9\ub3db\ub3dd\ub3e0\ub3e4\ub3e8\ub3fc\ub410\ub418\ub41c\ub420\ub428\ub429\ub42b\ub434\ub450\ub451\ub454\ub458\ub460\ub461\ub463\ub465\ub46c\ub480\ub488\ub49d\ub4a4\ub4a8\ub4ac\ub4b5\ub4b7\ub4b9\ub4c0\ub4c4\ub4c8\ub4d0\ub4d5\ub4dc\ub4dd\ub4e0\ub4e3\ub4e4\ub4e6\ub4ec\ub4ed\ub4ef\ub4f1\ub4f8\ub514\ub515\ub518\ub51b\ub51c\ub524\ub525\ub527\ub528\ub529\ub52a\ub530\ub531\ub534\ub538"],["b641","\ud105",7,"\ud10e",17],["b661","\ud120",15,"\ud132\ud133\ud135\ud136\ud137\ud139\ud13b\ud13c\ud13d\ud13e"],["b681","\ud13f\ud142\ud146",5,"\ud14e\ud14f\ud151\ud152\ud153\ud155",6,"\ud15e\ud160\ud162",5,"\ud169\ud16a\ud16b\ud16d\ub540\ub541\ub543\ub544\ub545\ub54b\ub54c\ub54d\ub550\ub554\ub55c\ub55d\ub55f\ub560\ub561\ub5a0\ub5a1\ub5a4\ub5a8\ub5aa\ub5ab\ub5b0\ub5b1\ub5b3\ub5b4\ub5b5\ub5bb\ub5bc\ub5bd\ub5c0\ub5c4\ub5cc\ub5cd\ub5cf\ub5d0\ub5d1\ub5d8\ub5ec\ub610\ub611\ub614\ub618\ub625\ub62c\ub634\ub648\ub664\ub668\ub69c\ub69d\ub6a0\ub6a4\ub6ab\ub6ac\ub6b1\ub6d4\ub6f0\ub6f4\ub6f8\ub700\ub701\ub705\ub728\ub729\ub72c\ub72f\ub730\ub738\ub739\ub73b\ub744\ub748\ub74c\ub754\ub755\ub760\ub764\ub768\ub770\ub771\ub773\ub775\ub77c\ub77d\ub780\ub784\ub78c\ub78d\ub78f\ub790\ub791\ub792\ub796\ub797"],["b741","\ud16e",13,"\ud17d",6,"\ud185\ud186\ud187\ud189\ud18a"],["b761","\ud18b",20,"\ud1a2\ud1a3\ud1a5\ud1a6\ud1a7"],["b781","\ud1a9",6,"\ud1b2\ud1b4\ud1b6\ud1b7\ud1b8\ud1b9\ud1bb\ud1bd\ud1be\ud1bf\ud1c1",14,"\ub798\ub799\ub79c\ub7a0\ub7a8\ub7a9\ub7ab\ub7ac\ub7ad\ub7b4\ub7b5\ub7b8\ub7c7\ub7c9\ub7ec\ub7ed\ub7f0\ub7f4\ub7fc\ub7fd\ub7ff\ub800\ub801\ub807\ub808\ub809\ub80c\ub810\ub818\ub819\ub81b\ub81d\ub824\ub825\ub828\ub82c\ub834\ub835\ub837\ub838\ub839\ub840\ub844\ub851\ub853\ub85c\ub85d\ub860\ub864\ub86c\ub86d\ub86f\ub871\ub878\ub87c\ub88d\ub8a8\ub8b0\ub8b4\ub8b8\ub8c0\ub8c1\ub8c3\ub8c5\ub8cc\ub8d0\ub8d4\ub8dd\ub8df\ub8e1\ub8e8\ub8e9\ub8ec\ub8f0\ub8f8\ub8f9\ub8fb\ub8fd\ub904\ub918\ub920\ub93c\ub93d\ub940\ub944\ub94c\ub94f\ub951\ub958\ub959\ub95c\ub960\ub968\ub969"],["b841","\ud1d0",7,"\ud1d9",17],["b861","\ud1eb",8,"\ud1f5\ud1f6\ud1f7\ud1f9",13],["b881","\ud208\ud20a",5,"\ud211",24,"\ub96b\ub96d\ub974\ub975\ub978\ub97c\ub984\ub985\ub987\ub989\ub98a\ub98d\ub98e\ub9ac\ub9ad\ub9b0\ub9b4\ub9bc\ub9bd\ub9bf\ub9c1\ub9c8\ub9c9\ub9cc\ub9ce",4,"\ub9d8\ub9d9\ub9db\ub9dd\ub9de\ub9e1\ub9e3\ub9e4\ub9e5\ub9e8\ub9ec\ub9f4\ub9f5\ub9f7\ub9f8\ub9f9\ub9fa\uba00\uba01\uba08\uba15\uba38\uba39\uba3c\uba40\uba42\uba48\uba49\uba4b\uba4d\uba4e\uba53\uba54\uba55\uba58\uba5c\uba64\uba65\uba67\uba68\uba69\uba70\uba71\uba74\uba78\uba83\uba84\uba85\uba87\uba8c\ubaa8\ubaa9\ubaab\ubaac\ubab0\ubab2\ubab8\ubab9\ubabb\ubabd\ubac4\ubac8\ubad8\ubad9\ubafc"],["b941","\ud22a\ud22b\ud22e\ud22f\ud231\ud232\ud233\ud235",6,"\ud23e\ud240\ud242",5,"\ud249\ud24a\ud24b\ud24c"],["b961","\ud24d",14,"\ud25d",6,"\ud265\ud266\ud267\ud268"],["b981","\ud269",22,"\ud282\ud283\ud285\ud286\ud287\ud289\ud28a\ud28b\ud28c\ubb00\ubb04\ubb0d\ubb0f\ubb11\ubb18\ubb1c\ubb20\ubb29\ubb2b\ubb34\ubb35\ubb36\ubb38\ubb3b\ubb3c\ubb3d\ubb3e\ubb44\ubb45\ubb47\ubb49\ubb4d\ubb4f\ubb50\ubb54\ubb58\ubb61\ubb63\ubb6c\ubb88\ubb8c\ubb90\ubba4\ubba8\ubbac\ubbb4\ubbb7\ubbc0\ubbc4\ubbc8\ubbd0\ubbd3\ubbf8\ubbf9\ubbfc\ubbff\ubc00\ubc02\ubc08\ubc09\ubc0b\ubc0c\ubc0d\ubc0f\ubc11\ubc14",4,"\ubc1b",4,"\ubc24\ubc25\ubc27\ubc29\ubc2d\ubc30\ubc31\ubc34\ubc38\ubc40\ubc41\ubc43\ubc44\ubc45\ubc49\ubc4c\ubc4d\ubc50\ubc5d\ubc84\ubc85\ubc88\ubc8b\ubc8c\ubc8e\ubc94\ubc95\ubc97"],["ba41","\ud28d\ud28e\ud28f\ud292\ud293\ud294\ud296",5,"\ud29d\ud29e\ud29f\ud2a1\ud2a2\ud2a3\ud2a5",6,"\ud2ad"],["ba61","\ud2ae\ud2af\ud2b0\ud2b2",5,"\ud2ba\ud2bb\ud2bd\ud2be\ud2c1\ud2c3",4,"\ud2ca\ud2cc",5],["ba81","\ud2d2\ud2d3\ud2d5\ud2d6\ud2d7\ud2d9\ud2da\ud2db\ud2dd",6,"\ud2e6",9,"\ud2f2\ud2f3\ud2f5\ud2f6\ud2f7\ud2f9\ud2fa\ubc99\ubc9a\ubca0\ubca1\ubca4\ubca7\ubca8\ubcb0\ubcb1\ubcb3\ubcb4\ubcb5\ubcbc\ubcbd\ubcc0\ubcc4\ubccd\ubccf\ubcd0\ubcd1\ubcd5\ubcd8\ubcdc\ubcf4\ubcf5\ubcf6\ubcf8\ubcfc\ubd04\ubd05\ubd07\ubd09\ubd10\ubd14\ubd24\ubd2c\ubd40\ubd48\ubd49\ubd4c\ubd50\ubd58\ubd59\ubd64\ubd68\ubd80\ubd81\ubd84\ubd87\ubd88\ubd89\ubd8a\ubd90\ubd91\ubd93\ubd95\ubd99\ubd9a\ubd9c\ubda4\ubdb0\ubdb8\ubdd4\ubdd5\ubdd8\ubddc\ubde9\ubdf0\ubdf4\ubdf8\ube00\ube03\ube05\ube0c\ube0d\ube10\ube14\ube1c\ube1d\ube1f\ube44\ube45\ube48\ube4c\ube4e\ube54\ube55\ube57\ube59\ube5a\ube5b\ube60\ube61\ube64"],["bb41","\ud2fb",4,"\ud302\ud304\ud306",5,"\ud30f\ud311\ud312\ud313\ud315\ud317",4,"\ud31e\ud322\ud323"],["bb61","\ud324\ud326\ud327\ud32a\ud32b\ud32d\ud32e\ud32f\ud331",6,"\ud33a\ud33e",5,"\ud346\ud347\ud348\ud349"],["bb81","\ud34a",31,"\ube68\ube6a\ube70\ube71\ube73\ube74\ube75\ube7b\ube7c\ube7d\ube80\ube84\ube8c\ube8d\ube8f\ube90\ube91\ube98\ube99\ubea8\ubed0\ubed1\ubed4\ubed7\ubed8\ubee0\ubee3\ubee4\ubee5\ubeec\ubf01\ubf08\ubf09\ubf18\ubf19\ubf1b\ubf1c\ubf1d\ubf40\ubf41\ubf44\ubf48\ubf50\ubf51\ubf55\ubf94\ubfb0\ubfc5\ubfcc\ubfcd\ubfd0\ubfd4\ubfdc\ubfdf\ubfe1\uc03c\uc051\uc058\uc05c\uc060\uc068\uc069\uc090\uc091\uc094\uc098\uc0a0\uc0a1\uc0a3\uc0a5\uc0ac\uc0ad\uc0af\uc0b0\uc0b3\uc0b4\uc0b5\uc0b6\uc0bc\uc0bd\uc0bf\uc0c0\uc0c1\uc0c5\uc0c8\uc0c9\uc0cc\uc0d0\uc0d8\uc0d9\uc0db\uc0dc\uc0dd\uc0e4"],["bc41","\ud36a",17,"\ud37e\ud37f\ud381\ud382\ud383\ud385\ud386\ud387"],["bc61","\ud388\ud389\ud38a\ud38b\ud38e\ud392",5,"\ud39a\ud39b\ud39d\ud39e\ud39f\ud3a1",6,"\ud3aa\ud3ac\ud3ae"],["bc81","\ud3af",4,"\ud3b5\ud3b6\ud3b7\ud3b9\ud3ba\ud3bb\ud3bd",6,"\ud3c6\ud3c7\ud3ca",5,"\ud3d1",5,"\uc0e5\uc0e8\uc0ec\uc0f4\uc0f5\uc0f7\uc0f9\uc100\uc104\uc108\uc110\uc115\uc11c",4,"\uc123\uc124\uc126\uc127\uc12c\uc12d\uc12f\uc130\uc131\uc136\uc138\uc139\uc13c\uc140\uc148\uc149\uc14b\uc14c\uc14d\uc154\uc155\uc158\uc15c\uc164\uc165\uc167\uc168\uc169\uc170\uc174\uc178\uc185\uc18c\uc18d\uc18e\uc190\uc194\uc196\uc19c\uc19d\uc19f\uc1a1\uc1a5\uc1a8\uc1a9\uc1ac\uc1b0\uc1bd\uc1c4\uc1c8\uc1cc\uc1d4\uc1d7\uc1d8\uc1e0\uc1e4\uc1e8\uc1f0\uc1f1\uc1f3\uc1fc\uc1fd\uc200\uc204\uc20c\uc20d\uc20f\uc211\uc218\uc219\uc21c\uc21f\uc220\uc228\uc229\uc22b\uc22d"],["bd41","\ud3d7\ud3d9",7,"\ud3e2\ud3e4",7,"\ud3ee\ud3ef\ud3f1\ud3f2\ud3f3\ud3f5\ud3f6\ud3f7"],["bd61","\ud3f8\ud3f9\ud3fa\ud3fb\ud3fe\ud400\ud402",5,"\ud409",13],["bd81","\ud417",5,"\ud41e",25,"\uc22f\uc231\uc232\uc234\uc248\uc250\uc251\uc254\uc258\uc260\uc265\uc26c\uc26d\uc270\uc274\uc27c\uc27d\uc27f\uc281\uc288\uc289\uc290\uc298\uc29b\uc29d\uc2a4\uc2a5\uc2a8\uc2ac\uc2ad\uc2b4\uc2b5\uc2b7\uc2b9\uc2dc\uc2dd\uc2e0\uc2e3\uc2e4\uc2eb\uc2ec\uc2ed\uc2ef\uc2f1\uc2f6\uc2f8\uc2f9\uc2fb\uc2fc\uc300\uc308\uc309\uc30c\uc30d\uc313\uc314\uc315\uc318\uc31c\uc324\uc325\uc328\uc329\uc345\uc368\uc369\uc36c\uc370\uc372\uc378\uc379\uc37c\uc37d\uc384\uc388\uc38c\uc3c0\uc3d8\uc3d9\uc3dc\uc3df\uc3e0\uc3e2\uc3e8\uc3e9\uc3ed\uc3f4\uc3f5\uc3f8\uc408\uc410\uc424\uc42c\uc430"],["be41","\ud438",7,"\ud441\ud442\ud443\ud445",14],["be61","\ud454",7,"\ud45d\ud45e\ud45f\ud461\ud462\ud463\ud465",7,"\ud46e\ud470\ud471\ud472"],["be81","\ud473",4,"\ud47a\ud47b\ud47d\ud47e\ud481\ud483",4,"\ud48a\ud48c\ud48e",5,"\ud495",8,"\uc434\uc43c\uc43d\uc448\uc464\uc465\uc468\uc46c\uc474\uc475\uc479\uc480\uc494\uc49c\uc4b8\uc4bc\uc4e9\uc4f0\uc4f1\uc4f4\uc4f8\uc4fa\uc4ff\uc500\uc501\uc50c\uc510\uc514\uc51c\uc528\uc529\uc52c\uc530\uc538\uc539\uc53b\uc53d\uc544\uc545\uc548\uc549\uc54a\uc54c\uc54d\uc54e\uc553\uc554\uc555\uc557\uc558\uc559\uc55d\uc55e\uc560\uc561\uc564\uc568\uc570\uc571\uc573\uc574\uc575\uc57c\uc57d\uc580\uc584\uc587\uc58c\uc58d\uc58f\uc591\uc595\uc597\uc598\uc59c\uc5a0\uc5a9\uc5b4\uc5b5\uc5b8\uc5b9\uc5bb\uc5bc\uc5bd\uc5be\uc5c4",6,"\uc5cc\uc5ce"],["bf41","\ud49e",10,"\ud4aa",14],["bf61","\ud4b9",18,"\ud4cd\ud4ce\ud4cf\ud4d1\ud4d2\ud4d3\ud4d5"],["bf81","\ud4d6",5,"\ud4dd\ud4de\ud4e0",7,"\ud4e9\ud4ea\ud4eb\ud4ed\ud4ee\ud4ef\ud4f1",6,"\ud4f9\ud4fa\ud4fc\uc5d0\uc5d1\uc5d4\uc5d8\uc5e0\uc5e1\uc5e3\uc5e5\uc5ec\uc5ed\uc5ee\uc5f0\uc5f4\uc5f6\uc5f7\uc5fc",5,"\uc605\uc606\uc607\uc608\uc60c\uc610\uc618\uc619\uc61b\uc61c\uc624\uc625\uc628\uc62c\uc62d\uc62e\uc630\uc633\uc634\uc635\uc637\uc639\uc63b\uc640\uc641\uc644\uc648\uc650\uc651\uc653\uc654\uc655\uc65c\uc65d\uc660\uc66c\uc66f\uc671\uc678\uc679\uc67c\uc680\uc688\uc689\uc68b\uc68d\uc694\uc695\uc698\uc69c\uc6a4\uc6a5\uc6a7\uc6a9\uc6b0\uc6b1\uc6b4\uc6b8\uc6b9\uc6ba\uc6c0\uc6c1\uc6c3\uc6c5\uc6cc\uc6cd\uc6d0\uc6d4\uc6dc\uc6dd\uc6e0\uc6e1\uc6e8"],["c041","\ud4fe",5,"\ud505\ud506\ud507\ud509\ud50a\ud50b\ud50d",6,"\ud516\ud518",5],["c061","\ud51e",25],["c081","\ud538\ud539\ud53a\ud53b\ud53e\ud53f\ud541\ud542\ud543\ud545",6,"\ud54e\ud550\ud552",5,"\ud55a\ud55b\ud55d\ud55e\ud55f\ud561\ud562\ud563\uc6e9\uc6ec\uc6f0\uc6f8\uc6f9\uc6fd\uc704\uc705\uc708\uc70c\uc714\uc715\uc717\uc719\uc720\uc721\uc724\uc728\uc730\uc731\uc733\uc735\uc737\uc73c\uc73d\uc740\uc744\uc74a\uc74c\uc74d\uc74f\uc751",7,"\uc75c\uc760\uc768\uc76b\uc774\uc775\uc778\uc77c\uc77d\uc77e\uc783\uc784\uc785\uc787\uc788\uc789\uc78a\uc78e\uc790\uc791\uc794\uc796\uc797\uc798\uc79a\uc7a0\uc7a1\uc7a3\uc7a4\uc7a5\uc7a6\uc7ac\uc7ad\uc7b0\uc7b4\uc7bc\uc7bd\uc7bf\uc7c0\uc7c1\uc7c8\uc7c9\uc7cc\uc7ce\uc7d0\uc7d8\uc7dd\uc7e4\uc7e8\uc7ec\uc800\uc801\uc804\uc808\uc80a"],["c141","\ud564\ud566\ud567\ud56a\ud56c\ud56e",5,"\ud576\ud577\ud579\ud57a\ud57b\ud57d",6,"\ud586\ud58a\ud58b"],["c161","\ud58c\ud58d\ud58e\ud58f\ud591",19,"\ud5a6\ud5a7"],["c181","\ud5a8",31,"\uc810\uc811\uc813\uc815\uc816\uc81c\uc81d\uc820\uc824\uc82c\uc82d\uc82f\uc831\uc838\uc83c\uc840\uc848\uc849\uc84c\uc84d\uc854\uc870\uc871\uc874\uc878\uc87a\uc880\uc881\uc883\uc885\uc886\uc887\uc88b\uc88c\uc88d\uc894\uc89d\uc89f\uc8a1\uc8a8\uc8bc\uc8bd\uc8c4\uc8c8\uc8cc\uc8d4\uc8d5\uc8d7\uc8d9\uc8e0\uc8e1\uc8e4\uc8f5\uc8fc\uc8fd\uc900\uc904\uc905\uc906\uc90c\uc90d\uc90f\uc911\uc918\uc92c\uc934\uc950\uc951\uc954\uc958\uc960\uc961\uc963\uc96c\uc970\uc974\uc97c\uc988\uc989\uc98c\uc990\uc998\uc999\uc99b\uc99d\uc9c0\uc9c1\uc9c4\uc9c7\uc9c8\uc9ca\uc9d0\uc9d1\uc9d3"],["c241","\ud5ca\ud5cb\ud5cd\ud5ce\ud5cf\ud5d1\ud5d3",4,"\ud5da\ud5dc\ud5de",5,"\ud5e6\ud5e7\ud5e9\ud5ea\ud5eb\ud5ed\ud5ee"],["c261","\ud5ef",4,"\ud5f6\ud5f8\ud5fa",5,"\ud602\ud603\ud605\ud606\ud607\ud609",6,"\ud612"],["c281","\ud616",5,"\ud61d\ud61e\ud61f\ud621\ud622\ud623\ud625",7,"\ud62e",9,"\ud63a\ud63b\uc9d5\uc9d6\uc9d9\uc9da\uc9dc\uc9dd\uc9e0\uc9e2\uc9e4\uc9e7\uc9ec\uc9ed\uc9ef\uc9f0\uc9f1\uc9f8\uc9f9\uc9fc\uca00\uca08\uca09\uca0b\uca0c\uca0d\uca14\uca18\uca29\uca4c\uca4d\uca50\uca54\uca5c\uca5d\uca5f\uca60\uca61\uca68\uca7d\uca84\uca98\ucabc\ucabd\ucac0\ucac4\ucacc\ucacd\ucacf\ucad1\ucad3\ucad8\ucad9\ucae0\ucaec\ucaf4\ucb08\ucb10\ucb14\ucb18\ucb20\ucb21\ucb41\ucb48\ucb49\ucb4c\ucb50\ucb58\ucb59\ucb5d\ucb64\ucb78\ucb79\ucb9c\ucbb8\ucbd4\ucbe4\ucbe7\ucbe9\ucc0c\ucc0d\ucc10\ucc14\ucc1c\ucc1d\ucc21\ucc22\ucc27\ucc28\ucc29\ucc2c\ucc2e\ucc30\ucc38\ucc39\ucc3b"],["c341","\ud63d\ud63e\ud63f\ud641\ud642\ud643\ud644\ud646\ud647\ud64a\ud64c\ud64e\ud64f\ud650\ud652\ud653\ud656\ud657\ud659\ud65a\ud65b\ud65d",4],["c361","\ud662",4,"\ud668\ud66a",5,"\ud672\ud673\ud675",11],["c381","\ud681\ud682\ud684\ud686",5,"\ud68e\ud68f\ud691\ud692\ud693\ud695",7,"\ud69e\ud6a0\ud6a2",5,"\ud6a9\ud6aa\ucc3c\ucc3d\ucc3e\ucc44\ucc45\ucc48\ucc4c\ucc54\ucc55\ucc57\ucc58\ucc59\ucc60\ucc64\ucc66\ucc68\ucc70\ucc75\ucc98\ucc99\ucc9c\ucca0\ucca8\ucca9\uccab\uccac\uccad\uccb4\uccb5\uccb8\uccbc\uccc4\uccc5\uccc7\uccc9\uccd0\uccd4\ucce4\uccec\uccf0\ucd01\ucd08\ucd09\ucd0c\ucd10\ucd18\ucd19\ucd1b\ucd1d\ucd24\ucd28\ucd2c\ucd39\ucd5c\ucd60\ucd64\ucd6c\ucd6d\ucd6f\ucd71\ucd78\ucd88\ucd94\ucd95\ucd98\ucd9c\ucda4\ucda5\ucda7\ucda9\ucdb0\ucdc4\ucdcc\ucdd0\ucde8\ucdec\ucdf0\ucdf8\ucdf9\ucdfb\ucdfd\uce04\uce08\uce0c\uce14\uce19\uce20\uce21\uce24\uce28\uce30\uce31\uce33\uce35"],["c441","\ud6ab\ud6ad\ud6ae\ud6af\ud6b1",7,"\ud6ba\ud6bc",7,"\ud6c6\ud6c7\ud6c9\ud6ca\ud6cb"],["c461","\ud6cd\ud6ce\ud6cf\ud6d0\ud6d2\ud6d3\ud6d5\ud6d6\ud6d8\ud6da",5,"\ud6e1\ud6e2\ud6e3\ud6e5\ud6e6\ud6e7\ud6e9",4],["c481","\ud6ee\ud6ef\ud6f1\ud6f2\ud6f3\ud6f4\ud6f6",5,"\ud6fe\ud6ff\ud701\ud702\ud703\ud705",11,"\ud712\ud713\ud714\uce58\uce59\uce5c\uce5f\uce60\uce61\uce68\uce69\uce6b\uce6d\uce74\uce75\uce78\uce7c\uce84\uce85\uce87\uce89\uce90\uce91\uce94\uce98\ucea0\ucea1\ucea3\ucea4\ucea5\uceac\ucead\ucec1\ucee4\ucee5\ucee8\uceeb\uceec\ucef4\ucef5\ucef7\ucef8\ucef9\ucf00\ucf01\ucf04\ucf08\ucf10\ucf11\ucf13\ucf15\ucf1c\ucf20\ucf24\ucf2c\ucf2d\ucf2f\ucf30\ucf31\ucf38\ucf54\ucf55\ucf58\ucf5c\ucf64\ucf65\ucf67\ucf69\ucf70\ucf71\ucf74\ucf78\ucf80\ucf85\ucf8c\ucfa1\ucfa8\ucfb0\ucfc4\ucfe0\ucfe1\ucfe4\ucfe8\ucff0\ucff1\ucff3\ucff5\ucffc\ud000\ud004\ud011\ud018\ud02d\ud034\ud035\ud038\ud03c"],["c541","\ud715\ud716\ud717\ud71a\ud71b\ud71d\ud71e\ud71f\ud721",6,"\ud72a\ud72c\ud72e",5,"\ud736\ud737\ud739"],["c561","\ud73a\ud73b\ud73d",6,"\ud745\ud746\ud748\ud74a",5,"\ud752\ud753\ud755\ud75a",4],["c581","\ud75f\ud762\ud764\ud766\ud767\ud768\ud76a\ud76b\ud76d\ud76e\ud76f\ud771\ud772\ud773\ud775",6,"\ud77e\ud77f\ud780\ud782",5,"\ud78a\ud78b\ud044\ud045\ud047\ud049\ud050\ud054\ud058\ud060\ud06c\ud06d\ud070\ud074\ud07c\ud07d\ud081\ud0a4\ud0a5\ud0a8\ud0ac\ud0b4\ud0b5\ud0b7\ud0b9\ud0c0\ud0c1\ud0c4\ud0c8\ud0c9\ud0d0\ud0d1\ud0d3\ud0d4\ud0d5\ud0dc\ud0dd\ud0e0\ud0e4\ud0ec\ud0ed\ud0ef\ud0f0\ud0f1\ud0f8\ud10d\ud130\ud131\ud134\ud138\ud13a\ud140\ud141\ud143\ud144\ud145\ud14c\ud14d\ud150\ud154\ud15c\ud15d\ud15f\ud161\ud168\ud16c\ud17c\ud184\ud188\ud1a0\ud1a1\ud1a4\ud1a8\ud1b0\ud1b1\ud1b3\ud1b5\ud1ba\ud1bc\ud1c0\ud1d8\ud1f4\ud1f8\ud207\ud209\ud210\ud22c\ud22d\ud230\ud234\ud23c\ud23d\ud23f\ud241\ud248\ud25c"],["c641","\ud78d\ud78e\ud78f\ud791",6,"\ud79a\ud79c\ud79e",5],["c6a1","\ud264\ud280\ud281\ud284\ud288\ud290\ud291\ud295\ud29c\ud2a0\ud2a4\ud2ac\ud2b1\ud2b8\ud2b9\ud2bc\ud2bf\ud2c0\ud2c2\ud2c8\ud2c9\ud2cb\ud2d4\ud2d8\ud2dc\ud2e4\ud2e5\ud2f0\ud2f1\ud2f4\ud2f8\ud300\ud301\ud303\ud305\ud30c\ud30d\ud30e\ud310\ud314\ud316\ud31c\ud31d\ud31f\ud320\ud321\ud325\ud328\ud329\ud32c\ud330\ud338\ud339\ud33b\ud33c\ud33d\ud344\ud345\ud37c\ud37d\ud380\ud384\ud38c\ud38d\ud38f\ud390\ud391\ud398\ud399\ud39c\ud3a0\ud3a8\ud3a9\ud3ab\ud3ad\ud3b4\ud3b8\ud3bc\ud3c4\ud3c5\ud3c8\ud3c9\ud3d0\ud3d8\ud3e1\ud3e3\ud3ec\ud3ed\ud3f0\ud3f4\ud3fc\ud3fd\ud3ff\ud401"],["c7a1","\ud408\ud41d\ud440\ud444\ud45c\ud460\ud464\ud46d\ud46f\ud478\ud479\ud47c\ud47f\ud480\ud482\ud488\ud489\ud48b\ud48d\ud494\ud4a9\ud4cc\ud4d0\ud4d4\ud4dc\ud4df\ud4e8\ud4ec\ud4f0\ud4f8\ud4fb\ud4fd\ud504\ud508\ud50c\ud514\ud515\ud517\ud53c\ud53d\ud540\ud544\ud54c\ud54d\ud54f\ud551\ud558\ud559\ud55c\ud560\ud565\ud568\ud569\ud56b\ud56d\ud574\ud575\ud578\ud57c\ud584\ud585\ud587\ud588\ud589\ud590\ud5a5\ud5c8\ud5c9\ud5cc\ud5d0\ud5d2\ud5d8\ud5d9\ud5db\ud5dd\ud5e4\ud5e5\ud5e8\ud5ec\ud5f4\ud5f5\ud5f7\ud5f9\ud600\ud601\ud604\ud608\ud610\ud611\ud613\ud614\ud615\ud61c\ud620"],["c8a1","\ud624\ud62d\ud638\ud639\ud63c\ud640\ud645\ud648\ud649\ud64b\ud64d\ud651\ud654\ud655\ud658\ud65c\ud667\ud669\ud670\ud671\ud674\ud683\ud685\ud68c\ud68d\ud690\ud694\ud69d\ud69f\ud6a1\ud6a8\ud6ac\ud6b0\ud6b9\ud6bb\ud6c4\ud6c5\ud6c8\ud6cc\ud6d1\ud6d4\ud6d7\ud6d9\ud6e0\ud6e4\ud6e8\ud6f0\ud6f5\ud6fc\ud6fd\ud700\ud704\ud711\ud718\ud719\ud71c\ud720\ud728\ud729\ud72b\ud72d\ud734\ud735\ud738\ud73c\ud744\ud747\ud749\ud750\ud751\ud754\ud756\ud757\ud758\ud759\ud760\ud761\ud763\ud765\ud769\ud76c\ud770\ud774\ud77c\ud77d\ud781\ud788\ud789\ud78c\ud790\ud798\ud799\ud79b\ud79d"],["caa1","\u4f3d\u4f73\u5047\u50f9\u52a0\u53ef\u5475\u54e5\u5609\u5ac1\u5bb6\u6687\u67b6\u67b7\u67ef\u6b4c\u73c2\u75c2\u7a3c\u82db\u8304\u8857\u8888\u8a36\u8cc8\u8dcf\u8efb\u8fe6\u99d5\u523b\u5374\u5404\u606a\u6164\u6bbc\u73cf\u811a\u89ba\u89d2\u95a3\u4f83\u520a\u58be\u5978\u59e6\u5e72\u5e79\u61c7\u63c0\u6746\u67ec\u687f\u6f97\u764e\u770b\u78f5\u7a08\u7aff\u7c21\u809d\u826e\u8271\u8aeb\u9593\u4e6b\u559d\u66f7\u6e34\u78a3\u7aed\u845b\u8910\u874e\u97a8\u52d8\u574e\u582a\u5d4c\u611f\u61be\u6221\u6562\u67d1\u6a44\u6e1b\u7518\u75b3\u76e3\u77b0\u7d3a\u90af\u9451\u9452\u9f95"],["cba1","\u5323\u5cac\u7532\u80db\u9240\u9598\u525b\u5808\u59dc\u5ca1\u5d17\u5eb7\u5f3a\u5f4a\u6177\u6c5f\u757a\u7586\u7ce0\u7d73\u7db1\u7f8c\u8154\u8221\u8591\u8941\u8b1b\u92fc\u964d\u9c47\u4ecb\u4ef7\u500b\u51f1\u584f\u6137\u613e\u6168\u6539\u69ea\u6f11\u75a5\u7686\u76d6\u7b87\u82a5\u84cb\uf900\u93a7\u958b\u5580\u5ba2\u5751\uf901\u7cb3\u7fb9\u91b5\u5028\u53bb\u5c45\u5de8\u62d2\u636e\u64da\u64e7\u6e20\u70ac\u795b\u8ddd\u8e1e\uf902\u907d\u9245\u92f8\u4e7e\u4ef6\u5065\u5dfe\u5efa\u6106\u6957\u8171\u8654\u8e47\u9375\u9a2b\u4e5e\u5091\u6770\u6840\u5109\u528d\u5292\u6aa2"],["cca1","\u77bc\u9210\u9ed4\u52ab\u602f\u8ff2\u5048\u61a9\u63ed\u64ca\u683c\u6a84\u6fc0\u8188\u89a1\u9694\u5805\u727d\u72ac\u7504\u7d79\u7e6d\u80a9\u898b\u8b74\u9063\u9d51\u6289\u6c7a\u6f54\u7d50\u7f3a\u8a23\u517c\u614a\u7b9d\u8b19\u9257\u938c\u4eac\u4fd3\u501e\u50be\u5106\u52c1\u52cd\u537f\u5770\u5883\u5e9a\u5f91\u6176\u61ac\u64ce\u656c\u666f\u66bb\u66f4\u6897\u6d87\u7085\u70f1\u749f\u74a5\u74ca\u75d9\u786c\u78ec\u7adf\u7af6\u7d45\u7d93\u8015\u803f\u811b\u8396\u8b66\u8f15\u9015\u93e1\u9803\u9838\u9a5a\u9be8\u4fc2\u5553\u583a\u5951\u5b63\u5c46\u60b8\u6212\u6842\u68b0"],["cda1","\u68e8\u6eaa\u754c\u7678\u78ce\u7a3d\u7cfb\u7e6b\u7e7c\u8a08\u8aa1\u8c3f\u968e\u9dc4\u53e4\u53e9\u544a\u5471\u56fa\u59d1\u5b64\u5c3b\u5eab\u62f7\u6537\u6545\u6572\u66a0\u67af\u69c1\u6cbd\u75fc\u7690\u777e\u7a3f\u7f94\u8003\u80a1\u818f\u82e6\u82fd\u83f0\u85c1\u8831\u88b4\u8aa5\uf903\u8f9c\u932e\u96c7\u9867\u9ad8\u9f13\u54ed\u659b\u66f2\u688f\u7a40\u8c37\u9d60\u56f0\u5764\u5d11\u6606\u68b1\u68cd\u6efe\u7428\u889e\u9be4\u6c68\uf904\u9aa8\u4f9b\u516c\u5171\u529f\u5b54\u5de5\u6050\u606d\u62f1\u63a7\u653b\u73d9\u7a7a\u86a3\u8ca2\u978f\u4e32\u5be1\u6208\u679c\u74dc"],["cea1","\u79d1\u83d3\u8a87\u8ab2\u8de8\u904e\u934b\u9846\u5ed3\u69e8\u85ff\u90ed\uf905\u51a0\u5b98\u5bec\u6163\u68fa\u6b3e\u704c\u742f\u74d8\u7ba1\u7f50\u83c5\u89c0\u8cab\u95dc\u9928\u522e\u605d\u62ec\u9002\u4f8a\u5149\u5321\u58d9\u5ee3\u66e0\u6d38\u709a\u72c2\u73d6\u7b50\u80f1\u945b\u5366\u639b\u7f6b\u4e56\u5080\u584a\u58de\u602a\u6127\u62d0\u69d0\u9b41\u5b8f\u7d18\u80b1\u8f5f\u4ea4\u50d1\u54ac\u55ac\u5b0c\u5da0\u5de7\u652a\u654e\u6821\u6a4b\u72e1\u768e\u77ef\u7d5e\u7ff9\u81a0\u854e\u86df\u8f03\u8f4e\u90ca\u9903\u9a55\u9bab\u4e18\u4e45\u4e5d\u4ec7\u4ff1\u5177\u52fe"],["cfa1","\u5340\u53e3\u53e5\u548e\u5614\u5775\u57a2\u5bc7\u5d87\u5ed0\u61fc\u62d8\u6551\u67b8\u67e9\u69cb\u6b50\u6bc6\u6bec\u6c42\u6e9d\u7078\u72d7\u7396\u7403\u77bf\u77e9\u7a76\u7d7f\u8009\u81fc\u8205\u820a\u82df\u8862\u8b33\u8cfc\u8ec0\u9011\u90b1\u9264\u92b6\u99d2\u9a45\u9ce9\u9dd7\u9f9c\u570b\u5c40\u83ca\u97a0\u97ab\u9eb4\u541b\u7a98\u7fa4\u88d9\u8ecd\u90e1\u5800\u5c48\u6398\u7a9f\u5bae\u5f13\u7a79\u7aae\u828e\u8eac\u5026\u5238\u52f8\u5377\u5708\u62f3\u6372\u6b0a\u6dc3\u7737\u53a5\u7357\u8568\u8e76\u95d5\u673a\u6ac3\u6f70\u8a6d\u8ecc\u994b\uf906\u6677\u6b78\u8cb4"],["d0a1","\u9b3c\uf907\u53eb\u572d\u594e\u63c6\u69fb\u73ea\u7845\u7aba\u7ac5\u7cfe\u8475\u898f\u8d73\u9035\u95a8\u52fb\u5747\u7547\u7b60\u83cc\u921e\uf908\u6a58\u514b\u524b\u5287\u621f\u68d8\u6975\u9699\u50c5\u52a4\u52e4\u61c3\u65a4\u6839\u69ff\u747e\u7b4b\u82b9\u83eb\u89b2\u8b39\u8fd1\u9949\uf909\u4eca\u5997\u64d2\u6611\u6a8e\u7434\u7981\u79bd\u82a9\u887e\u887f\u895f\uf90a\u9326\u4f0b\u53ca\u6025\u6271\u6c72\u7d1a\u7d66\u4e98\u5162\u77dc\u80af\u4f01\u4f0e\u5176\u5180\u55dc\u5668\u573b\u57fa\u57fc\u5914\u5947\u5993\u5bc4\u5c90\u5d0e\u5df1\u5e7e\u5fcc\u6280\u65d7\u65e3"],["d1a1","\u671e\u671f\u675e\u68cb\u68c4\u6a5f\u6b3a\u6c23\u6c7d\u6c82\u6dc7\u7398\u7426\u742a\u7482\u74a3\u7578\u757f\u7881\u78ef\u7941\u7947\u7948\u797a\u7b95\u7d00\u7dba\u7f88\u8006\u802d\u808c\u8a18\u8b4f\u8c48\u8d77\u9321\u9324\u98e2\u9951\u9a0e\u9a0f\u9a65\u9e92\u7dca\u4f76\u5409\u62ee\u6854\u91d1\u55ab\u513a\uf90b\uf90c\u5a1c\u61e6\uf90d\u62cf\u62ff\uf90e",5,"\u90a3\uf914",4,"\u8afe\uf919\uf91a\uf91b\uf91c\u6696\uf91d\u7156\uf91e\uf91f\u96e3\uf920\u634f\u637a\u5357\uf921\u678f\u6960\u6e73\uf922\u7537\uf923\uf924\uf925"],["d2a1","\u7d0d\uf926\uf927\u8872\u56ca\u5a18\uf928",4,"\u4e43\uf92d\u5167\u5948\u67f0\u8010\uf92e\u5973\u5e74\u649a\u79ca\u5ff5\u606c\u62c8\u637b\u5be7\u5bd7\u52aa\uf92f\u5974\u5f29\u6012\uf930\uf931\uf932\u7459\uf933",5,"\u99d1\uf939",10,"\u6fc3\uf944\uf945\u81bf\u8fb2\u60f1\uf946\uf947\u8166\uf948\uf949\u5c3f\uf94a",7,"\u5ae9\u8a25\u677b\u7d10\uf952",5,"\u80fd\uf958\uf959\u5c3c\u6ce5\u533f\u6eba\u591a\u8336"],["d3a1","\u4e39\u4eb6\u4f46\u55ae\u5718\u58c7\u5f56\u65b7\u65e6\u6a80\u6bb5\u6e4d\u77ed\u7aef\u7c1e\u7dde\u86cb\u8892\u9132\u935b\u64bb\u6fbe\u737a\u75b8\u9054\u5556\u574d\u61ba\u64d4\u66c7\u6de1\u6e5b\u6f6d\u6fb9\u75f0\u8043\u81bd\u8541\u8983\u8ac7\u8b5a\u931f\u6c93\u7553\u7b54\u8e0f\u905d\u5510\u5802\u5858\u5e62\u6207\u649e\u68e0\u7576\u7cd6\u87b3\u9ee8\u4ee3\u5788\u576e\u5927\u5c0d\u5cb1\u5e36\u5f85\u6234\u64e1\u73b3\u81fa\u888b\u8cb8\u968a\u9edb\u5b85\u5fb7\u60b3\u5012\u5200\u5230\u5716\u5835\u5857\u5c0e\u5c60\u5cf6\u5d8b\u5ea6\u5f92\u60bc\u6311\u6389\u6417\u6843"],["d4a1","\u68f9\u6ac2\u6dd8\u6e21\u6ed4\u6fe4\u71fe\u76dc\u7779\u79b1\u7a3b\u8404\u89a9\u8ced\u8df3\u8e48\u9003\u9014\u9053\u90fd\u934d\u9676\u97dc\u6bd2\u7006\u7258\u72a2\u7368\u7763\u79bf\u7be4\u7e9b\u8b80\u58a9\u60c7\u6566\u65fd\u66be\u6c8c\u711e\u71c9\u8c5a\u9813\u4e6d\u7a81\u4edd\u51ac\u51cd\u52d5\u540c\u61a7\u6771\u6850\u68df\u6d1e\u6f7c\u75bc\u77b3\u7ae5\u80f4\u8463\u9285\u515c\u6597\u675c\u6793\u75d8\u7ac7\u8373\uf95a\u8c46\u9017\u982d\u5c6f\u81c0\u829a\u9041\u906f\u920d\u5f97\u5d9d\u6a59\u71c8\u767b\u7b49\u85e4\u8b04\u9127\u9a30\u5587\u61f6\uf95b\u7669\u7f85"],["d5a1","\u863f\u87ba\u88f8\u908f\uf95c\u6d1b\u70d9\u73de\u7d61\u843d\uf95d\u916a\u99f1\uf95e\u4e82\u5375\u6b04\u6b12\u703e\u721b\u862d\u9e1e\u524c\u8fa3\u5d50\u64e5\u652c\u6b16\u6feb\u7c43\u7e9c\u85cd\u8964\u89bd\u62c9\u81d8\u881f\u5eca\u6717\u6d6a\u72fc\u7405\u746f\u8782\u90de\u4f86\u5d0d\u5fa0\u840a\u51b7\u63a0\u7565\u4eae\u5006\u5169\u51c9\u6881\u6a11\u7cae\u7cb1\u7ce7\u826f\u8ad2\u8f1b\u91cf\u4fb6\u5137\u52f5\u5442\u5eec\u616e\u623e\u65c5\u6ada\u6ffe\u792a\u85dc\u8823\u95ad\u9a62\u9a6a\u9e97\u9ece\u529b\u66c6\u6b77\u701d\u792b\u8f62\u9742\u6190\u6200\u6523\u6f23"],["d6a1","\u7149\u7489\u7df4\u806f\u84ee\u8f26\u9023\u934a\u51bd\u5217\u52a3\u6d0c\u70c8\u88c2\u5ec9\u6582\u6bae\u6fc2\u7c3e\u7375\u4ee4\u4f36\u56f9\uf95f\u5cba\u5dba\u601c\u73b2\u7b2d\u7f9a\u7fce\u8046\u901e\u9234\u96f6\u9748\u9818\u9f61\u4f8b\u6fa7\u79ae\u91b4\u96b7\u52de\uf960\u6488\u64c4\u6ad3\u6f5e\u7018\u7210\u76e7\u8001\u8606\u865c\u8def\u8f05\u9732\u9b6f\u9dfa\u9e75\u788c\u797f\u7da0\u83c9\u9304\u9e7f\u9e93\u8ad6\u58df\u5f04\u6727\u7027\u74cf\u7c60\u807e\u5121\u7028\u7262\u78ca\u8cc2\u8cda\u8cf4\u96f7\u4e86\u50da\u5bee\u5ed6\u6599\u71ce\u7642\u77ad\u804a\u84fc"],["d7a1","\u907c\u9b27\u9f8d\u58d8\u5a41\u5c62\u6a13\u6dda\u6f0f\u763b\u7d2f\u7e37\u851e\u8938\u93e4\u964b\u5289\u65d2\u67f3\u69b4\u6d41\u6e9c\u700f\u7409\u7460\u7559\u7624\u786b\u8b2c\u985e\u516d\u622e\u9678\u4f96\u502b\u5d19\u6dea\u7db8\u8f2a\u5f8b\u6144\u6817\uf961\u9686\u52d2\u808b\u51dc\u51cc\u695e\u7a1c\u7dbe\u83f1\u9675\u4fda\u5229\u5398\u540f\u550e\u5c65\u60a7\u674e\u68a8\u6d6c\u7281\u72f8\u7406\u7483\uf962\u75e2\u7c6c\u7f79\u7fb8\u8389\u88cf\u88e1\u91cc\u91d0\u96e2\u9bc9\u541d\u6f7e\u71d0\u7498\u85fa\u8eaa\u96a3\u9c57\u9e9f\u6797\u6dcb\u7433\u81e8\u9716\u782c"],["d8a1","\u7acb\u7b20\u7c92\u6469\u746a\u75f2\u78bc\u78e8\u99ac\u9b54\u9ebb\u5bde\u5e55\u6f20\u819c\u83ab\u9088\u4e07\u534d\u5a29\u5dd2\u5f4e\u6162\u633d\u6669\u66fc\u6eff\u6f2b\u7063\u779e\u842c\u8513\u883b\u8f13\u9945\u9c3b\u551c\u62b9\u672b\u6cab\u8309\u896a\u977a\u4ea1\u5984\u5fd8\u5fd9\u671b\u7db2\u7f54\u8292\u832b\u83bd\u8f1e\u9099\u57cb\u59b9\u5a92\u5bd0\u6627\u679a\u6885\u6bcf\u7164\u7f75\u8cb7\u8ce3\u9081\u9b45\u8108\u8c8a\u964c\u9a40\u9ea5\u5b5f\u6c13\u731b\u76f2\u76df\u840c\u51aa\u8993\u514d\u5195\u52c9\u68c9\u6c94\u7704\u7720\u7dbf\u7dec\u9762\u9eb5\u6ec5"],["d9a1","\u8511\u51a5\u540d\u547d\u660e\u669d\u6927\u6e9f\u76bf\u7791\u8317\u84c2\u879f\u9169\u9298\u9cf4\u8882\u4fae\u5192\u52df\u59c6\u5e3d\u6155\u6478\u6479\u66ae\u67d0\u6a21\u6bcd\u6bdb\u725f\u7261\u7441\u7738\u77db\u8017\u82bc\u8305\u8b00\u8b28\u8c8c\u6728\u6c90\u7267\u76ee\u7766\u7a46\u9da9\u6b7f\u6c92\u5922\u6726\u8499\u536f\u5893\u5999\u5edf\u63cf\u6634\u6773\u6e3a\u732b\u7ad7\u82d7\u9328\u52d9\u5deb\u61ae\u61cb\u620a\u62c7\u64ab\u65e0\u6959\u6b66\u6bcb\u7121\u73f7\u755d\u7e46\u821e\u8302\u856a\u8aa3\u8cbf\u9727\u9d61\u58a8\u9ed8\u5011\u520e\u543b\u554f\u6587"],["daa1","\u6c76\u7d0a\u7d0b\u805e\u868a\u9580\u96ef\u52ff\u6c95\u7269\u5473\u5a9a\u5c3e\u5d4b\u5f4c\u5fae\u672a\u68b6\u6963\u6e3c\u6e44\u7709\u7c73\u7f8e\u8587\u8b0e\u8ff7\u9761\u9ef4\u5cb7\u60b6\u610d\u61ab\u654f\u65fb\u65fc\u6c11\u6cef\u739f\u73c9\u7de1\u9594\u5bc6\u871c\u8b10\u525d\u535a\u62cd\u640f\u64b2\u6734\u6a38\u6cca\u73c0\u749e\u7b94\u7c95\u7e1b\u818a\u8236\u8584\u8feb\u96f9\u99c1\u4f34\u534a\u53cd\u53db\u62cc\u642c\u6500\u6591\u69c3\u6cee\u6f58\u73ed\u7554\u7622\u76e4\u76fc\u78d0\u78fb\u792c\u7d46\u822c\u87e0\u8fd4\u9812\u98ef\u52c3\u62d4\u64a5\u6e24\u6f51"],["dba1","\u767c\u8dcb\u91b1\u9262\u9aee\u9b43\u5023\u508d\u574a\u59a8\u5c28\u5e47\u5f77\u623f\u653e\u65b9\u65c1\u6609\u678b\u699c\u6ec2\u78c5\u7d21\u80aa\u8180\u822b\u82b3\u84a1\u868c\u8a2a\u8b17\u90a6\u9632\u9f90\u500d\u4ff3\uf963\u57f9\u5f98\u62dc\u6392\u676f\u6e43\u7119\u76c3\u80cc\u80da\u88f4\u88f5\u8919\u8ce0\u8f29\u914d\u966a\u4f2f\u4f70\u5e1b\u67cf\u6822\u767d\u767e\u9b44\u5e61\u6a0a\u7169\u71d4\u756a\uf964\u7e41\u8543\u85e9\u98dc\u4f10\u7b4f\u7f70\u95a5\u51e1\u5e06\u68b5\u6c3e\u6c4e\u6cdb\u72af\u7bc4\u8303\u6cd5\u743a\u50fb\u5288\u58c1\u64d8\u6a97\u74a7\u7656"],["dca1","\u78a7\u8617\u95e2\u9739\uf965\u535e\u5f01\u8b8a\u8fa8\u8faf\u908a\u5225\u77a5\u9c49\u9f08\u4e19\u5002\u5175\u5c5b\u5e77\u661e\u663a\u67c4\u68c5\u70b3\u7501\u75c5\u79c9\u7add\u8f27\u9920\u9a08\u4fdd\u5821\u5831\u5bf6\u666e\u6b65\u6d11\u6e7a\u6f7d\u73e4\u752b\u83e9\u88dc\u8913\u8b5c\u8f14\u4f0f\u50d5\u5310\u535c\u5b93\u5fa9\u670d\u798f\u8179\u832f\u8514\u8907\u8986\u8f39\u8f3b\u99a5\u9c12\u672c\u4e76\u4ff8\u5949\u5c01\u5cef\u5cf0\u6367\u68d2\u70fd\u71a2\u742b\u7e2b\u84ec\u8702\u9022\u92d2\u9cf3\u4e0d\u4ed8\u4fef\u5085\u5256\u526f\u5426\u5490\u57e0\u592b\u5a66"],["dda1","\u5b5a\u5b75\u5bcc\u5e9c\uf966\u6276\u6577\u65a7\u6d6e\u6ea5\u7236\u7b26\u7c3f\u7f36\u8150\u8151\u819a\u8240\u8299\u83a9\u8a03\u8ca0\u8ce6\u8cfb\u8d74\u8dba\u90e8\u91dc\u961c\u9644\u99d9\u9ce7\u5317\u5206\u5429\u5674\u58b3\u5954\u596e\u5fff\u61a4\u626e\u6610\u6c7e\u711a\u76c6\u7c89\u7cde\u7d1b\u82ac\u8cc1\u96f0\uf967\u4f5b\u5f17\u5f7f\u62c2\u5d29\u670b\u68da\u787c\u7e43\u9d6c\u4e15\u5099\u5315\u532a\u5351\u5983\u5a62\u5e87\u60b2\u618a\u6249\u6279\u6590\u6787\u69a7\u6bd4\u6bd6\u6bd7\u6bd8\u6cb8\uf968\u7435\u75fa\u7812\u7891\u79d5\u79d8\u7c83\u7dcb\u7fe1\u80a5"],["dea1","\u813e\u81c2\u83f2\u871a\u88e8\u8ab9\u8b6c\u8cbb\u9119\u975e\u98db\u9f3b\u56ac\u5b2a\u5f6c\u658c\u6ab3\u6baf\u6d5c\u6ff1\u7015\u725d\u73ad\u8ca7\u8cd3\u983b\u6191\u6c37\u8058\u9a01\u4e4d\u4e8b\u4e9b\u4ed5\u4f3a\u4f3c\u4f7f\u4fdf\u50ff\u53f2\u53f8\u5506\u55e3\u56db\u58eb\u5962\u5a11\u5beb\u5bfa\u5c04\u5df3\u5e2b\u5f99\u601d\u6368\u659c\u65af\u67f6\u67fb\u68ad\u6b7b\u6c99\u6cd7\u6e23\u7009\u7345\u7802\u793e\u7940\u7960\u79c1\u7be9\u7d17\u7d72\u8086\u820d\u838e\u84d1\u86c7\u88df\u8a50\u8a5e\u8b1d\u8cdc\u8d66\u8fad\u90aa\u98fc\u99df\u9e9d\u524a\uf969\u6714\uf96a"],["dfa1","\u5098\u522a\u5c71\u6563\u6c55\u73ca\u7523\u759d\u7b97\u849c\u9178\u9730\u4e77\u6492\u6bba\u715e\u85a9\u4e09\uf96b\u6749\u68ee\u6e17\u829f\u8518\u886b\u63f7\u6f81\u9212\u98af\u4e0a\u50b7\u50cf\u511f\u5546\u55aa\u5617\u5b40\u5c19\u5ce0\u5e38\u5e8a\u5ea0\u5ec2\u60f3\u6851\u6a61\u6e58\u723d\u7240\u72c0\u76f8\u7965\u7bb1\u7fd4\u88f3\u89f4\u8a73\u8c61\u8cde\u971c\u585e\u74bd\u8cfd\u55c7\uf96c\u7a61\u7d22\u8272\u7272\u751f\u7525\uf96d\u7b19\u5885\u58fb\u5dbc\u5e8f\u5eb6\u5f90\u6055\u6292\u637f\u654d\u6691\u66d9\u66f8\u6816\u68f2\u7280\u745e\u7b6e\u7d6e\u7dd6\u7f72"],["e0a1","\u80e5\u8212\u85af\u897f\u8a93\u901d\u92e4\u9ecd\u9f20\u5915\u596d\u5e2d\u60dc\u6614\u6673\u6790\u6c50\u6dc5\u6f5f\u77f3\u78a9\u84c6\u91cb\u932b\u4ed9\u50ca\u5148\u5584\u5b0b\u5ba3\u6247\u657e\u65cb\u6e32\u717d\u7401\u7444\u7487\u74bf\u766c\u79aa\u7dda\u7e55\u7fa8\u817a\u81b3\u8239\u861a\u87ec\u8a75\u8de3\u9078\u9291\u9425\u994d\u9bae\u5368\u5c51\u6954\u6cc4\u6d29\u6e2b\u820c\u859b\u893b\u8a2d\u8aaa\u96ea\u9f67\u5261\u66b9\u6bb2\u7e96\u87fe\u8d0d\u9583\u965d\u651d\u6d89\u71ee\uf96e\u57ce\u59d3\u5bac\u6027\u60fa\u6210\u661f\u665f\u7329\u73f9\u76db\u7701\u7b6c"],["e1a1","\u8056\u8072\u8165\u8aa0\u9192\u4e16\u52e2\u6b72\u6d17\u7a05\u7b39\u7d30\uf96f\u8cb0\u53ec\u562f\u5851\u5bb5\u5c0f\u5c11\u5de2\u6240\u6383\u6414\u662d\u68b3\u6cbc\u6d88\u6eaf\u701f\u70a4\u71d2\u7526\u758f\u758e\u7619\u7b11\u7be0\u7c2b\u7d20\u7d39\u852c\u856d\u8607\u8a34\u900d\u9061\u90b5\u92b7\u97f6\u9a37\u4fd7\u5c6c\u675f\u6d91\u7c9f\u7e8c\u8b16\u8d16\u901f\u5b6b\u5dfd\u640d\u84c0\u905c\u98e1\u7387\u5b8b\u609a\u677e\u6dde\u8a1f\u8aa6\u9001\u980c\u5237\uf970\u7051\u788e\u9396\u8870\u91d7\u4fee\u53d7\u55fd\u56da\u5782\u58fd\u5ac2\u5b88\u5cab\u5cc0\u5e25\u6101"],["e2a1","\u620d\u624b\u6388\u641c\u6536\u6578\u6a39\u6b8a\u6c34\u6d19\u6f31\u71e7\u72e9\u7378\u7407\u74b2\u7626\u7761\u79c0\u7a57\u7aea\u7cb9\u7d8f\u7dac\u7e61\u7f9e\u8129\u8331\u8490\u84da\u85ea\u8896\u8ab0\u8b90\u8f38\u9042\u9083\u916c\u9296\u92b9\u968b\u96a7\u96a8\u96d6\u9700\u9808\u9996\u9ad3\u9b1a\u53d4\u587e\u5919\u5b70\u5bbf\u6dd1\u6f5a\u719f\u7421\u74b9\u8085\u83fd\u5de1\u5f87\u5faa\u6042\u65ec\u6812\u696f\u6a53\u6b89\u6d35\u6df3\u73e3\u76fe\u77ac\u7b4d\u7d14\u8123\u821c\u8340\u84f4\u8563\u8a62\u8ac4\u9187\u931e\u9806\u99b4\u620c\u8853\u8ff0\u9265\u5d07\u5d27"],["e3a1","\u5d69\u745f\u819d\u8768\u6fd5\u62fe\u7fd2\u8936\u8972\u4e1e\u4e58\u50e7\u52dd\u5347\u627f\u6607\u7e69\u8805\u965e\u4f8d\u5319\u5636\u59cb\u5aa4\u5c38\u5c4e\u5c4d\u5e02\u5f11\u6043\u65bd\u662f\u6642\u67be\u67f4\u731c\u77e2\u793a\u7fc5\u8494\u84cd\u8996\u8a66\u8a69\u8ae1\u8c55\u8c7a\u57f4\u5bd4\u5f0f\u606f\u62ed\u690d\u6b96\u6e5c\u7184\u7bd2\u8755\u8b58\u8efe\u98df\u98fe\u4f38\u4f81\u4fe1\u547b\u5a20\u5bb8\u613c\u65b0\u6668\u71fc\u7533\u795e\u7d33\u814e\u81e3\u8398\u85aa\u85ce\u8703\u8a0a\u8eab\u8f9b\uf971\u8fc5\u5931\u5ba4\u5be6\u6089\u5be9\u5c0b\u5fc3\u6c81"],["e4a1","\uf972\u6df1\u700b\u751a\u82af\u8af6\u4ec0\u5341\uf973\u96d9\u6c0f\u4e9e\u4fc4\u5152\u555e\u5a25\u5ce8\u6211\u7259\u82bd\u83aa\u86fe\u8859\u8a1d\u963f\u96c5\u9913\u9d09\u9d5d\u580a\u5cb3\u5dbd\u5e44\u60e1\u6115\u63e1\u6a02\u6e25\u9102\u9354\u984e\u9c10\u9f77\u5b89\u5cb8\u6309\u664f\u6848\u773c\u96c1\u978d\u9854\u9b9f\u65a1\u8b01\u8ecb\u95bc\u5535\u5ca9\u5dd6\u5eb5\u6697\u764c\u83f4\u95c7\u58d3\u62bc\u72ce\u9d28\u4ef0\u592e\u600f\u663b\u6b83\u79e7\u9d26\u5393\u54c0\u57c3\u5d16\u611b\u66d6\u6daf\u788d\u827e\u9698\u9744\u5384\u627c\u6396\u6db2\u7e0a\u814b\u984d"],["e5a1","\u6afb\u7f4c\u9daf\u9e1a\u4e5f\u503b\u51b6\u591c\u60f9\u63f6\u6930\u723a\u8036\uf974\u91ce\u5f31\uf975\uf976\u7d04\u82e5\u846f\u84bb\u85e5\u8e8d\uf977\u4f6f\uf978\uf979\u58e4\u5b43\u6059\u63da\u6518\u656d\u6698\uf97a\u694a\u6a23\u6d0b\u7001\u716c\u75d2\u760d\u79b3\u7a70\uf97b\u7f8a\uf97c\u8944\uf97d\u8b93\u91c0\u967d\uf97e\u990a\u5704\u5fa1\u65bc\u6f01\u7600\u79a6\u8a9e\u99ad\u9b5a\u9f6c\u5104\u61b6\u6291\u6a8d\u81c6\u5043\u5830\u5f66\u7109\u8a00\u8afa\u5b7c\u8616\u4ffa\u513c\u56b4\u5944\u63a9\u6df9\u5daa\u696d\u5186\u4e88\u4f59\uf97f\uf980\uf981\u5982\uf982"],["e6a1","\uf983\u6b5f\u6c5d\uf984\u74b5\u7916\uf985\u8207\u8245\u8339\u8f3f\u8f5d\uf986\u9918\uf987\uf988\uf989\u4ea6\uf98a\u57df\u5f79\u6613\uf98b\uf98c\u75ab\u7e79\u8b6f\uf98d\u9006\u9a5b\u56a5\u5827\u59f8\u5a1f\u5bb4\uf98e\u5ef6\uf98f\uf990\u6350\u633b\uf991\u693d\u6c87\u6cbf\u6d8e\u6d93\u6df5\u6f14\uf992\u70df\u7136\u7159\uf993\u71c3\u71d5\uf994\u784f\u786f\uf995\u7b75\u7de3\uf996\u7e2f\uf997\u884d\u8edf\uf998\uf999\uf99a\u925b\uf99b\u9cf6\uf99c\uf99d\uf99e\u6085\u6d85\uf99f\u71b1\uf9a0\uf9a1\u95b1\u53ad\uf9a2\uf9a3\uf9a4\u67d3\uf9a5\u708e\u7130\u7430\u8276\u82d2"],["e7a1","\uf9a6\u95bb\u9ae5\u9e7d\u66c4\uf9a7\u71c1\u8449\uf9a8\uf9a9\u584b\uf9aa\uf9ab\u5db8\u5f71\uf9ac\u6620\u668e\u6979\u69ae\u6c38\u6cf3\u6e36\u6f41\u6fda\u701b\u702f\u7150\u71df\u7370\uf9ad\u745b\uf9ae\u74d4\u76c8\u7a4e\u7e93\uf9af\uf9b0\u82f1\u8a60\u8fce\uf9b1\u9348\uf9b2\u9719\uf9b3\uf9b4\u4e42\u502a\uf9b5\u5208\u53e1\u66f3\u6c6d\u6fca\u730a\u777f\u7a62\u82ae\u85dd\u8602\uf9b6\u88d4\u8a63\u8b7d\u8c6b\uf9b7\u92b3\uf9b8\u9713\u9810\u4e94\u4f0d\u4fc9\u50b2\u5348\u543e\u5433\u55da\u5862\u58ba\u5967\u5a1b\u5be4\u609f\uf9b9\u61ca\u6556\u65ff\u6664\u68a7\u6c5a\u6fb3"],["e8a1","\u70cf\u71ac\u7352\u7b7d\u8708\u8aa4\u9c32\u9f07\u5c4b\u6c83\u7344\u7389\u923a\u6eab\u7465\u761f\u7a69\u7e15\u860a\u5140\u58c5\u64c1\u74ee\u7515\u7670\u7fc1\u9095\u96cd\u9954\u6e26\u74e6\u7aa9\u7aaa\u81e5\u86d9\u8778\u8a1b\u5a49\u5b8c\u5b9b\u68a1\u6900\u6d63\u73a9\u7413\u742c\u7897\u7de9\u7feb\u8118\u8155\u839e\u8c4c\u962e\u9811\u66f0\u5f80\u65fa\u6789\u6c6a\u738b\u502d\u5a03\u6b6a\u77ee\u5916\u5d6c\u5dcd\u7325\u754f\uf9ba\uf9bb\u50e5\u51f9\u582f\u592d\u5996\u59da\u5be5\uf9bc\uf9bd\u5da2\u62d7\u6416\u6493\u64fe\uf9be\u66dc\uf9bf\u6a48\uf9c0\u71ff\u7464\uf9c1"],["e9a1","\u7a88\u7aaf\u7e47\u7e5e\u8000\u8170\uf9c2\u87ef\u8981\u8b20\u9059\uf9c3\u9080\u9952\u617e\u6b32\u6d74\u7e1f\u8925\u8fb1\u4fd1\u50ad\u5197\u52c7\u57c7\u5889\u5bb9\u5eb8\u6142\u6995\u6d8c\u6e67\u6eb6\u7194\u7462\u7528\u752c\u8073\u8338\u84c9\u8e0a\u9394\u93de\uf9c4\u4e8e\u4f51\u5076\u512a\u53c8\u53cb\u53f3\u5b87\u5bd3\u5c24\u611a\u6182\u65f4\u725b\u7397\u7440\u76c2\u7950\u7991\u79b9\u7d06\u7fbd\u828b\u85d5\u865e\u8fc2\u9047\u90f5\u91ea\u9685\u96e8\u96e9\u52d6\u5f67\u65ed\u6631\u682f\u715c\u7a36\u90c1\u980a\u4e91\uf9c5\u6a52\u6b9e\u6f90\u7189\u8018\u82b8\u8553"],["eaa1","\u904b\u9695\u96f2\u97fb\u851a\u9b31\u4e90\u718a\u96c4\u5143\u539f\u54e1\u5713\u5712\u57a3\u5a9b\u5ac4\u5bc3\u6028\u613f\u63f4\u6c85\u6d39\u6e72\u6e90\u7230\u733f\u7457\u82d1\u8881\u8f45\u9060\uf9c6\u9662\u9858\u9d1b\u6708\u8d8a\u925e\u4f4d\u5049\u50de\u5371\u570d\u59d4\u5a01\u5c09\u6170\u6690\u6e2d\u7232\u744b\u7def\u80c3\u840e\u8466\u853f\u875f\u885b\u8918\u8b02\u9055\u97cb\u9b4f\u4e73\u4f91\u5112\u516a\uf9c7\u552f\u55a9\u5b7a\u5ba5\u5e7c\u5e7d\u5ebe\u60a0\u60df\u6108\u6109\u63c4\u6538\u6709\uf9c8\u67d4\u67da\uf9c9\u6961\u6962\u6cb9\u6d27\uf9ca\u6e38\uf9cb"],["eba1","\u6fe1\u7336\u7337\uf9cc\u745c\u7531\uf9cd\u7652\uf9ce\uf9cf\u7dad\u81fe\u8438\u88d5\u8a98\u8adb\u8aed\u8e30\u8e42\u904a\u903e\u907a\u9149\u91c9\u936e\uf9d0\uf9d1\u5809\uf9d2\u6bd3\u8089\u80b2\uf9d3\uf9d4\u5141\u596b\u5c39\uf9d5\uf9d6\u6f64\u73a7\u80e4\u8d07\uf9d7\u9217\u958f\uf9d8\uf9d9\uf9da\uf9db\u807f\u620e\u701c\u7d68\u878d\uf9dc\u57a0\u6069\u6147\u6bb7\u8abe\u9280\u96b1\u4e59\u541f\u6deb\u852d\u9670\u97f3\u98ee\u63d6\u6ce3\u9091\u51dd\u61c9\u81ba\u9df9\u4f9d\u501a\u5100\u5b9c\u610f\u61ff\u64ec\u6905\u6bc5\u7591\u77e3\u7fa9\u8264\u858f\u87fb\u8863\u8abc"],["eca1","\u8b70\u91ab\u4e8c\u4ee5\u4f0a\uf9dd\uf9de\u5937\u59e8\uf9df\u5df2\u5f1b\u5f5b\u6021\uf9e0\uf9e1\uf9e2\uf9e3\u723e\u73e5\uf9e4\u7570\u75cd\uf9e5\u79fb\uf9e6\u800c\u8033\u8084\u82e1\u8351\uf9e7\uf9e8\u8cbd\u8cb3\u9087\uf9e9\uf9ea\u98f4\u990c\uf9eb\uf9ec\u7037\u76ca\u7fca\u7fcc\u7ffc\u8b1a\u4eba\u4ec1\u5203\u5370\uf9ed\u54bd\u56e0\u59fb\u5bc5\u5f15\u5fcd\u6e6e\uf9ee\uf9ef\u7d6a\u8335\uf9f0\u8693\u8a8d\uf9f1\u976d\u9777\uf9f2\uf9f3\u4e00\u4f5a\u4f7e\u58f9\u65e5\u6ea2\u9038\u93b0\u99b9\u4efb\u58ec\u598a\u59d9\u6041\uf9f4\uf9f5\u7a14\uf9f6\u834f\u8cc3\u5165\u5344"],["eda1","\uf9f7\uf9f8\uf9f9\u4ecd\u5269\u5b55\u82bf\u4ed4\u523a\u54a8\u59c9\u59ff\u5b50\u5b57\u5b5c\u6063\u6148\u6ecb\u7099\u716e\u7386\u74f7\u75b5\u78c1\u7d2b\u8005\u81ea\u8328\u8517\u85c9\u8aee\u8cc7\u96cc\u4f5c\u52fa\u56bc\u65ab\u6628\u707c\u70b8\u7235\u7dbd\u828d\u914c\u96c0\u9d72\u5b71\u68e7\u6b98\u6f7a\u76de\u5c91\u66ab\u6f5b\u7bb4\u7c2a\u8836\u96dc\u4e08\u4ed7\u5320\u5834\u58bb\u58ef\u596c\u5c07\u5e33\u5e84\u5f35\u638c\u66b2\u6756\u6a1f\u6aa3\u6b0c\u6f3f\u7246\uf9fa\u7350\u748b\u7ae0\u7ca7\u8178\u81df\u81e7\u838a\u846c\u8523\u8594\u85cf\u88dd\u8d13\u91ac\u9577"],["eea1","\u969c\u518d\u54c9\u5728\u5bb0\u624d\u6750\u683d\u6893\u6e3d\u6ed3\u707d\u7e21\u88c1\u8ca1\u8f09\u9f4b\u9f4e\u722d\u7b8f\u8acd\u931a\u4f47\u4f4e\u5132\u5480\u59d0\u5e95\u62b5\u6775\u696e\u6a17\u6cae\u6e1a\u72d9\u732a\u75bd\u7bb8\u7d35\u82e7\u83f9\u8457\u85f7\u8a5b\u8caf\u8e87\u9019\u90b8\u96ce\u9f5f\u52e3\u540a\u5ae1\u5bc2\u6458\u6575\u6ef4\u72c4\uf9fb\u7684\u7a4d\u7b1b\u7c4d\u7e3e\u7fdf\u837b\u8b2b\u8cca\u8d64\u8de1\u8e5f\u8fea\u8ff9\u9069\u93d1\u4f43\u4f7a\u50b3\u5168\u5178\u524d\u526a\u5861\u587c\u5960\u5c08\u5c55\u5edb\u609b\u6230\u6813\u6bbf\u6c08\u6fb1"],["efa1","\u714e\u7420\u7530\u7538\u7551\u7672\u7b4c\u7b8b\u7bad\u7bc6\u7e8f\u8a6e\u8f3e\u8f49\u923f\u9293\u9322\u942b\u96fb\u985a\u986b\u991e\u5207\u622a\u6298\u6d59\u7664\u7aca\u7bc0\u7d76\u5360\u5cbe\u5e97\u6f38\u70b9\u7c98\u9711\u9b8e\u9ede\u63a5\u647a\u8776\u4e01\u4e95\u4ead\u505c\u5075\u5448\u59c3\u5b9a\u5e40\u5ead\u5ef7\u5f81\u60c5\u633a\u653f\u6574\u65cc\u6676\u6678\u67fe\u6968\u6a89\u6b63\u6c40\u6dc0\u6de8\u6e1f\u6e5e\u701e\u70a1\u738e\u73fd\u753a\u775b\u7887\u798e\u7a0b\u7a7d\u7cbe\u7d8e\u8247\u8a02\u8aea\u8c9e\u912d\u914a\u91d8\u9266\u92cc\u9320\u9706\u9756"],["f0a1","\u975c\u9802\u9f0e\u5236\u5291\u557c\u5824\u5e1d\u5f1f\u608c\u63d0\u68af\u6fdf\u796d\u7b2c\u81cd\u85ba\u88fd\u8af8\u8e44\u918d\u9664\u969b\u973d\u984c\u9f4a\u4fce\u5146\u51cb\u52a9\u5632\u5f14\u5f6b\u63aa\u64cd\u65e9\u6641\u66fa\u66f9\u671d\u689d\u68d7\u69fd\u6f15\u6f6e\u7167\u71e5\u722a\u74aa\u773a\u7956\u795a\u79df\u7a20\u7a95\u7c97\u7cdf\u7d44\u7e70\u8087\u85fb\u86a4\u8a54\u8abf\u8d99\u8e81\u9020\u906d\u91e3\u963b\u96d5\u9ce5\u65cf\u7c07\u8db3\u93c3\u5b58\u5c0a\u5352\u62d9\u731d\u5027\u5b97\u5f9e\u60b0\u616b\u68d5\u6dd9\u742e\u7a2e\u7d42\u7d9c\u7e31\u816b"],["f1a1","\u8e2a\u8e35\u937e\u9418\u4f50\u5750\u5de6\u5ea7\u632b\u7f6a\u4e3b\u4f4f\u4f8f\u505a\u59dd\u80c4\u546a\u5468\u55fe\u594f\u5b99\u5dde\u5eda\u665d\u6731\u67f1\u682a\u6ce8\u6d32\u6e4a\u6f8d\u70b7\u73e0\u7587\u7c4c\u7d02\u7d2c\u7da2\u821f\u86db\u8a3b\u8a85\u8d70\u8e8a\u8f33\u9031\u914e\u9152\u9444\u99d0\u7af9\u7ca5\u4fca\u5101\u51c6\u57c8\u5bef\u5cfb\u6659\u6a3d\u6d5a\u6e96\u6fec\u710c\u756f\u7ae3\u8822\u9021\u9075\u96cb\u99ff\u8301\u4e2d\u4ef2\u8846\u91cd\u537d\u6adb\u696b\u6c41\u847a\u589e\u618e\u66fe\u62ef\u70dd\u7511\u75c7\u7e52\u84b8\u8b49\u8d08\u4e4b\u53ea"],["f2a1","\u54ab\u5730\u5740\u5fd7\u6301\u6307\u646f\u652f\u65e8\u667a\u679d\u67b3\u6b62\u6c60\u6c9a\u6f2c\u77e5\u7825\u7949\u7957\u7d19\u80a2\u8102\u81f3\u829d\u82b7\u8718\u8a8c\uf9fc\u8d04\u8dbe\u9072\u76f4\u7a19\u7a37\u7e54\u8077\u5507\u55d4\u5875\u632f\u6422\u6649\u664b\u686d\u699b\u6b84\u6d25\u6eb1\u73cd\u7468\u74a1\u755b\u75b9\u76e1\u771e\u778b\u79e6\u7e09\u7e1d\u81fb\u852f\u8897\u8a3a\u8cd1\u8eeb\u8fb0\u9032\u93ad\u9663\u9673\u9707\u4f84\u53f1\u59ea\u5ac9\u5e19\u684e\u74c6\u75be\u79e9\u7a92\u81a3\u86ed\u8cea\u8dcc\u8fed\u659f\u6715\uf9fd\u57f7\u6f57\u7ddd\u8f2f"],["f3a1","\u93f6\u96c6\u5fb5\u61f2\u6f84\u4e14\u4f98\u501f\u53c9\u55df\u5d6f\u5dee\u6b21\u6b64\u78cb\u7b9a\uf9fe\u8e49\u8eca\u906e\u6349\u643e\u7740\u7a84\u932f\u947f\u9f6a\u64b0\u6faf\u71e6\u74a8\u74da\u7ac4\u7c12\u7e82\u7cb2\u7e98\u8b9a\u8d0a\u947d\u9910\u994c\u5239\u5bdf\u64e6\u672d\u7d2e\u50ed\u53c3\u5879\u6158\u6159\u61fa\u65ac\u7ad9\u8b92\u8b96\u5009\u5021\u5275\u5531\u5a3c\u5ee0\u5f70\u6134\u655e\u660c\u6636\u66a2\u69cd\u6ec4\u6f32\u7316\u7621\u7a93\u8139\u8259\u83d6\u84bc\u50b5\u57f0\u5bc0\u5be8\u5f69\u63a1\u7826\u7db5\u83dc\u8521\u91c7\u91f5\u518a\u67f5\u7b56"],["f4a1","\u8cac\u51c4\u59bb\u60bd\u8655\u501c\uf9ff\u5254\u5c3a\u617d\u621a\u62d3\u64f2\u65a5\u6ecc\u7620\u810a\u8e60\u965f\u96bb\u4edf\u5343\u5598\u5929\u5ddd\u64c5\u6cc9\u6dfa\u7394\u7a7f\u821b\u85a6\u8ce4\u8e10\u9077\u91e7\u95e1\u9621\u97c6\u51f8\u54f2\u5586\u5fb9\u64a4\u6f88\u7db4\u8f1f\u8f4d\u9435\u50c9\u5c16\u6cbe\u6dfb\u751b\u77bb\u7c3d\u7c64\u8a79\u8ac2\u581e\u59be\u5e16\u6377\u7252\u758a\u776b\u8adc\u8cbc\u8f12\u5ef3\u6674\u6df8\u807d\u83c1\u8acb\u9751\u9bd6\ufa00\u5243\u66ff\u6d95\u6eef\u7de0\u8ae6\u902e\u905e\u9ad4\u521d\u527f\u54e8\u6194\u6284\u62db\u68a2"],["f5a1","\u6912\u695a\u6a35\u7092\u7126\u785d\u7901\u790e\u79d2\u7a0d\u8096\u8278\u82d5\u8349\u8549\u8c82\u8d85\u9162\u918b\u91ae\u4fc3\u56d1\u71ed\u77d7\u8700\u89f8\u5bf8\u5fd6\u6751\u90a8\u53e2\u585a\u5bf5\u60a4\u6181\u6460\u7e3d\u8070\u8525\u9283\u64ae\u50ac\u5d14\u6700\u589c\u62bd\u63a8\u690e\u6978\u6a1e\u6e6b\u76ba\u79cb\u82bb\u8429\u8acf\u8da8\u8ffd\u9112\u914b\u919c\u9310\u9318\u939a\u96db\u9a36\u9c0d\u4e11\u755c\u795d\u7afa\u7b51\u7bc9\u7e2e\u84c4\u8e59\u8e74\u8ef8\u9010\u6625\u693f\u7443\u51fa\u672e\u9edc\u5145\u5fe0\u6c96\u87f2\u885d\u8877\u60b4\u81b5\u8403"],["f6a1","\u8d05\u53d6\u5439\u5634\u5a36\u5c31\u708a\u7fe0\u805a\u8106\u81ed\u8da3\u9189\u9a5f\u9df2\u5074\u4ec4\u53a0\u60fb\u6e2c\u5c64\u4f88\u5024\u55e4\u5cd9\u5e5f\u6065\u6894\u6cbb\u6dc4\u71be\u75d4\u75f4\u7661\u7a1a\u7a49\u7dc7\u7dfb\u7f6e\u81f4\u86a9\u8f1c\u96c9\u99b3\u9f52\u5247\u52c5\u98ed\u89aa\u4e03\u67d2\u6f06\u4fb5\u5be2\u6795\u6c88\u6d78\u741b\u7827\u91dd\u937c\u87c4\u79e4\u7a31\u5feb\u4ed6\u54a4\u553e\u58ae\u59a5\u60f0\u6253\u62d6\u6736\u6955\u8235\u9640\u99b1\u99dd\u502c\u5353\u5544\u577c\ufa01\u6258\ufa02\u64e2\u666b\u67dd\u6fc1\u6fef\u7422\u7438\u8a17"],["f7a1","\u9438\u5451\u5606\u5766\u5f48\u619a\u6b4e\u7058\u70ad\u7dbb\u8a95\u596a\u812b\u63a2\u7708\u803d\u8caa\u5854\u642d\u69bb\u5b95\u5e11\u6e6f\ufa03\u8569\u514c\u53f0\u592a\u6020\u614b\u6b86\u6c70\u6cf0\u7b1e\u80ce\u82d4\u8dc6\u90b0\u98b1\ufa04\u64c7\u6fa4\u6491\u6504\u514e\u5410\u571f\u8a0e\u615f\u6876\ufa05\u75db\u7b52\u7d71\u901a\u5806\u69cc\u817f\u892a\u9000\u9839\u5078\u5957\u59ac\u6295\u900f\u9b2a\u615d\u7279\u95d6\u5761\u5a46\u5df4\u628a\u64ad\u64fa\u6777\u6ce2\u6d3e\u722c\u7436\u7834\u7f77\u82ad\u8ddb\u9817\u5224\u5742\u677f\u7248\u74e3\u8ca9\u8fa6\u9211"],["f8a1","\u962a\u516b\u53ed\u634c\u4f69\u5504\u6096\u6557\u6c9b\u6d7f\u724c\u72fd\u7a17\u8987\u8c9d\u5f6d\u6f8e\u70f9\u81a8\u610e\u4fbf\u504f\u6241\u7247\u7bc7\u7de8\u7fe9\u904d\u97ad\u9a19\u8cb6\u576a\u5e73\u67b0\u840d\u8a55\u5420\u5b16\u5e63\u5ee2\u5f0a\u6583\u80ba\u853d\u9589\u965b\u4f48\u5305\u530d\u530f\u5486\u54fa\u5703\u5e03\u6016\u629b\u62b1\u6355\ufa06\u6ce1\u6d66\u75b1\u7832\u80de\u812f\u82de\u8461\u84b2\u888d\u8912\u900b\u92ea\u98fd\u9b91\u5e45\u66b4\u66dd\u7011\u7206\ufa07\u4ff5\u527d\u5f6a\u6153\u6753\u6a19\u6f02\u74e2\u7968\u8868\u8c79\u98c7\u98c4\u9a43"],["f9a1","\u54c1\u7a1f\u6953\u8af7\u8c4a\u98a8\u99ae\u5f7c\u62ab\u75b2\u76ae\u88ab\u907f\u9642\u5339\u5f3c\u5fc5\u6ccc\u73cc\u7562\u758b\u7b46\u82fe\u999d\u4e4f\u903c\u4e0b\u4f55\u53a6\u590f\u5ec8\u6630\u6cb3\u7455\u8377\u8766\u8cc0\u9050\u971e\u9c15\u58d1\u5b78\u8650\u8b14\u9db4\u5bd2\u6068\u608d\u65f1\u6c57\u6f22\u6fa3\u701a\u7f55\u7ff0\u9591\u9592\u9650\u97d3\u5272\u8f44\u51fd\u542b\u54b8\u5563\u558a\u6abb\u6db5\u7dd8\u8266\u929c\u9677\u9e79\u5408\u54c8\u76d2\u86e4\u95a4\u95d4\u965c\u4ea2\u4f09\u59ee\u5ae6\u5df7\u6052\u6297\u676d\u6841\u6c86\u6e2f\u7f38\u809b\u822a"],["faa1","\ufa08\ufa09\u9805\u4ea5\u5055\u54b3\u5793\u595a\u5b69\u5bb3\u61c8\u6977\u6d77\u7023\u87f9\u89e3\u8a72\u8ae7\u9082\u99ed\u9ab8\u52be\u6838\u5016\u5e78\u674f\u8347\u884c\u4eab\u5411\u56ae\u73e6\u9115\u97ff\u9909\u9957\u9999\u5653\u589f\u865b\u8a31\u61b2\u6af6\u737b\u8ed2\u6b47\u96aa\u9a57\u5955\u7200\u8d6b\u9769\u4fd4\u5cf4\u5f26\u61f8\u665b\u6ceb\u70ab\u7384\u73b9\u73fe\u7729\u774d\u7d43\u7d62\u7e23\u8237\u8852\ufa0a\u8ce2\u9249\u986f\u5b51\u7a74\u8840\u9801\u5acc\u4fe0\u5354\u593e\u5cfd\u633e\u6d79\u72f9\u8105\u8107\u83a2\u92cf\u9830\u4ea8\u5144\u5211\u578b"],["fba1","\u5f62\u6cc2\u6ece\u7005\u7050\u70af\u7192\u73e9\u7469\u834a\u87a2\u8861\u9008\u90a2\u93a3\u99a8\u516e\u5f57\u60e0\u6167\u66b3\u8559\u8e4a\u91af\u978b\u4e4e\u4e92\u547c\u58d5\u58fa\u597d\u5cb5\u5f27\u6236\u6248\u660a\u6667\u6beb\u6d69\u6dcf\u6e56\u6ef8\u6f94\u6fe0\u6fe9\u705d\u72d0\u7425\u745a\u74e0\u7693\u795c\u7cca\u7e1e\u80e1\u82a6\u846b\u84bf\u864e\u865f\u8774\u8b77\u8c6a\u93ac\u9800\u9865\u60d1\u6216\u9177\u5a5a\u660f\u6df7\u6e3e\u743f\u9b42\u5ffd\u60da\u7b0f\u54c4\u5f18\u6c5e\u6cd3\u6d2a\u70d8\u7d05\u8679\u8a0c\u9d3b\u5316\u548c\u5b05\u6a3a\u706b\u7575"],["fca1","\u798d\u79be\u82b1\u83ef\u8a71\u8b41\u8ca8\u9774\ufa0b\u64f4\u652b\u78ba\u78bb\u7a6b\u4e38\u559a\u5950\u5ba6\u5e7b\u60a3\u63db\u6b61\u6665\u6853\u6e19\u7165\u74b0\u7d08\u9084\u9a69\u9c25\u6d3b\u6ed1\u733e\u8c41\u95ca\u51f0\u5e4c\u5fa8\u604d\u60f6\u6130\u614c\u6643\u6644\u69a5\u6cc1\u6e5f\u6ec9\u6f62\u714c\u749c\u7687\u7bc1\u7c27\u8352\u8757\u9051\u968d\u9ec3\u532f\u56de\u5efb\u5f8a\u6062\u6094\u61f7\u6666\u6703\u6a9c\u6dee\u6fae\u7070\u736a\u7e6a\u81be\u8334\u86d4\u8aa8\u8cc4\u5283\u7372\u5b96\u6a6b\u9404\u54ee\u5686\u5b5d\u6548\u6585\u66c9\u689f\u6d8d\u6dc6"],["fda1","\u723b\u80b4\u9175\u9a4d\u4faf\u5019\u539a\u540e\u543c\u5589\u55c5\u5e3f\u5f8c\u673d\u7166\u73dd\u9005\u52db\u52f3\u5864\u58ce\u7104\u718f\u71fb\u85b0\u8a13\u6688\u85a8\u55a7\u6684\u714a\u8431\u5349\u5599\u6bc1\u5f59\u5fbd\u63ee\u6689\u7147\u8af1\u8f1d\u9ebe\u4f11\u643a\u70cb\u7566\u8667\u6064\u8b4e\u9df8\u5147\u51f6\u5308\u6d36\u80f8\u9ed1\u6615\u6b23\u7098\u75d5\u5403\u5c79\u7d07\u8a16\u6b20\u6b3d\u6b46\u5438\u6070\u6d3d\u7fd5\u8208\u50d6\u51de\u559c\u566b\u56cd\u59ec\u5b09\u5e0c\u6199\u6198\u6231\u665e\u66e6\u7199\u71b9\u71ba\u72a7\u79a7\u7a00\u7fb2\u8a70"]]},{}],15:[function(require,module,exports){module.exports=[["0","\0",127],["a140","\u3000\uff0c\u3001\u3002\uff0e\u2027\uff1b\uff1a\uff1f\uff01\ufe30\u2026\u2025\ufe50\ufe51\ufe52\xb7\ufe54\ufe55\ufe56\ufe57\uff5c\u2013\ufe31\u2014\ufe33\u2574\ufe34\ufe4f\uff08\uff09\ufe35\ufe36\uff5b\uff5d\ufe37\ufe38\u3014\u3015\ufe39\ufe3a\u3010\u3011\ufe3b\ufe3c\u300a\u300b\ufe3d\ufe3e\u3008\u3009\ufe3f\ufe40\u300c\u300d\ufe41\ufe42\u300e\u300f\ufe43\ufe44\ufe59\ufe5a"],["a1a1","\ufe5b\ufe5c\ufe5d\ufe5e\u2018\u2019\u201c\u201d\u301d\u301e\u2035\u2032\uff03\uff06\uff0a\u203b\xa7\u3003\u25cb\u25cf\u25b3\u25b2\u25ce\u2606\u2605\u25c7\u25c6\u25a1\u25a0\u25bd\u25bc\u32a3\u2105\xaf\uffe3\uff3f\u02cd\ufe49\ufe4a\ufe4d\ufe4e\ufe4b\ufe4c\ufe5f\ufe60\ufe61\uff0b\uff0d\xd7\xf7\xb1\u221a\uff1c\uff1e\uff1d\u2266\u2267\u2260\u221e\u2252\u2261\ufe62",4,"\uff5e\u2229\u222a\u22a5\u2220\u221f\u22bf\u33d2\u33d1\u222b\u222e\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uff0f"],["a240","\uff3c\u2215\ufe68\uff04\uffe5\u3012\uffe0\uffe1\uff05\uff20\u2103\u2109\ufe69\ufe6a\ufe6b\u33d5\u339c\u339d\u339e\u33ce\u33a1\u338e\u338f\u33c4\xb0\u5159\u515b\u515e\u515d\u5161\u5163\u55e7\u74e9\u7cce\u2581",7,"\u258f\u258e\u258d\u258c\u258b\u258a\u2589\u253c\u2534\u252c\u2524\u251c\u2594\u2500\u2502\u2595\u250c\u2510\u2514\u2518\u256d"],["a2a1","\u256e\u2570\u256f\u2550\u255e\u256a\u2561\u25e2\u25e3\u25e5\u25e4\u2571\u2572\u2573\uff10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uff21",25,"\uff41",21],["a340","\uff57\uff58\uff59\uff5a\u0391",16,"\u03a3",6,"\u03b1",16,"\u03c3",6,"\u3105",10],["a3a1","\u3110",25,"\u02d9\u02c9\u02ca\u02c7\u02cb"],["a3e1","\u20ac"],["a440","\u4e00\u4e59\u4e01\u4e03\u4e43\u4e5d\u4e86\u4e8c\u4eba\u513f\u5165\u516b\u51e0\u5200\u5201\u529b\u5315\u5341\u535c\u53c8\u4e09\u4e0b\u4e08\u4e0a\u4e2b\u4e38\u51e1\u4e45\u4e48\u4e5f\u4e5e\u4e8e\u4ea1\u5140\u5203\u52fa\u5343\u53c9\u53e3\u571f\u58eb\u5915\u5927\u5973\u5b50\u5b51\u5b53\u5bf8\u5c0f\u5c22\u5c38\u5c71\u5ddd\u5de5\u5df1\u5df2\u5df3\u5dfe\u5e72\u5efe\u5f0b\u5f13\u624d"],["a4a1","\u4e11\u4e10\u4e0d\u4e2d\u4e30\u4e39\u4e4b\u5c39\u4e88\u4e91\u4e95\u4e92\u4e94\u4ea2\u4ec1\u4ec0\u4ec3\u4ec6\u4ec7\u4ecd\u4eca\u4ecb\u4ec4\u5143\u5141\u5167\u516d\u516e\u516c\u5197\u51f6\u5206\u5207\u5208\u52fb\u52fe\u52ff\u5316\u5339\u5348\u5347\u5345\u535e\u5384\u53cb\u53ca\u53cd\u58ec\u5929\u592b\u592a\u592d\u5b54\u5c11\u5c24\u5c3a\u5c6f\u5df4\u5e7b\u5eff\u5f14\u5f15\u5fc3\u6208\u6236\u624b\u624e\u652f\u6587\u6597\u65a4\u65b9\u65e5\u66f0\u6708\u6728\u6b20\u6b62\u6b79\u6bcb\u6bd4\u6bdb\u6c0f\u6c34\u706b\u722a\u7236\u723b\u7247\u7259\u725b\u72ac\u738b\u4e19"],["a540","\u4e16\u4e15\u4e14\u4e18\u4e3b\u4e4d\u4e4f\u4e4e\u4ee5\u4ed8\u4ed4\u4ed5\u4ed6\u4ed7\u4ee3\u4ee4\u4ed9\u4ede\u5145\u5144\u5189\u518a\u51ac\u51f9\u51fa\u51f8\u520a\u52a0\u529f\u5305\u5306\u5317\u531d\u4edf\u534a\u5349\u5361\u5360\u536f\u536e\u53bb\u53ef\u53e4\u53f3\u53ec\u53ee\u53e9\u53e8\u53fc\u53f8\u53f5\u53eb\u53e6\u53ea\u53f2\u53f1\u53f0\u53e5\u53ed\u53fb\u56db\u56da\u5916"],["a5a1","\u592e\u5931\u5974\u5976\u5b55\u5b83\u5c3c\u5de8\u5de7\u5de6\u5e02\u5e03\u5e73\u5e7c\u5f01\u5f18\u5f17\u5fc5\u620a\u6253\u6254\u6252\u6251\u65a5\u65e6\u672e\u672c\u672a\u672b\u672d\u6b63\u6bcd\u6c11\u6c10\u6c38\u6c41\u6c40\u6c3e\u72af\u7384\u7389\u74dc\u74e6\u7518\u751f\u7528\u7529\u7530\u7531\u7532\u7533\u758b\u767d\u76ae\u76bf\u76ee\u77db\u77e2\u77f3\u793a\u79be\u7a74\u7acb\u4e1e\u4e1f\u4e52\u4e53\u4e69\u4e99\u4ea4\u4ea6\u4ea5\u4eff\u4f09\u4f19\u4f0a\u4f15\u4f0d\u4f10\u4f11\u4f0f\u4ef2\u4ef6\u4efb\u4ef0\u4ef3\u4efd\u4f01\u4f0b\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518d\u51b0\u5217\u5211\u5212\u520e\u5216\u52a3\u5308\u5321\u5320\u5370\u5371\u5409\u540f\u540c\u540a\u5410\u5401\u540b\u5404\u5411\u540d\u5408\u5403\u540e\u5406\u5412\u56e0\u56de\u56dd\u5733\u5730\u5728\u572d\u572c\u572f\u5729\u5919\u591a\u5937\u5938\u5984\u5978\u5983\u597d\u5979\u5982\u5981\u5b57\u5b58\u5b87\u5b88\u5b85\u5b89\u5bfa\u5c16\u5c79\u5dde\u5e06\u5e76\u5e74"],["a6a1","\u5f0f\u5f1b\u5fd9\u5fd6\u620e\u620c\u620d\u6210\u6263\u625b\u6258\u6536\u65e9\u65e8\u65ec\u65ed\u66f2\u66f3\u6709\u673d\u6734\u6731\u6735\u6b21\u6b64\u6b7b\u6c16\u6c5d\u6c57\u6c59\u6c5f\u6c60\u6c50\u6c55\u6c61\u6c5b\u6c4d\u6c4e\u7070\u725f\u725d\u767e\u7af9\u7c73\u7cf8\u7f36\u7f8a\u7fbd\u8001\u8003\u800c\u8012\u8033\u807f\u8089\u808b\u808c\u81e3\u81ea\u81f3\u81fc\u820c\u821b\u821f\u826e\u8272\u827e\u866b\u8840\u884c\u8863\u897f\u9621\u4e32\u4ea8\u4f4d\u4f4f\u4f47\u4f57\u4f5e\u4f34\u4f5b\u4f55\u4f30\u4f50\u4f51\u4f3d\u4f3a\u4f38\u4f43\u4f54\u4f3c\u4f46\u4f63"],["a740","\u4f5c\u4f60\u4f2f\u4f4e\u4f36\u4f59\u4f5d\u4f48\u4f5a\u514c\u514b\u514d\u5175\u51b6\u51b7\u5225\u5224\u5229\u522a\u5228\u52ab\u52a9\u52aa\u52ac\u5323\u5373\u5375\u541d\u542d\u541e\u543e\u5426\u544e\u5427\u5446\u5443\u5433\u5448\u5442\u541b\u5429\u544a\u5439\u543b\u5438\u542e\u5435\u5436\u5420\u543c\u5440\u5431\u542b\u541f\u542c\u56ea\u56f0\u56e4\u56eb\u574a\u5751\u5740\u574d"],["a7a1","\u5747\u574e\u573e\u5750\u574f\u573b\u58ef\u593e\u599d\u5992\u59a8\u599e\u59a3\u5999\u5996\u598d\u59a4\u5993\u598a\u59a5\u5b5d\u5b5c\u5b5a\u5b5b\u5b8c\u5b8b\u5b8f\u5c2c\u5c40\u5c41\u5c3f\u5c3e\u5c90\u5c91\u5c94\u5c8c\u5deb\u5e0c\u5e8f\u5e87\u5e8a\u5ef7\u5f04\u5f1f\u5f64\u5f62\u5f77\u5f79\u5fd8\u5fcc\u5fd7\u5fcd\u5ff1\u5feb\u5ff8\u5fea\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626d\u628a\u627c\u627e\u6279\u6273\u6292\u626f\u6298\u626e\u6295\u6293\u6291\u6286\u6539\u653b\u6538\u65f1\u66f4\u675f\u674e\u674f\u6750\u6751\u675c\u6756\u675e\u6749\u6746\u6760"],["a840","\u6753\u6757\u6b65\u6bcf\u6c42\u6c5e\u6c99\u6c81\u6c88\u6c89\u6c85\u6c9b\u6c6a\u6c7a\u6c90\u6c70\u6c8c\u6c68\u6c96\u6c92\u6c7d\u6c83\u6c72\u6c7e\u6c74\u6c86\u6c76\u6c8d\u6c94\u6c98\u6c82\u7076\u707c\u707d\u7078\u7262\u7261\u7260\u72c4\u72c2\u7396\u752c\u752b\u7537\u7538\u7682\u76ef\u77e3\u79c1\u79c0\u79bf\u7a76\u7cfb\u7f55\u8096\u8093\u809d\u8098\u809b\u809a\u80b2\u826f\u8292"],["a8a1","\u828b\u828d\u898b\u89d2\u8a00\u8c37\u8c46\u8c55\u8c9d\u8d64\u8d70\u8db3\u8eab\u8eca\u8f9b\u8fb0\u8fc2\u8fc6\u8fc5\u8fc4\u5de1\u9091\u90a2\u90aa\u90a6\u90a3\u9149\u91c6\u91cc\u9632\u962e\u9631\u962a\u962c\u4e26\u4e56\u4e73\u4e8b\u4e9b\u4e9e\u4eab\u4eac\u4f6f\u4f9d\u4f8d\u4f73\u4f7f\u4f6c\u4f9b\u4f8b\u4f86\u4f83\u4f70\u4f75\u4f88\u4f69\u4f7b\u4f96\u4f7e\u4f8f\u4f91\u4f7a\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51bd\u51fd\u523b\u5238\u5237\u523a\u5230\u522e\u5236\u5241\u52be\u52bb\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53d6\u53d4\u53d7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547b\u5477\u5484\u5492\u5486\u547c\u5490\u5471\u5476\u548c\u549a\u5462\u5468\u548b\u547d\u548e\u56fa\u5783\u5777\u576a\u5769\u5761\u5766\u5764\u577c\u591c\u5949\u5947\u5948\u5944\u5954\u59be\u59bb\u59d4\u59b9\u59ae\u59d1\u59c6\u59d0\u59cd\u59cb\u59d3\u59ca\u59af\u59b3\u59d2\u59c5\u5b5f\u5b64\u5b63\u5b97\u5b9a\u5b98\u5b9c\u5b99\u5b9b\u5c1a\u5c48\u5c45"],["a9a1","\u5c46\u5cb7\u5ca1\u5cb8\u5ca9\u5cab\u5cb1\u5cb3\u5e18\u5e1a\u5e16\u5e15\u5e1b\u5e11\u5e78\u5e9a\u5e97\u5e9c\u5e95\u5e96\u5ef6\u5f26\u5f27\u5f29\u5f80\u5f81\u5f7f\u5f7c\u5fdd\u5fe0\u5ffd\u5ff5\u5fff\u600f\u6014\u602f\u6035\u6016\u602a\u6015\u6021\u6027\u6029\u602b\u601b\u6216\u6215\u623f\u623e\u6240\u627f\u62c9\u62cc\u62c4\u62bf\u62c2\u62b9\u62d2\u62db\u62ab\u62d3\u62d4\u62cb\u62c8\u62a8\u62bd\u62bc\u62d0\u62d9\u62c7\u62cd\u62b5\u62da\u62b1\u62d8\u62d6\u62d7\u62c6\u62ac\u62ce\u653e\u65a7\u65bc\u65fa\u6614\u6613\u660c\u6606\u6602\u660e\u6600\u660f\u6615\u660a"],["aa40","\u6607\u670d\u670b\u676d\u678b\u6795\u6771\u679c\u6773\u6777\u6787\u679d\u6797\u676f\u6770\u677f\u6789\u677e\u6790\u6775\u679a\u6793\u677c\u676a\u6772\u6b23\u6b66\u6b67\u6b7f\u6c13\u6c1b\u6ce3\u6ce8\u6cf3\u6cb1\u6ccc\u6ce5\u6cb3\u6cbd\u6cbe\u6cbc\u6ce2\u6cab\u6cd5\u6cd3\u6cb8\u6cc4\u6cb9\u6cc1\u6cae\u6cd7\u6cc5\u6cf1\u6cbf\u6cbb\u6ce1\u6cdb\u6cca\u6cac\u6cef\u6cdc\u6cd6\u6ce0"],["aaa1","\u7095\u708e\u7092\u708a\u7099\u722c\u722d\u7238\u7248\u7267\u7269\u72c0\u72ce\u72d9\u72d7\u72d0\u73a9\u73a8\u739f\u73ab\u73a5\u753d\u759d\u7599\u759a\u7684\u76c2\u76f2\u76f4\u77e5\u77fd\u793e\u7940\u7941\u79c9\u79c8\u7a7a\u7a79\u7afa\u7cfe\u7f54\u7f8c\u7f8b\u8005\u80ba\u80a5\u80a2\u80b1\u80a1\u80ab\u80a9\u80b4\u80aa\u80af\u81e5\u81fe\u820d\u82b3\u829d\u8299\u82ad\u82bd\u829f\u82b9\u82b1\u82ac\u82a5\u82af\u82b8\u82a3\u82b0\u82be\u82b7\u864e\u8671\u521d\u8868\u8ecb\u8fce\u8fd4\u8fd1\u90b5\u90b8\u90b1\u90b6\u91c7\u91d1\u9577\u9580\u961c\u9640\u963f\u963b\u9644"],["ab40","\u9642\u96b9\u96e8\u9752\u975e\u4e9f\u4ead\u4eae\u4fe1\u4fb5\u4faf\u4fbf\u4fe0\u4fd1\u4fcf\u4fdd\u4fc3\u4fb6\u4fd8\u4fdf\u4fca\u4fd7\u4fae\u4fd0\u4fc4\u4fc2\u4fda\u4fce\u4fde\u4fb7\u5157\u5192\u5191\u51a0\u524e\u5243\u524a\u524d\u524c\u524b\u5247\u52c7\u52c9\u52c3\u52c1\u530d\u5357\u537b\u539a\u53db\u54ac\u54c0\u54a8\u54ce\u54c9\u54b8\u54a6\u54b3\u54c7\u54c2\u54bd\u54aa\u54c1"],["aba1","\u54c4\u54c8\u54af\u54ab\u54b1\u54bb\u54a9\u54a7\u54bf\u56ff\u5782\u578b\u57a0\u57a3\u57a2\u57ce\u57ae\u5793\u5955\u5951\u594f\u594e\u5950\u59dc\u59d8\u59ff\u59e3\u59e8\u5a03\u59e5\u59ea\u59da\u59e6\u5a01\u59fb\u5b69\u5ba3\u5ba6\u5ba4\u5ba2\u5ba5\u5c01\u5c4e\u5c4f\u5c4d\u5c4b\u5cd9\u5cd2\u5df7\u5e1d\u5e25\u5e1f\u5e7d\u5ea0\u5ea6\u5efa\u5f08\u5f2d\u5f65\u5f88\u5f85\u5f8a\u5f8b\u5f87\u5f8c\u5f89\u6012\u601d\u6020\u6025\u600e\u6028\u604d\u6070\u6068\u6062\u6046\u6043\u606c\u606b\u606a\u6064\u6241\u62dc\u6316\u6309\u62fc\u62ed\u6301\u62ee\u62fd\u6307\u62f1\u62f7"],["ac40","\u62ef\u62ec\u62fe\u62f4\u6311\u6302\u653f\u6545\u65ab\u65bd\u65e2\u6625\u662d\u6620\u6627\u662f\u661f\u6628\u6631\u6624\u66f7\u67ff\u67d3\u67f1\u67d4\u67d0\u67ec\u67b6\u67af\u67f5\u67e9\u67ef\u67c4\u67d1\u67b4\u67da\u67e5\u67b8\u67cf\u67de\u67f3\u67b0\u67d9\u67e2\u67dd\u67d2\u6b6a\u6b83\u6b86\u6bb5\u6bd2\u6bd7\u6c1f\u6cc9\u6d0b\u6d32\u6d2a\u6d41\u6d25\u6d0c\u6d31\u6d1e\u6d17"],["aca1","\u6d3b\u6d3d\u6d3e\u6d36\u6d1b\u6cf5\u6d39\u6d27\u6d38\u6d29\u6d2e\u6d35\u6d0e\u6d2b\u70ab\u70ba\u70b3\u70ac\u70af\u70ad\u70b8\u70ae\u70a4\u7230\u7272\u726f\u7274\u72e9\u72e0\u72e1\u73b7\u73ca\u73bb\u73b2\u73cd\u73c0\u73b3\u751a\u752d\u754f\u754c\u754e\u754b\u75ab\u75a4\u75a5\u75a2\u75a3\u7678\u7686\u7687\u7688\u76c8\u76c6\u76c3\u76c5\u7701\u76f9\u76f8\u7709\u770b\u76fe\u76fc\u7707\u77dc\u7802\u7814\u780c\u780d\u7946\u7949\u7948\u7947\u79b9\u79ba\u79d1\u79d2\u79cb\u7a7f\u7a81\u7aff\u7afd\u7c7d\u7d02\u7d05\u7d00\u7d09\u7d07\u7d04\u7d06\u7f38\u7f8e\u7fbf\u8004"],["ad40","\u8010\u800d\u8011\u8036\u80d6\u80e5\u80da\u80c3\u80c4\u80cc\u80e1\u80db\u80ce\u80de\u80e4\u80dd\u81f4\u8222\u82e7\u8303\u8305\u82e3\u82db\u82e6\u8304\u82e5\u8302\u8309\u82d2\u82d7\u82f1\u8301\u82dc\u82d4\u82d1\u82de\u82d3\u82df\u82ef\u8306\u8650\u8679\u867b\u867a\u884d\u886b\u8981\u89d4\u8a08\u8a02\u8a03\u8c9e\u8ca0\u8d74\u8d73\u8db4\u8ecd\u8ecc\u8ff0\u8fe6\u8fe2\u8fea\u8fe5"],["ada1","\u8fed\u8feb\u8fe4\u8fe8\u90ca\u90ce\u90c1\u90c3\u914b\u914a\u91cd\u9582\u9650\u964b\u964c\u964d\u9762\u9769\u97cb\u97ed\u97f3\u9801\u98a8\u98db\u98df\u9996\u9999\u4e58\u4eb3\u500c\u500d\u5023\u4fef\u5026\u5025\u4ff8\u5029\u5016\u5006\u503c\u501f\u501a\u5012\u5011\u4ffa\u5000\u5014\u5028\u4ff1\u5021\u500b\u5019\u5018\u4ff3\u4fee\u502d\u502a\u4ffe\u502b\u5009\u517c\u51a4\u51a5\u51a2\u51cd\u51cc\u51c6\u51cb\u5256\u525c\u5254\u525b\u525d\u532a\u537f\u539f\u539d\u53df\u54e8\u5510\u5501\u5537\u54fc\u54e5\u54f2\u5506\u54fa\u5514\u54e9\u54ed\u54e1\u5509\u54ee\u54ea"],["ae40","\u54e6\u5527\u5507\u54fd\u550f\u5703\u5704\u57c2\u57d4\u57cb\u57c3\u5809\u590f\u5957\u5958\u595a\u5a11\u5a18\u5a1c\u5a1f\u5a1b\u5a13\u59ec\u5a20\u5a23\u5a29\u5a25\u5a0c\u5a09\u5b6b\u5c58\u5bb0\u5bb3\u5bb6\u5bb4\u5bae\u5bb5\u5bb9\u5bb8\u5c04\u5c51\u5c55\u5c50\u5ced\u5cfd\u5cfb\u5cea\u5ce8\u5cf0\u5cf6\u5d01\u5cf4\u5dee\u5e2d\u5e2b\u5eab\u5ead\u5ea7\u5f31\u5f92\u5f91\u5f90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606d\u6069\u606f\u6084\u609f\u609a\u608d\u6094\u608c\u6085\u6096\u6247\u62f3\u6308\u62ff\u634e\u633e\u632f\u6355\u6342\u6346\u634f\u6349\u633a\u6350\u633d\u632a\u632b\u6328\u634d\u634c\u6548\u6549\u6599\u65c1\u65c5\u6642\u6649\u664f\u6643\u6652\u664c\u6645\u6641\u66f8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68b3\u6817\u684c\u6851\u683d\u67f4\u6850\u6840\u683c\u6843\u682a\u6845\u6813\u6818\u6841\u6b8a\u6b89\u6bb7\u6c23\u6c27\u6c28\u6c26\u6c24\u6cf0\u6d6a\u6d95\u6d88\u6d87\u6d66\u6d78\u6d77\u6d59\u6d93"],["af40","\u6d6c\u6d89\u6d6e\u6d5a\u6d74\u6d69\u6d8c\u6d8a\u6d79\u6d85\u6d65\u6d94\u70ca\u70d8\u70e4\u70d9\u70c8\u70cf\u7239\u7279\u72fc\u72f9\u72fd\u72f8\u72f7\u7386\u73ed\u7409\u73ee\u73e0\u73ea\u73de\u7554\u755d\u755c\u755a\u7559\u75be\u75c5\u75c7\u75b2\u75b3\u75bd\u75bc\u75b9\u75c2\u75b8\u768b\u76b0\u76ca\u76cd\u76ce\u7729\u771f\u7720\u7728\u77e9\u7830\u7827\u7838\u781d\u7834\u7837"],["afa1","\u7825\u782d\u7820\u781f\u7832\u7955\u7950\u7960\u795f\u7956\u795e\u795d\u7957\u795a\u79e4\u79e3\u79e7\u79df\u79e6\u79e9\u79d8\u7a84\u7a88\u7ad9\u7b06\u7b11\u7c89\u7d21\u7d17\u7d0b\u7d0a\u7d20\u7d22\u7d14\u7d10\u7d15\u7d1a\u7d1c\u7d0d\u7d19\u7d1b\u7f3a\u7f5f\u7f94\u7fc5\u7fc1\u8006\u8018\u8015\u8019\u8017\u803d\u803f\u80f1\u8102\u80f0\u8105\u80ed\u80f4\u8106\u80f8\u80f3\u8108\u80fd\u810a\u80fc\u80ef\u81ed\u81ec\u8200\u8210\u822a\u822b\u8228\u822c\u82bb\u832b\u8352\u8354\u834a\u8338\u8350\u8349\u8335\u8334\u834f\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868a\u86aa\u8693\u86a4\u86a9\u868c\u86a3\u869c\u8870\u8877\u8881\u8882\u887d\u8879\u8a18\u8a10\u8a0e\u8a0c\u8a15\u8a0a\u8a17\u8a13\u8a16\u8a0f\u8a11\u8c48\u8c7a\u8c79\u8ca1\u8ca2\u8d77\u8eac\u8ed2\u8ed4\u8ecf\u8fb1\u9001\u9006\u8ff7\u9000\u8ffa\u8ff4\u9003\u8ffd\u9005\u8ff8\u9095\u90e1\u90dd\u90e2\u9152\u914d\u914c\u91d8\u91dd\u91d7\u91dc\u91d9\u9583\u9662\u9663\u9661"],["b0a1","\u965b\u965d\u9664\u9658\u965e\u96bb\u98e2\u99ac\u9aa8\u9ad8\u9b25\u9b32\u9b3c\u4e7e\u507a\u507d\u505c\u5047\u5043\u504c\u505a\u5049\u5065\u5076\u504e\u5055\u5075\u5074\u5077\u504f\u500f\u506f\u506d\u515c\u5195\u51f0\u526a\u526f\u52d2\u52d9\u52d8\u52d5\u5310\u530f\u5319\u533f\u5340\u533e\u53c3\u66fc\u5546\u556a\u5566\u5544\u555e\u5561\u5543\u554a\u5531\u5556\u554f\u5555\u552f\u5564\u5538\u552e\u555c\u552c\u5563\u5533\u5541\u5557\u5708\u570b\u5709\u57df\u5805\u580a\u5806\u57e0\u57e4\u57fa\u5802\u5835\u57f7\u57f9\u5920\u5962\u5a36\u5a41\u5a49\u5a66\u5a6a\u5a40"],["b140","\u5a3c\u5a62\u5a5a\u5a46\u5a4a\u5b70\u5bc7\u5bc5\u5bc4\u5bc2\u5bbf\u5bc6\u5c09\u5c08\u5c07\u5c60\u5c5c\u5c5d\u5d07\u5d06\u5d0e\u5d1b\u5d16\u5d22\u5d11\u5d29\u5d14\u5d19\u5d24\u5d27\u5d17\u5de2\u5e38\u5e36\u5e33\u5e37\u5eb7\u5eb8\u5eb6\u5eb5\u5ebe\u5f35\u5f37\u5f57\u5f6c\u5f69\u5f6b\u5f97\u5f99\u5f9e\u5f98\u5fa1\u5fa0\u5f9c\u607f\u60a3\u6089\u60a0\u60a8\u60cb\u60b4\u60e6\u60bd"],["b1a1","\u60c5\u60bb\u60b5\u60dc\u60bc\u60d8\u60d5\u60c6\u60df\u60b8\u60da\u60c7\u621a\u621b\u6248\u63a0\u63a7\u6372\u6396\u63a2\u63a5\u6377\u6367\u6398\u63aa\u6371\u63a9\u6389\u6383\u639b\u636b\u63a8\u6384\u6388\u6399\u63a1\u63ac\u6392\u638f\u6380\u637b\u6369\u6368\u637a\u655d\u6556\u6551\u6559\u6557\u555f\u654f\u6558\u6555\u6554\u659c\u659b\u65ac\u65cf\u65cb\u65cc\u65ce\u665d\u665a\u6664\u6668\u6666\u665e\u66f9\u52d7\u671b\u6881\u68af\u68a2\u6893\u68b5\u687f\u6876\u68b1\u68a7\u6897\u68b0\u6883\u68c4\u68ad\u6886\u6885\u6894\u689d\u68a8\u689f\u68a1\u6882\u6b32\u6bba"],["b240","\u6beb\u6bec\u6c2b\u6d8e\u6dbc\u6df3\u6dd9\u6db2\u6de1\u6dcc\u6de4\u6dfb\u6dfa\u6e05\u6dc7\u6dcb\u6daf\u6dd1\u6dae\u6dde\u6df9\u6db8\u6df7\u6df5\u6dc5\u6dd2\u6e1a\u6db5\u6dda\u6deb\u6dd8\u6dea\u6df1\u6dee\u6de8\u6dc6\u6dc4\u6daa\u6dec\u6dbf\u6de6\u70f9\u7109\u710a\u70fd\u70ef\u723d\u727d\u7281\u731c\u731b\u7316\u7313\u7319\u7387\u7405\u740a\u7403\u7406\u73fe\u740d\u74e0\u74f6"],["b2a1","\u74f7\u751c\u7522\u7565\u7566\u7562\u7570\u758f\u75d4\u75d5\u75b5\u75ca\u75cd\u768e\u76d4\u76d2\u76db\u7737\u773e\u773c\u7736\u7738\u773a\u786b\u7843\u784e\u7965\u7968\u796d\u79fb\u7a92\u7a95\u7b20\u7b28\u7b1b\u7b2c\u7b26\u7b19\u7b1e\u7b2e\u7c92\u7c97\u7c95\u7d46\u7d43\u7d71\u7d2e\u7d39\u7d3c\u7d40\u7d30\u7d33\u7d44\u7d2f\u7d42\u7d32\u7d31\u7f3d\u7f9e\u7f9a\u7fcc\u7fce\u7fd2\u801c\u804a\u8046\u812f\u8116\u8123\u812b\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838e\u839e\u8398\u8378\u83a2\u8396\u83bd\u83ab\u8392\u838a\u8393\u8389\u83a0\u8377\u837b\u837c"],["b340","\u8386\u83a7\u8655\u5f6a\u86c7\u86c0\u86b6\u86c4\u86b5\u86c6\u86cb\u86b1\u86af\u86c9\u8853\u889e\u8888\u88ab\u8892\u8896\u888d\u888b\u8993\u898f\u8a2a\u8a1d\u8a23\u8a25\u8a31\u8a2d\u8a1f\u8a1b\u8a22\u8c49\u8c5a\u8ca9\u8cac\u8cab\u8ca8\u8caa\u8ca7\u8d67\u8d66\u8dbe\u8dba\u8edb\u8edf\u9019\u900d\u901a\u9017\u9023\u901f\u901d\u9010\u9015\u901e\u9020\u900f\u9022\u9016\u901b\u9014"],["b3a1","\u90e8\u90ed\u90fd\u9157\u91ce\u91f5\u91e6\u91e3\u91e7\u91ed\u91e9\u9589\u966a\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966c\u96c0\u96ea\u96e9\u7ae0\u7adf\u9802\u9803\u9b5a\u9ce5\u9e75\u9e7f\u9ea5\u9ebb\u50a2\u508d\u5085\u5099\u5091\u5080\u5096\u5098\u509a\u6700\u51f1\u5272\u5274\u5275\u5269\u52de\u52dd\u52db\u535a\u53a5\u557b\u5580\u55a7\u557c\u558a\u559d\u5598\u5582\u559c\u55aa\u5594\u5587\u558b\u5583\u55b3\u55ae\u559f\u553e\u55b2\u559a\u55bb\u55ac\u55b1\u557e\u5589\u55ab\u5599\u570d\u582f\u582a\u5834\u5824\u5830\u5831\u5821\u581d\u5820\u58f9\u58fa\u5960"],["b440","\u5a77\u5a9a\u5a7f\u5a92\u5a9b\u5aa7\u5b73\u5b71\u5bd2\u5bcc\u5bd3\u5bd0\u5c0a\u5c0b\u5c31\u5d4c\u5d50\u5d34\u5d47\u5dfd\u5e45\u5e3d\u5e40\u5e43\u5e7e\u5eca\u5ec1\u5ec2\u5ec4\u5f3c\u5f6d\u5fa9\u5faa\u5fa8\u60d1\u60e1\u60b2\u60b6\u60e0\u611c\u6123\u60fa\u6115\u60f0\u60fb\u60f4\u6168\u60f1\u610e\u60f6\u6109\u6100\u6112\u621f\u6249\u63a3\u638c\u63cf\u63c0\u63e9\u63c9\u63c6\u63cd"],["b4a1","\u63d2\u63e3\u63d0\u63e1\u63d6\u63ed\u63ee\u6376\u63f4\u63ea\u63db\u6452\u63da\u63f9\u655e\u6566\u6562\u6563\u6591\u6590\u65af\u666e\u6670\u6674\u6676\u666f\u6691\u667a\u667e\u6677\u66fe\u66ff\u671f\u671d\u68fa\u68d5\u68e0\u68d8\u68d7\u6905\u68df\u68f5\u68ee\u68e7\u68f9\u68d2\u68f2\u68e3\u68cb\u68cd\u690d\u6912\u690e\u68c9\u68da\u696e\u68fb\u6b3e\u6b3a\u6b3d\u6b98\u6b96\u6bbc\u6bef\u6c2e\u6c2f\u6c2c\u6e2f\u6e38\u6e54\u6e21\u6e32\u6e67\u6e4a\u6e20\u6e25\u6e23\u6e1b\u6e5b\u6e58\u6e24\u6e56\u6e6e\u6e2d\u6e26\u6e6f\u6e34\u6e4d\u6e3a\u6e2c\u6e43\u6e1d\u6e3e\u6ecb"],["b540","\u6e89\u6e19\u6e4e\u6e63\u6e44\u6e72\u6e69\u6e5f\u7119\u711a\u7126\u7130\u7121\u7136\u716e\u711c\u724c\u7284\u7280\u7336\u7325\u7334\u7329\u743a\u742a\u7433\u7422\u7425\u7435\u7436\u7434\u742f\u741b\u7426\u7428\u7525\u7526\u756b\u756a\u75e2\u75db\u75e3\u75d9\u75d8\u75de\u75e0\u767b\u767c\u7696\u7693\u76b4\u76dc\u774f\u77ed\u785d\u786c\u786f\u7a0d\u7a08\u7a0b\u7a05\u7a00\u7a98"],["b5a1","\u7a97\u7a96\u7ae5\u7ae3\u7b49\u7b56\u7b46\u7b50\u7b52\u7b54\u7b4d\u7b4b\u7b4f\u7b51\u7c9f\u7ca5\u7d5e\u7d50\u7d68\u7d55\u7d2b\u7d6e\u7d72\u7d61\u7d66\u7d62\u7d70\u7d73\u5584\u7fd4\u7fd5\u800b\u8052\u8085\u8155\u8154\u814b\u8151\u814e\u8139\u8146\u813e\u814c\u8153\u8174\u8212\u821c\u83e9\u8403\u83f8\u840d\u83e0\u83c5\u840b\u83c1\u83ef\u83f1\u83f4\u8457\u840a\u83f0\u840c\u83cc\u83fd\u83f2\u83ca\u8438\u840e\u8404\u83dc\u8407\u83d4\u83df\u865b\u86df\u86d9\u86ed\u86d4\u86db\u86e4\u86d0\u86de\u8857\u88c1\u88c2\u88b1\u8983\u8996\u8a3b\u8a60\u8a55\u8a5e\u8a3c\u8a41"],["b640","\u8a54\u8a5b\u8a50\u8a46\u8a34\u8a3a\u8a36\u8a56\u8c61\u8c82\u8caf\u8cbc\u8cb3\u8cbd\u8cc1\u8cbb\u8cc0\u8cb4\u8cb7\u8cb6\u8cbf\u8cb8\u8d8a\u8d85\u8d81\u8dce\u8ddd\u8dcb\u8dda\u8dd1\u8dcc\u8ddb\u8dc6\u8efb\u8ef8\u8efc\u8f9c\u902e\u9035\u9031\u9038\u9032\u9036\u9102\u90f5\u9109\u90fe\u9163\u9165\u91cf\u9214\u9215\u9223\u9209\u921e\u920d\u9210\u9207\u9211\u9594\u958f\u958b\u9591"],["b6a1","\u9593\u9592\u958e\u968a\u968e\u968b\u967d\u9685\u9686\u968d\u9672\u9684\u96c1\u96c5\u96c4\u96c6\u96c7\u96ef\u96f2\u97cc\u9805\u9806\u9808\u98e7\u98ea\u98ef\u98e9\u98f2\u98ed\u99ae\u99ad\u9ec3\u9ecd\u9ed1\u4e82\u50ad\u50b5\u50b2\u50b3\u50c5\u50be\u50ac\u50b7\u50bb\u50af\u50c7\u527f\u5277\u527d\u52df\u52e6\u52e4\u52e2\u52e3\u532f\u55df\u55e8\u55d3\u55e6\u55ce\u55dc\u55c7\u55d1\u55e3\u55e4\u55ef\u55da\u55e1\u55c5\u55c6\u55e5\u55c9\u5712\u5713\u585e\u5851\u5858\u5857\u585a\u5854\u586b\u584c\u586d\u584a\u5862\u5852\u584b\u5967\u5ac1\u5ac9\u5acc\u5abe\u5abd\u5abc"],["b740","\u5ab3\u5ac2\u5ab2\u5d69\u5d6f\u5e4c\u5e79\u5ec9\u5ec8\u5f12\u5f59\u5fac\u5fae\u611a\u610f\u6148\u611f\u60f3\u611b\u60f9\u6101\u6108\u614e\u614c\u6144\u614d\u613e\u6134\u6127\u610d\u6106\u6137\u6221\u6222\u6413\u643e\u641e\u642a\u642d\u643d\u642c\u640f\u641c\u6414\u640d\u6436\u6416\u6417\u6406\u656c\u659f\u65b0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668d\u6703\u6994\u696d"],["b7a1","\u695a\u6977\u6960\u6954\u6975\u6930\u6982\u694a\u6968\u696b\u695e\u6953\u6979\u6986\u695d\u6963\u695b\u6b47\u6b72\u6bc0\u6bbf\u6bd3\u6bfd\u6ea2\u6eaf\u6ed3\u6eb6\u6ec2\u6e90\u6e9d\u6ec7\u6ec5\u6ea5\u6e98\u6ebc\u6eba\u6eab\u6ed1\u6e96\u6e9c\u6ec4\u6ed4\u6eaa\u6ea7\u6eb4\u714e\u7159\u7169\u7164\u7149\u7167\u715c\u716c\u7166\u714c\u7165\u715e\u7146\u7168\u7156\u723a\u7252\u7337\u7345\u733f\u733e\u746f\u745a\u7455\u745f\u745e\u7441\u743f\u7459\u745b\u745c\u7576\u7578\u7600\u75f0\u7601\u75f2\u75f1\u75fa\u75ff\u75f4\u75f3\u76de\u76df\u775b\u776b\u7766\u775e\u7763"],["b840","\u7779\u776a\u776c\u775c\u7765\u7768\u7762\u77ee\u788e\u78b0\u7897\u7898\u788c\u7889\u787c\u7891\u7893\u787f\u797a\u797f\u7981\u842c\u79bd\u7a1c\u7a1a\u7a20\u7a14\u7a1f\u7a1e\u7a9f\u7aa0\u7b77\u7bc0\u7b60\u7b6e\u7b67\u7cb1\u7cb3\u7cb5\u7d93\u7d79\u7d91\u7d81\u7d8f\u7d5b\u7f6e\u7f69\u7f6a\u7f72\u7fa9\u7fa8\u7fa4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816e\u8173\u816b"],["b8a1","\u8179\u817a\u8166\u8205\u8247\u8482\u8477\u843d\u8431\u8475\u8466\u846b\u8449\u846c\u845b\u843c\u8435\u8461\u8463\u8469\u846d\u8446\u865e\u865c\u865f\u86f9\u8713\u8708\u8707\u8700\u86fe\u86fb\u8702\u8703\u8706\u870a\u8859\u88df\u88d4\u88d9\u88dc\u88d8\u88dd\u88e1\u88ca\u88d5\u88d2\u899c\u89e3\u8a6b\u8a72\u8a73\u8a66\u8a69\u8a70\u8a87\u8a7c\u8a63\u8aa0\u8a71\u8a85\u8a6d\u8a62\u8a6e\u8a6c\u8a79\u8a7b\u8a3e\u8a68\u8c62\u8c8a\u8c89\u8cca\u8cc7\u8cc8\u8cc4\u8cb2\u8cc3\u8cc2\u8cc5\u8de1\u8ddf\u8de8\u8def\u8df3\u8dfa\u8dea\u8de4\u8de6\u8eb2\u8f03\u8f09\u8efe\u8f0a"],["b940","\u8f9f\u8fb2\u904b\u904a\u9053\u9042\u9054\u903c\u9055\u9050\u9047\u904f\u904e\u904d\u9051\u903e\u9041\u9112\u9117\u916c\u916a\u9169\u91c9\u9237\u9257\u9238\u923d\u9240\u923e\u925b\u924b\u9264\u9251\u9234\u9249\u924d\u9245\u9239\u923f\u925a\u9598\u9698\u9694\u9695\u96cd\u96cb\u96c9\u96ca\u96f7\u96fb\u96f9\u96f6\u9756\u9774\u9776\u9810\u9811\u9813\u980a\u9812\u980c\u98fc\u98f4"],["b9a1","\u98fd\u98fe\u99b3\u99b1\u99b4\u9ae1\u9ce9\u9e82\u9f0e\u9f13\u9f20\u50e7\u50ee\u50e5\u50d6\u50ed\u50da\u50d5\u50cf\u50d1\u50f1\u50ce\u50e9\u5162\u51f3\u5283\u5282\u5331\u53ad\u55fe\u5600\u561b\u5617\u55fd\u5614\u5606\u5609\u560d\u560e\u55f7\u5616\u561f\u5608\u5610\u55f6\u5718\u5716\u5875\u587e\u5883\u5893\u588a\u5879\u5885\u587d\u58fd\u5925\u5922\u5924\u596a\u5969\u5ae1\u5ae6\u5ae9\u5ad7\u5ad6\u5ad8\u5ae3\u5b75\u5bde\u5be7\u5be1\u5be5\u5be6\u5be8\u5be2\u5be4\u5bdf\u5c0d\u5c62\u5d84\u5d87\u5e5b\u5e63\u5e55\u5e57\u5e54\u5ed3\u5ed6\u5f0a\u5f46\u5f70\u5fb9\u6147"],["ba40","\u613f\u614b\u6177\u6162\u6163\u615f\u615a\u6158\u6175\u622a\u6487\u6458\u6454\u64a4\u6478\u645f\u647a\u6451\u6467\u6434\u646d\u647b\u6572\u65a1\u65d7\u65d6\u66a2\u66a8\u669d\u699c\u69a8\u6995\u69c1\u69ae\u69d3\u69cb\u699b\u69b7\u69bb\u69ab\u69b4\u69d0\u69cd\u69ad\u69cc\u69a6\u69c3\u69a3\u6b49\u6b4c\u6c33\u6f33\u6f14\u6efe\u6f13\u6ef4\u6f29\u6f3e\u6f20\u6f2c\u6f0f\u6f02\u6f22"],["baa1","\u6eff\u6eef\u6f06\u6f31\u6f38\u6f32\u6f23\u6f15\u6f2b\u6f2f\u6f88\u6f2a\u6eec\u6f01\u6ef2\u6ecc\u6ef7\u7194\u7199\u717d\u718a\u7184\u7192\u723e\u7292\u7296\u7344\u7350\u7464\u7463\u746a\u7470\u746d\u7504\u7591\u7627\u760d\u760b\u7609\u7613\u76e1\u76e3\u7784\u777d\u777f\u7761\u78c1\u789f\u78a7\u78b3\u78a9\u78a3\u798e\u798f\u798d\u7a2e\u7a31\u7aaa\u7aa9\u7aed\u7aef\u7ba1\u7b95\u7b8b\u7b75\u7b97\u7b9d\u7b94\u7b8f\u7bb8\u7b87\u7b84\u7cb9\u7cbd\u7cbe\u7dbb\u7db0\u7d9c\u7dbd\u7dbe\u7da0\u7dca\u7db4\u7db2\u7db1\u7dba\u7da2\u7dbf\u7db5\u7db8\u7dad\u7dd2\u7dc7\u7dac"],["bb40","\u7f70\u7fe0\u7fe1\u7fdf\u805e\u805a\u8087\u8150\u8180\u818f\u8188\u818a\u817f\u8182\u81e7\u81fa\u8207\u8214\u821e\u824b\u84c9\u84bf\u84c6\u84c4\u8499\u849e\u84b2\u849c\u84cb\u84b8\u84c0\u84d3\u8490\u84bc\u84d1\u84ca\u873f\u871c\u873b\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88f3\u8902\u88f4\u88f9\u88f8\u88fd\u88e8\u891a\u88ef\u8aa6\u8a8c\u8a9e\u8aa3\u8a8d\u8aa1\u8a93\u8aa4"],["bba1","\u8aaa\u8aa5\u8aa8\u8a98\u8a91\u8a9a\u8aa7\u8c6a\u8c8d\u8c8c\u8cd3\u8cd1\u8cd2\u8d6b\u8d99\u8d95\u8dfc\u8f14\u8f12\u8f15\u8f13\u8fa3\u9060\u9058\u905c\u9063\u9059\u905e\u9062\u905d\u905b\u9119\u9118\u911e\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927b\u9293\u929c\u92a8\u927c\u9291\u95a1\u95a8\u95a9\u95a3\u95a5\u95a4\u9699\u969c\u969b\u96cc\u96d2\u9700\u977c\u9785\u97f6\u9817\u9818\u98af\u98b1\u9903\u9905\u990c\u9909\u99c1\u9aaf\u9ab0\u9ae6\u9b41\u9b42\u9cf4\u9cf6\u9cf3\u9ebc\u9f3b\u9f4a\u5104\u5100\u50fb\u50f5\u50f9\u5102\u5108\u5109\u5105\u51dc"],["bc40","\u5287\u5288\u5289\u528d\u528a\u52f0\u53b2\u562e\u563b\u5639\u5632\u563f\u5634\u5629\u5653\u564e\u5657\u5674\u5636\u562f\u5630\u5880\u589f\u589e\u58b3\u589c\u58ae\u58a9\u58a6\u596d\u5b09\u5afb\u5b0b\u5af5\u5b0c\u5b08\u5bee\u5bec\u5be9\u5beb\u5c64\u5c65\u5d9d\u5d94\u5e62\u5e5f\u5e61\u5ee2\u5eda\u5edf\u5edd\u5ee3\u5ee0\u5f48\u5f71\u5fb7\u5fb5\u6176\u6167\u616e\u615d\u6155\u6182"],["bca1","\u617c\u6170\u616b\u617e\u61a7\u6190\u61ab\u618e\u61ac\u619a\u61a4\u6194\u61ae\u622e\u6469\u646f\u6479\u649e\u64b2\u6488\u6490\u64b0\u64a5\u6493\u6495\u64a9\u6492\u64ae\u64ad\u64ab\u649a\u64ac\u6499\u64a2\u64b3\u6575\u6577\u6578\u66ae\u66ab\u66b4\u66b1\u6a23\u6a1f\u69e8\u6a01\u6a1e\u6a19\u69fd\u6a21\u6a13\u6a0a\u69f3\u6a02\u6a05\u69ed\u6a11\u6b50\u6b4e\u6ba4\u6bc5\u6bc6\u6f3f\u6f7c\u6f84\u6f51\u6f66\u6f54\u6f86\u6f6d\u6f5b\u6f78\u6f6e\u6f8e\u6f7a\u6f70\u6f64\u6f97\u6f58\u6ed5\u6f6f\u6f60\u6f5f\u719f\u71ac\u71b1\u71a8\u7256\u729b\u734e\u7357\u7469\u748b\u7483"],["bd40","\u747e\u7480\u757f\u7620\u7629\u761f\u7624\u7626\u7621\u7622\u769a\u76ba\u76e4\u778e\u7787\u778c\u7791\u778b\u78cb\u78c5\u78ba\u78ca\u78be\u78d5\u78bc\u78d0\u7a3f\u7a3c\u7a40\u7a3d\u7a37\u7a3b\u7aaf\u7aae\u7bad\u7bb1\u7bc4\u7bb4\u7bc6\u7bc7\u7bc1\u7ba0\u7bcc\u7cca\u7de0\u7df4\u7def\u7dfb\u7dd8\u7dec\u7ddd\u7de8\u7de3\u7dda\u7dde\u7de9\u7d9e\u7dd9\u7df2\u7df9\u7f75\u7f77\u7faf"],["bda1","\u7fe9\u8026\u819b\u819c\u819d\u81a0\u819a\u8198\u8517\u853d\u851a\u84ee\u852c\u852d\u8513\u8511\u8523\u8521\u8514\u84ec\u8525\u84ff\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874c\u8753\u885b\u885d\u8910\u8907\u8912\u8913\u8915\u890a\u8abc\u8ad2\u8ac7\u8ac4\u8a95\u8acb\u8af8\u8ab2\u8ac9\u8ac2\u8abf\u8ab0\u8ad6\u8acd\u8ab6\u8ab9\u8adb\u8c4c\u8c4e\u8c6c\u8ce0\u8cde\u8ce6\u8ce4\u8cec\u8ced\u8ce2\u8ce3\u8cdc\u8cea\u8ce1\u8d6d\u8d9f\u8da3\u8e2b\u8e10\u8e1d\u8e22\u8e0f\u8e29\u8e1f\u8e21\u8e1e\u8eba\u8f1d\u8f1b\u8f1f\u8f29\u8f26\u8f2a\u8f1c\u8f1e"],["be40","\u8f25\u9069\u906e\u9068\u906d\u9077\u9130\u912d\u9127\u9131\u9187\u9189\u918b\u9183\u92c5\u92bb\u92b7\u92ea\u92ac\u92e4\u92c1\u92b3\u92bc\u92d2\u92c7\u92f0\u92b2\u95ad\u95b1\u9704\u9706\u9707\u9709\u9760\u978d\u978b\u978f\u9821\u982b\u981c\u98b3\u990a\u9913\u9912\u9918\u99dd\u99d0\u99df\u99db\u99d1\u99d5\u99d2\u99d9\u9ab7\u9aee\u9aef\u9b27\u9b45\u9b44\u9b77\u9b6f\u9d06\u9d09"],["bea1","\u9d03\u9ea9\u9ebe\u9ece\u58a8\u9f52\u5112\u5118\u5114\u5110\u5115\u5180\u51aa\u51dd\u5291\u5293\u52f3\u5659\u566b\u5679\u5669\u5664\u5678\u566a\u5668\u5665\u5671\u566f\u566c\u5662\u5676\u58c1\u58be\u58c7\u58c5\u596e\u5b1d\u5b34\u5b78\u5bf0\u5c0e\u5f4a\u61b2\u6191\u61a9\u618a\u61cd\u61b6\u61be\u61ca\u61c8\u6230\u64c5\u64c1\u64cb\u64bb\u64bc\u64da\u64c4\u64c7\u64c2\u64cd\u64bf\u64d2\u64d4\u64be\u6574\u66c6\u66c9\u66b9\u66c4\u66c7\u66b8\u6a3d\u6a38\u6a3a\u6a59\u6a6b\u6a58\u6a39\u6a44\u6a62\u6a61\u6a4b\u6a47\u6a35\u6a5f\u6a48\u6b59\u6b77\u6c05\u6fc2\u6fb1\u6fa1"],["bf40","\u6fc3\u6fa4\u6fc1\u6fa7\u6fb3\u6fc0\u6fb9\u6fb6\u6fa6\u6fa0\u6fb4\u71be\u71c9\u71d0\u71d2\u71c8\u71d5\u71b9\u71ce\u71d9\u71dc\u71c3\u71c4\u7368\u749c\u74a3\u7498\u749f\u749e\u74e2\u750c\u750d\u7634\u7638\u763a\u76e7\u76e5\u77a0\u779e\u779f\u77a5\u78e8\u78da\u78ec\u78e7\u79a6\u7a4d\u7a4e\u7a46\u7a4c\u7a4b\u7aba\u7bd9\u7c11\u7bc9\u7be4\u7bdb\u7be1\u7be9\u7be6\u7cd5\u7cd6\u7e0a"],["bfa1","\u7e11\u7e08\u7e1b\u7e23\u7e1e\u7e1d\u7e09\u7e10\u7f79\u7fb2\u7ff0\u7ff1\u7fee\u8028\u81b3\u81a9\u81a8\u81fb\u8208\u8258\u8259\u854a\u8559\u8548\u8568\u8569\u8543\u8549\u856d\u856a\u855e\u8783\u879f\u879e\u87a2\u878d\u8861\u892a\u8932\u8925\u892b\u8921\u89aa\u89a6\u8ae6\u8afa\u8aeb\u8af1\u8b00\u8adc\u8ae7\u8aee\u8afe\u8b01\u8b02\u8af7\u8aed\u8af3\u8af6\u8afc\u8c6b\u8c6d\u8c93\u8cf4\u8e44\u8e31\u8e34\u8e42\u8e39\u8e35\u8f3b\u8f2f\u8f38\u8f33\u8fa8\u8fa6\u9075\u9074\u9078\u9072\u907c\u907a\u9134\u9192\u9320\u9336\u92f8\u9333\u932f\u9322\u92fc\u932b\u9304\u931a"],["c040","\u9310\u9326\u9321\u9315\u932e\u9319\u95bb\u96a7\u96a8\u96aa\u96d5\u970e\u9711\u9716\u970d\u9713\u970f\u975b\u975c\u9766\u9798\u9830\u9838\u983b\u9837\u982d\u9839\u9824\u9910\u9928\u991e\u991b\u9921\u991a\u99ed\u99e2\u99f1\u9ab8\u9abc\u9afb\u9aed\u9b28\u9b91\u9d15\u9d23\u9d26\u9d28\u9d12\u9d1b\u9ed8\u9ed4\u9f8d\u9f9c\u512a\u511f\u5121\u5132\u52f5\u568e\u5680\u5690\u5685\u5687"],["c0a1","\u568f\u58d5\u58d3\u58d1\u58ce\u5b30\u5b2a\u5b24\u5b7a\u5c37\u5c68\u5dbc\u5dba\u5dbd\u5db8\u5e6b\u5f4c\u5fbd\u61c9\u61c2\u61c7\u61e6\u61cb\u6232\u6234\u64ce\u64ca\u64d8\u64e0\u64f0\u64e6\u64ec\u64f1\u64e2\u64ed\u6582\u6583\u66d9\u66d6\u6a80\u6a94\u6a84\u6aa2\u6a9c\u6adb\u6aa3\u6a7e\u6a97\u6a90\u6aa0\u6b5c\u6bae\u6bda\u6c08\u6fd8\u6ff1\u6fdf\u6fe0\u6fdb\u6fe4\u6feb\u6fef\u6f80\u6fec\u6fe1\u6fe9\u6fd5\u6fee\u6ff0\u71e7\u71df\u71ee\u71e6\u71e5\u71ed\u71ec\u71f4\u71e0\u7235\u7246\u7370\u7372\u74a9\u74b0\u74a6\u74a8\u7646\u7642\u764c\u76ea\u77b3\u77aa\u77b0\u77ac"],["c140","\u77a7\u77ad\u77ef\u78f7\u78fa\u78f4\u78ef\u7901\u79a7\u79aa\u7a57\u7abf\u7c07\u7c0d\u7bfe\u7bf7\u7c0c\u7be0\u7ce0\u7cdc\u7cde\u7ce2\u7cdf\u7cd9\u7cdd\u7e2e\u7e3e\u7e46\u7e37\u7e32\u7e43\u7e2b\u7e3d\u7e31\u7e45\u7e41\u7e34\u7e39\u7e48\u7e35\u7e3f\u7e2f\u7f44\u7ff3\u7ffc\u8071\u8072\u8070\u806f\u8073\u81c6\u81c3\u81ba\u81c2\u81c0\u81bf\u81bd\u81c9\u81be\u81e8\u8209\u8271\u85aa"],["c1a1","\u8584\u857e\u859c\u8591\u8594\u85af\u859b\u8587\u85a8\u858a\u8667\u87c0\u87d1\u87b3\u87d2\u87c6\u87ab\u87bb\u87ba\u87c8\u87cb\u893b\u8936\u8944\u8938\u893d\u89ac\u8b0e\u8b17\u8b19\u8b1b\u8b0a\u8b20\u8b1d\u8b04\u8b10\u8c41\u8c3f\u8c73\u8cfa\u8cfd\u8cfc\u8cf8\u8cfb\u8da8\u8e49\u8e4b\u8e48\u8e4a\u8f44\u8f3e\u8f42\u8f45\u8f3f\u907f\u907d\u9084\u9081\u9082\u9080\u9139\u91a3\u919e\u919c\u934d\u9382\u9328\u9375\u934a\u9365\u934b\u9318\u937e\u936c\u935b\u9370\u935a\u9354\u95ca\u95cb\u95cc\u95c8\u95c6\u96b1\u96b8\u96d6\u971c\u971e\u97a0\u97d3\u9846\u98b6\u9935\u9a01"],["c240","\u99ff\u9bae\u9bab\u9baa\u9bad\u9d3b\u9d3f\u9e8b\u9ecf\u9ede\u9edc\u9edd\u9edb\u9f3e\u9f4b\u53e2\u5695\u56ae\u58d9\u58d8\u5b38\u5f5d\u61e3\u6233\u64f4\u64f2\u64fe\u6506\u64fa\u64fb\u64f7\u65b7\u66dc\u6726\u6ab3\u6aac\u6ac3\u6abb\u6ab8\u6ac2\u6aae\u6aaf\u6b5f\u6b78\u6baf\u7009\u700b\u6ffe\u7006\u6ffa\u7011\u700f\u71fb\u71fc\u71fe\u71f8\u7377\u7375\u74a7\u74bf\u7515\u7656\u7658"],["c2a1","\u7652\u77bd\u77bf\u77bb\u77bc\u790e\u79ae\u7a61\u7a62\u7a60\u7ac4\u7ac5\u7c2b\u7c27\u7c2a\u7c1e\u7c23\u7c21\u7ce7\u7e54\u7e55\u7e5e\u7e5a\u7e61\u7e52\u7e59\u7f48\u7ff9\u7ffb\u8077\u8076\u81cd\u81cf\u820a\u85cf\u85a9\u85cd\u85d0\u85c9\u85b0\u85ba\u85b9\u85a6\u87ef\u87ec\u87f2\u87e0\u8986\u89b2\u89f4\u8b28\u8b39\u8b2c\u8b2b\u8c50\u8d05\u8e59\u8e63\u8e66\u8e64\u8e5f\u8e55\u8ec0\u8f49\u8f4d\u9087\u9083\u9088\u91ab\u91ac\u91d0\u9394\u938a\u9396\u93a2\u93b3\u93ae\u93ac\u93b0\u9398\u939a\u9397\u95d4\u95d6\u95d0\u95d5\u96e2\u96dc\u96d9\u96db\u96de\u9724\u97a3\u97a6"],["c340","\u97ad\u97f9\u984d\u984f\u984c\u984e\u9853\u98ba\u993e\u993f\u993d\u992e\u99a5\u9a0e\u9ac1\u9b03\u9b06\u9b4f\u9b4e\u9b4d\u9bca\u9bc9\u9bfd\u9bc8\u9bc0\u9d51\u9d5d\u9d60\u9ee0\u9f15\u9f2c\u5133\u56a5\u58de\u58df\u58e2\u5bf5\u9f90\u5eec\u61f2\u61f7\u61f6\u61f5\u6500\u650f\u66e0\u66dd\u6ae5\u6add\u6ada\u6ad3\u701b\u701f\u7028\u701a\u701d\u7015\u7018\u7206\u720d\u7258\u72a2\u7378"],["c3a1","\u737a\u74bd\u74ca\u74e3\u7587\u7586\u765f\u7661\u77c7\u7919\u79b1\u7a6b\u7a69\u7c3e\u7c3f\u7c38\u7c3d\u7c37\u7c40\u7e6b\u7e6d\u7e79\u7e69\u7e6a\u7f85\u7e73\u7fb6\u7fb9\u7fb8\u81d8\u85e9\u85dd\u85ea\u85d5\u85e4\u85e5\u85f7\u87fb\u8805\u880d\u87f9\u87fe\u8960\u895f\u8956\u895e\u8b41\u8b5c\u8b58\u8b49\u8b5a\u8b4e\u8b4f\u8b46\u8b59\u8d08\u8d0a\u8e7c\u8e72\u8e87\u8e76\u8e6c\u8e7a\u8e74\u8f54\u8f4e\u8fad\u908a\u908b\u91b1\u91ae\u93e1\u93d1\u93df\u93c3\u93c8\u93dc\u93dd\u93d6\u93e2\u93cd\u93d8\u93e4\u93d7\u93e8\u95dc\u96b4\u96e3\u972a\u9727\u9761\u97dc\u97fb\u985e"],["c440","\u9858\u985b\u98bc\u9945\u9949\u9a16\u9a19\u9b0d\u9be8\u9be7\u9bd6\u9bdb\u9d89\u9d61\u9d72\u9d6a\u9d6c\u9e92\u9e97\u9e93\u9eb4\u52f8\u56a8\u56b7\u56b6\u56b4\u56bc\u58e4\u5b40\u5b43\u5b7d\u5bf6\u5dc9\u61f8\u61fa\u6518\u6514\u6519\u66e6\u6727\u6aec\u703e\u7030\u7032\u7210\u737b\u74cf\u7662\u7665\u7926\u792a\u792c\u792b\u7ac7\u7af6\u7c4c\u7c43\u7c4d\u7cef\u7cf0\u8fae\u7e7d\u7e7c"],["c4a1","\u7e82\u7f4c\u8000\u81da\u8266\u85fb\u85f9\u8611\u85fa\u8606\u860b\u8607\u860a\u8814\u8815\u8964\u89ba\u89f8\u8b70\u8b6c\u8b66\u8b6f\u8b5f\u8b6b\u8d0f\u8d0d\u8e89\u8e81\u8e85\u8e82\u91b4\u91cb\u9418\u9403\u93fd\u95e1\u9730\u98c4\u9952\u9951\u99a8\u9a2b\u9a30\u9a37\u9a35\u9c13\u9c0d\u9e79\u9eb5\u9ee8\u9f2f\u9f5f\u9f63\u9f61\u5137\u5138\u56c1\u56c0\u56c2\u5914\u5c6c\u5dcd\u61fc\u61fe\u651d\u651c\u6595\u66e9\u6afb\u6b04\u6afa\u6bb2\u704c\u721b\u72a7\u74d6\u74d4\u7669\u77d3\u7c50\u7e8f\u7e8c\u7fbc\u8617\u862d\u861a\u8823\u8822\u8821\u881f\u896a\u896c\u89bd\u8b74"],["c540","\u8b77\u8b7d\u8d13\u8e8a\u8e8d\u8e8b\u8f5f\u8faf\u91ba\u942e\u9433\u9435\u943a\u9438\u9432\u942b\u95e2\u9738\u9739\u9732\u97ff\u9867\u9865\u9957\u9a45\u9a43\u9a40\u9a3e\u9acf\u9b54\u9b51\u9c2d\u9c25\u9daf\u9db4\u9dc2\u9db8\u9e9d\u9eef\u9f19\u9f5c\u9f66\u9f67\u513c\u513b\u56c8\u56ca\u56c9\u5b7f\u5dd4\u5dd2\u5f4e\u61ff\u6524\u6b0a\u6b61\u7051\u7058\u7380\u74e4\u758a\u766e\u766c"],["c5a1","\u79b3\u7c60\u7c5f\u807e\u807d\u81df\u8972\u896f\u89fc\u8b80\u8d16\u8d17\u8e91\u8e93\u8f61\u9148\u9444\u9451\u9452\u973d\u973e\u97c3\u97c1\u986b\u9955\u9a55\u9a4d\u9ad2\u9b1a\u9c49\u9c31\u9c3e\u9c3b\u9dd3\u9dd7\u9f34\u9f6c\u9f6a\u9f94\u56cc\u5dd6\u6200\u6523\u652b\u652a\u66ec\u6b10\u74da\u7aca\u7c64\u7c63\u7c65\u7e93\u7e96\u7e94\u81e2\u8638\u863f\u8831\u8b8a\u9090\u908f\u9463\u9460\u9464\u9768\u986f\u995c\u9a5a\u9a5b\u9a57\u9ad3\u9ad4\u9ad1\u9c54\u9c57\u9c56\u9de5\u9e9f\u9ef4\u56d1\u58e9\u652c\u705e\u7671\u7672\u77d7\u7f50\u7f88\u8836\u8839\u8862\u8b93\u8b92"],["c640","\u8b96\u8277\u8d1b\u91c0\u946a\u9742\u9748\u9744\u97c6\u9870\u9a5f\u9b22\u9b58\u9c5f\u9df9\u9dfa\u9e7c\u9e7d\u9f07\u9f77\u9f72\u5ef3\u6b16\u7063\u7c6c\u7c6e\u883b\u89c0\u8ea1\u91c1\u9472\u9470\u9871\u995e\u9ad6\u9b23\u9ecc\u7064\u77da\u8b9a\u9477\u97c9\u9a62\u9a65\u7e9c\u8b9c\u8eaa\u91c5\u947d\u947e\u947c\u9c77\u9c78\u9ef7\u8c54\u947f\u9e1a\u7228\u9a6a\u9b31\u9e1b\u9e1e\u7c72"],["c940","\u4e42\u4e5c\u51f5\u531a\u5382\u4e07\u4e0c\u4e47\u4e8d\u56d7\ufa0c\u5c6e\u5f73\u4e0f\u5187\u4e0e\u4e2e\u4e93\u4ec2\u4ec9\u4ec8\u5198\u52fc\u536c\u53b9\u5720\u5903\u592c\u5c10\u5dff\u65e1\u6bb3\u6bcc\u6c14\u723f\u4e31\u4e3c\u4ee8\u4edc\u4ee9\u4ee1\u4edd\u4eda\u520c\u531c\u534c\u5722\u5723\u5917\u592f\u5b81\u5b84\u5c12\u5c3b\u5c74\u5c73\u5e04\u5e80\u5e82\u5fc9\u6209\u6250\u6c15"],["c9a1","\u6c36\u6c43\u6c3f\u6c3b\u72ae\u72b0\u738a\u79b8\u808a\u961e\u4f0e\u4f18\u4f2c\u4ef5\u4f14\u4ef1\u4f00\u4ef7\u4f08\u4f1d\u4f02\u4f05\u4f22\u4f13\u4f04\u4ef4\u4f12\u51b1\u5213\u5209\u5210\u52a6\u5322\u531f\u534d\u538a\u5407\u56e1\u56df\u572e\u572a\u5734\u593c\u5980\u597c\u5985\u597b\u597e\u5977\u597f\u5b56\u5c15\u5c25\u5c7c\u5c7a\u5c7b\u5c7e\u5ddf\u5e75\u5e84\u5f02\u5f1a\u5f74\u5fd5\u5fd4\u5fcf\u625c\u625e\u6264\u6261\u6266\u6262\u6259\u6260\u625a\u6265\u65ef\u65ee\u673e\u6739\u6738\u673b\u673a\u673f\u673c\u6733\u6c18\u6c46\u6c52\u6c5c\u6c4f\u6c4a\u6c54\u6c4b"],["ca40","\u6c4c\u7071\u725e\u72b4\u72b5\u738e\u752a\u767f\u7a75\u7f51\u8278\u827c\u8280\u827d\u827f\u864d\u897e\u9099\u9097\u9098\u909b\u9094\u9622\u9624\u9620\u9623\u4f56\u4f3b\u4f62\u4f49\u4f53\u4f64\u4f3e\u4f67\u4f52\u4f5f\u4f41\u4f58\u4f2d\u4f33\u4f3f\u4f61\u518f\u51b9\u521c\u521e\u5221\u52ad\u52ae\u5309\u5363\u5372\u538e\u538f\u5430\u5437\u542a\u5454\u5445\u5419\u541c\u5425\u5418"],["caa1","\u543d\u544f\u5441\u5428\u5424\u5447\u56ee\u56e7\u56e5\u5741\u5745\u574c\u5749\u574b\u5752\u5906\u5940\u59a6\u5998\u59a0\u5997\u598e\u59a2\u5990\u598f\u59a7\u59a1\u5b8e\u5b92\u5c28\u5c2a\u5c8d\u5c8f\u5c88\u5c8b\u5c89\u5c92\u5c8a\u5c86\u5c93\u5c95\u5de0\u5e0a\u5e0e\u5e8b\u5e89\u5e8c\u5e88\u5e8d\u5f05\u5f1d\u5f78\u5f76\u5fd2\u5fd1\u5fd0\u5fed\u5fe8\u5fee\u5ff3\u5fe1\u5fe4\u5fe3\u5ffa\u5fef\u5ff7\u5ffb\u6000\u5ff4\u623a\u6283\u628c\u628e\u628f\u6294\u6287\u6271\u627b\u627a\u6270\u6281\u6288\u6277\u627d\u6272\u6274\u6537\u65f0\u65f4\u65f3\u65f2\u65f5\u6745\u6747"],["cb40","\u6759\u6755\u674c\u6748\u675d\u674d\u675a\u674b\u6bd0\u6c19\u6c1a\u6c78\u6c67\u6c6b\u6c84\u6c8b\u6c8f\u6c71\u6c6f\u6c69\u6c9a\u6c6d\u6c87\u6c95\u6c9c\u6c66\u6c73\u6c65\u6c7b\u6c8e\u7074\u707a\u7263\u72bf\u72bd\u72c3\u72c6\u72c1\u72ba\u72c5\u7395\u7397\u7393\u7394\u7392\u753a\u7539\u7594\u7595\u7681\u793d\u8034\u8095\u8099\u8090\u8092\u809c\u8290\u828f\u8285\u828e\u8291\u8293"],["cba1","\u828a\u8283\u8284\u8c78\u8fc9\u8fbf\u909f\u90a1\u90a5\u909e\u90a7\u90a0\u9630\u9628\u962f\u962d\u4e33\u4f98\u4f7c\u4f85\u4f7d\u4f80\u4f87\u4f76\u4f74\u4f89\u4f84\u4f77\u4f4c\u4f97\u4f6a\u4f9a\u4f79\u4f81\u4f78\u4f90\u4f9c\u4f94\u4f9e\u4f92\u4f82\u4f95\u4f6b\u4f6e\u519e\u51bc\u51be\u5235\u5232\u5233\u5246\u5231\u52bc\u530a\u530b\u533c\u5392\u5394\u5487\u547f\u5481\u5491\u5482\u5488\u546b\u547a\u547e\u5465\u546c\u5474\u5466\u548d\u546f\u5461\u5460\u5498\u5463\u5467\u5464\u56f7\u56f9\u576f\u5772\u576d\u576b\u5771\u5770\u5776\u5780\u5775\u577b\u5773\u5774\u5762"],["cc40","\u5768\u577d\u590c\u5945\u59b5\u59ba\u59cf\u59ce\u59b2\u59cc\u59c1\u59b6\u59bc\u59c3\u59d6\u59b1\u59bd\u59c0\u59c8\u59b4\u59c7\u5b62\u5b65\u5b93\u5b95\u5c44\u5c47\u5cae\u5ca4\u5ca0\u5cb5\u5caf\u5ca8\u5cac\u5c9f\u5ca3\u5cad\u5ca2\u5caa\u5ca7\u5c9d\u5ca5\u5cb6\u5cb0\u5ca6\u5e17\u5e14\u5e19\u5f28\u5f22\u5f23\u5f24\u5f54\u5f82\u5f7e\u5f7d\u5fde\u5fe5\u602d\u6026\u6019\u6032\u600b"],["cca1","\u6034\u600a\u6017\u6033\u601a\u601e\u602c\u6022\u600d\u6010\u602e\u6013\u6011\u600c\u6009\u601c\u6214\u623d\u62ad\u62b4\u62d1\u62be\u62aa\u62b6\u62ca\u62ae\u62b3\u62af\u62bb\u62a9\u62b0\u62b8\u653d\u65a8\u65bb\u6609\u65fc\u6604\u6612\u6608\u65fb\u6603\u660b\u660d\u6605\u65fd\u6611\u6610\u66f6\u670a\u6785\u676c\u678e\u6792\u6776\u677b\u6798\u6786\u6784\u6774\u678d\u678c\u677a\u679f\u6791\u6799\u6783\u677d\u6781\u6778\u6779\u6794\u6b25\u6b80\u6b7e\u6bde\u6c1d\u6c93\u6cec\u6ceb\u6cee\u6cd9\u6cb6\u6cd4\u6cad\u6ce7\u6cb7\u6cd0\u6cc2\u6cba\u6cc3\u6cc6\u6ced\u6cf2"],["cd40","\u6cd2\u6cdd\u6cb4\u6c8a\u6c9d\u6c80\u6cde\u6cc0\u6d30\u6ccd\u6cc7\u6cb0\u6cf9\u6ccf\u6ce9\u6cd1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709a\u7083\u726a\u72d6\u72cb\u72d8\u72c9\u72dc\u72d2\u72d4\u72da\u72cc\u72d1\u73a4\u73a1\u73ad\u73a6\u73a2\u73a0\u73ac\u739d\u74dd\u74e8\u753f\u7540\u753e\u758c\u7598\u76af\u76f3\u76f1\u76f0\u76f5\u77f8\u77fc\u77f9\u77fb\u77fa"],["cda1","\u77f7\u7942\u793f\u79c5\u7a78\u7a7b\u7afb\u7c75\u7cfd\u8035\u808f\u80ae\u80a3\u80b8\u80b5\u80ad\u8220\u82a0\u82c0\u82ab\u829a\u8298\u829b\u82b5\u82a7\u82ae\u82bc\u829e\u82ba\u82b4\u82a8\u82a1\u82a9\u82c2\u82a4\u82c3\u82b6\u82a2\u8670\u866f\u866d\u866e\u8c56\u8fd2\u8fcb\u8fd3\u8fcd\u8fd6\u8fd5\u8fd7\u90b2\u90b4\u90af\u90b3\u90b0\u9639\u963d\u963c\u963a\u9643\u4fcd\u4fc5\u4fd3\u4fb2\u4fc9\u4fcb\u4fc1\u4fd4\u4fdc\u4fd9\u4fbb\u4fb3\u4fdb\u4fc7\u4fd6\u4fba\u4fc0\u4fb9\u4fec\u5244\u5249\u52c0\u52c2\u533d\u537c\u5397\u5396\u5399\u5398\u54ba\u54a1\u54ad\u54a5\u54cf"],["ce40","\u54c3\u830d\u54b7\u54ae\u54d6\u54b6\u54c5\u54c6\u54a0\u5470\u54bc\u54a2\u54be\u5472\u54de\u54b0\u57b5\u579e\u579f\u57a4\u578c\u5797\u579d\u579b\u5794\u5798\u578f\u5799\u57a5\u579a\u5795\u58f4\u590d\u5953\u59e1\u59de\u59ee\u5a00\u59f1\u59dd\u59fa\u59fd\u59fc\u59f6\u59e4\u59f2\u59f7\u59db\u59e9\u59f3\u59f5\u59e0\u59fe\u59f4\u59ed\u5ba8\u5c4c\u5cd0\u5cd8\u5ccc\u5cd7\u5ccb\u5cdb"],["cea1","\u5cde\u5cda\u5cc9\u5cc7\u5cca\u5cd6\u5cd3\u5cd4\u5ccf\u5cc8\u5cc6\u5cce\u5cdf\u5cf8\u5df9\u5e21\u5e22\u5e23\u5e20\u5e24\u5eb0\u5ea4\u5ea2\u5e9b\u5ea3\u5ea5\u5f07\u5f2e\u5f56\u5f86\u6037\u6039\u6054\u6072\u605e\u6045\u6053\u6047\u6049\u605b\u604c\u6040\u6042\u605f\u6024\u6044\u6058\u6066\u606e\u6242\u6243\u62cf\u630d\u630b\u62f5\u630e\u6303\u62eb\u62f9\u630f\u630c\u62f8\u62f6\u6300\u6313\u6314\u62fa\u6315\u62fb\u62f0\u6541\u6543\u65aa\u65bf\u6636\u6621\u6632\u6635\u661c\u6626\u6622\u6633\u662b\u663a\u661d\u6634\u6639\u662e\u670f\u6710\u67c1\u67f2\u67c8\u67ba"],["cf40","\u67dc\u67bb\u67f8\u67d8\u67c0\u67b7\u67c5\u67eb\u67e4\u67df\u67b5\u67cd\u67b3\u67f7\u67f6\u67ee\u67e3\u67c2\u67b9\u67ce\u67e7\u67f0\u67b2\u67fc\u67c6\u67ed\u67cc\u67ae\u67e6\u67db\u67fa\u67c9\u67ca\u67c3\u67ea\u67cb\u6b28\u6b82\u6b84\u6bb6\u6bd6\u6bd8\u6be0\u6c20\u6c21\u6d28\u6d34\u6d2d\u6d1f\u6d3c\u6d3f\u6d12\u6d0a\u6cda\u6d33\u6d04\u6d19\u6d3a\u6d1a\u6d11\u6d00\u6d1d\u6d42"],["cfa1","\u6d01\u6d18\u6d37\u6d03\u6d0f\u6d40\u6d07\u6d20\u6d2c\u6d08\u6d22\u6d09\u6d10\u70b7\u709f\u70be\u70b1\u70b0\u70a1\u70b4\u70b5\u70a9\u7241\u7249\u724a\u726c\u7270\u7273\u726e\u72ca\u72e4\u72e8\u72eb\u72df\u72ea\u72e6\u72e3\u7385\u73cc\u73c2\u73c8\u73c5\u73b9\u73b6\u73b5\u73b4\u73eb\u73bf\u73c7\u73be\u73c3\u73c6\u73b8\u73cb\u74ec\u74ee\u752e\u7547\u7548\u75a7\u75aa\u7679\u76c4\u7708\u7703\u7704\u7705\u770a\u76f7\u76fb\u76fa\u77e7\u77e8\u7806\u7811\u7812\u7805\u7810\u780f\u780e\u7809\u7803\u7813\u794a\u794c\u794b\u7945\u7944\u79d5\u79cd\u79cf\u79d6\u79ce\u7a80"],["d040","\u7a7e\u7ad1\u7b00\u7b01\u7c7a\u7c78\u7c79\u7c7f\u7c80\u7c81\u7d03\u7d08\u7d01\u7f58\u7f91\u7f8d\u7fbe\u8007\u800e\u800f\u8014\u8037\u80d8\u80c7\u80e0\u80d1\u80c8\u80c2\u80d0\u80c5\u80e3\u80d9\u80dc\u80ca\u80d5\u80c9\u80cf\u80d7\u80e6\u80cd\u81ff\u8221\u8294\u82d9\u82fe\u82f9\u8307\u82e8\u8300\u82d5\u833a\u82eb\u82d6\u82f4\u82ec\u82e1\u82f2\u82f5\u830c\u82fb\u82f6\u82f0\u82ea"],["d0a1","\u82e4\u82e0\u82fa\u82f3\u82ed\u8677\u8674\u867c\u8673\u8841\u884e\u8867\u886a\u8869\u89d3\u8a04\u8a07\u8d72\u8fe3\u8fe1\u8fee\u8fe0\u90f1\u90bd\u90bf\u90d5\u90c5\u90be\u90c7\u90cb\u90c8\u91d4\u91d3\u9654\u964f\u9651\u9653\u964a\u964e\u501e\u5005\u5007\u5013\u5022\u5030\u501b\u4ff5\u4ff4\u5033\u5037\u502c\u4ff6\u4ff7\u5017\u501c\u5020\u5027\u5035\u502f\u5031\u500e\u515a\u5194\u5193\u51ca\u51c4\u51c5\u51c8\u51ce\u5261\u525a\u5252\u525e\u525f\u5255\u5262\u52cd\u530e\u539e\u5526\u54e2\u5517\u5512\u54e7\u54f3\u54e4\u551a\u54ff\u5504\u5508\u54eb\u5511\u5505\u54f1"],["d140","\u550a\u54fb\u54f7\u54f8\u54e0\u550e\u5503\u550b\u5701\u5702\u57cc\u5832\u57d5\u57d2\u57ba\u57c6\u57bd\u57bc\u57b8\u57b6\u57bf\u57c7\u57d0\u57b9\u57c1\u590e\u594a\u5a19\u5a16\u5a2d\u5a2e\u5a15\u5a0f\u5a17\u5a0a\u5a1e\u5a33\u5b6c\u5ba7\u5bad\u5bac\u5c03\u5c56\u5c54\u5cec\u5cff\u5cee\u5cf1\u5cf7\u5d00\u5cf9\u5e29\u5e28\u5ea8\u5eae\u5eaa\u5eac\u5f33\u5f30\u5f67\u605d\u605a\u6067"],["d1a1","\u6041\u60a2\u6088\u6080\u6092\u6081\u609d\u6083\u6095\u609b\u6097\u6087\u609c\u608e\u6219\u6246\u62f2\u6310\u6356\u632c\u6344\u6345\u6336\u6343\u63e4\u6339\u634b\u634a\u633c\u6329\u6341\u6334\u6358\u6354\u6359\u632d\u6347\u6333\u635a\u6351\u6338\u6357\u6340\u6348\u654a\u6546\u65c6\u65c3\u65c4\u65c2\u664a\u665f\u6647\u6651\u6712\u6713\u681f\u681a\u6849\u6832\u6833\u683b\u684b\u684f\u6816\u6831\u681c\u6835\u682b\u682d\u682f\u684e\u6844\u6834\u681d\u6812\u6814\u6826\u6828\u682e\u684d\u683a\u6825\u6820\u6b2c\u6b2f\u6b2d\u6b31\u6b34\u6b6d\u8082\u6b88\u6be6\u6be4"],["d240","\u6be8\u6be3\u6be2\u6be7\u6c25\u6d7a\u6d63\u6d64\u6d76\u6d0d\u6d61\u6d92\u6d58\u6d62\u6d6d\u6d6f\u6d91\u6d8d\u6def\u6d7f\u6d86\u6d5e\u6d67\u6d60\u6d97\u6d70\u6d7c\u6d5f\u6d82\u6d98\u6d2f\u6d68\u6d8b\u6d7e\u6d80\u6d84\u6d16\u6d83\u6d7b\u6d7d\u6d75\u6d90\u70dc\u70d3\u70d1\u70dd\u70cb\u7f39\u70e2\u70d7\u70d2\u70de\u70e0\u70d4\u70cd\u70c5\u70c6\u70c7\u70da\u70ce\u70e1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72fa\u72f4\u72fe\u72f6\u72f3\u72fb\u7301\u73d3\u73d9\u73e5\u73d6\u73bc\u73e7\u73e3\u73e9\u73dc\u73d2\u73db\u73d4\u73dd\u73da\u73d7\u73d8\u73e8\u74de\u74df\u74f4\u74f5\u7521\u755b\u755f\u75b0\u75c1\u75bb\u75c4\u75c0\u75bf\u75b6\u75ba\u768a\u76c9\u771d\u771b\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771a\u7722\u7727\u7823\u782c\u7822\u7835\u782f\u7828\u782e\u782b\u7821\u7829\u7833\u782a\u7831\u7954\u795b\u794f\u795c\u7953\u7952\u7951\u79eb\u79ec\u79e0\u79ee\u79ed\u79ea\u79dc\u79de\u79dd\u7a86\u7a89\u7a85\u7a8b\u7a8c\u7a8a\u7a87\u7ad8\u7b10"],["d340","\u7b04\u7b13\u7b05\u7b0f\u7b08\u7b0a\u7b0e\u7b09\u7b12\u7c84\u7c91\u7c8a\u7c8c\u7c88\u7c8d\u7c85\u7d1e\u7d1d\u7d11\u7d0e\u7d18\u7d16\u7d13\u7d1f\u7d12\u7d0f\u7d0c\u7f5c\u7f61\u7f5e\u7f60\u7f5d\u7f5b\u7f96\u7f92\u7fc3\u7fc2\u7fc0\u8016\u803e\u8039\u80fa\u80f2\u80f9\u80f5\u8101\u80fb\u8100\u8201\u822f\u8225\u8333\u832d\u8344\u8319\u8351\u8325\u8356\u833f\u8341\u8326\u831c\u8322"],["d3a1","\u8342\u834e\u831b\u832a\u8308\u833c\u834d\u8316\u8324\u8320\u8337\u832f\u8329\u8347\u8345\u834c\u8353\u831e\u832c\u834b\u8327\u8348\u8653\u8652\u86a2\u86a8\u8696\u868d\u8691\u869e\u8687\u8697\u8686\u868b\u869a\u8685\u86a5\u8699\u86a1\u86a7\u8695\u8698\u868e\u869d\u8690\u8694\u8843\u8844\u886d\u8875\u8876\u8872\u8880\u8871\u887f\u886f\u8883\u887e\u8874\u887c\u8a12\u8c47\u8c57\u8c7b\u8ca4\u8ca3\u8d76\u8d78\u8db5\u8db7\u8db6\u8ed1\u8ed3\u8ffe\u8ff5\u9002\u8fff\u8ffb\u9004\u8ffc\u8ff6\u90d6\u90e0\u90d9\u90da\u90e3\u90df\u90e5\u90d8\u90db\u90d7\u90dc\u90e4\u9150"],["d440","\u914e\u914f\u91d5\u91e2\u91da\u965c\u965f\u96bc\u98e3\u9adf\u9b2f\u4e7f\u5070\u506a\u5061\u505e\u5060\u5053\u504b\u505d\u5072\u5048\u504d\u5041\u505b\u504a\u5062\u5015\u5045\u505f\u5069\u506b\u5063\u5064\u5046\u5040\u506e\u5073\u5057\u5051\u51d0\u526b\u526d\u526c\u526e\u52d6\u52d3\u532d\u539c\u5575\u5576\u553c\u554d\u5550\u5534\u552a\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550c\u5532\u5565\u554e\u5539\u5548\u552d\u553b\u5540\u554b\u570a\u5707\u57fb\u5814\u57e2\u57f6\u57dc\u57f4\u5800\u57ed\u57fd\u5808\u57f8\u580b\u57f3\u57cf\u5807\u57ee\u57e3\u57f2\u57e5\u57ec\u57e1\u580e\u57fc\u5810\u57e7\u5801\u580c\u57f1\u57e9\u57f0\u580d\u5804\u595c\u5a60\u5a58\u5a55\u5a67\u5a5e\u5a38\u5a35\u5a6d\u5a50\u5a5f\u5a65\u5a6c\u5a53\u5a64\u5a57\u5a43\u5a5d\u5a52\u5a44\u5a5b\u5a48\u5a8e\u5a3e\u5a4d\u5a39\u5a4c\u5a70\u5a69\u5a47\u5a51\u5a56\u5a42\u5a5c\u5b72\u5b6e\u5bc1\u5bc0\u5c59\u5d1e\u5d0b\u5d1d\u5d1a\u5d20\u5d0c\u5d28\u5d0d\u5d26\u5d25\u5d0f"],["d540","\u5d30\u5d12\u5d23\u5d1f\u5d2e\u5e3e\u5e34\u5eb1\u5eb4\u5eb9\u5eb2\u5eb3\u5f36\u5f38\u5f9b\u5f96\u5f9f\u608a\u6090\u6086\u60be\u60b0\u60ba\u60d3\u60d4\u60cf\u60e4\u60d9\u60dd\u60c8\u60b1\u60db\u60b7\u60ca\u60bf\u60c3\u60cd\u60c0\u6332\u6365\u638a\u6382\u637d\u63bd\u639e\u63ad\u639d\u6397\u63ab\u638e\u636f\u6387\u6390\u636e\u63af\u6375\u639c\u636d\u63ae\u637c\u63a4\u633b\u639f"],["d5a1","\u6378\u6385\u6381\u6391\u638d\u6370\u6553\u65cd\u6665\u6661\u665b\u6659\u665c\u6662\u6718\u6879\u6887\u6890\u689c\u686d\u686e\u68ae\u68ab\u6956\u686f\u68a3\u68ac\u68a9\u6875\u6874\u68b2\u688f\u6877\u6892\u687c\u686b\u6872\u68aa\u6880\u6871\u687e\u689b\u6896\u688b\u68a0\u6889\u68a4\u6878\u687b\u6891\u688c\u688a\u687d\u6b36\u6b33\u6b37\u6b38\u6b91\u6b8f\u6b8d\u6b8e\u6b8c\u6c2a\u6dc0\u6dab\u6db4\u6db3\u6e74\u6dac\u6de9\u6de2\u6db7\u6df6\u6dd4\u6e00\u6dc8\u6de0\u6ddf\u6dd6\u6dbe\u6de5\u6ddc\u6ddd\u6ddb\u6df4\u6dca\u6dbd\u6ded\u6df0\u6dba\u6dd5\u6dc2\u6dcf\u6dc9"],["d640","\u6dd0\u6df2\u6dd3\u6dfd\u6dd7\u6dcd\u6de3\u6dbb\u70fa\u710d\u70f7\u7117\u70f4\u710c\u70f0\u7104\u70f3\u7110\u70fc\u70ff\u7106\u7113\u7100\u70f8\u70f6\u710b\u7102\u710e\u727e\u727b\u727c\u727f\u731d\u7317\u7307\u7311\u7318\u730a\u7308\u72ff\u730f\u731e\u7388\u73f6\u73f8\u73f5\u7404\u7401\u73fd\u7407\u7400\u73fa\u73fc\u73ff\u740c\u740b\u73f4\u7408\u7564\u7563\u75ce\u75d2\u75cf"],["d6a1","\u75cb\u75cc\u75d1\u75d0\u768f\u7689\u76d3\u7739\u772f\u772d\u7731\u7732\u7734\u7733\u773d\u7725\u773b\u7735\u7848\u7852\u7849\u784d\u784a\u784c\u7826\u7845\u7850\u7964\u7967\u7969\u796a\u7963\u796b\u7961\u79bb\u79fa\u79f8\u79f6\u79f7\u7a8f\u7a94\u7a90\u7b35\u7b47\u7b34\u7b25\u7b30\u7b22\u7b24\u7b33\u7b18\u7b2a\u7b1d\u7b31\u7b2b\u7b2d\u7b2f\u7b32\u7b38\u7b1a\u7b23\u7c94\u7c98\u7c96\u7ca3\u7d35\u7d3d\u7d38\u7d36\u7d3a\u7d45\u7d2c\u7d29\u7d41\u7d47\u7d3e\u7d3f\u7d4a\u7d3b\u7d28\u7f63\u7f95\u7f9c\u7f9d\u7f9b\u7fca\u7fcb\u7fcd\u7fd0\u7fd1\u7fc7\u7fcf\u7fc9\u801f"],["d740","\u801e\u801b\u8047\u8043\u8048\u8118\u8125\u8119\u811b\u812d\u811f\u812c\u811e\u8121\u8115\u8127\u811d\u8122\u8211\u8238\u8233\u823a\u8234\u8232\u8274\u8390\u83a3\u83a8\u838d\u837a\u8373\u83a4\u8374\u838f\u8381\u8395\u8399\u8375\u8394\u83a9\u837d\u8383\u838c\u839d\u839b\u83aa\u838b\u837e\u83a5\u83af\u8388\u8397\u83b0\u837f\u83a6\u8387\u83ae\u8376\u839a\u8659\u8656\u86bf\u86b7"],["d7a1","\u86c2\u86c1\u86c5\u86ba\u86b0\u86c8\u86b9\u86b3\u86b8\u86cc\u86b4\u86bb\u86bc\u86c3\u86bd\u86be\u8852\u8889\u8895\u88a8\u88a2\u88aa\u889a\u8891\u88a1\u889f\u8898\u88a7\u8899\u889b\u8897\u88a4\u88ac\u888c\u8893\u888e\u8982\u89d6\u89d9\u89d5\u8a30\u8a27\u8a2c\u8a1e\u8c39\u8c3b\u8c5c\u8c5d\u8c7d\u8ca5\u8d7d\u8d7b\u8d79\u8dbc\u8dc2\u8db9\u8dbf\u8dc1\u8ed8\u8ede\u8edd\u8edc\u8ed7\u8ee0\u8ee1\u9024\u900b\u9011\u901c\u900c\u9021\u90ef\u90ea\u90f0\u90f4\u90f2\u90f3\u90d4\u90eb\u90ec\u90e9\u9156\u9158\u915a\u9153\u9155\u91ec\u91f4\u91f1\u91f3\u91f8\u91e4\u91f9\u91ea"],["d840","\u91eb\u91f7\u91e8\u91ee\u957a\u9586\u9588\u967c\u966d\u966b\u9671\u966f\u96bf\u976a\u9804\u98e5\u9997\u509b\u5095\u5094\u509e\u508b\u50a3\u5083\u508c\u508e\u509d\u5068\u509c\u5092\u5082\u5087\u515f\u51d4\u5312\u5311\u53a4\u53a7\u5591\u55a8\u55a5\u55ad\u5577\u5645\u55a2\u5593\u5588\u558f\u55b5\u5581\u55a3\u5592\u55a4\u557d\u558c\u55a6\u557f\u5595\u55a1\u558e\u570c\u5829\u5837"],["d8a1","\u5819\u581e\u5827\u5823\u5828\u57f5\u5848\u5825\u581c\u581b\u5833\u583f\u5836\u582e\u5839\u5838\u582d\u582c\u583b\u5961\u5aaf\u5a94\u5a9f\u5a7a\u5aa2\u5a9e\u5a78\u5aa6\u5a7c\u5aa5\u5aac\u5a95\u5aae\u5a37\u5a84\u5a8a\u5a97\u5a83\u5a8b\u5aa9\u5a7b\u5a7d\u5a8c\u5a9c\u5a8f\u5a93\u5a9d\u5bea\u5bcd\u5bcb\u5bd4\u5bd1\u5bca\u5bce\u5c0c\u5c30\u5d37\u5d43\u5d6b\u5d41\u5d4b\u5d3f\u5d35\u5d51\u5d4e\u5d55\u5d33\u5d3a\u5d52\u5d3d\u5d31\u5d59\u5d42\u5d39\u5d49\u5d38\u5d3c\u5d32\u5d36\u5d40\u5d45\u5e44\u5e41\u5f58\u5fa6\u5fa5\u5fab\u60c9\u60b9\u60cc\u60e2\u60ce\u60c4\u6114"],["d940","\u60f2\u610a\u6116\u6105\u60f5\u6113\u60f8\u60fc\u60fe\u60c1\u6103\u6118\u611d\u6110\u60ff\u6104\u610b\u624a\u6394\u63b1\u63b0\u63ce\u63e5\u63e8\u63ef\u63c3\u649d\u63f3\u63ca\u63e0\u63f6\u63d5\u63f2\u63f5\u6461\u63df\u63be\u63dd\u63dc\u63c4\u63d8\u63d3\u63c2\u63c7\u63cc\u63cb\u63c8\u63f0\u63d7\u63d9\u6532\u6567\u656a\u6564\u655c\u6568\u6565\u658c\u659d\u659e\u65ae\u65d0\u65d2"],["d9a1","\u667c\u666c\u667b\u6680\u6671\u6679\u666a\u6672\u6701\u690c\u68d3\u6904\u68dc\u692a\u68ec\u68ea\u68f1\u690f\u68d6\u68f7\u68eb\u68e4\u68f6\u6913\u6910\u68f3\u68e1\u6907\u68cc\u6908\u6970\u68b4\u6911\u68ef\u68c6\u6914\u68f8\u68d0\u68fd\u68fc\u68e8\u690b\u690a\u6917\u68ce\u68c8\u68dd\u68de\u68e6\u68f4\u68d1\u6906\u68d4\u68e9\u6915\u6925\u68c7\u6b39\u6b3b\u6b3f\u6b3c\u6b94\u6b97\u6b99\u6b95\u6bbd\u6bf0\u6bf2\u6bf3\u6c30\u6dfc\u6e46\u6e47\u6e1f\u6e49\u6e88\u6e3c\u6e3d\u6e45\u6e62\u6e2b\u6e3f\u6e41\u6e5d\u6e73\u6e1c\u6e33\u6e4b\u6e40\u6e51\u6e3b\u6e03\u6e2e\u6e5e"],["da40","\u6e68\u6e5c\u6e61\u6e31\u6e28\u6e60\u6e71\u6e6b\u6e39\u6e22\u6e30\u6e53\u6e65\u6e27\u6e78\u6e64\u6e77\u6e55\u6e79\u6e52\u6e66\u6e35\u6e36\u6e5a\u7120\u711e\u712f\u70fb\u712e\u7131\u7123\u7125\u7122\u7132\u711f\u7128\u713a\u711b\u724b\u725a\u7288\u7289\u7286\u7285\u728b\u7312\u730b\u7330\u7322\u7331\u7333\u7327\u7332\u732d\u7326\u7323\u7335\u730c\u742e\u742c\u7430\u742b\u7416"],["daa1","\u741a\u7421\u742d\u7431\u7424\u7423\u741d\u7429\u7420\u7432\u74fb\u752f\u756f\u756c\u75e7\u75da\u75e1\u75e6\u75dd\u75df\u75e4\u75d7\u7695\u7692\u76da\u7746\u7747\u7744\u774d\u7745\u774a\u774e\u774b\u774c\u77de\u77ec\u7860\u7864\u7865\u785c\u786d\u7871\u786a\u786e\u7870\u7869\u7868\u785e\u7862\u7974\u7973\u7972\u7970\u7a02\u7a0a\u7a03\u7a0c\u7a04\u7a99\u7ae6\u7ae4\u7b4a\u7b3b\u7b44\u7b48\u7b4c\u7b4e\u7b40\u7b58\u7b45\u7ca2\u7c9e\u7ca8\u7ca1\u7d58\u7d6f\u7d63\u7d53\u7d56\u7d67\u7d6a\u7d4f\u7d6d\u7d5c\u7d6b\u7d52\u7d54\u7d69\u7d51\u7d5f\u7d4e\u7f3e\u7f3f\u7f65"],["db40","\u7f66\u7fa2\u7fa0\u7fa1\u7fd7\u8051\u804f\u8050\u80fe\u80d4\u8143\u814a\u8152\u814f\u8147\u813d\u814d\u813a\u81e6\u81ee\u81f7\u81f8\u81f9\u8204\u823c\u823d\u823f\u8275\u833b\u83cf\u83f9\u8423\u83c0\u83e8\u8412\u83e7\u83e4\u83fc\u83f6\u8410\u83c6\u83c8\u83eb\u83e3\u83bf\u8401\u83dd\u83e5\u83d8\u83ff\u83e1\u83cb\u83ce\u83d6\u83f5\u83c9\u8409\u840f\u83de\u8411\u8406\u83c2\u83f3"],["dba1","\u83d5\u83fa\u83c7\u83d1\u83ea\u8413\u83c3\u83ec\u83ee\u83c4\u83fb\u83d7\u83e2\u841b\u83db\u83fe\u86d8\u86e2\u86e6\u86d3\u86e3\u86da\u86ea\u86dd\u86eb\u86dc\u86ec\u86e9\u86d7\u86e8\u86d1\u8848\u8856\u8855\u88ba\u88d7\u88b9\u88b8\u88c0\u88be\u88b6\u88bc\u88b7\u88bd\u88b2\u8901\u88c9\u8995\u8998\u8997\u89dd\u89da\u89db\u8a4e\u8a4d\u8a39\u8a59\u8a40\u8a57\u8a58\u8a44\u8a45\u8a52\u8a48\u8a51\u8a4a\u8a4c\u8a4f\u8c5f\u8c81\u8c80\u8cba\u8cbe\u8cb0\u8cb9\u8cb5\u8d84\u8d80\u8d89\u8dd8\u8dd3\u8dcd\u8dc7\u8dd6\u8ddc\u8dcf\u8dd5\u8dd9\u8dc8\u8dd7\u8dc5\u8eef\u8ef7\u8efa"],["dc40","\u8ef9\u8ee6\u8eee\u8ee5\u8ef5\u8ee7\u8ee8\u8ef6\u8eeb\u8ef1\u8eec\u8ef4\u8ee9\u902d\u9034\u902f\u9106\u912c\u9104\u90ff\u90fc\u9108\u90f9\u90fb\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915f\u9162\u9160\u9201\u920a\u9225\u9203\u921a\u9226\u920f\u920c\u9200\u9212\u91ff\u91fd\u9206\u9204\u9227\u9202\u921c\u9224\u9219\u9217\u9205\u9216\u957b\u958d\u958c\u9590\u9687\u967e\u9688"],["dca1","\u9689\u9683\u9680\u96c2\u96c8\u96c3\u96f1\u96f0\u976c\u9770\u976e\u9807\u98a9\u98eb\u9ce6\u9ef9\u4e83\u4e84\u4eb6\u50bd\u50bf\u50c6\u50ae\u50c4\u50ca\u50b4\u50c8\u50c2\u50b0\u50c1\u50ba\u50b1\u50cb\u50c9\u50b6\u50b8\u51d7\u527a\u5278\u527b\u527c\u55c3\u55db\u55cc\u55d0\u55cb\u55ca\u55dd\u55c0\u55d4\u55c4\u55e9\u55bf\u55d2\u558d\u55cf\u55d5\u55e2\u55d6\u55c8\u55f2\u55cd\u55d9\u55c2\u5714\u5853\u5868\u5864\u584f\u584d\u5849\u586f\u5855\u584e\u585d\u5859\u5865\u585b\u583d\u5863\u5871\u58fc\u5ac7\u5ac4\u5acb\u5aba\u5ab8\u5ab1\u5ab5\u5ab0\u5abf\u5ac8\u5abb\u5ac6"],["dd40","\u5ab7\u5ac0\u5aca\u5ab4\u5ab6\u5acd\u5ab9\u5a90\u5bd6\u5bd8\u5bd9\u5c1f\u5c33\u5d71\u5d63\u5d4a\u5d65\u5d72\u5d6c\u5d5e\u5d68\u5d67\u5d62\u5df0\u5e4f\u5e4e\u5e4a\u5e4d\u5e4b\u5ec5\u5ecc\u5ec6\u5ecb\u5ec7\u5f40\u5faf\u5fad\u60f7\u6149\u614a\u612b\u6145\u6136\u6132\u612e\u6146\u612f\u614f\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63c5\u63f1\u63eb\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641f\u6415\u6418\u6439\u6437\u6422\u6423\u640c\u6426\u6430\u6428\u6441\u6435\u642f\u640a\u641a\u6440\u6425\u6427\u640b\u63e7\u641b\u642e\u6421\u640e\u656f\u6592\u65d3\u6686\u668c\u6695\u6690\u668b\u668a\u6699\u6694\u6678\u6720\u6966\u695f\u6938\u694e\u6962\u6971\u693f\u6945\u696a\u6939\u6942\u6957\u6959\u697a\u6948\u6949\u6935\u696c\u6933\u693d\u6965\u68f0\u6978\u6934\u6969\u6940\u696f\u6944\u6976\u6958\u6941\u6974\u694c\u693b\u694b\u6937\u695c\u694f\u6951\u6932\u6952\u692f\u697b\u693c\u6b46\u6b45\u6b43\u6b42\u6b48\u6b41\u6b9b\ufa0d\u6bfb\u6bfc"],["de40","\u6bf9\u6bf7\u6bf8\u6e9b\u6ed6\u6ec8\u6e8f\u6ec0\u6e9f\u6e93\u6e94\u6ea0\u6eb1\u6eb9\u6ec6\u6ed2\u6ebd\u6ec1\u6e9e\u6ec9\u6eb7\u6eb0\u6ecd\u6ea6\u6ecf\u6eb2\u6ebe\u6ec3\u6edc\u6ed8\u6e99\u6e92\u6e8e\u6e8d\u6ea4\u6ea1\u6ebf\u6eb3\u6ed0\u6eca\u6e97\u6eae\u6ea3\u7147\u7154\u7152\u7163\u7160\u7141\u715d\u7162\u7172\u7178\u716a\u7161\u7142\u7158\u7143\u714b\u7170\u715f\u7150\u7153"],["dea1","\u7144\u714d\u715a\u724f\u728d\u728c\u7291\u7290\u728e\u733c\u7342\u733b\u733a\u7340\u734a\u7349\u7444\u744a\u744b\u7452\u7451\u7457\u7440\u744f\u7450\u744e\u7442\u7446\u744d\u7454\u74e1\u74ff\u74fe\u74fd\u751d\u7579\u7577\u6983\u75ef\u760f\u7603\u75f7\u75fe\u75fc\u75f9\u75f8\u7610\u75fb\u75f6\u75ed\u75f5\u75fd\u7699\u76b5\u76dd\u7755\u775f\u7760\u7752\u7756\u775a\u7769\u7767\u7754\u7759\u776d\u77e0\u7887\u789a\u7894\u788f\u7884\u7895\u7885\u7886\u78a1\u7883\u7879\u7899\u7880\u7896\u787b\u797c\u7982\u797d\u7979\u7a11\u7a18\u7a19\u7a12\u7a17\u7a15\u7a22\u7a13"],["df40","\u7a1b\u7a10\u7aa3\u7aa2\u7a9e\u7aeb\u7b66\u7b64\u7b6d\u7b74\u7b69\u7b72\u7b65\u7b73\u7b71\u7b70\u7b61\u7b78\u7b76\u7b63\u7cb2\u7cb4\u7caf\u7d88\u7d86\u7d80\u7d8d\u7d7f\u7d85\u7d7a\u7d8e\u7d7b\u7d83\u7d7c\u7d8c\u7d94\u7d84\u7d7d\u7d92\u7f6d\u7f6b\u7f67\u7f68\u7f6c\u7fa6\u7fa5\u7fa7\u7fdb\u7fdc\u8021\u8164\u8160\u8177\u815c\u8169\u815b\u8162\u8172\u6721\u815e\u8176\u8167\u816f"],["dfa1","\u8144\u8161\u821d\u8249\u8244\u8240\u8242\u8245\u84f1\u843f\u8456\u8476\u8479\u848f\u848d\u8465\u8451\u8440\u8486\u8467\u8430\u844d\u847d\u845a\u8459\u8474\u8473\u845d\u8507\u845e\u8437\u843a\u8434\u847a\u8443\u8478\u8432\u8445\u8429\u83d9\u844b\u842f\u8442\u842d\u845f\u8470\u8439\u844e\u844c\u8452\u846f\u84c5\u848e\u843b\u8447\u8436\u8433\u8468\u847e\u8444\u842b\u8460\u8454\u846e\u8450\u870b\u8704\u86f7\u870c\u86fa\u86d6\u86f5\u874d\u86f8\u870e\u8709\u8701\u86f6\u870d\u8705\u88d6\u88cb\u88cd\u88ce\u88de\u88db\u88da\u88cc\u88d0\u8985\u899b\u89df\u89e5\u89e4"],["e040","\u89e1\u89e0\u89e2\u89dc\u89e6\u8a76\u8a86\u8a7f\u8a61\u8a3f\u8a77\u8a82\u8a84\u8a75\u8a83\u8a81\u8a74\u8a7a\u8c3c\u8c4b\u8c4a\u8c65\u8c64\u8c66\u8c86\u8c84\u8c85\u8ccc\u8d68\u8d69\u8d91\u8d8c\u8d8e\u8d8f\u8d8d\u8d93\u8d94\u8d90\u8d92\u8df0\u8de0\u8dec\u8df1\u8dee\u8dd0\u8de9\u8de3\u8de2\u8de7\u8df2\u8deb\u8df4\u8f06\u8eff\u8f01\u8f00\u8f05\u8f07\u8f08\u8f02\u8f0b\u9052\u903f"],["e0a1","\u9044\u9049\u903d\u9110\u910d\u910f\u9111\u9116\u9114\u910b\u910e\u916e\u916f\u9248\u9252\u9230\u923a\u9266\u9233\u9265\u925e\u9283\u922e\u924a\u9246\u926d\u926c\u924f\u9260\u9267\u926f\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924e\u9253\u924c\u9256\u9232\u959f\u959c\u959e\u959b\u9692\u9693\u9691\u9697\u96ce\u96fa\u96fd\u96f8\u96f5\u9773\u9777\u9778\u9772\u980f\u980d\u980e\u98ac\u98f6\u98f9\u99af\u99b2\u99b0\u99b5\u9aad\u9aab\u9b5b\u9cea\u9ced\u9ce7\u9e80\u9efd\u50e6\u50d4\u50d7\u50e8\u50f3\u50db\u50ea\u50dd\u50e4\u50d3\u50ec\u50f0\u50ef\u50e3\u50e0"],["e140","\u51d8\u5280\u5281\u52e9\u52eb\u5330\u53ac\u5627\u5615\u560c\u5612\u55fc\u560f\u561c\u5601\u5613\u5602\u55fa\u561d\u5604\u55ff\u55f9\u5889\u587c\u5890\u5898\u5886\u5881\u587f\u5874\u588b\u587a\u5887\u5891\u588e\u5876\u5882\u5888\u587b\u5894\u588f\u58fe\u596b\u5adc\u5aee\u5ae5\u5ad5\u5aea\u5ada\u5aed\u5aeb\u5af3\u5ae2\u5ae0\u5adb\u5aec\u5ade\u5add\u5ad9\u5ae8\u5adf\u5b77\u5be0"],["e1a1","\u5be3\u5c63\u5d82\u5d80\u5d7d\u5d86\u5d7a\u5d81\u5d77\u5d8a\u5d89\u5d88\u5d7e\u5d7c\u5d8d\u5d79\u5d7f\u5e58\u5e59\u5e53\u5ed8\u5ed1\u5ed7\u5ece\u5edc\u5ed5\u5ed9\u5ed2\u5ed4\u5f44\u5f43\u5f6f\u5fb6\u612c\u6128\u6141\u615e\u6171\u6173\u6152\u6153\u6172\u616c\u6180\u6174\u6154\u617a\u615b\u6165\u613b\u616a\u6161\u6156\u6229\u6227\u622b\u642b\u644d\u645b\u645d\u6474\u6476\u6472\u6473\u647d\u6475\u6466\u64a6\u644e\u6482\u645e\u645c\u644b\u6453\u6460\u6450\u647f\u643f\u646c\u646b\u6459\u6465\u6477\u6573\u65a0\u66a1\u66a0\u669f\u6705\u6704\u6722\u69b1\u69b6\u69c9"],["e240","\u69a0\u69ce\u6996\u69b0\u69ac\u69bc\u6991\u6999\u698e\u69a7\u698d\u69a9\u69be\u69af\u69bf\u69c4\u69bd\u69a4\u69d4\u69b9\u69ca\u699a\u69cf\u69b3\u6993\u69aa\u69a1\u699e\u69d9\u6997\u6990\u69c2\u69b5\u69a5\u69c6\u6b4a\u6b4d\u6b4b\u6b9e\u6b9f\u6ba0\u6bc3\u6bc4\u6bfe\u6ece\u6ef5\u6ef1\u6f03\u6f25\u6ef8\u6f37\u6efb\u6f2e\u6f09\u6f4e\u6f19\u6f1a\u6f27\u6f18\u6f3b\u6f12\u6eed\u6f0a"],["e2a1","\u6f36\u6f73\u6ef9\u6eee\u6f2d\u6f40\u6f30\u6f3c\u6f35\u6eeb\u6f07\u6f0e\u6f43\u6f05\u6efd\u6ef6\u6f39\u6f1c\u6efc\u6f3a\u6f1f\u6f0d\u6f1e\u6f08\u6f21\u7187\u7190\u7189\u7180\u7185\u7182\u718f\u717b\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734d\u7351\u734c\u7462\u7473\u7471\u7475\u7472\u7467\u746e\u7500\u7502\u7503\u757d\u7590\u7616\u7608\u760c\u7615\u7611\u760a\u7614\u76b8\u7781\u777c\u7785\u7782\u776e\u7780\u776f\u777e\u7783\u78b2\u78aa\u78b4\u78ad\u78a8\u787e\u78ab\u789e\u78a5\u78a0\u78ac\u78a2\u78a4\u7998\u798a\u798b\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7a2b\u7a4a\u7a30\u7a2f\u7a28\u7a26\u7aa8\u7aab\u7aac\u7aee\u7b88\u7b9c\u7b8a\u7b91\u7b90\u7b96\u7b8d\u7b8c\u7b9b\u7b8e\u7b85\u7b98\u5284\u7b99\u7ba4\u7b82\u7cbb\u7cbf\u7cbc\u7cba\u7da7\u7db7\u7dc2\u7da3\u7daa\u7dc1\u7dc0\u7dc5\u7d9d\u7dce\u7dc4\u7dc6\u7dcb\u7dcc\u7daf\u7db9\u7d96\u7dbc\u7d9f\u7da6\u7dae\u7da9\u7da1\u7dc9\u7f73\u7fe2\u7fe3\u7fe5\u7fde"],["e3a1","\u8024\u805d\u805c\u8189\u8186\u8183\u8187\u818d\u818c\u818b\u8215\u8497\u84a4\u84a1\u849f\u84ba\u84ce\u84c2\u84ac\u84ae\u84ab\u84b9\u84b4\u84c1\u84cd\u84aa\u849a\u84b1\u84d0\u849d\u84a7\u84bb\u84a2\u8494\u84c7\u84cc\u849b\u84a9\u84af\u84a8\u84d6\u8498\u84b6\u84cf\u84a0\u84d7\u84d4\u84d2\u84db\u84b0\u8491\u8661\u8733\u8723\u8728\u876b\u8740\u872e\u871e\u8721\u8719\u871b\u8743\u872c\u8741\u873e\u8746\u8720\u8732\u872a\u872d\u873c\u8712\u873a\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871a\u8730\u8711\u88f7\u88e7\u88f1\u88f2\u88fa\u88fe\u88ee\u88fc\u88f6\u88fb"],["e440","\u88f0\u88ec\u88eb\u899d\u89a1\u899f\u899e\u89e9\u89eb\u89e8\u8aab\u8a99\u8a8b\u8a92\u8a8f\u8a96\u8c3d\u8c68\u8c69\u8cd5\u8ccf\u8cd7\u8d96\u8e09\u8e02\u8dff\u8e0d\u8dfd\u8e0a\u8e03\u8e07\u8e06\u8e05\u8dfe\u8e00\u8e04\u8f10\u8f11\u8f0e\u8f0d\u9123\u911c\u9120\u9122\u911f\u911d\u911a\u9124\u9121\u911b\u917a\u9172\u9179\u9173\u92a5\u92a4\u9276\u929b\u927a\u92a0\u9294\u92aa\u928d"],["e4a1","\u92a6\u929a\u92ab\u9279\u9297\u927f\u92a3\u92ee\u928e\u9282\u9295\u92a2\u927d\u9288\u92a1\u928a\u9286\u928c\u9299\u92a7\u927e\u9287\u92a9\u929d\u928b\u922d\u969e\u96a1\u96ff\u9758\u977d\u977a\u977e\u9783\u9780\u9782\u977b\u9784\u9781\u977f\u97ce\u97cd\u9816\u98ad\u98ae\u9902\u9900\u9907\u999d\u999c\u99c3\u99b9\u99bb\u99ba\u99c2\u99bd\u99c7\u9ab1\u9ae3\u9ae7\u9b3e\u9b3f\u9b60\u9b61\u9b5f\u9cf1\u9cf2\u9cf5\u9ea7\u50ff\u5103\u5130\u50f8\u5106\u5107\u50f6\u50fe\u510b\u510c\u50fd\u510a\u528b\u528c\u52f1\u52ef\u5648\u5642\u564c\u5635\u5641\u564a\u5649\u5646\u5658"],["e540","\u565a\u5640\u5633\u563d\u562c\u563e\u5638\u562a\u563a\u571a\u58ab\u589d\u58b1\u58a0\u58a3\u58af\u58ac\u58a5\u58a1\u58ff\u5aff\u5af4\u5afd\u5af7\u5af6\u5b03\u5af8\u5b02\u5af9\u5b01\u5b07\u5b05\u5b0f\u5c67\u5d99\u5d97\u5d9f\u5d92\u5da2\u5d93\u5d95\u5da0\u5d9c\u5da1\u5d9a\u5d9e\u5e69\u5e5d\u5e60\u5e5c\u7df3\u5edb\u5ede\u5ee1\u5f49\u5fb2\u618b\u6183\u6179\u61b1\u61b0\u61a2\u6189"],["e5a1","\u619b\u6193\u61af\u61ad\u619f\u6192\u61aa\u61a1\u618d\u6166\u61b3\u622d\u646e\u6470\u6496\u64a0\u6485\u6497\u649c\u648f\u648b\u648a\u648c\u64a3\u649f\u6468\u64b1\u6498\u6576\u657a\u6579\u657b\u65b2\u65b3\u66b5\u66b0\u66a9\u66b2\u66b7\u66aa\u66af\u6a00\u6a06\u6a17\u69e5\u69f8\u6a15\u69f1\u69e4\u6a20\u69ff\u69ec\u69e2\u6a1b\u6a1d\u69fe\u6a27\u69f2\u69ee\u6a14\u69f7\u69e7\u6a40\u6a08\u69e6\u69fb\u6a0d\u69fc\u69eb\u6a09\u6a04\u6a18\u6a25\u6a0f\u69f6\u6a26\u6a07\u69f4\u6a16\u6b51\u6ba5\u6ba3\u6ba2\u6ba6\u6c01\u6c00\u6bff\u6c02\u6f41\u6f26\u6f7e\u6f87\u6fc6\u6f92"],["e640","\u6f8d\u6f89\u6f8c\u6f62\u6f4f\u6f85\u6f5a\u6f96\u6f76\u6f6c\u6f82\u6f55\u6f72\u6f52\u6f50\u6f57\u6f94\u6f93\u6f5d\u6f00\u6f61\u6f6b\u6f7d\u6f67\u6f90\u6f53\u6f8b\u6f69\u6f7f\u6f95\u6f63\u6f77\u6f6a\u6f7b\u71b2\u71af\u719b\u71b0\u71a0\u719a\u71a9\u71b5\u719d\u71a5\u719e\u71a4\u71a1\u71aa\u719c\u71a7\u71b3\u7298\u729a\u7358\u7352\u735e\u735f\u7360\u735d\u735b\u7361\u735a\u7359"],["e6a1","\u7362\u7487\u7489\u748a\u7486\u7481\u747d\u7485\u7488\u747c\u7479\u7508\u7507\u757e\u7625\u761e\u7619\u761d\u761c\u7623\u761a\u7628\u761b\u769c\u769d\u769e\u769b\u778d\u778f\u7789\u7788\u78cd\u78bb\u78cf\u78cc\u78d1\u78ce\u78d4\u78c8\u78c3\u78c4\u78c9\u799a\u79a1\u79a0\u799c\u79a2\u799b\u6b76\u7a39\u7ab2\u7ab4\u7ab3\u7bb7\u7bcb\u7bbe\u7bac\u7bce\u7baf\u7bb9\u7bca\u7bb5\u7cc5\u7cc8\u7ccc\u7ccb\u7df7\u7ddb\u7dea\u7de7\u7dd7\u7de1\u7e03\u7dfa\u7de6\u7df6\u7df1\u7df0\u7dee\u7ddf\u7f76\u7fac\u7fb0\u7fad\u7fed\u7feb\u7fea\u7fec\u7fe6\u7fe8\u8064\u8067\u81a3\u819f"],["e740","\u819e\u8195\u81a2\u8199\u8197\u8216\u824f\u8253\u8252\u8250\u824e\u8251\u8524\u853b\u850f\u8500\u8529\u850e\u8509\u850d\u851f\u850a\u8527\u851c\u84fb\u852b\u84fa\u8508\u850c\u84f4\u852a\u84f2\u8515\u84f7\u84eb\u84f3\u84fc\u8512\u84ea\u84e9\u8516\u84fe\u8528\u851d\u852e\u8502\u84fd\u851e\u84f6\u8531\u8526\u84e7\u84e8\u84f0\u84ef\u84f9\u8518\u8520\u8530\u850b\u8519\u852f\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87e1\u8773\u8758\u8754\u875b\u8752\u8761\u875a\u8751\u875e\u876d\u876a\u8750\u874e\u875f\u875d\u876f\u876c\u877a\u876e\u875c\u8765\u874f\u877b\u8775\u8762\u8767\u8769\u885a\u8905\u890c\u8914\u890b\u8917\u8918\u8919\u8906\u8916\u8911\u890e\u8909\u89a2\u89a4\u89a3\u89ed\u89f0\u89ec\u8acf\u8ac6\u8ab8\u8ad3\u8ad1\u8ad4\u8ad5\u8abb\u8ad7\u8abe\u8ac0\u8ac5\u8ad8\u8ac3\u8aba\u8abd\u8ad9\u8c3e\u8c4d\u8c8f\u8ce5\u8cdf\u8cd9\u8ce8\u8cda\u8cdd\u8ce7\u8da0\u8d9c\u8da1\u8d9b\u8e20\u8e23\u8e25\u8e24\u8e2e\u8e15\u8e1b\u8e16\u8e11\u8e19\u8e26\u8e27"],["e840","\u8e14\u8e12\u8e18\u8e13\u8e1c\u8e17\u8e1a\u8f2c\u8f24\u8f18\u8f1a\u8f20\u8f23\u8f16\u8f17\u9073\u9070\u906f\u9067\u906b\u912f\u912b\u9129\u912a\u9132\u9126\u912e\u9185\u9186\u918a\u9181\u9182\u9184\u9180\u92d0\u92c3\u92c4\u92c0\u92d9\u92b6\u92cf\u92f1\u92df\u92d8\u92e9\u92d7\u92dd\u92cc\u92ef\u92c2\u92e8\u92ca\u92c8\u92ce\u92e6\u92cd\u92d5\u92c9\u92e0\u92de\u92e7\u92d1\u92d3"],["e8a1","\u92b5\u92e1\u92c6\u92b4\u957c\u95ac\u95ab\u95ae\u95b0\u96a4\u96a2\u96d3\u9705\u9708\u9702\u975a\u978a\u978e\u9788\u97d0\u97cf\u981e\u981d\u9826\u9829\u9828\u9820\u981b\u9827\u98b2\u9908\u98fa\u9911\u9914\u9916\u9917\u9915\u99dc\u99cd\u99cf\u99d3\u99d4\u99ce\u99c9\u99d6\u99d8\u99cb\u99d7\u99cc\u9ab3\u9aec\u9aeb\u9af3\u9af2\u9af1\u9b46\u9b43\u9b67\u9b74\u9b71\u9b66\u9b76\u9b75\u9b70\u9b68\u9b64\u9b6c\u9cfc\u9cfa\u9cfd\u9cff\u9cf7\u9d07\u9d00\u9cf9\u9cfb\u9d08\u9d05\u9d04\u9e83\u9ed3\u9f0f\u9f10\u511c\u5113\u5117\u511a\u5111\u51de\u5334\u53e1\u5670\u5660\u566e"],["e940","\u5673\u5666\u5663\u566d\u5672\u565e\u5677\u571c\u571b\u58c8\u58bd\u58c9\u58bf\u58ba\u58c2\u58bc\u58c6\u5b17\u5b19\u5b1b\u5b21\u5b14\u5b13\u5b10\u5b16\u5b28\u5b1a\u5b20\u5b1e\u5bef\u5dac\u5db1\u5da9\u5da7\u5db5\u5db0\u5dae\u5daa\u5da8\u5db2\u5dad\u5daf\u5db4\u5e67\u5e68\u5e66\u5e6f\u5ee9\u5ee7\u5ee6\u5ee8\u5ee5\u5f4b\u5fbc\u619d\u61a8\u6196\u61c5\u61b4\u61c6\u61c1\u61cc\u61ba"],["e9a1","\u61bf\u61b8\u618c\u64d7\u64d6\u64d0\u64cf\u64c9\u64bd\u6489\u64c3\u64db\u64f3\u64d9\u6533\u657f\u657c\u65a2\u66c8\u66be\u66c0\u66ca\u66cb\u66cf\u66bd\u66bb\u66ba\u66cc\u6723\u6a34\u6a66\u6a49\u6a67\u6a32\u6a68\u6a3e\u6a5d\u6a6d\u6a76\u6a5b\u6a51\u6a28\u6a5a\u6a3b\u6a3f\u6a41\u6a6a\u6a64\u6a50\u6a4f\u6a54\u6a6f\u6a69\u6a60\u6a3c\u6a5e\u6a56\u6a55\u6a4d\u6a4e\u6a46\u6b55\u6b54\u6b56\u6ba7\u6baa\u6bab\u6bc8\u6bc7\u6c04\u6c03\u6c06\u6fad\u6fcb\u6fa3\u6fc7\u6fbc\u6fce\u6fc8\u6f5e\u6fc4\u6fbd\u6f9e\u6fca\u6fa8\u7004\u6fa5\u6fae\u6fba\u6fac\u6faa\u6fcf\u6fbf\u6fb8"],["ea40","\u6fa2\u6fc9\u6fab\u6fcd\u6faf\u6fb2\u6fb0\u71c5\u71c2\u71bf\u71b8\u71d6\u71c0\u71c1\u71cb\u71d4\u71ca\u71c7\u71cf\u71bd\u71d8\u71bc\u71c6\u71da\u71db\u729d\u729e\u7369\u7366\u7367\u736c\u7365\u736b\u736a\u747f\u749a\u74a0\u7494\u7492\u7495\u74a1\u750b\u7580\u762f\u762d\u7631\u763d\u7633\u763c\u7635\u7632\u7630\u76bb\u76e6\u779a\u779d\u77a1\u779c\u779b\u77a2\u77a3\u7795\u7799"],["eaa1","\u7797\u78dd\u78e9\u78e5\u78ea\u78de\u78e3\u78db\u78e1\u78e2\u78ed\u78df\u78e0\u79a4\u7a44\u7a48\u7a47\u7ab6\u7ab8\u7ab5\u7ab1\u7ab7\u7bde\u7be3\u7be7\u7bdd\u7bd5\u7be5\u7bda\u7be8\u7bf9\u7bd4\u7bea\u7be2\u7bdc\u7beb\u7bd8\u7bdf\u7cd2\u7cd4\u7cd7\u7cd0\u7cd1\u7e12\u7e21\u7e17\u7e0c\u7e1f\u7e20\u7e13\u7e0e\u7e1c\u7e15\u7e1a\u7e22\u7e0b\u7e0f\u7e16\u7e0d\u7e14\u7e25\u7e24\u7f43\u7f7b\u7f7c\u7f7a\u7fb1\u7fef\u802a\u8029\u806c\u81b1\u81a6\u81ae\u81b9\u81b5\u81ab\u81b0\u81ac\u81b4\u81b2\u81b7\u81a7\u81f2\u8255\u8256\u8257\u8556\u8545\u856b\u854d\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853e\u855b\u8571\u854e\u856e\u8575\u8555\u8567\u8560\u858c\u8566\u855d\u8554\u8565\u856c\u8663\u8665\u8664\u879b\u878f\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87a3\u8785\u8790\u8791\u879d\u8784\u8794\u879c\u879a\u8789\u891e\u8926\u8930\u892d\u892e\u8927\u8931\u8922\u8929\u8923\u892f\u892c\u891f\u89f1\u8ae0"],["eba1","\u8ae2\u8af2\u8af4\u8af5\u8add\u8b14\u8ae4\u8adf\u8af0\u8ac8\u8ade\u8ae1\u8ae8\u8aff\u8aef\u8afb\u8c91\u8c92\u8c90\u8cf5\u8cee\u8cf1\u8cf0\u8cf3\u8d6c\u8d6e\u8da5\u8da7\u8e33\u8e3e\u8e38\u8e40\u8e45\u8e36\u8e3c\u8e3d\u8e41\u8e30\u8e3f\u8ebd\u8f36\u8f2e\u8f35\u8f32\u8f39\u8f37\u8f34\u9076\u9079\u907b\u9086\u90fa\u9133\u9135\u9136\u9193\u9190\u9191\u918d\u918f\u9327\u931e\u9308\u931f\u9306\u930f\u937a\u9338\u933c\u931b\u9323\u9312\u9301\u9346\u932d\u930e\u930d\u92cb\u931d\u92fa\u9325\u9313\u92f9\u92f7\u9334\u9302\u9324\u92ff\u9329\u9339\u9335\u932a\u9314\u930c"],["ec40","\u930b\u92fe\u9309\u9300\u92fb\u9316\u95bc\u95cd\u95be\u95b9\u95ba\u95b6\u95bf\u95b5\u95bd\u96a9\u96d4\u970b\u9712\u9710\u9799\u9797\u9794\u97f0\u97f8\u9835\u982f\u9832\u9924\u991f\u9927\u9929\u999e\u99ee\u99ec\u99e5\u99e4\u99f0\u99e3\u99ea\u99e9\u99e7\u9ab9\u9abf\u9ab4\u9abb\u9af6\u9afa\u9af9\u9af7\u9b33\u9b80\u9b85\u9b87\u9b7c\u9b7e\u9b7b\u9b82\u9b93\u9b92\u9b90\u9b7a\u9b95"],["eca1","\u9b7d\u9b88\u9d25\u9d17\u9d20\u9d1e\u9d14\u9d29\u9d1d\u9d18\u9d22\u9d10\u9d19\u9d1f\u9e88\u9e86\u9e87\u9eae\u9ead\u9ed5\u9ed6\u9efa\u9f12\u9f3d\u5126\u5125\u5122\u5124\u5120\u5129\u52f4\u5693\u568c\u568d\u5686\u5684\u5683\u567e\u5682\u567f\u5681\u58d6\u58d4\u58cf\u58d2\u5b2d\u5b25\u5b32\u5b23\u5b2c\u5b27\u5b26\u5b2f\u5b2e\u5b7b\u5bf1\u5bf2\u5db7\u5e6c\u5e6a\u5fbe\u5fbb\u61c3\u61b5\u61bc\u61e7\u61e0\u61e5\u61e4\u61e8\u61de\u64ef\u64e9\u64e3\u64eb\u64e4\u64e8\u6581\u6580\u65b6\u65da\u66d2\u6a8d\u6a96\u6a81\u6aa5\u6a89\u6a9f\u6a9b\u6aa1\u6a9e\u6a87\u6a93\u6a8e"],["ed40","\u6a95\u6a83\u6aa8\u6aa4\u6a91\u6a7f\u6aa6\u6a9a\u6a85\u6a8c\u6a92\u6b5b\u6bad\u6c09\u6fcc\u6fa9\u6ff4\u6fd4\u6fe3\u6fdc\u6fed\u6fe7\u6fe6\u6fde\u6ff2\u6fdd\u6fe2\u6fe8\u71e1\u71f1\u71e8\u71f2\u71e4\u71f0\u71e2\u7373\u736e\u736f\u7497\u74b2\u74ab\u7490\u74aa\u74ad\u74b1\u74a5\u74af\u7510\u7511\u7512\u750f\u7584\u7643\u7648\u7649\u7647\u76a4\u76e9\u77b5\u77ab\u77b2\u77b7\u77b6"],["eda1","\u77b4\u77b1\u77a8\u77f0\u78f3\u78fd\u7902\u78fb\u78fc\u78f2\u7905\u78f9\u78fe\u7904\u79ab\u79a8\u7a5c\u7a5b\u7a56\u7a58\u7a54\u7a5a\u7abe\u7ac0\u7ac1\u7c05\u7c0f\u7bf2\u7c00\u7bff\u7bfb\u7c0e\u7bf4\u7c0b\u7bf3\u7c02\u7c09\u7c03\u7c01\u7bf8\u7bfd\u7c06\u7bf0\u7bf1\u7c10\u7c0a\u7ce8\u7e2d\u7e3c\u7e42\u7e33\u9848\u7e38\u7e2a\u7e49\u7e40\u7e47\u7e29\u7e4c\u7e30\u7e3b\u7e36\u7e44\u7e3a\u7f45\u7f7f\u7f7e\u7f7d\u7ff4\u7ff2\u802c\u81bb\u81c4\u81cc\u81ca\u81c5\u81c7\u81bc\u81e9\u825b\u825a\u825c\u8583\u8580\u858f\u85a7\u8595\u85a0\u858b\u85a3\u857b\u85a4\u859a\u859e"],["ee40","\u8577\u857c\u8589\u85a1\u857a\u8578\u8557\u858e\u8596\u8586\u858d\u8599\u859d\u8581\u85a2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859f\u8668\u87be\u87aa\u87ad\u87c5\u87b0\u87ac\u87b9\u87b5\u87bc\u87ae\u87c9\u87c3\u87c2\u87cc\u87b7\u87af\u87c4\u87ca\u87b4\u87b6\u87bf\u87b8\u87bd\u87de\u87b2\u8935\u8933\u893c\u893e\u8941\u8952\u8937\u8942\u89ad\u89af\u89ae\u89f2\u89f3\u8b1e"],["eea1","\u8b18\u8b16\u8b11\u8b05\u8b0b\u8b22\u8b0f\u8b12\u8b15\u8b07\u8b0d\u8b08\u8b06\u8b1c\u8b13\u8b1a\u8c4f\u8c70\u8c72\u8c71\u8c6f\u8c95\u8c94\u8cf9\u8d6f\u8e4e\u8e4d\u8e53\u8e50\u8e4c\u8e47\u8f43\u8f40\u9085\u907e\u9138\u919a\u91a2\u919b\u9199\u919f\u91a1\u919d\u91a0\u93a1\u9383\u93af\u9364\u9356\u9347\u937c\u9358\u935c\u9376\u9349\u9350\u9351\u9360\u936d\u938f\u934c\u936a\u9379\u9357\u9355\u9352\u934f\u9371\u9377\u937b\u9361\u935e\u9363\u9367\u9380\u934e\u9359\u95c7\u95c0\u95c9\u95c3\u95c5\u95b7\u96ae\u96b0\u96ac\u9720\u971f\u9718\u971d\u9719\u979a\u97a1\u979c"],["ef40","\u979e\u979d\u97d5\u97d4\u97f1\u9841\u9844\u984a\u9849\u9845\u9843\u9925\u992b\u992c\u992a\u9933\u9932\u992f\u992d\u9931\u9930\u9998\u99a3\u99a1\u9a02\u99fa\u99f4\u99f7\u99f9\u99f8\u99f6\u99fb\u99fd\u99fe\u99fc\u9a03\u9abe\u9afe\u9afd\u9b01\u9afc\u9b48\u9b9a\u9ba8\u9b9e\u9b9b\u9ba6\u9ba1\u9ba5\u9ba4\u9b86\u9ba2\u9ba0\u9baf\u9d33\u9d41\u9d67\u9d36\u9d2e\u9d2f\u9d31\u9d38\u9d30"],["efa1","\u9d45\u9d42\u9d43\u9d3e\u9d37\u9d40\u9d3d\u7ff5\u9d2d\u9e8a\u9e89\u9e8d\u9eb0\u9ec8\u9eda\u9efb\u9eff\u9f24\u9f23\u9f22\u9f54\u9fa0\u5131\u512d\u512e\u5698\u569c\u5697\u569a\u569d\u5699\u5970\u5b3c\u5c69\u5c6a\u5dc0\u5e6d\u5e6e\u61d8\u61df\u61ed\u61ee\u61f1\u61ea\u61f0\u61eb\u61d6\u61e9\u64ff\u6504\u64fd\u64f8\u6501\u6503\u64fc\u6594\u65db\u66da\u66db\u66d8\u6ac5\u6ab9\u6abd\u6ae1\u6ac6\u6aba\u6ab6\u6ab7\u6ac7\u6ab4\u6aad\u6b5e\u6bc9\u6c0b\u7007\u700c\u700d\u7001\u7005\u7014\u700e\u6fff\u7000\u6ffb\u7026\u6ffc\u6ff7\u700a\u7201\u71ff\u71f9\u7203\u71fd\u7376"],["f040","\u74b8\u74c0\u74b5\u74c1\u74be\u74b6\u74bb\u74c2\u7514\u7513\u765c\u7664\u7659\u7650\u7653\u7657\u765a\u76a6\u76bd\u76ec\u77c2\u77ba\u78ff\u790c\u7913\u7914\u7909\u7910\u7912\u7911\u79ad\u79ac\u7a5f\u7c1c\u7c29\u7c19\u7c20\u7c1f\u7c2d\u7c1d\u7c26\u7c28\u7c22\u7c25\u7c30\u7e5c\u7e50\u7e56\u7e63\u7e58\u7e62\u7e5f\u7e51\u7e60\u7e57\u7e53\u7fb5\u7fb3\u7ff7\u7ff8\u8075\u81d1\u81d2"],["f0a1","\u81d0\u825f\u825e\u85b4\u85c6\u85c0\u85c3\u85c2\u85b3\u85b5\u85bd\u85c7\u85c4\u85bf\u85cb\u85ce\u85c8\u85c5\u85b1\u85b6\u85d2\u8624\u85b8\u85b7\u85be\u8669\u87e7\u87e6\u87e2\u87db\u87eb\u87ea\u87e5\u87df\u87f3\u87e4\u87d4\u87dc\u87d3\u87ed\u87d8\u87e3\u87a4\u87d7\u87d9\u8801\u87f4\u87e8\u87dd\u8953\u894b\u894f\u894c\u8946\u8950\u8951\u8949\u8b2a\u8b27\u8b23\u8b33\u8b30\u8b35\u8b47\u8b2f\u8b3c\u8b3e\u8b31\u8b25\u8b37\u8b26\u8b36\u8b2e\u8b24\u8b3b\u8b3d\u8b3a\u8c42\u8c75\u8c99\u8c98\u8c97\u8cfe\u8d04\u8d02\u8d00\u8e5c\u8e62\u8e60\u8e57\u8e56\u8e5e\u8e65\u8e67"],["f140","\u8e5b\u8e5a\u8e61\u8e5d\u8e69\u8e54\u8f46\u8f47\u8f48\u8f4b\u9128\u913a\u913b\u913e\u91a8\u91a5\u91a7\u91af\u91aa\u93b5\u938c\u9392\u93b7\u939b\u939d\u9389\u93a7\u938e\u93aa\u939e\u93a6\u9395\u9388\u9399\u939f\u938d\u93b1\u9391\u93b2\u93a4\u93a8\u93b4\u93a3\u93a5\u95d2\u95d3\u95d1\u96b3\u96d7\u96da\u5dc2\u96df\u96d8\u96dd\u9723\u9722\u9725\u97ac\u97ae\u97a8\u97ab\u97a4\u97aa"],["f1a1","\u97a2\u97a5\u97d7\u97d9\u97d6\u97d8\u97fa\u9850\u9851\u9852\u98b8\u9941\u993c\u993a\u9a0f\u9a0b\u9a09\u9a0d\u9a04\u9a11\u9a0a\u9a05\u9a07\u9a06\u9ac0\u9adc\u9b08\u9b04\u9b05\u9b29\u9b35\u9b4a\u9b4c\u9b4b\u9bc7\u9bc6\u9bc3\u9bbf\u9bc1\u9bb5\u9bb8\u9bd3\u9bb6\u9bc4\u9bb9\u9bbd\u9d5c\u9d53\u9d4f\u9d4a\u9d5b\u9d4b\u9d59\u9d56\u9d4c\u9d57\u9d52\u9d54\u9d5f\u9d58\u9d5a\u9e8e\u9e8c\u9edf\u9f01\u9f00\u9f16\u9f25\u9f2b\u9f2a\u9f29\u9f28\u9f4c\u9f55\u5134\u5135\u5296\u52f7\u53b4\u56ab\u56ad\u56a6\u56a7\u56aa\u56ac\u58da\u58dd\u58db\u5912\u5b3d\u5b3e\u5b3f\u5dc3\u5e70"],["f240","\u5fbf\u61fb\u6507\u6510\u650d\u6509\u650c\u650e\u6584\u65de\u65dd\u66de\u6ae7\u6ae0\u6acc\u6ad1\u6ad9\u6acb\u6adf\u6adc\u6ad0\u6aeb\u6acf\u6acd\u6ade\u6b60\u6bb0\u6c0c\u7019\u7027\u7020\u7016\u702b\u7021\u7022\u7023\u7029\u7017\u7024\u701c\u702a\u720c\u720a\u7207\u7202\u7205\u72a5\u72a6\u72a4\u72a3\u72a1\u74cb\u74c5\u74b7\u74c3\u7516\u7660\u77c9\u77ca\u77c4\u77f1\u791d\u791b"],["f2a1","\u7921\u791c\u7917\u791e\u79b0\u7a67\u7a68\u7c33\u7c3c\u7c39\u7c2c\u7c3b\u7cec\u7cea\u7e76\u7e75\u7e78\u7e70\u7e77\u7e6f\u7e7a\u7e72\u7e74\u7e68\u7f4b\u7f4a\u7f83\u7f86\u7fb7\u7ffd\u7ffe\u8078\u81d7\u81d5\u8264\u8261\u8263\u85eb\u85f1\u85ed\u85d9\u85e1\u85e8\u85da\u85d7\u85ec\u85f2\u85f8\u85d8\u85df\u85e3\u85dc\u85d1\u85f0\u85e6\u85ef\u85de\u85e2\u8800\u87fa\u8803\u87f6\u87f7\u8809\u880c\u880b\u8806\u87fc\u8808\u87ff\u880a\u8802\u8962\u895a\u895b\u8957\u8961\u895c\u8958\u895d\u8959\u8988\u89b7\u89b6\u89f6\u8b50\u8b48\u8b4a\u8b40\u8b53\u8b56\u8b54\u8b4b\u8b55"],["f340","\u8b51\u8b42\u8b52\u8b57\u8c43\u8c77\u8c76\u8c9a\u8d06\u8d07\u8d09\u8dac\u8daa\u8dad\u8dab\u8e6d\u8e78\u8e73\u8e6a\u8e6f\u8e7b\u8ec2\u8f52\u8f51\u8f4f\u8f50\u8f53\u8fb4\u9140\u913f\u91b0\u91ad\u93de\u93c7\u93cf\u93c2\u93da\u93d0\u93f9\u93ec\u93cc\u93d9\u93a9\u93e6\u93ca\u93d4\u93ee\u93e3\u93d5\u93c4\u93ce\u93c0\u93d2\u93e7\u957d\u95da\u95db\u96e1\u9729\u972b\u972c\u9728\u9726"],["f3a1","\u97b3\u97b7\u97b6\u97dd\u97de\u97df\u985c\u9859\u985d\u9857\u98bf\u98bd\u98bb\u98be\u9948\u9947\u9943\u99a6\u99a7\u9a1a\u9a15\u9a25\u9a1d\u9a24\u9a1b\u9a22\u9a20\u9a27\u9a23\u9a1e\u9a1c\u9a14\u9ac2\u9b0b\u9b0a\u9b0e\u9b0c\u9b37\u9bea\u9beb\u9be0\u9bde\u9be4\u9be6\u9be2\u9bf0\u9bd4\u9bd7\u9bec\u9bdc\u9bd9\u9be5\u9bd5\u9be1\u9bda\u9d77\u9d81\u9d8a\u9d84\u9d88\u9d71\u9d80\u9d78\u9d86\u9d8b\u9d8c\u9d7d\u9d6b\u9d74\u9d75\u9d70\u9d69\u9d85\u9d73\u9d7b\u9d82\u9d6f\u9d79\u9d7f\u9d87\u9d68\u9e94\u9e91\u9ec0\u9efc\u9f2d\u9f40\u9f41\u9f4d\u9f56\u9f57\u9f58\u5337\u56b2"],["f440","\u56b5\u56b3\u58e3\u5b45\u5dc6\u5dc7\u5eee\u5eef\u5fc0\u5fc1\u61f9\u6517\u6516\u6515\u6513\u65df\u66e8\u66e3\u66e4\u6af3\u6af0\u6aea\u6ae8\u6af9\u6af1\u6aee\u6aef\u703c\u7035\u702f\u7037\u7034\u7031\u7042\u7038\u703f\u703a\u7039\u7040\u703b\u7033\u7041\u7213\u7214\u72a8\u737d\u737c\u74ba\u76ab\u76aa\u76be\u76ed\u77cc\u77ce\u77cf\u77cd\u77f2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79b2\u7a6e\u7a6c\u7a6d\u7af7\u7c49\u7c48\u7c4a\u7c47\u7c45\u7cee\u7e7b\u7e7e\u7e81\u7e80\u7fba\u7fff\u8079\u81db\u81d9\u820b\u8268\u8269\u8622\u85ff\u8601\u85fe\u861b\u8600\u85f6\u8604\u8609\u8605\u860c\u85fd\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89b9\u89f7\u8b60\u8b6a\u8b5d\u8b68\u8b63\u8b65\u8b67\u8b6d\u8dae\u8e86\u8e88\u8e84\u8f59\u8f56\u8f57\u8f55\u8f58\u8f5a\u908d\u9143\u9141\u91b7\u91b5\u91b2\u91b3\u940b\u9413\u93fb\u9420\u940f\u9414\u93fe\u9415\u9410\u9428\u9419\u940d\u93f5\u9400\u93f7\u9407\u940e\u9416\u9412\u93fa\u9409\u93f8\u940a\u93ff"],["f540","\u93fc\u940c\u93f6\u9411\u9406\u95de\u95e0\u95df\u972e\u972f\u97b9\u97bb\u97fd\u97fe\u9860\u9862\u9863\u985f\u98c1\u98c2\u9950\u994e\u9959\u994c\u994b\u9953\u9a32\u9a34\u9a31\u9a2c\u9a2a\u9a36\u9a29\u9a2e\u9a38\u9a2d\u9ac7\u9aca\u9ac6\u9b10\u9b12\u9b11\u9c0b\u9c08\u9bf7\u9c05\u9c12\u9bf8\u9c40\u9c07\u9c0e\u9c06\u9c17\u9c14\u9c09\u9d9f\u9d99\u9da4\u9d9d\u9d92\u9d98\u9d90\u9d9b"],["f5a1","\u9da0\u9d94\u9d9c\u9daa\u9d97\u9da1\u9d9a\u9da2\u9da8\u9d9e\u9da3\u9dbf\u9da9\u9d96\u9da6\u9da7\u9e99\u9e9b\u9e9a\u9ee5\u9ee4\u9ee7\u9ee6\u9f30\u9f2e\u9f5b\u9f60\u9f5e\u9f5d\u9f59\u9f91\u513a\u5139\u5298\u5297\u56c3\u56bd\u56be\u5b48\u5b47\u5dcb\u5dcf\u5ef1\u61fd\u651b\u6b02\u6afc\u6b03\u6af8\u6b00\u7043\u7044\u704a\u7048\u7049\u7045\u7046\u721d\u721a\u7219\u737e\u7517\u766a\u77d0\u792d\u7931\u792f\u7c54\u7c53\u7cf2\u7e8a\u7e87\u7e88\u7e8b\u7e86\u7e8d\u7f4d\u7fbb\u8030\u81dd\u8618\u862a\u8626\u861f\u8623\u861c\u8619\u8627\u862e\u8621\u8620\u8629\u861e\u8625"],["f640","\u8829\u881d\u881b\u8820\u8824\u881c\u882b\u884a\u896d\u8969\u896e\u896b\u89fa\u8b79\u8b78\u8b45\u8b7a\u8b7b\u8d10\u8d14\u8daf\u8e8e\u8e8c\u8f5e\u8f5b\u8f5d\u9146\u9144\u9145\u91b9\u943f\u943b\u9436\u9429\u943d\u943c\u9430\u9439\u942a\u9437\u942c\u9440\u9431\u95e5\u95e4\u95e3\u9735\u973a\u97bf\u97e1\u9864\u98c9\u98c6\u98c0\u9958\u9956\u9a39\u9a3d\u9a46\u9a44\u9a42\u9a41\u9a3a"],["f6a1","\u9a3f\u9acd\u9b15\u9b17\u9b18\u9b16\u9b3a\u9b52\u9c2b\u9c1d\u9c1c\u9c2c\u9c23\u9c28\u9c29\u9c24\u9c21\u9db7\u9db6\u9dbc\u9dc1\u9dc7\u9dca\u9dcf\u9dbe\u9dc5\u9dc3\u9dbb\u9db5\u9dce\u9db9\u9dba\u9dac\u9dc8\u9db1\u9dad\u9dcc\u9db3\u9dcd\u9db2\u9e7a\u9e9c\u9eeb\u9eee\u9eed\u9f1b\u9f18\u9f1a\u9f31\u9f4e\u9f65\u9f64\u9f92\u4eb9\u56c6\u56c5\u56cb\u5971\u5b4b\u5b4c\u5dd5\u5dd1\u5ef2\u6521\u6520\u6526\u6522\u6b0b\u6b08\u6b09\u6c0d\u7055\u7056\u7057\u7052\u721e\u721f\u72a9\u737f\u74d8\u74d5\u74d9\u74d7\u766d\u76ad\u7935\u79b4\u7a70\u7a71\u7c57\u7c5c\u7c59\u7c5b\u7c5a"],["f740","\u7cf4\u7cf1\u7e91\u7f4f\u7f87\u81de\u826b\u8634\u8635\u8633\u862c\u8632\u8636\u882c\u8828\u8826\u882a\u8825\u8971\u89bf\u89be\u89fb\u8b7e\u8b84\u8b82\u8b86\u8b85\u8b7f\u8d15\u8e95\u8e94\u8e9a\u8e92\u8e90\u8e96\u8e97\u8f60\u8f62\u9147\u944c\u9450\u944a\u944b\u944f\u9447\u9445\u9448\u9449\u9446\u973f\u97e3\u986a\u9869\u98cb\u9954\u995b\u9a4e\u9a53\u9a54\u9a4c\u9a4f\u9a48\u9a4a"],["f7a1","\u9a49\u9a52\u9a50\u9ad0\u9b19\u9b2b\u9b3b\u9b56\u9b55\u9c46\u9c48\u9c3f\u9c44\u9c39\u9c33\u9c41\u9c3c\u9c37\u9c34\u9c32\u9c3d\u9c36\u9ddb\u9dd2\u9dde\u9dda\u9dcb\u9dd0\u9ddc\u9dd1\u9ddf\u9de9\u9dd9\u9dd8\u9dd6\u9df5\u9dd5\u9ddd\u9eb6\u9ef0\u9f35\u9f33\u9f32\u9f42\u9f6b\u9f95\u9fa2\u513d\u5299\u58e8\u58e7\u5972\u5b4d\u5dd8\u882f\u5f4f\u6201\u6203\u6204\u6529\u6525\u6596\u66eb\u6b11\u6b12\u6b0f\u6bca\u705b\u705a\u7222\u7382\u7381\u7383\u7670\u77d4\u7c67\u7c66\u7e95\u826c\u863a\u8640\u8639\u863c\u8631\u863b\u863e\u8830\u8832\u882e\u8833\u8976\u8974\u8973\u89fe"],["f840","\u8b8c\u8b8e\u8b8b\u8b88\u8c45\u8d19\u8e98\u8f64\u8f63\u91bc\u9462\u9455\u945d\u9457\u945e\u97c4\u97c5\u9800\u9a56\u9a59\u9b1e\u9b1f\u9b20\u9c52\u9c58\u9c50\u9c4a\u9c4d\u9c4b\u9c55\u9c59\u9c4c\u9c4e\u9dfb\u9df7\u9def\u9de3\u9deb\u9df8\u9de4\u9df6\u9de1\u9dee\u9de6\u9df2\u9df0\u9de2\u9dec\u9df4\u9df3\u9de8\u9ded\u9ec2\u9ed0\u9ef2\u9ef3\u9f06\u9f1c\u9f38\u9f37\u9f36\u9f43\u9f4f"],["f8a1","\u9f71\u9f70\u9f6e\u9f6f\u56d3\u56cd\u5b4e\u5c6d\u652d\u66ed\u66ee\u6b13\u705f\u7061\u705d\u7060\u7223\u74db\u74e5\u77d5\u7938\u79b7\u79b6\u7c6a\u7e97\u7f89\u826d\u8643\u8838\u8837\u8835\u884b\u8b94\u8b95\u8e9e\u8e9f\u8ea0\u8e9d\u91be\u91bd\u91c2\u946b\u9468\u9469\u96e5\u9746\u9743\u9747\u97c7\u97e5\u9a5e\u9ad5\u9b59\u9c63\u9c67\u9c66\u9c62\u9c5e\u9c60\u9e02\u9dfe\u9e07\u9e03\u9e06\u9e05\u9e00\u9e01\u9e09\u9dff\u9dfd\u9e04\u9ea0\u9f1e\u9f46\u9f74\u9f75\u9f76\u56d4\u652e\u65b8\u6b18\u6b19\u6b17\u6b1a\u7062\u7226\u72aa\u77d8\u77d9\u7939\u7c69\u7c6b\u7cf6\u7e9a"],["f940","\u7e98\u7e9b\u7e99\u81e0\u81e1\u8646\u8647\u8648\u8979\u897a\u897c\u897b\u89ff\u8b98\u8b99\u8ea5\u8ea4\u8ea3\u946e\u946d\u946f\u9471\u9473\u9749\u9872\u995f\u9c68\u9c6e\u9c6d\u9e0b\u9e0d\u9e10\u9e0f\u9e12\u9e11\u9ea1\u9ef5\u9f09\u9f47\u9f78\u9f7b\u9f7a\u9f79\u571e\u7066\u7c6f\u883c\u8db2\u8ea6\u91c3\u9474\u9478\u9476\u9475\u9a60\u9c74\u9c73\u9c71\u9c75\u9e14\u9e13\u9ef6\u9f0a"],["f9a1","\u9fa4\u7068\u7065\u7cf7\u866a\u883e\u883d\u883f\u8b9e\u8c9c\u8ea9\u8ec9\u974b\u9873\u9874\u98cc\u9961\u99ab\u9a64\u9a66\u9a67\u9b24\u9e15\u9e17\u9f48\u6207\u6b1e\u7227\u864c\u8ea8\u9482\u9480\u9481\u9a69\u9a68\u9b2e\u9e19\u7229\u864b\u8b9f\u9483\u9c79\u9eb7\u7675\u9a6b\u9c7a\u9e1d\u7069\u706a\u9ea4\u9f7e\u9f49\u9f98\u7881\u92b9\u88cf\u58bb\u6052\u7ca7\u5afa\u2554\u2566\u2557\u2560\u256c\u2563\u255a\u2569\u255d\u2552\u2564\u2555\u255e\u256a\u2561\u2558\u2567\u255b\u2553\u2565\u2556\u255f\u256b\u2562\u2559\u2568\u255c\u2551\u2550\u256d\u256e\u2570\u256f\u2593"]]},{}],16:[function(require,module,exports){module.exports=[["0","\0",127],["8ea1","\uff61",62],["a1a1","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7"],["a2a1","\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["a2ca","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["a2dc","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["a2f2","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["a2fe","\u25ef"],["a3b0","\uff10",9],["a3c1","\uff21",25],["a3e1","\uff41",25],["a4a1","\u3041",82],["a5a1","\u30a1",85],["a6a1","\u0391",16,"\u03a3",6],["a6c1","\u03b1",16,"\u03c3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["addf","\u337b\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["b0a1","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["b1a1","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc"],["b2a1","\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["b3a1","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431"],["b4a1","\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["b5a1","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac"],["b6a1","\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["b7a1","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372"],["b8a1","\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["b9a1","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc"],["baa1","\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["bba1","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642"],["bca1","\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["bda1","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f"],["bea1","\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["bfa1","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe"],["c0a1","\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["c1a1","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e"],["c2a1","\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["c3a1","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5"],["c4a1","\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["c5a1","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230"],["c6a1","\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["c7a1","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6"],["c8a1","\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["c9a1","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d"],["caa1","\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["cba1","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80"],["cca1","\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["cda1","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483"],["cea1","\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["cfa1","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["d0a1","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["d1a1","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8"],["d2a1","\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["d3a1","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709"],["d4a1","\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["d5a1","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53"],["d6a1","\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["d7a1","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a"],["d8a1","\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["d9a1","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc"],["daa1","\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["dba1","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd"],["dca1","\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["dda1","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe"],["dea1","\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["dfa1","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc"],["e0a1","\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e1a1","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670"],["e2a1","\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e3a1","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50"],["e4a1","\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e5a1","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a"],["e6a1","\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e7a1","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759"],["eaa1","\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["eba1","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b"],["eca1","\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["eda1","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8"],["eea1","\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["efa1","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e"],["f0a1","\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["f1a1","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7"],["f2a1","\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["f3a1","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0"],["f4a1","\u582f\u69c7\u9059\u7464\u51dc\u7199"],["f9a1","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7"],["faa1","\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["fba1","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da"],["fca1","\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["fcf1","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["8fa2af","\u02d8\u02c7\xb8\u02d9\u02dd\xaf\u02db\u02da\uff5e\u0384\u0385"],["8fa2c2","\xa1\xa6\xbf"],["8fa2eb","\xba\xaa\xa9\xae\u2122\xa4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038a\u03aa"],["8fa6e7","\u038c"],["8fa6e9","\u038e\u03ab"],["8fa6ec","\u038f"],["8fa6f1","\u03ac\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03c2\u03cd\u03cb\u03b0\u03ce"],["8fa7c2","\u0402",10,"\u040e\u040f"],["8fa7f2","\u0452",10,"\u045e\u045f"],["8fa9a1","\xc6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013f"],["8fa9ab","\u014a\xd8\u0152"],["8fa9af","\u0166\xde"],["8fa9c1","\xe6\u0111\xf0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014b\xf8\u0153\xdf\u0167\xfe"],["8faaa1","\xc1\xc0\xc4\xc2\u0102\u01cd\u0100\u0104\xc5\xc3\u0106\u0108\u010c\xc7\u010a\u010e\xc9\xc8\xcb\xca\u011a\u0116\u0112\u0118"],["8faaba","\u011c\u011e\u0122\u0120\u0124\xcd\xcc\xcf\xce\u01cf\u0130\u012a\u012e\u0128\u0134\u0136\u0139\u013d\u013b\u0143\u0147\u0145\xd1\xd3\xd2\xd6\xd4\u01d1\u0150\u014c\xd5\u0154\u0158\u0156\u015a\u015c\u0160\u015e\u0164\u0162\xda\xd9\xdc\xdb\u016c\u01d3\u0170\u016a\u0172\u016e\u0168\u01d7\u01db\u01d9\u01d5\u0174\xdd\u0178\u0176\u0179\u017d\u017b"],["8faba1","\xe1\xe0\xe4\xe2\u0103\u01ce\u0101\u0105\xe5\xe3\u0107\u0109\u010d\xe7\u010b\u010f\xe9\xe8\xeb\xea\u011b\u0117\u0113\u0119\u01f5\u011d\u011f"],["8fabbd","\u0121\u0125\xed\xec\xef\xee\u01d0"],["8fabc5","\u012b\u012f\u0129\u0135\u0137\u013a\u013e\u013c\u0144\u0148\u0146\xf1\xf3\xf2\xf6\xf4\u01d2\u0151\u014d\xf5\u0155\u0159\u0157\u015b\u015d\u0161\u015f\u0165\u0163\xfa\xf9\xfc\xfb\u016d\u01d4\u0171\u016b\u0173\u016f\u0169\u01d8\u01dc\u01da\u01d6\u0175\xfd\xff\u0177\u017a\u017e\u017c"],["8fb0a1","\u4e02\u4e04\u4e05\u4e0c\u4e12\u4e1f\u4e23\u4e24\u4e28\u4e2b\u4e2e\u4e2f\u4e30\u4e35\u4e40\u4e41\u4e44\u4e47\u4e51\u4e5a\u4e5c\u4e63\u4e68\u4e69\u4e74\u4e75\u4e79\u4e7f\u4e8d\u4e96\u4e97\u4e9d\u4eaf\u4eb9\u4ec3\u4ed0\u4eda\u4edb\u4ee0\u4ee1\u4ee2\u4ee8\u4eef\u4ef1\u4ef3\u4ef5\u4efd\u4efe\u4eff\u4f00\u4f02\u4f03\u4f08\u4f0b\u4f0c\u4f12\u4f15\u4f16\u4f17\u4f19\u4f2e\u4f31\u4f60\u4f33\u4f35\u4f37\u4f39\u4f3b\u4f3e\u4f40\u4f42\u4f48\u4f49\u4f4b\u4f4c\u4f52\u4f54\u4f56\u4f58\u4f5f\u4f63\u4f6a\u4f6c\u4f6e\u4f71\u4f77\u4f78\u4f79\u4f7a\u4f7d\u4f7e\u4f81\u4f82\u4f84"],["8fb1a1","\u4f85\u4f89\u4f8a\u4f8c\u4f8e\u4f90\u4f92\u4f93\u4f94\u4f97\u4f99\u4f9a\u4f9e\u4f9f\u4fb2\u4fb7\u4fb9\u4fbb\u4fbc\u4fbd\u4fbe\u4fc0\u4fc1\u4fc5\u4fc6\u4fc8\u4fc9\u4fcb\u4fcc\u4fcd\u4fcf\u4fd2\u4fdc\u4fe0\u4fe2\u4ff0\u4ff2\u4ffc\u4ffd\u4fff\u5000\u5001\u5004\u5007\u500a\u500c\u500e\u5010\u5013\u5017\u5018\u501b\u501c\u501d\u501e\u5022\u5027\u502e\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504a\u504c\u504e\u5051\u5052\u5053\u5057\u5059\u505f\u5060\u5062\u5063\u5066\u5067\u506a\u506d\u5070\u5071\u503b\u5081\u5083\u5084\u5086\u508a\u508e\u508f\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509b\u509c\u509e",4,"\u50aa\u50af\u50b0\u50b9\u50ba\u50bd\u50c0\u50c3\u50c4\u50c7\u50cc\u50ce\u50d0\u50d3\u50d4\u50d8\u50dc\u50dd\u50df\u50e2\u50e4\u50e6\u50e8\u50e9\u50ef\u50f1\u50f6\u50fa\u50fe\u5103\u5106\u5107\u5108\u510b\u510c\u510d\u510e\u50f2\u5110\u5117\u5119\u511b\u511c\u511d\u511e\u5123\u5127\u5128\u512c\u512d\u512f\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514a\u514f\u5153\u5155\u5157\u5158\u515f\u5164\u5166\u517e\u5183\u5184\u518b\u518e\u5198\u519d\u51a1\u51a3\u51ad\u51b8\u51ba\u51bc\u51be\u51bf\u51c2"],["8fb3a1","\u51c8\u51cf\u51d1\u51d2\u51d3\u51d5\u51d8\u51de\u51e2\u51e5\u51ee\u51f2\u51f3\u51f4\u51f7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523c\u5245\u5249\u5255\u5257\u5258\u525a\u525c\u525f\u5260\u5261\u5266\u526e\u5277\u5278\u5279\u5280\u5282\u5285\u528a\u528c\u5293\u5295\u5296\u5297\u5298\u529a\u529c\u52a4\u52a5\u52a6\u52a7\u52af\u52b0\u52b6\u52b7\u52b8\u52ba\u52bb\u52bd\u52c0\u52c4\u52c6\u52c8\u52cc\u52cf\u52d1\u52d4\u52d6\u52db\u52dc\u52e1\u52e5\u52e8\u52e9\u52ea\u52ec\u52f0\u52f1\u52f4\u52f6\u52f7\u5300\u5303\u530a\u530b"],["8fb4a1","\u530c\u5311\u5313\u5318\u531b\u531c\u531e\u531f\u5325\u5327\u5328\u5329\u532b\u532c\u532d\u5330\u5332\u5335\u533c\u533d\u533e\u5342\u534c\u534b\u5359\u535b\u5361\u5363\u5365\u536c\u536d\u5372\u5379\u537e\u5383\u5387\u5388\u538e\u5393\u5394\u5399\u539d\u53a1\u53a4\u53aa\u53ab\u53af\u53b2\u53b4\u53b5\u53b7\u53b8\u53ba\u53bd\u53c0\u53c5\u53cf\u53d2\u53d3\u53d5\u53da\u53dd\u53de\u53e0\u53e6\u53e7\u53f5\u5402\u5413\u541a\u5421\u5427\u5428\u542a\u542f\u5431\u5434\u5435\u5443\u5444\u5447\u544d\u544f\u545e\u5462\u5464\u5466\u5467\u5469\u546b\u546d\u546e\u5474\u547f"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548d\u5491\u5495\u5496\u549c\u549f\u54a1\u54a6\u54a7\u54a9\u54aa\u54ad\u54ae\u54b1\u54b7\u54b9\u54ba\u54bb\u54bf\u54c6\u54ca\u54cd\u54ce\u54e0\u54ea\u54ec\u54ef\u54f6\u54fc\u54fe\u54ff\u5500\u5501\u5505\u5508\u5509\u550c\u550d\u550e\u5515\u552a\u552b\u5532\u5535\u5536\u553b\u553c\u553d\u5541\u5547\u5549\u554a\u554d\u5550\u5551\u5558\u555a\u555b\u555e\u5560\u5561\u5564\u5566\u557f\u5581\u5582\u5586\u5588\u558e\u558f\u5591\u5592\u5593\u5594\u5597\u55a3\u55a4\u55ad\u55b2\u55bf\u55c1\u55c3\u55c6\u55c9\u55cb\u55cc\u55ce\u55d1\u55d2"],["8fb6a1","\u55d3\u55d7\u55d8\u55db\u55de\u55e2\u55e9\u55f6\u55ff\u5605\u5608\u560a\u560d",5,"\u5619\u562c\u5630\u5633\u5635\u5637\u5639\u563b\u563c\u563d\u563f\u5640\u5641\u5643\u5644\u5646\u5649\u564b\u564d\u564f\u5654\u565e\u5660\u5661\u5662\u5663\u5666\u5669\u566d\u566f\u5671\u5672\u5675\u5684\u5685\u5688\u568b\u568c\u5695\u5699\u569a\u569d\u569e\u569f\u56a6\u56a7\u56a8\u56a9\u56ab\u56ac\u56ad\u56b1\u56b3\u56b7\u56be\u56c5\u56c9\u56ca\u56cb\u56cf\u56d0\u56cc\u56cd\u56d9\u56dc\u56dd\u56df\u56e1\u56e4",4,"\u56f1\u56eb\u56ed"],["8fb7a1","\u56f6\u56f7\u5701\u5702\u5707\u570a\u570c\u5711\u5715\u571a\u571b\u571d\u5720\u5722\u5723\u5724\u5725\u5729\u572a\u572c\u572e\u572f\u5733\u5734\u573d\u573e\u573f\u5745\u5746\u574c\u574d\u5752\u5762\u5765\u5767\u5768\u576b\u576d",4,"\u5773\u5774\u5775\u5777\u5779\u577a\u577b\u577c\u577e\u5781\u5783\u578c\u5794\u5797\u5799\u579a\u579c\u579d\u579e\u579f\u57a1\u5795\u57a7\u57a8\u57a9\u57ac\u57b8\u57bd\u57c7\u57c8\u57cc\u57cf\u57d5\u57dd\u57de\u57e4\u57e6\u57e7\u57e9\u57ed\u57f0\u57f5\u57f6\u57f8\u57fd\u57fe\u57ff\u5803\u5804\u5808\u5809\u57e1"],["8fb8a1","\u580c\u580d\u581b\u581e\u581f\u5820\u5826\u5827\u582d\u5832\u5839\u583f\u5849\u584c\u584d\u584f\u5850\u5855\u585f\u5861\u5864\u5867\u5868\u5878\u587c\u587f\u5880\u5881\u5887\u5888\u5889\u588a\u588c\u588d\u588f\u5890\u5894\u5896\u589d\u58a0\u58a1\u58a2\u58a6\u58a9\u58b1\u58b2\u58c4\u58bc\u58c2\u58c8\u58cd\u58ce\u58d0\u58d2\u58d4\u58d6\u58da\u58dd\u58e1\u58e2\u58e9\u58f3\u5905\u5906\u590b\u590c\u5912\u5913\u5914\u8641\u591d\u5921\u5923\u5924\u5928\u592f\u5930\u5933\u5935\u5936\u593f\u5943\u5946\u5952\u5953\u5959\u595b\u595d\u595e\u595f\u5961\u5963\u596b\u596d"],["8fb9a1","\u596f\u5972\u5975\u5976\u5979\u597b\u597c\u598b\u598c\u598e\u5992\u5995\u5997\u599f\u59a4\u59a7\u59ad\u59ae\u59af\u59b0\u59b3\u59b7\u59ba\u59bc\u59c1\u59c3\u59c4\u59c8\u59ca\u59cd\u59d2\u59dd\u59de\u59df\u59e3\u59e4\u59e7\u59ee\u59ef\u59f1\u59f2\u59f4\u59f7\u5a00\u5a04\u5a0c\u5a0d\u5a0e\u5a12\u5a13\u5a1e\u5a23\u5a24\u5a27\u5a28\u5a2a\u5a2d\u5a30\u5a44\u5a45\u5a47\u5a48\u5a4c\u5a50\u5a55\u5a5e\u5a63\u5a65\u5a67\u5a6d\u5a77\u5a7a\u5a7b\u5a7e\u5a8b\u5a90\u5a93\u5a96\u5a99\u5a9c\u5a9e\u5a9f\u5aa0\u5aa2\u5aa7\u5aac\u5ab1\u5ab2\u5ab3\u5ab5\u5ab8\u5aba\u5abb\u5abf"],["8fbaa1","\u5ac4\u5ac6\u5ac8\u5acf\u5ada\u5adc\u5ae0\u5ae5\u5aea\u5aee\u5af5\u5af6\u5afd\u5b00\u5b01\u5b08\u5b17\u5b34\u5b19\u5b1b\u5b1d\u5b21\u5b25\u5b2d\u5b38\u5b41\u5b4b\u5b4c\u5b52\u5b56\u5b5e\u5b68\u5b6e\u5b6f\u5b7c\u5b7d\u5b7e\u5b7f\u5b81\u5b84\u5b86\u5b8a\u5b8e\u5b90\u5b91\u5b93\u5b94\u5b96\u5ba8\u5ba9\u5bac\u5bad\u5baf\u5bb1\u5bb2\u5bb7\u5bba\u5bbc\u5bc0\u5bc1\u5bcd\u5bcf\u5bd6",4,"\u5be0\u5bef\u5bf1\u5bf4\u5bfd\u5c0c\u5c17\u5c1e\u5c1f\u5c23\u5c26\u5c29\u5c2b\u5c2c\u5c2e\u5c30\u5c32\u5c35\u5c36\u5c59\u5c5a\u5c5c\u5c62\u5c63\u5c67\u5c68\u5c69"],["8fbba1","\u5c6d\u5c70\u5c74\u5c75\u5c7a\u5c7b\u5c7c\u5c7d\u5c87\u5c88\u5c8a\u5c8f\u5c92\u5c9d\u5c9f\u5ca0\u5ca2\u5ca3\u5ca6\u5caa\u5cb2\u5cb4\u5cb5\u5cba\u5cc9\u5ccb\u5cd2\u5cdd\u5cd7\u5cee\u5cf1\u5cf2\u5cf4\u5d01\u5d06\u5d0d\u5d12\u5d2b\u5d23\u5d24\u5d26\u5d27\u5d31\u5d34\u5d39\u5d3d\u5d3f\u5d42\u5d43\u5d46\u5d48\u5d55\u5d51\u5d59\u5d4a\u5d5f\u5d60\u5d61\u5d62\u5d64\u5d6a\u5d6d\u5d70\u5d79\u5d7a\u5d7e\u5d7f\u5d81\u5d83\u5d88\u5d8a\u5d92\u5d93\u5d94\u5d95\u5d99\u5d9b\u5d9f\u5da0\u5da7\u5dab\u5db0\u5db4\u5db8\u5db9\u5dc3\u5dc7\u5dcb\u5dd0\u5dce\u5dd8\u5dd9\u5de0\u5de4"],["8fbca1","\u5de9\u5df8\u5df9\u5e00\u5e07\u5e0d\u5e12\u5e14\u5e15\u5e18\u5e1f\u5e20\u5e2e\u5e28\u5e32\u5e35\u5e3e\u5e4b\u5e50\u5e49\u5e51\u5e56\u5e58\u5e5b\u5e5c\u5e5e\u5e68\u5e6a",4,"\u5e70\u5e80\u5e8b\u5e8e\u5ea2\u5ea4\u5ea5\u5ea8\u5eaa\u5eac\u5eb1\u5eb3\u5ebd\u5ebe\u5ebf\u5ec6\u5ecc\u5ecb\u5ece\u5ed1\u5ed2\u5ed4\u5ed5\u5edc\u5ede\u5ee5\u5eeb\u5f02\u5f06\u5f07\u5f08\u5f0e\u5f19\u5f1c\u5f1d\u5f21\u5f22\u5f23\u5f24\u5f28\u5f2b\u5f2c\u5f2e\u5f30\u5f34\u5f36\u5f3b\u5f3d\u5f3f\u5f40\u5f44\u5f45\u5f47\u5f4d\u5f50\u5f54\u5f58\u5f5b\u5f60\u5f63\u5f64\u5f67"],["8fbda1","\u5f6f\u5f72\u5f74\u5f75\u5f78\u5f7a\u5f7d\u5f7e\u5f89\u5f8d\u5f8f\u5f96\u5f9c\u5f9d\u5fa2\u5fa7\u5fab\u5fa4\u5fac\u5faf\u5fb0\u5fb1\u5fb8\u5fc4\u5fc7\u5fc8\u5fc9\u5fcb\u5fd0",4,"\u5fde\u5fe1\u5fe2\u5fe8\u5fe9\u5fea\u5fec\u5fed\u5fee\u5fef\u5ff2\u5ff3\u5ff6\u5ffa\u5ffc\u6007\u600a\u600d\u6013\u6014\u6017\u6018\u601a\u601f\u6024\u602d\u6033\u6035\u6040\u6047\u6048\u6049\u604c\u6051\u6054\u6056\u6057\u605d\u6061\u6067\u6071\u607e\u607f\u6082\u6086\u6088\u608a\u608e\u6091\u6093\u6095\u6098\u609d\u609e\u60a2\u60a4\u60a5\u60a8\u60b0\u60b1\u60b7"],["8fbea1","\u60bb\u60be\u60c2\u60c4\u60c8\u60c9\u60ca\u60cb\u60ce\u60cf\u60d4\u60d5\u60d9\u60db\u60dd\u60de\u60e2\u60e5\u60f2\u60f5\u60f8\u60fc\u60fd\u6102\u6107\u610a\u610c\u6110",4,"\u6116\u6117\u6119\u611c\u611e\u6122\u612a\u612b\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615e\u6160\u616c\u6172\u6178\u617b\u617c\u617f\u6180\u6181\u6183\u6184\u618b\u618d\u6192\u6193\u6197\u6198\u619c\u619d\u619f\u61a0\u61a5\u61a8\u61aa\u61ad\u61b8\u61b9\u61bc\u61c0\u61c1\u61c2\u61ce\u61cf\u61d5\u61dc\u61dd\u61de\u61df\u61e1\u61e2\u61e7\u61e9\u61e5"],["8fbfa1","\u61ec\u61ed\u61ef\u6201\u6203\u6204\u6207\u6213\u6215\u621c\u6220\u6222\u6223\u6227\u6229\u622b\u6239\u623d\u6242\u6243\u6244\u6246\u624c\u6250\u6251\u6252\u6254\u6256\u625a\u625c\u6264\u626d\u626f\u6273\u627a\u627d\u628d\u628e\u628f\u6290\u62a6\u62a8\u62b3\u62b6\u62b7\u62ba\u62be\u62bf\u62c4\u62ce\u62d5\u62d6\u62da\u62ea\u62f2\u62f4\u62fc\u62fd\u6303\u6304\u630a\u630b\u630d\u6310\u6313\u6316\u6318\u6329\u632a\u632d\u6335\u6336\u6339\u633c\u6341\u6342\u6343\u6344\u6346\u634a\u634b\u634e\u6352\u6353\u6354\u6358\u635b\u6365\u6366\u636c\u636d\u6371\u6374\u6375"],["8fc0a1","\u6378\u637c\u637d\u637f\u6382\u6384\u6387\u638a\u6390\u6394\u6395\u6399\u639a\u639e\u63a4\u63a6\u63ad\u63ae\u63af\u63bd\u63c1\u63c5\u63c8\u63ce\u63d1\u63d3\u63d4\u63d5\u63dc\u63e0\u63e5\u63ea\u63ec\u63f2\u63f3\u63f5\u63f8\u63f9\u6409\u640a\u6410\u6412\u6414\u6418\u641e\u6420\u6422\u6424\u6425\u6429\u642a\u642f\u6430\u6435\u643d\u643f\u644b\u644f\u6451\u6452\u6453\u6454\u645a\u645b\u645c\u645d\u645f\u6460\u6461\u6463\u646d\u6473\u6474\u647b\u647d\u6485\u6487\u648f\u6490\u6491\u6498\u6499\u649b\u649d\u649f\u64a1\u64a3\u64a6\u64a8\u64ac\u64b3\u64bd\u64be\u64bf"],["8fc1a1","\u64c4\u64c9\u64ca\u64cb\u64cc\u64ce\u64d0\u64d1\u64d5\u64d7\u64e4\u64e5\u64e9\u64ea\u64ed\u64f0\u64f5\u64f7\u64fb\u64ff\u6501\u6504\u6508\u6509\u650a\u650f\u6513\u6514\u6516\u6519\u651b\u651e\u651f\u6522\u6526\u6529\u652e\u6531\u653a\u653c\u653d\u6543\u6547\u6549\u6550\u6552\u6554\u655f\u6560\u6567\u656b\u657a\u657d\u6581\u6585\u658a\u6592\u6595\u6598\u659d\u65a0\u65a3\u65a6\u65ae\u65b2\u65b3\u65b4\u65bf\u65c2\u65c8\u65c9\u65ce\u65d0\u65d4\u65d6\u65d8\u65df\u65f0\u65f2\u65f4\u65f5\u65f9\u65fe\u65ff\u6600\u6604\u6608\u6609\u660d\u6611\u6612\u6615\u6616\u661d"],["8fc2a1","\u661e\u6621\u6622\u6623\u6624\u6626\u6629\u662a\u662b\u662c\u662e\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664a\u664c\u6651\u664e\u6657\u6658\u6659\u665b\u665c\u6660\u6661\u66fb\u666a\u666b\u666c\u667e\u6673\u6675\u667f\u6677\u6678\u6679\u667b\u6680\u667c\u668b\u668c\u668d\u6690\u6692\u6699\u669a\u669b\u669c\u669f\u66a0\u66a4\u66ad\u66b1\u66b2\u66b5\u66bb\u66bf\u66c0\u66c2\u66c3\u66c8\u66cc\u66ce\u66cf\u66d4\u66db\u66df\u66e8\u66eb\u66ec\u66ee\u66fa\u6705\u6707\u670e\u6713\u6719\u671c\u6720\u6722\u6733\u673e\u6745\u6747\u6748\u674c\u6754\u6755\u675d"],["8fc3a1","\u6766\u676c\u676e\u6774\u6776\u677b\u6781\u6784\u678e\u678f\u6791\u6793\u6796\u6798\u6799\u679b\u67b0\u67b1\u67b2\u67b5\u67bb\u67bc\u67bd\u67f9\u67c0\u67c2\u67c3\u67c5\u67c8\u67c9\u67d2\u67d7\u67d9\u67dc\u67e1\u67e6\u67f0\u67f2\u67f6\u67f7\u6852\u6814\u6819\u681d\u681f\u6828\u6827\u682c\u682d\u682f\u6830\u6831\u6833\u683b\u683f\u6844\u6845\u684a\u684c\u6855\u6857\u6858\u685b\u686b\u686e",4,"\u6875\u6879\u687a\u687b\u687c\u6882\u6884\u6886\u6888\u6896\u6898\u689a\u689c\u68a1\u68a3\u68a5\u68a9\u68aa\u68ae\u68b2\u68bb\u68c5\u68c8\u68cc\u68cf"],["8fc4a1","\u68d0\u68d1\u68d3\u68d6\u68d9\u68dc\u68dd\u68e5\u68e8\u68ea\u68eb\u68ec\u68ed\u68f0\u68f1\u68f5\u68f6\u68fb\u68fc\u68fd\u6906\u6909\u690a\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693b\u6942\u6945\u6949\u694e\u6957\u695b\u6963\u6964\u6965\u6966\u6968\u6969\u696c\u6970\u6971\u6972\u697a\u697b\u697f\u6980\u698d\u6992\u6996\u6998\u69a1\u69a5\u69a6\u69a8\u69ab\u69ad\u69af\u69b7\u69b8\u69ba\u69bc\u69c5\u69c8\u69d1\u69d6\u69d7\u69e2\u69e5\u69ee\u69ef\u69f1\u69f3\u69f5\u69fe\u6a00\u6a01\u6a03\u6a0f\u6a11\u6a15\u6a1a\u6a1d\u6a20\u6a24\u6a28\u6a30\u6a32"],["8fc5a1","\u6a34\u6a37\u6a3b\u6a3e\u6a3f\u6a45\u6a46\u6a49\u6a4a\u6a4e\u6a50\u6a51\u6a52\u6a55\u6a56\u6a5b\u6a64\u6a67\u6a6a\u6a71\u6a73\u6a7e\u6a81\u6a83\u6a86\u6a87\u6a89\u6a8b\u6a91\u6a9b\u6a9d\u6a9e\u6a9f\u6aa5\u6aab\u6aaf\u6ab0\u6ab1\u6ab4\u6abd\u6abe\u6abf\u6ac6\u6ac9\u6ac8\u6acc\u6ad0\u6ad4\u6ad5\u6ad6\u6adc\u6add\u6ae4\u6ae7\u6aec\u6af0\u6af1\u6af2\u6afc\u6afd\u6b02\u6b03\u6b06\u6b07\u6b09\u6b0f\u6b10\u6b11\u6b17\u6b1b\u6b1e\u6b24\u6b28\u6b2b\u6b2c\u6b2f\u6b35\u6b36\u6b3b\u6b3f\u6b46\u6b4a\u6b4d\u6b52\u6b56\u6b58\u6b5d\u6b60\u6b67\u6b6b\u6b6e\u6b70\u6b75\u6b7d"],["8fc6a1","\u6b7e\u6b82\u6b85\u6b97\u6b9b\u6b9f\u6ba0\u6ba2\u6ba3\u6ba8\u6ba9\u6bac\u6bad\u6bae\u6bb0\u6bb8\u6bb9\u6bbd\u6bbe\u6bc3\u6bc4\u6bc9\u6bcc\u6bd6\u6bda\u6be1\u6be3\u6be6\u6be7\u6bee\u6bf1\u6bf7\u6bf9\u6bff\u6c02\u6c04\u6c05\u6c09\u6c0d\u6c0e\u6c10\u6c12\u6c19\u6c1f\u6c26\u6c27\u6c28\u6c2c\u6c2e\u6c33\u6c35\u6c36\u6c3a\u6c3b\u6c3f\u6c4a\u6c4b\u6c4d\u6c4f\u6c52\u6c54\u6c59\u6c5b\u6c5c\u6c6b\u6c6d\u6c6f\u6c74\u6c76\u6c78\u6c79\u6c7b\u6c85\u6c86\u6c87\u6c89\u6c94\u6c95\u6c97\u6c98\u6c9c\u6c9f\u6cb0\u6cb2\u6cb4\u6cc2\u6cc6\u6ccd\u6ccf\u6cd0\u6cd1\u6cd2\u6cd4\u6cd6"],["8fc7a1","\u6cda\u6cdc\u6ce0\u6ce7\u6ce9\u6ceb\u6cec\u6cee\u6cf2\u6cf4\u6d04\u6d07\u6d0a\u6d0e\u6d0f\u6d11\u6d13\u6d1a\u6d26\u6d27\u6d28\u6c67\u6d2e\u6d2f\u6d31\u6d39\u6d3c\u6d3f\u6d57\u6d5e\u6d5f\u6d61\u6d65\u6d67\u6d6f\u6d70\u6d7c\u6d82\u6d87\u6d91\u6d92\u6d94\u6d96\u6d97\u6d98\u6daa\u6dac\u6db4\u6db7\u6db9\u6dbd\u6dbf\u6dc4\u6dc8\u6dca\u6dce\u6dcf\u6dd6\u6ddb\u6ddd\u6ddf\u6de0\u6de2\u6de5\u6de9\u6def\u6df0\u6df4\u6df6\u6dfc\u6e00\u6e04\u6e1e\u6e22\u6e27\u6e32\u6e36\u6e39\u6e3b\u6e3c\u6e44\u6e45\u6e48\u6e49\u6e4b\u6e4f\u6e51\u6e52\u6e53\u6e54\u6e57\u6e5c\u6e5d\u6e5e"],["8fc8a1","\u6e62\u6e63\u6e68\u6e73\u6e7b\u6e7d\u6e8d\u6e93\u6e99\u6ea0\u6ea7\u6ead\u6eae\u6eb1\u6eb3\u6ebb\u6ebf\u6ec0\u6ec1\u6ec3\u6ec7\u6ec8\u6eca\u6ecd\u6ece\u6ecf\u6eeb\u6eed\u6eee\u6ef9\u6efb\u6efd\u6f04\u6f08\u6f0a\u6f0c\u6f0d\u6f16\u6f18\u6f1a\u6f1b\u6f26\u6f29\u6f2a\u6f2f\u6f30\u6f33\u6f36\u6f3b\u6f3c\u6f2d\u6f4f\u6f51\u6f52\u6f53\u6f57\u6f59\u6f5a\u6f5d\u6f5e\u6f61\u6f62\u6f68\u6f6c\u6f7d\u6f7e\u6f83\u6f87\u6f88\u6f8b\u6f8c\u6f8d\u6f90\u6f92\u6f93\u6f94\u6f96\u6f9a\u6f9f\u6fa0\u6fa5\u6fa6\u6fa7\u6fa8\u6fae\u6faf\u6fb0\u6fb5\u6fb6\u6fbc\u6fc5\u6fc7\u6fc8\u6fca"],["8fc9a1","\u6fda\u6fde\u6fe8\u6fe9\u6ff0\u6ff5\u6ff9\u6ffc\u6ffd\u7000\u7005\u7006\u7007\u700d\u7017\u7020\u7023\u702f\u7034\u7037\u7039\u703c\u7043\u7044\u7048\u7049\u704a\u704b\u7054\u7055\u705d\u705e\u704e\u7064\u7065\u706c\u706e\u7075\u7076\u707e\u7081\u7085\u7086\u7094",4,"\u709b\u70a4\u70ab\u70b0\u70b1\u70b4\u70b7\u70ca\u70d1\u70d3\u70d4\u70d5\u70d6\u70d8\u70dc\u70e4\u70fa\u7103",4,"\u710b\u710c\u710f\u711e\u7120\u712b\u712d\u712f\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714a\u714b\u7150\u7152\u7157\u715a\u715c\u715e\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718c\u7192\u719a\u719b\u71a0\u71a2\u71af\u71b0\u71b2\u71b3\u71ba\u71bf\u71c0\u71c1\u71c4\u71cb\u71cc\u71d3\u71d6\u71d9\u71da\u71dc\u71f8\u71fe\u7200\u7207\u7208\u7209\u7213\u7217\u721a\u721d\u721f\u7224\u722b\u722f\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724e\u724f\u7250\u7253\u7255\u7256\u725a\u725c\u725e\u7260\u7263\u7268\u726b\u726e\u726f\u7271\u7277\u7278\u727b\u727c\u727f\u7284\u7289\u728d\u728e\u7293\u729b\u72a8\u72ad\u72ae\u72b1\u72b4\u72be\u72c1\u72c7\u72c9\u72cc\u72d5\u72d6\u72d8\u72df\u72e5\u72f3\u72f4\u72fa\u72fb"],["8fcba1","\u72fe\u7302\u7304\u7305\u7307\u730b\u730d\u7312\u7313\u7318\u7319\u731e\u7322\u7324\u7327\u7328\u732c\u7331\u7332\u7335\u733a\u733b\u733d\u7343\u734d\u7350\u7352\u7356\u7358\u735d\u735e\u735f\u7360\u7366\u7367\u7369\u736b\u736c\u736e\u736f\u7371\u7377\u7379\u737c\u7380\u7381\u7383\u7385\u7386\u738e\u7390\u7393\u7395\u7397\u7398\u739c\u739e\u739f\u73a0\u73a2\u73a5\u73a6\u73aa\u73ab\u73ad\u73b5\u73b7\u73b9\u73bc\u73bd\u73bf\u73c5\u73c6\u73c9\u73cb\u73cc\u73cf\u73d2\u73d3\u73d6\u73d9\u73dd\u73e1\u73e3\u73e6\u73e7\u73e9\u73f4\u73f5\u73f7\u73f9\u73fa\u73fb\u73fd"],["8fcca1","\u73ff\u7400\u7401\u7404\u7407\u740a\u7411\u741a\u741b\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744b\u744d\u7451\u7452\u7457\u745d\u7462\u7466\u7467\u7468\u746b\u746d\u746e\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748f\u7490\u7491\u7492\u7498\u7499\u749a\u749c\u749f\u74a0\u74a1\u74a3\u74a6\u74a8\u74a9\u74aa\u74ab\u74ae\u74af\u74b1\u74b2\u74b5\u74b9\u74bb\u74bf\u74c8\u74c9\u74cc\u74d0\u74d3\u74d8\u74da\u74db\u74de\u74df\u74e4\u74e8\u74ea\u74eb\u74ef\u74f4\u74fa\u74fb\u74fc\u74ff\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752a\u752f\u7536\u7539\u753d\u753e\u753f\u7540\u7543\u7547\u7548\u754e\u7550\u7552\u7557\u755e\u755f\u7561\u756f\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759c\u75a2\u75a4\u75b4\u75ba\u75bf\u75c0\u75c1\u75c4\u75c6\u75cc\u75ce\u75cf\u75d7\u75dc\u75df\u75e0\u75e1\u75e4\u75e7\u75ec\u75ee\u75ef\u75f1\u75f9\u7600\u7602\u7603\u7604\u7607\u7608\u760a\u760c\u760f\u7612\u7613\u7615\u7616\u7619\u761b\u761c\u761d\u761e\u7623\u7625\u7626\u7629\u762d\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763a\u763c\u764a\u7640\u7641\u7643\u7644\u7645\u7649\u764b\u7655\u7659\u765f\u7664\u7665\u766d\u766e\u766f\u7671\u7674\u7681\u7685\u768c\u768d\u7695\u769b\u769c\u769d\u769f\u76a0\u76a2",6,"\u76aa\u76ad\u76bd\u76c1\u76c5\u76c9\u76cb\u76cc\u76ce\u76d4\u76d9\u76e0\u76e6\u76e8\u76ec\u76f0\u76f1\u76f6\u76f9\u76fc\u7700\u7706\u770a\u770e\u7712\u7714\u7715\u7717\u7719\u771a\u771c\u7722\u7728\u772d\u772e\u772f\u7734\u7735\u7736\u7739\u773d\u773e\u7742\u7745\u7746\u774a\u774d\u774e\u774f\u7752\u7756\u7757\u775c\u775e\u775f\u7760\u7762"],["8fcfa1","\u7764\u7767\u776a\u776c\u7770\u7772\u7773\u7774\u777a\u777d\u7780\u7784\u778c\u778d\u7794\u7795\u7796\u779a\u779f\u77a2\u77a7\u77aa\u77ae\u77af\u77b1\u77b5\u77be\u77c3\u77c9\u77d1\u77d2\u77d5\u77d9\u77de\u77df\u77e0\u77e4\u77e6\u77ea\u77ec\u77f0\u77f1\u77f4\u77f8\u77fb\u7805\u7806\u7809\u780d\u780e\u7811\u781d\u7821\u7822\u7823\u782d\u782e\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784c\u784e\u7852\u785c\u785e\u7860\u7861\u7863\u7864\u7868\u786a\u786e\u787a\u787e\u788a\u788f\u7894\u7898\u78a1\u789d\u789e\u789f\u78a4\u78a8\u78ac\u78ad\u78b0\u78b1\u78b2\u78b3"],["8fd0a1","\u78bb\u78bd\u78bf\u78c7\u78c8\u78c9\u78cc\u78ce\u78d2\u78d3\u78d5\u78d6\u78e4\u78db\u78df\u78e0\u78e1\u78e6\u78ea\u78f2\u78f3\u7900\u78f6\u78f7\u78fa\u78fb\u78ff\u7906\u790c\u7910\u791a\u791c\u791e\u791f\u7920\u7925\u7927\u7929\u792d\u7931\u7934\u7935\u793b\u793d\u793f\u7944\u7945\u7946\u794a\u794b\u794f\u7951\u7954\u7958\u795b\u795c\u7967\u7969\u796b\u7972\u7979\u797b\u797c\u797e\u798b\u798c\u7991\u7993\u7994\u7995\u7996\u7998\u799b\u799c\u79a1\u79a8\u79a9\u79ab\u79af\u79b1\u79b4\u79b8\u79bb\u79c2\u79c4\u79c7\u79c8\u79ca\u79cf\u79d4\u79d6\u79da\u79dd\u79de"],["8fd1a1","\u79e0\u79e2\u79e5\u79ea\u79eb\u79ed\u79f1\u79f8\u79fc\u7a02\u7a03\u7a07\u7a09\u7a0a\u7a0c\u7a11\u7a15\u7a1b\u7a1e\u7a21\u7a27\u7a2b\u7a2d\u7a2f\u7a30\u7a34\u7a35\u7a38\u7a39\u7a3a\u7a44\u7a45\u7a47\u7a48\u7a4c\u7a55\u7a56\u7a59\u7a5c\u7a5d\u7a5f\u7a60\u7a65\u7a67\u7a6a\u7a6d\u7a75\u7a78\u7a7e\u7a80\u7a82\u7a85\u7a86\u7a8a\u7a8b\u7a90\u7a91\u7a94\u7a9e\u7aa0\u7aa3\u7aac\u7ab3\u7ab5\u7ab9\u7abb\u7abc\u7ac6\u7ac9\u7acc\u7ace\u7ad1\u7adb\u7ae8\u7ae9\u7aeb\u7aec\u7af1\u7af4\u7afb\u7afd\u7afe\u7b07\u7b14\u7b1f\u7b23\u7b27\u7b29\u7b2a\u7b2b\u7b2d\u7b2e\u7b2f\u7b30"],["8fd2a1","\u7b31\u7b34\u7b3d\u7b3f\u7b40\u7b41\u7b47\u7b4e\u7b55\u7b60\u7b64\u7b66\u7b69\u7b6a\u7b6d\u7b6f\u7b72\u7b73\u7b77\u7b84\u7b89\u7b8e\u7b90\u7b91\u7b96\u7b9b\u7b9e\u7ba0\u7ba5\u7bac\u7baf\u7bb0\u7bb2\u7bb5\u7bb6\u7bba\u7bbb\u7bbc\u7bbd\u7bc2\u7bc5\u7bc8\u7bca\u7bd4\u7bd6\u7bd7\u7bd9\u7bda\u7bdb\u7be8\u7bea\u7bf2\u7bf4\u7bf5\u7bf8\u7bf9\u7bfa\u7bfc\u7bfe\u7c01\u7c02\u7c03\u7c04\u7c06\u7c09\u7c0b\u7c0c\u7c0e\u7c0f\u7c19\u7c1b\u7c20\u7c25\u7c26\u7c28\u7c2c\u7c31\u7c33\u7c34\u7c36\u7c39\u7c3a\u7c46\u7c4a\u7c55\u7c51\u7c52\u7c53\u7c59",5],["8fd3a1","\u7c61\u7c63\u7c67\u7c69\u7c6d\u7c6e\u7c70\u7c72\u7c79\u7c7c\u7c7d\u7c86\u7c87\u7c8f\u7c94\u7c9e\u7ca0\u7ca6\u7cb0\u7cb6\u7cb7\u7cba\u7cbb\u7cbc\u7cbf\u7cc4\u7cc7\u7cc8\u7cc9\u7ccd\u7ccf\u7cd3\u7cd4\u7cd5\u7cd7\u7cd9\u7cda\u7cdd\u7ce6\u7ce9\u7ceb\u7cf5\u7d03\u7d07\u7d08\u7d09\u7d0f\u7d11\u7d12\u7d13\u7d16\u7d1d\u7d1e\u7d23\u7d26\u7d2a\u7d2d\u7d31\u7d3c\u7d3d\u7d3e\u7d40\u7d41\u7d47\u7d48\u7d4d\u7d51\u7d53\u7d57\u7d59\u7d5a\u7d5c\u7d5d\u7d65\u7d67\u7d6a\u7d70\u7d78\u7d7a\u7d7b\u7d7f\u7d81\u7d82\u7d83\u7d85\u7d86\u7d88\u7d8b\u7d8c\u7d8d\u7d91\u7d96\u7d97\u7d9d"],["8fd4a1","\u7d9e\u7da6\u7da7\u7daa\u7db3\u7db6\u7db7\u7db9\u7dc2",4,"\u7dcc\u7dcd\u7dce\u7dd7\u7dd9\u7e00\u7de2\u7de5\u7de6\u7dea\u7deb\u7ded\u7df1\u7df5\u7df6\u7df9\u7dfa\u7e08\u7e10\u7e11\u7e15\u7e17\u7e1c\u7e1d\u7e20\u7e27\u7e28\u7e2c\u7e2d\u7e2f\u7e33\u7e36\u7e3f\u7e44\u7e45\u7e47\u7e4e\u7e50\u7e52\u7e58\u7e5f\u7e61\u7e62\u7e65\u7e6b\u7e6e\u7e6f\u7e73\u7e78\u7e7e\u7e81\u7e86\u7e87\u7e8a\u7e8d\u7e91\u7e95\u7e98\u7e9a\u7e9d\u7e9e\u7f3c\u7f3b\u7f3d\u7f3e\u7f3f\u7f43\u7f44\u7f47\u7f4f\u7f52\u7f53\u7f5b\u7f5c\u7f5d\u7f61\u7f63\u7f64\u7f65\u7f66\u7f6d"],["8fd5a1","\u7f71\u7f7d\u7f7e\u7f7f\u7f80\u7f8b\u7f8d\u7f8f\u7f90\u7f91\u7f96\u7f97\u7f9c\u7fa1\u7fa2\u7fa6\u7faa\u7fad\u7fb4\u7fbc\u7fbf\u7fc0\u7fc3\u7fc8\u7fce\u7fcf\u7fdb\u7fdf\u7fe3\u7fe5\u7fe8\u7fec\u7fee\u7fef\u7ff2\u7ffa\u7ffd\u7ffe\u7fff\u8007\u8008\u800a\u800d\u800e\u800f\u8011\u8013\u8014\u8016\u801d\u801e\u801f\u8020\u8024\u8026\u802c\u802e\u8030\u8034\u8035\u8037\u8039\u803a\u803c\u803e\u8040\u8044\u8060\u8064\u8066\u806d\u8071\u8075\u8081\u8088\u808e\u809c\u809e\u80a6\u80a7\u80ab\u80b8\u80b9\u80c8\u80cd\u80cf\u80d2\u80d4\u80d5\u80d7\u80d8\u80e0\u80ed\u80ee"],["8fd6a1","\u80f0\u80f2\u80f3\u80f6\u80f9\u80fa\u80fe\u8103\u810b\u8116\u8117\u8118\u811c\u811e\u8120\u8124\u8127\u812c\u8130\u8135\u813a\u813c\u8145\u8147\u814a\u814c\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816d\u816f\u8177\u8181\u8190\u8184\u8185\u8186\u818b\u818e\u8196\u8198\u819b\u819e\u81a2\u81ae\u81b2\u81b4\u81bb\u81cb\u81c3\u81c5\u81ca\u81ce\u81cf\u81d5\u81d7\u81db\u81dd\u81de\u81e1\u81e4\u81eb\u81ec\u81f0\u81f1\u81f2\u81f5\u81f6\u81f8\u81f9\u81fd\u81ff\u8200\u8203\u820f\u8213\u8214\u8219\u821a\u821d\u8221\u8222\u8228\u8232\u8234\u823a\u8243\u8244\u8245\u8246"],["8fd7a1","\u824b\u824e\u824f\u8251\u8256\u825c\u8260\u8263\u8267\u826d\u8274\u827b\u827d\u827f\u8280\u8281\u8283\u8284\u8287\u8289\u828a\u828e\u8291\u8294\u8296\u8298\u829a\u829b\u82a0\u82a1\u82a3\u82a4\u82a7\u82a8\u82a9\u82aa\u82ae\u82b0\u82b2\u82b4\u82b7\u82ba\u82bc\u82be\u82bf\u82c6\u82d0\u82d5\u82da\u82e0\u82e2\u82e4\u82e8\u82ea\u82ed\u82ef\u82f6\u82f7\u82fd\u82fe\u8300\u8301\u8307\u8308\u830a\u830b\u8354\u831b\u831d\u831e\u831f\u8321\u8322\u832c\u832d\u832e\u8330\u8333\u8337\u833a\u833c\u833d\u8342\u8343\u8344\u8347\u834d\u834e\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837d\u837f\u8380\u8382\u8384\u8386\u838d\u8392\u8394\u8395\u8398\u8399\u839b\u839c\u839d\u83a6\u83a7\u83a9\u83ac\u83be\u83bf\u83c0\u83c7\u83c9\u83cf\u83d0\u83d1\u83d4\u83dd\u8353\u83e8\u83ea\u83f6\u83f8\u83f9\u83fc\u8401\u8406\u840a\u840f\u8411\u8415\u8419\u83ad\u842f\u8439\u8445\u8447\u8448\u844a\u844d\u844f\u8451\u8452\u8456\u8458\u8459\u845a\u845c\u8460\u8464\u8465\u8467\u846a\u8470\u8473\u8474\u8476\u8478\u847c\u847d\u8481\u8485\u8492\u8493\u8495\u849e\u84a6\u84a8\u84a9\u84aa\u84af\u84b1\u84b4\u84ba\u84bd\u84be\u84c0\u84c2\u84c7\u84c8\u84cc\u84cf\u84d3"],["8fd9a1","\u84dc\u84e7\u84ea\u84ef\u84f0\u84f1\u84f2\u84f7\u8532\u84fa\u84fb\u84fd\u8502\u8503\u8507\u850c\u850e\u8510\u851c\u851e\u8522\u8523\u8524\u8525\u8527\u852a\u852b\u852f\u8533\u8534\u8536\u853f\u8546\u854f",4,"\u8556\u8559\u855c",6,"\u8564\u856b\u856f\u8579\u857a\u857b\u857d\u857f\u8581\u8585\u8586\u8589\u858b\u858c\u858f\u8593\u8598\u859d\u859f\u85a0\u85a2\u85a5\u85a7\u85b4\u85b6\u85b7\u85b8\u85bc\u85bd\u85be\u85bf\u85c2\u85c7\u85ca\u85cb\u85ce\u85ad\u85d8\u85da\u85df\u85e0\u85e6\u85e8\u85ed\u85f3\u85f6\u85fc"],["8fdaa1","\u85ff\u8600\u8604\u8605\u860d\u860e\u8610\u8611\u8612\u8618\u8619\u861b\u861e\u8621\u8627\u8629\u8636\u8638\u863a\u863c\u863d\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865d\u8660",4,"\u8669\u866c\u866f\u8675\u8676\u8677\u867a\u868d\u8691\u8696\u8698\u869a\u869c\u86a1\u86a6\u86a7\u86a8\u86ad\u86b1\u86b3\u86b4\u86b5\u86b7\u86b8\u86b9\u86bf\u86c0\u86c1\u86c3\u86c5\u86d1\u86d2\u86d5\u86d7\u86da\u86dc\u86e0\u86e3\u86e5\u86e7\u8688\u86fa\u86fc\u86fd\u8704\u8705\u8707\u870b\u870e\u870f\u8710\u8713\u8714\u8719\u871e\u871f\u8721\u8723"],["8fdba1","\u8728\u872e\u872f\u8731\u8732\u8739\u873a\u873c\u873d\u873e\u8740\u8743\u8745\u874d\u8758\u875d\u8761\u8764\u8765\u876f\u8771\u8772\u877b\u8783",6,"\u878b\u878c\u8790\u8793\u8795\u8797\u8798\u8799\u879e\u87a0\u87a3\u87a7\u87ac\u87ad\u87ae\u87b1\u87b5\u87be\u87bf\u87c1\u87c8\u87c9\u87ca\u87ce\u87d5\u87d6\u87d9\u87da\u87dc\u87df\u87e2\u87e3\u87e4\u87ea\u87eb\u87ed\u87f1\u87f3\u87f8\u87fa\u87ff\u8801\u8803\u8806\u8809\u880a\u880b\u8810\u8819\u8812\u8813\u8814\u8818\u881a\u881b\u881c\u881e\u881f\u8828\u882d\u882e\u8830\u8832\u8835"],["8fdca1","\u883a\u883c\u8841\u8843\u8845\u8848\u8849\u884a\u884b\u884e\u8851\u8855\u8856\u8858\u885a\u885c\u885f\u8860\u8864\u8869\u8871\u8879\u887b\u8880\u8898\u889a\u889b\u889c\u889f\u88a0\u88a8\u88aa\u88ba\u88bd\u88be\u88c0\u88ca",4,"\u88d1\u88d2\u88d3\u88db\u88de\u88e7\u88ef\u88f0\u88f1\u88f5\u88f7\u8901\u8906\u890d\u890e\u890f\u8915\u8916\u8918\u8919\u891a\u891c\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893a\u893e\u8940\u8942\u8945\u8946\u8949\u894f\u8952\u8957\u895a\u895b\u895c\u8961\u8962\u8963\u896b\u896e\u8970\u8973\u8975\u897a"],["8fdda1","\u897b\u897c\u897d\u8989\u898d\u8990\u8994\u8995\u899b\u899c\u899f\u89a0\u89a5\u89b0\u89b4\u89b5\u89b6\u89b7\u89bc\u89d4",4,"\u89e5\u89e9\u89eb\u89ed\u89f1\u89f3\u89f6\u89f9\u89fd\u89ff\u8a04\u8a05\u8a07\u8a0f\u8a11\u8a12\u8a14\u8a15\u8a1e\u8a20\u8a22\u8a24\u8a26\u8a2b\u8a2c\u8a2f\u8a35\u8a37\u8a3d\u8a3e\u8a40\u8a43\u8a45\u8a47\u8a49\u8a4d\u8a4e\u8a53\u8a56\u8a57\u8a58\u8a5c\u8a5d\u8a61\u8a65\u8a67\u8a75\u8a76\u8a77\u8a79\u8a7a\u8a7b\u8a7e\u8a7f\u8a80\u8a83\u8a86\u8a8b\u8a8f\u8a90\u8a92\u8a96\u8a97\u8a99\u8a9f\u8aa7\u8aa9\u8aae\u8aaf\u8ab3"],["8fdea1","\u8ab6\u8ab7\u8abb\u8abe\u8ac3\u8ac6\u8ac8\u8ac9\u8aca\u8ad1\u8ad3\u8ad4\u8ad5\u8ad7\u8add\u8adf\u8aec\u8af0\u8af4\u8af5\u8af6\u8afc\u8aff\u8b05\u8b06\u8b0b\u8b11\u8b1c\u8b1e\u8b1f\u8b0a\u8b2d\u8b30\u8b37\u8b3c\u8b42",4,"\u8b48\u8b52\u8b53\u8b54\u8b59\u8b4d\u8b5e\u8b63\u8b6d\u8b76\u8b78\u8b79\u8b7c\u8b7e\u8b81\u8b84\u8b85\u8b8b\u8b8d\u8b8f\u8b94\u8b95\u8b9c\u8b9e\u8b9f\u8c38\u8c39\u8c3d\u8c3e\u8c45\u8c47\u8c49\u8c4b\u8c4f\u8c51\u8c53\u8c54\u8c57\u8c58\u8c5b\u8c5d\u8c59\u8c63\u8c64\u8c66\u8c68\u8c69\u8c6d\u8c73\u8c75\u8c76\u8c7b\u8c7e\u8c86"],["8fdfa1","\u8c87\u8c8b\u8c90\u8c92\u8c93\u8c99\u8c9b\u8c9c\u8ca4\u8cb9\u8cba\u8cc5\u8cc6\u8cc9\u8ccb\u8ccf\u8cd6\u8cd5\u8cd9\u8cdd\u8ce1\u8ce8\u8cec\u8cef\u8cf0\u8cf2\u8cf5\u8cf7\u8cf8\u8cfe\u8cff\u8d01\u8d03\u8d09\u8d12\u8d17\u8d1b\u8d65\u8d69\u8d6c\u8d6e\u8d7f\u8d82\u8d84\u8d88\u8d8d\u8d90\u8d91\u8d95\u8d9e\u8d9f\u8da0\u8da6\u8dab\u8dac\u8daf\u8db2\u8db5\u8db7\u8db9\u8dbb\u8dc0\u8dc5\u8dc6\u8dc7\u8dc8\u8dca\u8dce\u8dd1\u8dd4\u8dd5\u8dd7\u8dd9\u8de4\u8de5\u8de7\u8dec\u8df0\u8dbc\u8df1\u8df2\u8df4\u8dfd\u8e01\u8e04\u8e05\u8e06\u8e0b\u8e11\u8e14\u8e16\u8e20\u8e21\u8e22"],["8fe0a1","\u8e23\u8e26\u8e27\u8e31\u8e33\u8e36\u8e37\u8e38\u8e39\u8e3d\u8e40\u8e41\u8e4b\u8e4d\u8e4e\u8e4f\u8e54\u8e5b\u8e5c\u8e5d\u8e5e\u8e61\u8e62\u8e69\u8e6c\u8e6d\u8e6f\u8e70\u8e71\u8e79\u8e7a\u8e7b\u8e82\u8e83\u8e89\u8e90\u8e92\u8e95\u8e9a\u8e9b\u8e9d\u8e9e\u8ea2\u8ea7\u8ea9\u8ead\u8eae\u8eb3\u8eb5\u8eba\u8ebb\u8ec0\u8ec1\u8ec3\u8ec4\u8ec7\u8ecf\u8ed1\u8ed4\u8edc\u8ee8\u8eee\u8ef0\u8ef1\u8ef7\u8ef9\u8efa\u8eed\u8f00\u8f02\u8f07\u8f08\u8f0f\u8f10\u8f16\u8f17\u8f18\u8f1e\u8f20\u8f21\u8f23\u8f25\u8f27\u8f28\u8f2c\u8f2d\u8f2e\u8f34\u8f35\u8f36\u8f37\u8f3a\u8f40\u8f41"],["8fe1a1","\u8f43\u8f47\u8f4f\u8f51",4,"\u8f58\u8f5d\u8f5e\u8f65\u8f9d\u8fa0\u8fa1\u8fa4\u8fa5\u8fa6\u8fb5\u8fb6\u8fb8\u8fbe\u8fc0\u8fc1\u8fc6\u8fca\u8fcb\u8fcd\u8fd0\u8fd2\u8fd3\u8fd5\u8fe0\u8fe3\u8fe4\u8fe8\u8fee\u8ff1\u8ff5\u8ff6\u8ffb\u8ffe\u9002\u9004\u9008\u900c\u9018\u901b\u9028\u9029\u902f\u902a\u902c\u902d\u9033\u9034\u9037\u903f\u9043\u9044\u904c\u905b\u905d\u9062\u9066\u9067\u906c\u9070\u9074\u9079\u9085\u9088\u908b\u908c\u908e\u9090\u9095\u9097\u9098\u9099\u909b\u90a0\u90a1\u90a2\u90a5\u90b0\u90b2\u90b3\u90b4\u90b6\u90bd\u90cc\u90be\u90c3"],["8fe2a1","\u90c4\u90c5\u90c7\u90c8\u90d5\u90d7\u90d8\u90d9\u90dc\u90dd\u90df\u90e5\u90d2\u90f6\u90eb\u90ef\u90f0\u90f4\u90fe\u90ff\u9100\u9104\u9105\u9106\u9108\u910d\u9110\u9114\u9116\u9117\u9118\u911a\u911c\u911e\u9120\u9125\u9122\u9123\u9127\u9129\u912e\u912f\u9131\u9134\u9136\u9137\u9139\u913a\u913c\u913d\u9143\u9147\u9148\u914f\u9153\u9157\u9159\u915a\u915b\u9161\u9164\u9167\u916d\u9174\u9179\u917a\u917b\u9181\u9183\u9185\u9186\u918a\u918e\u9191\u9193\u9194\u9195\u9198\u919e\u91a1\u91a6\u91a8\u91ac\u91ad\u91ae\u91b0\u91b1\u91b2\u91b3\u91b6\u91bb\u91bc\u91bd\u91bf"],["8fe3a1","\u91c2\u91c3\u91c5\u91d3\u91d4\u91d7\u91d9\u91da\u91de\u91e4\u91e5\u91e9\u91ea\u91ec",5,"\u91f7\u91f9\u91fb\u91fd\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920a\u920c\u9210\u9212\u9213\u9216\u9218\u921c\u921d\u9223\u9224\u9225\u9226\u9228\u922e\u922f\u9230\u9233\u9235\u9236\u9238\u9239\u923a\u923c\u923e\u9240\u9242\u9243\u9246\u9247\u924a\u924d\u924e\u924f\u9251\u9258\u9259\u925c\u925d\u9260\u9261\u9265\u9267\u9268\u9269\u926e\u926f\u9270\u9275",4,"\u927b\u927c\u927d\u927f\u9288\u9289\u928a\u928d\u928e\u9292\u9297"],["8fe4a1","\u9299\u929f\u92a0\u92a4\u92a5\u92a7\u92a8\u92ab\u92af\u92b2\u92b6\u92b8\u92ba\u92bb\u92bc\u92bd\u92bf",4,"\u92c5\u92c6\u92c7\u92c8\u92cb\u92cc\u92cd\u92ce\u92d0\u92d3\u92d5\u92d7\u92d8\u92d9\u92dc\u92dd\u92df\u92e0\u92e1\u92e3\u92e5\u92e7\u92e8\u92ec\u92ee\u92f0\u92f9\u92fb\u92ff\u9300\u9302\u9308\u930d\u9311\u9314\u9315\u931c\u931d\u931e\u931f\u9321\u9324\u9325\u9327\u9329\u932a\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935a\u935e\u9364\u9365\u9367\u9369\u936a\u936d\u936f\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937a\u937d\u937f\u9380\u9381\u9382\u9388\u938a\u938b\u938d\u938f\u9392\u9395\u9398\u939b\u939e\u93a1\u93a3\u93a4\u93a6\u93a8\u93ab\u93b4\u93b5\u93b6\u93ba\u93a9\u93c1\u93c4\u93c5\u93c6\u93c7\u93c9",4,"\u93d3\u93d9\u93dc\u93de\u93df\u93e2\u93e6\u93e7\u93f9\u93f7\u93f8\u93fa\u93fb\u93fd\u9401\u9402\u9404\u9408\u9409\u940d\u940e\u940f\u9415\u9416\u9417\u941f\u942e\u942f\u9431\u9432\u9433\u9434\u943b\u943f\u943d\u9443\u9445\u9448\u944a\u944c\u9455\u9459\u945c\u945f\u9461\u9463\u9468\u946b\u946d\u946e\u946f\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957e\u9584\u9588\u958c\u958d\u958e\u959d\u959e\u959f\u95a1\u95a6\u95a9\u95ab\u95ac\u95b4\u95b6\u95ba\u95bd\u95bf\u95c6\u95c8\u95c9\u95cb\u95d0\u95d1\u95d2\u95d3\u95d9\u95da\u95dd\u95de\u95df\u95e0\u95e4\u95e6\u961d\u961e\u9622\u9624\u9625\u9626\u962c\u9631\u9633\u9637\u9638\u9639\u963a\u963c\u963d\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966e\u9674\u967b\u967c\u967e\u967f\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969a\u969d\u969f\u96a4\u96a5\u96a6\u96a9\u96ae\u96af\u96b3\u96ba\u96ca\u96d2\u5db2\u96d8\u96da\u96dd\u96de\u96df\u96e9\u96ef\u96f1\u96fa\u9702"],["8fe7a1","\u9703\u9705\u9709\u971a\u971b\u971d\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974a\u974e\u974f\u9755\u9757\u9758\u975a\u975b\u9763\u9767\u976a\u976e\u9773\u9776\u9777\u9778\u977b\u977d\u977f\u9780\u9789\u9795\u9796\u9797\u9799\u979a\u979e\u979f\u97a2\u97ac\u97ae\u97b1\u97b2\u97b5\u97b6\u97b8\u97b9\u97ba\u97bc\u97be\u97bf\u97c1\u97c4\u97c5\u97c7\u97c9\u97ca\u97cc\u97cd\u97ce\u97d0\u97d1\u97d4\u97d7\u97d8\u97d9\u97dd\u97de\u97e0\u97db\u97e1\u97e4\u97ef\u97f1\u97f4\u97f7\u97f8\u97fa\u9807\u980a\u9819\u980d\u980e\u9814\u9816\u981c\u981e\u9820\u9823\u9826"],["8fe8a1","\u982b\u982e\u982f\u9830\u9832\u9833\u9835\u9825\u983e\u9844\u9847\u984a\u9851\u9852\u9853\u9856\u9857\u9859\u985a\u9862\u9863\u9865\u9866\u986a\u986c\u98ab\u98ad\u98ae\u98b0\u98b4\u98b7\u98b8\u98ba\u98bb\u98bf\u98c2\u98c5\u98c8\u98cc\u98e1\u98e3\u98e5\u98e6\u98e7\u98ea\u98f3\u98f6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991a\u991b\u991c\u991f\u9922\u9926\u9927\u992b\u9931",4,"\u9939\u993a\u993b\u993c\u9940\u9941\u9946\u9947\u9948\u994d\u994e\u9954\u9958\u9959\u995b\u995c\u995e\u995f\u9960\u999b\u999d\u999f\u99a6\u99b0\u99b1\u99b2\u99b5"],["8fe9a1","\u99b9\u99ba\u99bd\u99bf\u99c3\u99c9\u99d3\u99d4\u99d9\u99da\u99dc\u99de\u99e7\u99ea\u99eb\u99ec\u99f0\u99f4\u99f5\u99f9\u99fd\u99fe\u9a02\u9a03\u9a04\u9a0b\u9a0c\u9a10\u9a11\u9a16\u9a1e\u9a20\u9a22\u9a23\u9a24\u9a27\u9a2d\u9a2e\u9a33\u9a35\u9a36\u9a38\u9a47\u9a41\u9a44\u9a4a\u9a4b\u9a4c\u9a4e\u9a51\u9a54\u9a56\u9a5d\u9aaa\u9aac\u9aae\u9aaf\u9ab2\u9ab4\u9ab5\u9ab6\u9ab9\u9abb\u9abe\u9abf\u9ac1\u9ac3\u9ac6\u9ac8\u9ace\u9ad0\u9ad2\u9ad5\u9ad6\u9ad7\u9adb\u9adc\u9ae0\u9ae4\u9ae5\u9ae7\u9ae9\u9aec\u9af2\u9af3\u9af5\u9af9\u9afa\u9afd\u9aff",4],["8feaa1","\u9b04\u9b05\u9b08\u9b09\u9b0b\u9b0c\u9b0d\u9b0e\u9b10\u9b12\u9b16\u9b19\u9b1b\u9b1c\u9b20\u9b26\u9b2b\u9b2d\u9b33\u9b34\u9b35\u9b37\u9b39\u9b3a\u9b3d\u9b48\u9b4b\u9b4c\u9b55\u9b56\u9b57\u9b5b\u9b5e\u9b61\u9b63\u9b65\u9b66\u9b68\u9b6a",4,"\u9b73\u9b75\u9b77\u9b78\u9b79\u9b7f\u9b80\u9b84\u9b85\u9b86\u9b87\u9b89\u9b8a\u9b8b\u9b8d\u9b8f\u9b90\u9b94\u9b9a\u9b9d\u9b9e\u9ba6\u9ba7\u9ba9\u9bac\u9bb0\u9bb1\u9bb2\u9bb7\u9bb8\u9bbb\u9bbc\u9bbe\u9bbf\u9bc1\u9bc7\u9bc8\u9bce\u9bd0\u9bd7\u9bd8\u9bdd\u9bdf\u9be5\u9be7\u9bea\u9beb\u9bef\u9bf3\u9bf7\u9bf8"],["8feba1","\u9bf9\u9bfa\u9bfd\u9bff\u9c00\u9c02\u9c0b\u9c0f\u9c11\u9c16\u9c18\u9c19\u9c1a\u9c1c\u9c1e\u9c22\u9c23\u9c26",4,"\u9c31\u9c35\u9c36\u9c37\u9c3d\u9c41\u9c43\u9c44\u9c45\u9c49\u9c4a\u9c4e\u9c4f\u9c50\u9c53\u9c54\u9c56\u9c58\u9c5b\u9c5d\u9c5e\u9c5f\u9c63\u9c69\u9c6a\u9c5c\u9c6b\u9c68\u9c6e\u9c70\u9c72\u9c75\u9c77\u9c7b\u9ce6\u9cf2\u9cf7\u9cf9\u9d0b\u9d02\u9d11\u9d17\u9d18\u9d1c\u9d1d\u9d1e\u9d2f\u9d30\u9d32\u9d33\u9d34\u9d3a\u9d3c\u9d45\u9d3d\u9d42\u9d43\u9d47\u9d4a\u9d53\u9d54\u9d5f\u9d63\u9d62\u9d65\u9d69\u9d6a\u9d6b\u9d70\u9d76\u9d77\u9d7b"],["8feca1","\u9d7c\u9d7e\u9d83\u9d84\u9d86\u9d8a\u9d8d\u9d8e\u9d92\u9d93\u9d95\u9d96\u9d97\u9d98\u9da1\u9daa\u9dac\u9dae\u9db1\u9db5\u9db9\u9dbc\u9dbf\u9dc3\u9dc7\u9dc9\u9dca\u9dd4\u9dd5\u9dd6\u9dd7\u9dda\u9dde\u9ddf\u9de0\u9de5\u9de7\u9de9\u9deb\u9dee\u9df0\u9df3\u9df4\u9dfe\u9e0a\u9e02\u9e07\u9e0e\u9e10\u9e11\u9e12\u9e15\u9e16\u9e19\u9e1c\u9e1d\u9e7a\u9e7b\u9e7c\u9e80\u9e82\u9e83\u9e84\u9e85\u9e87\u9e8e\u9e8f\u9e96\u9e98\u9e9b\u9e9e\u9ea4\u9ea8\u9eac\u9eae\u9eaf\u9eb0\u9eb3\u9eb4\u9eb5\u9ec6\u9ec8\u9ecb\u9ed5\u9edf\u9ee4\u9ee7\u9eec\u9eed\u9eee\u9ef0\u9ef1\u9ef2\u9ef5"],["8feda1","\u9ef8\u9eff\u9f02\u9f03\u9f09\u9f0f\u9f10\u9f11\u9f12\u9f14\u9f16\u9f17\u9f19\u9f1a\u9f1b\u9f1f\u9f22\u9f26\u9f2a\u9f2b\u9f2f\u9f31\u9f32\u9f34\u9f37\u9f39\u9f3a\u9f3c\u9f3d\u9f3f\u9f41\u9f43",4,"\u9f53\u9f55\u9f56\u9f57\u9f58\u9f5a\u9f5d\u9f5e\u9f68\u9f69\u9f6d",4,"\u9f73\u9f75\u9f7a\u9f7d\u9f8f\u9f90\u9f91\u9f92\u9f94\u9f96\u9f97\u9f9e\u9fa1\u9fa2\u9fa3\u9fa5"]]},{}],17:[function(require,module,exports){module.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}},{}],18:[function(require,module,exports){module.exports=[["a140","\ue4c6",62],["a180","\ue505",32],["a240","\ue526",62],["a280","\ue565",32],["a2ab","\ue766",5],["a2e3","\u20ac\ue76d"],["a2ef","\ue76e\ue76f"],["a2fd","\ue770\ue771"],["a340","\ue586",62],["a380","\ue5c5",31,"\u3000"],["a440","\ue5e6",62],["a480","\ue625",32],["a4f4","\ue772",10],["a540","\ue646",62],["a580","\ue685",32],["a5f7","\ue77d",7],["a640","\ue6a6",62],["a680","\ue6e5",32],["a6b9","\ue785",7],["a6d9","\ue78d",6],["a6ec","\ue794\ue795"],["a6f3","\ue796"],["a6f6","\ue797",8],["a740","\ue706",62],["a780","\ue745",32],["a7c2","\ue7a0",14],["a7f2","\ue7af",12],["a896","\ue7bc",10],["a8bc","\ue7c7"],["a8bf","\u01f9"],["a8c1","\ue7c9\ue7ca\ue7cb\ue7cc"],["a8ea","\ue7cd",20],["a958","\ue7e2"],["a95b","\ue7e3"],["a95d","\ue7e4\ue7e5\ue7e6"],["a989","\u303e\u2ff0",11],["a997","\ue7f4",12],["a9f0","\ue801",14],["aaa1","\ue000",93],["aba1","\ue05e",93],["aca1","\ue0bc",93],["ada1","\ue11a",93],["aea1","\ue178",93],["afa1","\ue1d6",93],["d7fa","\ue810",4],["f8a1","\ue234",93],["f9a1","\ue292",93],["faa1","\ue2f0",93],["fba1","\ue34e",93],["fca1","\ue3ac",93],["fda1","\ue40a",93],["fe50","\u2e81\ue816\ue817\ue818\u2e84\u3473\u3447\u2e88\u2e8b\ue81e\u359e\u361a\u360e\u2e8c\u2e97\u396e\u3918\ue826\u39cf\u39df\u3a73\u39d0\ue82b\ue82c\u3b4e\u3c6e\u3ce0\u2ea7\ue831\ue832\u2eaa\u4056\u415f\u2eae\u4337\u2eb3\u2eb6\u2eb7\ue83b\u43b1\u43ac\u2ebb\u43dd\u44d6\u4661\u464c\ue843"],["fe80","\u4723\u4729\u477c\u478d\u2eca\u4947\u497a\u497d\u4982\u4983\u4985\u4986\u499f\u499b\u49b7\u49b6\ue854\ue855\u4ca3\u4c9f\u4ca0\u4ca1\u4c77\u4ca2\u4d13",6,"\u4dae\ue864\ue468",93]]},{}],19:[function(require,module,exports){module.exports=[["0","\0",128],["a1","\uff61",62],["8140","\u3000\u3001\u3002\uff0c\uff0e\u30fb\uff1a\uff1b\uff1f\uff01\u309b\u309c\xb4\uff40\xa8\uff3e\uffe3\uff3f\u30fd\u30fe\u309d\u309e\u3003\u4edd\u3005\u3006\u3007\u30fc\u2015\u2010\uff0f\uff3c\uff5e\u2225\uff5c\u2026\u2025\u2018\u2019\u201c\u201d\uff08\uff09\u3014\u3015\uff3b\uff3d\uff5b\uff5d\u3008",9,"\uff0b\uff0d\xb1\xd7"],["8180","\xf7\uff1d\u2260\uff1c\uff1e\u2266\u2267\u221e\u2234\u2642\u2640\xb0\u2032\u2033\u2103\uffe5\uff04\uffe0\uffe1\uff05\uff03\uff06\uff0a\uff20\xa7\u2606\u2605\u25cb\u25cf\u25ce\u25c7\u25c6\u25a1\u25a0\u25b3\u25b2\u25bd\u25bc\u203b\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220b\u2286\u2287\u2282\u2283\u222a\u2229"],["81c8","\u2227\u2228\uffe2\u21d2\u21d4\u2200\u2203"],["81da","\u2220\u22a5\u2312\u2202\u2207\u2261\u2252\u226a\u226b\u221a\u223d\u221d\u2235\u222b\u222c"],["81f0","\u212b\u2030\u266f\u266d\u266a\u2020\u2021\xb6"],["81fc","\u25ef"],["824f","\uff10",9],["8260","\uff21",25],["8281","\uff41",25],["829f","\u3041",82],["8340","\u30a1",62],["8380","\u30e0",22],["839f","\u0391",16,"\u03a3",6],["83bf","\u03b1",16,"\u03c3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043e",17],["849f","\u2500\u2502\u250c\u2510\u2518\u2514\u251c\u252c\u2524\u2534\u253c\u2501\u2503\u250f\u2513\u251b\u2517\u2523\u2533\u252b\u253b\u254b\u2520\u252f\u2528\u2537\u253f\u251d\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334d\u3318\u3327\u3303\u3336\u3351\u3357\u330d\u3326\u3323\u332b\u334a\u333b\u339c\u339d\u339e\u338e\u338f\u33c4\u33a1"],["877e","\u337b"],["8780","\u301d\u301f\u2116\u33cd\u2121\u32a4",4,"\u3231\u3232\u3239\u337e\u337d\u337c\u2252\u2261\u222b\u222e\u2211\u221a\u22a5\u2220\u221f\u22bf\u2235\u2229\u222a"],["889f","\u4e9c\u5516\u5a03\u963f\u54c0\u611b\u6328\u59f6\u9022\u8475\u831c\u7a50\u60aa\u63e1\u6e25\u65ed\u8466\u82a6\u9bf5\u6893\u5727\u65a1\u6271\u5b9b\u59d0\u867b\u98f4\u7d62\u7dbe\u9b8e\u6216\u7c9f\u88b7\u5b89\u5eb5\u6309\u6697\u6848\u95c7\u978d\u674f\u4ee5\u4f0a\u4f4d\u4f9d\u5049\u56f2\u5937\u59d4\u5a01\u5c09\u60df\u610f\u6170\u6613\u6905\u70ba\u754f\u7570\u79fb\u7dad\u7def\u80c3\u840e\u8863\u8b02\u9055\u907a\u533b\u4e95\u4ea5\u57df\u80b2\u90c1\u78ef\u4e00\u58f1\u6ea2\u9038\u7a32\u8328\u828b\u9c2f\u5141\u5370\u54bd\u54e1\u56e0\u59fb\u5f15\u98f2\u6deb\u80e4\u852d"],["8940","\u9662\u9670\u96a0\u97fb\u540b\u53f3\u5b87\u70cf\u7fbd\u8fc2\u96e8\u536f\u9d5c\u7aba\u4e11\u7893\u81fc\u6e26\u5618\u5504\u6b1d\u851a\u9c3b\u59e5\u53a9\u6d66\u74dc\u958f\u5642\u4e91\u904b\u96f2\u834f\u990c\u53e1\u55b6\u5b30\u5f71\u6620\u66f3\u6804\u6c38\u6cf3\u6d29\u745b\u76c8\u7a4e\u9834\u82f1\u885b\u8a60\u92ed\u6db2\u75ab\u76ca\u99c5\u60a6\u8b01\u8d8a\u95b2\u698e\u53ad\u5186"],["8980","\u5712\u5830\u5944\u5bb4\u5ef6\u6028\u63a9\u63f4\u6cbf\u6f14\u708e\u7114\u7159\u71d5\u733f\u7e01\u8276\u82d1\u8597\u9060\u925b\u9d1b\u5869\u65bc\u6c5a\u7525\u51f9\u592e\u5965\u5f80\u5fdc\u62bc\u65fa\u6a2a\u6b27\u6bb4\u738b\u7fc1\u8956\u9d2c\u9d0e\u9ec4\u5ca1\u6c96\u837b\u5104\u5c4b\u61b6\u81c6\u6876\u7261\u4e59\u4ffa\u5378\u6069\u6e29\u7a4f\u97f3\u4e0b\u5316\u4eee\u4f55\u4f3d\u4fa1\u4f73\u52a0\u53ef\u5609\u590f\u5ac1\u5bb6\u5be1\u79d1\u6687\u679c\u67b6\u6b4c\u6cb3\u706b\u73c2\u798d\u79be\u7a3c\u7b87\u82b1\u82db\u8304\u8377\u83ef\u83d3\u8766\u8ab2\u5629\u8ca8\u8fe6\u904e\u971e\u868a\u4fc4\u5ce8\u6211\u7259\u753b\u81e5\u82bd\u86fe\u8cc0\u96c5\u9913\u99d5\u4ecb\u4f1a\u89e3\u56de\u584a\u58ca\u5efb\u5feb\u602a\u6094\u6062\u61d0\u6212\u62d0\u6539"],["8a40","\u9b41\u6666\u68b0\u6d77\u7070\u754c\u7686\u7d75\u82a5\u87f9\u958b\u968e\u8c9d\u51f1\u52be\u5916\u54b3\u5bb3\u5d16\u6168\u6982\u6daf\u788d\u84cb\u8857\u8a72\u93a7\u9ab8\u6d6c\u99a8\u86d9\u57a3\u67ff\u86ce\u920e\u5283\u5687\u5404\u5ed3\u62e1\u64b9\u683c\u6838\u6bbb\u7372\u78ba\u7a6b\u899a\u89d2\u8d6b\u8f03\u90ed\u95a3\u9694\u9769\u5b66\u5cb3\u697d\u984d\u984e\u639b\u7b20\u6a2b"],["8a80","\u6a7f\u68b6\u9c0d\u6f5f\u5272\u559d\u6070\u62ec\u6d3b\u6e07\u6ed1\u845b\u8910\u8f44\u4e14\u9c39\u53f6\u691b\u6a3a\u9784\u682a\u515c\u7ac3\u84b2\u91dc\u938c\u565b\u9d28\u6822\u8305\u8431\u7ca5\u5208\u82c5\u74e6\u4e7e\u4f83\u51a0\u5bd2\u520a\u52d8\u52e7\u5dfb\u559a\u582a\u59e6\u5b8c\u5b98\u5bdb\u5e72\u5e79\u60a3\u611f\u6163\u61be\u63db\u6562\u67d1\u6853\u68fa\u6b3e\u6b53\u6c57\u6f22\u6f97\u6f45\u74b0\u7518\u76e3\u770b\u7aff\u7ba1\u7c21\u7de9\u7f36\u7ff0\u809d\u8266\u839e\u89b3\u8acc\u8cab\u9084\u9451\u9593\u9591\u95a2\u9665\u97d3\u9928\u8218\u4e38\u542b\u5cb8\u5dcc\u73a9\u764c\u773c\u5ca9\u7feb\u8d0b\u96c1\u9811\u9854\u9858\u4f01\u4f0e\u5371\u559c\u5668\u57fa\u5947\u5b09\u5bc4\u5c90\u5e0c\u5e7e\u5fcc\u63ee\u673a\u65d7\u65e2\u671f\u68cb\u68c4"],["8b40","\u6a5f\u5e30\u6bc5\u6c17\u6c7d\u757f\u7948\u5b63\u7a00\u7d00\u5fbd\u898f\u8a18\u8cb4\u8d77\u8ecc\u8f1d\u98e2\u9a0e\u9b3c\u4e80\u507d\u5100\u5993\u5b9c\u622f\u6280\u64ec\u6b3a\u72a0\u7591\u7947\u7fa9\u87fb\u8abc\u8b70\u63ac\u83ca\u97a0\u5409\u5403\u55ab\u6854\u6a58\u8a70\u7827\u6775\u9ecd\u5374\u5ba2\u811a\u8650\u9006\u4e18\u4e45\u4ec7\u4f11\u53ca\u5438\u5bae\u5f13\u6025\u6551"],["8b80","\u673d\u6c42\u6c72\u6ce3\u7078\u7403\u7a76\u7aae\u7b08\u7d1a\u7cfe\u7d66\u65e7\u725b\u53bb\u5c45\u5de8\u62d2\u62e0\u6319\u6e20\u865a\u8a31\u8ddd\u92f8\u6f01\u79a6\u9b5a\u4ea8\u4eab\u4eac\u4f9b\u4fa0\u50d1\u5147\u7af6\u5171\u51f6\u5354\u5321\u537f\u53eb\u55ac\u5883\u5ce1\u5f37\u5f4a\u602f\u6050\u606d\u631f\u6559\u6a4b\u6cc1\u72c2\u72ed\u77ef\u80f8\u8105\u8208\u854e\u90f7\u93e1\u97ff\u9957\u9a5a\u4ef0\u51dd\u5c2d\u6681\u696d\u5c40\u66f2\u6975\u7389\u6850\u7c81\u50c5\u52e4\u5747\u5dfe\u9326\u65a4\u6b23\u6b3d\u7434\u7981\u79bd\u7b4b\u7dca\u82b9\u83cc\u887f\u895f\u8b39\u8fd1\u91d1\u541f\u9280\u4e5d\u5036\u53e5\u533a\u72d7\u7396\u77e9\u82e6\u8eaf\u99c6\u99c8\u99d2\u5177\u611a\u865e\u55b0\u7a7a\u5076\u5bd3\u9047\u9685\u4e32\u6adb\u91e7\u5c51\u5c48"],["8c40","\u6398\u7a9f\u6c93\u9774\u8f61\u7aaa\u718a\u9688\u7c82\u6817\u7e70\u6851\u936c\u52f2\u541b\u85ab\u8a13\u7fa4\u8ecd\u90e1\u5366\u8888\u7941\u4fc2\u50be\u5211\u5144\u5553\u572d\u73ea\u578b\u5951\u5f62\u5f84\u6075\u6176\u6167\u61a9\u63b2\u643a\u656c\u666f\u6842\u6e13\u7566\u7a3d\u7cfb\u7d4c\u7d99\u7e4b\u7f6b\u830e\u834a\u86cd\u8a08\u8a63\u8b66\u8efd\u981a\u9d8f\u82b8\u8fce\u9be8"],["8c80","\u5287\u621f\u6483\u6fc0\u9699\u6841\u5091\u6b20\u6c7a\u6f54\u7a74\u7d50\u8840\u8a23\u6708\u4ef6\u5039\u5026\u5065\u517c\u5238\u5263\u55a7\u570f\u5805\u5acc\u5efa\u61b2\u61f8\u62f3\u6372\u691c\u6a29\u727d\u72ac\u732e\u7814\u786f\u7d79\u770c\u80a9\u898b\u8b19\u8ce2\u8ed2\u9063\u9375\u967a\u9855\u9a13\u9e78\u5143\u539f\u53b3\u5e7b\u5f26\u6e1b\u6e90\u7384\u73fe\u7d43\u8237\u8a00\u8afa\u9650\u4e4e\u500b\u53e4\u547c\u56fa\u59d1\u5b64\u5df1\u5eab\u5f27\u6238\u6545\u67af\u6e56\u72d0\u7cca\u88b4\u80a1\u80e1\u83f0\u864e\u8a87\u8de8\u9237\u96c7\u9867\u9f13\u4e94\u4e92\u4f0d\u5348\u5449\u543e\u5a2f\u5f8c\u5fa1\u609f\u68a7\u6a8e\u745a\u7881\u8a9e\u8aa4\u8b77\u9190\u4e5e\u9bc9\u4ea4\u4f7c\u4faf\u5019\u5016\u5149\u516c\u529f\u52b9\u52fe\u539a\u53e3\u5411"],["8d40","\u540e\u5589\u5751\u57a2\u597d\u5b54\u5b5d\u5b8f\u5de5\u5de7\u5df7\u5e78\u5e83\u5e9a\u5eb7\u5f18\u6052\u614c\u6297\u62d8\u63a7\u653b\u6602\u6643\u66f4\u676d\u6821\u6897\u69cb\u6c5f\u6d2a\u6d69\u6e2f\u6e9d\u7532\u7687\u786c\u7a3f\u7ce0\u7d05\u7d18\u7d5e\u7db1\u8015\u8003\u80af\u80b1\u8154\u818f\u822a\u8352\u884c\u8861\u8b1b\u8ca2\u8cfc\u90ca\u9175\u9271\u783f\u92fc\u95a4\u964d"],["8d80","\u9805\u9999\u9ad8\u9d3b\u525b\u52ab\u53f7\u5408\u58d5\u62f7\u6fe0\u8c6a\u8f5f\u9eb9\u514b\u523b\u544a\u56fd\u7a40\u9177\u9d60\u9ed2\u7344\u6f09\u8170\u7511\u5ffd\u60da\u9aa8\u72db\u8fbc\u6b64\u9803\u4eca\u56f0\u5764\u58be\u5a5a\u6068\u61c7\u660f\u6606\u6839\u68b1\u6df7\u75d5\u7d3a\u826e\u9b42\u4e9b\u4f50\u53c9\u5506\u5d6f\u5de6\u5dee\u67fb\u6c99\u7473\u7802\u8a50\u9396\u88df\u5750\u5ea7\u632b\u50b5\u50ac\u518d\u6700\u54c9\u585e\u59bb\u5bb0\u5f69\u624d\u63a1\u683d\u6b73\u6e08\u707d\u91c7\u7280\u7815\u7826\u796d\u658e\u7d30\u83dc\u88c1\u8f09\u969b\u5264\u5728\u6750\u7f6a\u8ca1\u51b4\u5742\u962a\u583a\u698a\u80b4\u54b2\u5d0e\u57fc\u7895\u9dfa\u4f5c\u524a\u548b\u643e\u6628\u6714\u67f5\u7a84\u7b56\u7d22\u932f\u685c\u9bad\u7b39\u5319\u518a\u5237"],["8e40","\u5bdf\u62f6\u64ae\u64e6\u672d\u6bba\u85a9\u96d1\u7690\u9bd6\u634c\u9306\u9bab\u76bf\u6652\u4e09\u5098\u53c2\u5c71\u60e8\u6492\u6563\u685f\u71e6\u73ca\u7523\u7b97\u7e82\u8695\u8b83\u8cdb\u9178\u9910\u65ac\u66ab\u6b8b\u4ed5\u4ed4\u4f3a\u4f7f\u523a\u53f8\u53f2\u55e3\u56db\u58eb\u59cb\u59c9\u59ff\u5b50\u5c4d\u5e02\u5e2b\u5fd7\u601d\u6307\u652f\u5b5c\u65af\u65bd\u65e8\u679d\u6b62"],["8e80","\u6b7b\u6c0f\u7345\u7949\u79c1\u7cf8\u7d19\u7d2b\u80a2\u8102\u81f3\u8996\u8a5e\u8a69\u8a66\u8a8c\u8aee\u8cc7\u8cdc\u96cc\u98fc\u6b6f\u4e8b\u4f3c\u4f8d\u5150\u5b57\u5bfa\u6148\u6301\u6642\u6b21\u6ecb\u6cbb\u723e\u74bd\u75d4\u78c1\u793a\u800c\u8033\u81ea\u8494\u8f9e\u6c50\u9e7f\u5f0f\u8b58\u9d2b\u7afa\u8ef8\u5b8d\u96eb\u4e03\u53f1\u57f7\u5931\u5ac9\u5ba4\u6089\u6e7f\u6f06\u75be\u8cea\u5b9f\u8500\u7be0\u5072\u67f4\u829d\u5c61\u854a\u7e1e\u820e\u5199\u5c04\u6368\u8d66\u659c\u716e\u793e\u7d17\u8005\u8b1d\u8eca\u906e\u86c7\u90aa\u501f\u52fa\u5c3a\u6753\u707c\u7235\u914c\u91c8\u932b\u82e5\u5bc2\u5f31\u60f9\u4e3b\u53d6\u5b88\u624b\u6731\u6b8a\u72e9\u73e0\u7a2e\u816b\u8da3\u9152\u9996\u5112\u53d7\u546a\u5bff\u6388\u6a39\u7dac\u9700\u56da\u53ce\u5468"],["8f40","\u5b97\u5c31\u5dde\u4fee\u6101\u62fe\u6d32\u79c0\u79cb\u7d42\u7e4d\u7fd2\u81ed\u821f\u8490\u8846\u8972\u8b90\u8e74\u8f2f\u9031\u914b\u916c\u96c6\u919c\u4ec0\u4f4f\u5145\u5341\u5f93\u620e\u67d4\u6c41\u6e0b\u7363\u7e26\u91cd\u9283\u53d4\u5919\u5bbf\u6dd1\u795d\u7e2e\u7c9b\u587e\u719f\u51fa\u8853\u8ff0\u4fca\u5cfb\u6625\u77ac\u7ae3\u821c\u99ff\u51c6\u5faa\u65ec\u696f\u6b89\u6df3"],["8f80","\u6e96\u6f64\u76fe\u7d14\u5de1\u9075\u9187\u9806\u51e6\u521d\u6240\u6691\u66d9\u6e1a\u5eb6\u7dd2\u7f72\u66f8\u85af\u85f7\u8af8\u52a9\u53d9\u5973\u5e8f\u5f90\u6055\u92e4\u9664\u50b7\u511f\u52dd\u5320\u5347\u53ec\u54e8\u5546\u5531\u5617\u5968\u59be\u5a3c\u5bb5\u5c06\u5c0f\u5c11\u5c1a\u5e84\u5e8a\u5ee0\u5f70\u627f\u6284\u62db\u638c\u6377\u6607\u660c\u662d\u6676\u677e\u68a2\u6a1f\u6a35\u6cbc\u6d88\u6e09\u6e58\u713c\u7126\u7167\u75c7\u7701\u785d\u7901\u7965\u79f0\u7ae0\u7b11\u7ca7\u7d39\u8096\u83d6\u848b\u8549\u885d\u88f3\u8a1f\u8a3c\u8a54\u8a73\u8c61\u8cde\u91a4\u9266\u937e\u9418\u969c\u9798\u4e0a\u4e08\u4e1e\u4e57\u5197\u5270\u57ce\u5834\u58cc\u5b22\u5e38\u60c5\u64fe\u6761\u6756\u6d44\u72b6\u7573\u7a63\u84b8\u8b72\u91b8\u9320\u5631\u57f4\u98fe"],["9040","\u62ed\u690d\u6b96\u71ed\u7e54\u8077\u8272\u89e6\u98df\u8755\u8fb1\u5c3b\u4f38\u4fe1\u4fb5\u5507\u5a20\u5bdd\u5be9\u5fc3\u614e\u632f\u65b0\u664b\u68ee\u699b\u6d78\u6df1\u7533\u75b9\u771f\u795e\u79e6\u7d33\u81e3\u82af\u85aa\u89aa\u8a3a\u8eab\u8f9b\u9032\u91dd\u9707\u4eba\u4ec1\u5203\u5875\u58ec\u5c0b\u751a\u5c3d\u814e\u8a0a\u8fc5\u9663\u976d\u7b25\u8acf\u9808\u9162\u56f3\u53a8"],["9080","\u9017\u5439\u5782\u5e25\u63a8\u6c34\u708a\u7761\u7c8b\u7fe0\u8870\u9042\u9154\u9310\u9318\u968f\u745e\u9ac4\u5d07\u5d69\u6570\u67a2\u8da8\u96db\u636e\u6749\u6919\u83c5\u9817\u96c0\u88fe\u6f84\u647a\u5bf8\u4e16\u702c\u755d\u662f\u51c4\u5236\u52e2\u59d3\u5f81\u6027\u6210\u653f\u6574\u661f\u6674\u68f2\u6816\u6b63\u6e05\u7272\u751f\u76db\u7cbe\u8056\u58f0\u88fd\u897f\u8aa0\u8a93\u8acb\u901d\u9192\u9752\u9759\u6589\u7a0e\u8106\u96bb\u5e2d\u60dc\u621a\u65a5\u6614\u6790\u77f3\u7a4d\u7c4d\u7e3e\u810a\u8cac\u8d64\u8de1\u8e5f\u78a9\u5207\u62d9\u63a5\u6442\u6298\u8a2d\u7a83\u7bc0\u8aac\u96ea\u7d76\u820c\u8749\u4ed9\u5148\u5343\u5360\u5ba3\u5c02\u5c16\u5ddd\u6226\u6247\u64b0\u6813\u6834\u6cc9\u6d45\u6d17\u67d3\u6f5c\u714e\u717d\u65cb\u7a7f\u7bad\u7dda"],["9140","\u7e4a\u7fa8\u817a\u821b\u8239\u85a6\u8a6e\u8cce\u8df5\u9078\u9077\u92ad\u9291\u9583\u9bae\u524d\u5584\u6f38\u7136\u5168\u7985\u7e55\u81b3\u7cce\u564c\u5851\u5ca8\u63aa\u66fe\u66fd\u695a\u72d9\u758f\u758e\u790e\u7956\u79df\u7c97\u7d20\u7d44\u8607\u8a34\u963b\u9061\u9f20\u50e7\u5275\u53cc\u53e2\u5009\u55aa\u58ee\u594f\u723d\u5b8b\u5c64\u531d\u60e3\u60f3\u635c\u6383\u633f\u63bb"],["9180","\u64cd\u65e9\u66f9\u5de3\u69cd\u69fd\u6f15\u71e5\u4e89\u75e9\u76f8\u7a93\u7cdf\u7dcf\u7d9c\u8061\u8349\u8358\u846c\u84bc\u85fb\u88c5\u8d70\u9001\u906d\u9397\u971c\u9a12\u50cf\u5897\u618e\u81d3\u8535\u8d08\u9020\u4fc3\u5074\u5247\u5373\u606f\u6349\u675f\u6e2c\u8db3\u901f\u4fd7\u5c5e\u8cca\u65cf\u7d9a\u5352\u8896\u5176\u63c3\u5b58\u5b6b\u5c0a\u640d\u6751\u905c\u4ed6\u591a\u592a\u6c70\u8a51\u553e\u5815\u59a5\u60f0\u6253\u67c1\u8235\u6955\u9640\u99c4\u9a28\u4f53\u5806\u5bfe\u8010\u5cb1\u5e2f\u5f85\u6020\u614b\u6234\u66ff\u6cf0\u6ede\u80ce\u817f\u82d4\u888b\u8cb8\u9000\u902e\u968a\u9edb\u9bdb\u4ee3\u53f0\u5927\u7b2c\u918d\u984c\u9df9\u6edd\u7027\u5353\u5544\u5b85\u6258\u629e\u62d3\u6ca2\u6fef\u7422\u8a17\u9438\u6fc1\u8afe\u8338\u51e7\u86f8\u53ea"],["9240","\u53e9\u4f46\u9054\u8fb0\u596a\u8131\u5dfd\u7aea\u8fbf\u68da\u8c37\u72f8\u9c48\u6a3d\u8ab0\u4e39\u5358\u5606\u5766\u62c5\u63a2\u65e6\u6b4e\u6de1\u6e5b\u70ad\u77ed\u7aef\u7baa\u7dbb\u803d\u80c6\u86cb\u8a95\u935b\u56e3\u58c7\u5f3e\u65ad\u6696\u6a80\u6bb5\u7537\u8ac7\u5024\u77e5\u5730\u5f1b\u6065\u667a\u6c60\u75f4\u7a1a\u7f6e\u81f4\u8718\u9045\u99b3\u7bc9\u755c\u7af9\u7b51\u84c4"],["9280","\u9010\u79e9\u7a92\u8336\u5ae1\u7740\u4e2d\u4ef2\u5b99\u5fe0\u62bd\u663c\u67f1\u6ce8\u866b\u8877\u8a3b\u914e\u92f3\u99d0\u6a17\u7026\u732a\u82e7\u8457\u8caf\u4e01\u5146\u51cb\u558b\u5bf5\u5e16\u5e33\u5e81\u5f14\u5f35\u5f6b\u5fb4\u61f2\u6311\u66a2\u671d\u6f6e\u7252\u753a\u773a\u8074\u8139\u8178\u8776\u8abf\u8adc\u8d85\u8df3\u929a\u9577\u9802\u9ce5\u52c5\u6357\u76f4\u6715\u6c88\u73cd\u8cc3\u93ae\u9673\u6d25\u589c\u690e\u69cc\u8ffd\u939a\u75db\u901a\u585a\u6802\u63b4\u69fb\u4f43\u6f2c\u67d8\u8fbb\u8526\u7db4\u9354\u693f\u6f70\u576a\u58f7\u5b2c\u7d2c\u722a\u540a\u91e3\u9db4\u4ead\u4f4e\u505c\u5075\u5243\u8c9e\u5448\u5824\u5b9a\u5e1d\u5e95\u5ead\u5ef7\u5f1f\u608c\u62b5\u633a\u63d0\u68af\u6c40\u7887\u798e\u7a0b\u7de0\u8247\u8a02\u8ae6\u8e44\u9013"],["9340","\u90b8\u912d\u91d8\u9f0e\u6ce5\u6458\u64e2\u6575\u6ef4\u7684\u7b1b\u9069\u93d1\u6eba\u54f2\u5fb9\u64a4\u8f4d\u8fed\u9244\u5178\u586b\u5929\u5c55\u5e97\u6dfb\u7e8f\u751c\u8cbc\u8ee2\u985b\u70b9\u4f1d\u6bbf\u6fb1\u7530\u96fb\u514e\u5410\u5835\u5857\u59ac\u5c60\u5f92\u6597\u675c\u6e21\u767b\u83df\u8ced\u9014\u90fd\u934d\u7825\u783a\u52aa\u5ea6\u571f\u5974\u6012\u5012\u515a\u51ac"],["9380","\u51cd\u5200\u5510\u5854\u5858\u5957\u5b95\u5cf6\u5d8b\u60bc\u6295\u642d\u6771\u6843\u68bc\u68df\u76d7\u6dd8\u6e6f\u6d9b\u706f\u71c8\u5f53\u75d8\u7977\u7b49\u7b54\u7b52\u7cd6\u7d71\u5230\u8463\u8569\u85e4\u8a0e\u8b04\u8c46\u8e0f\u9003\u900f\u9419\u9676\u982d\u9a30\u95d8\u50cd\u52d5\u540c\u5802\u5c0e\u61a7\u649e\u6d1e\u77b3\u7ae5\u80f4\u8404\u9053\u9285\u5ce0\u9d07\u533f\u5f97\u5fb3\u6d9c\u7279\u7763\u79bf\u7be4\u6bd2\u72ec\u8aad\u6803\u6a61\u51f8\u7a81\u6934\u5c4a\u9cf6\u82eb\u5bc5\u9149\u701e\u5678\u5c6f\u60c7\u6566\u6c8c\u8c5a\u9041\u9813\u5451\u66c7\u920d\u5948\u90a3\u5185\u4e4d\u51ea\u8599\u8b0e\u7058\u637a\u934b\u6962\u99b4\u7e04\u7577\u5357\u6960\u8edf\u96e3\u6c5d\u4e8c\u5c3c\u5f10\u8fe9\u5302\u8cd1\u8089\u8679\u5eff\u65e5\u4e73\u5165"],["9440","\u5982\u5c3f\u97ee\u4efb\u598a\u5fcd\u8a8d\u6fe1\u79b0\u7962\u5be7\u8471\u732b\u71b1\u5e74\u5ff5\u637b\u649a\u71c3\u7c98\u4e43\u5efc\u4e4b\u57dc\u56a2\u60a9\u6fc3\u7d0d\u80fd\u8133\u81bf\u8fb2\u8997\u86a4\u5df4\u628a\u64ad\u8987\u6777\u6ce2\u6d3e\u7436\u7834\u5a46\u7f75\u82ad\u99ac\u4ff3\u5ec3\u62dd\u6392\u6557\u676f\u76c3\u724c\u80cc\u80ba\u8f29\u914d\u500d\u57f9\u5a92\u6885"],["9480","\u6973\u7164\u72fd\u8cb7\u58f2\u8ce0\u966a\u9019\u877f\u79e4\u77e7\u8429\u4f2f\u5265\u535a\u62cd\u67cf\u6cca\u767d\u7b94\u7c95\u8236\u8584\u8feb\u66dd\u6f20\u7206\u7e1b\u83ab\u99c1\u9ea6\u51fd\u7bb1\u7872\u7bb8\u8087\u7b48\u6ae8\u5e61\u808c\u7551\u7560\u516b\u9262\u6e8c\u767a\u9197\u9aea\u4f10\u7f70\u629c\u7b4f\u95a5\u9ce9\u567a\u5859\u86e4\u96bc\u4f34\u5224\u534a\u53cd\u53db\u5e06\u642c\u6591\u677f\u6c3e\u6c4e\u7248\u72af\u73ed\u7554\u7e41\u822c\u85e9\u8ca9\u7bc4\u91c6\u7169\u9812\u98ef\u633d\u6669\u756a\u76e4\u78d0\u8543\u86ee\u532a\u5351\u5426\u5983\u5e87\u5f7c\u60b2\u6249\u6279\u62ab\u6590\u6bd4\u6ccc\u75b2\u76ae\u7891\u79d8\u7dcb\u7f77\u80a5\u88ab\u8ab9\u8cbb\u907f\u975e\u98db\u6a0b\u7c38\u5099\u5c3e\u5fae\u6787\u6bd8\u7435\u7709\u7f8e"],["9540","\u9f3b\u67ca\u7a17\u5339\u758b\u9aed\u5f66\u819d\u83f1\u8098\u5f3c\u5fc5\u7562\u7b46\u903c\u6867\u59eb\u5a9b\u7d10\u767e\u8b2c\u4ff5\u5f6a\u6a19\u6c37\u6f02\u74e2\u7968\u8868\u8a55\u8c79\u5edf\u63cf\u75c5\u79d2\u82d7\u9328\u92f2\u849c\u86ed\u9c2d\u54c1\u5f6c\u658c\u6d5c\u7015\u8ca7\u8cd3\u983b\u654f\u74f6\u4e0d\u4ed8\u57e0\u592b\u5a66\u5bcc\u51a8\u5e03\u5e9c\u6016\u6276\u6577"],["9580","\u65a7\u666e\u6d6e\u7236\u7b26\u8150\u819a\u8299\u8b5c\u8ca0\u8ce6\u8d74\u961c\u9644\u4fae\u64ab\u6b66\u821e\u8461\u856a\u90e8\u5c01\u6953\u98a8\u847a\u8557\u4f0f\u526f\u5fa9\u5e45\u670d\u798f\u8179\u8907\u8986\u6df5\u5f17\u6255\u6cb8\u4ecf\u7269\u9b92\u5206\u543b\u5674\u58b3\u61a4\u626e\u711a\u596e\u7c89\u7cde\u7d1b\u96f0\u6587\u805e\u4e19\u4f75\u5175\u5840\u5e63\u5e73\u5f0a\u67c4\u4e26\u853d\u9589\u965b\u7c73\u9801\u50fb\u58c1\u7656\u78a7\u5225\u77a5\u8511\u7b86\u504f\u5909\u7247\u7bc7\u7de8\u8fba\u8fd4\u904d\u4fbf\u52c9\u5a29\u5f01\u97ad\u4fdd\u8217\u92ea\u5703\u6355\u6b69\u752b\u88dc\u8f14\u7a42\u52df\u5893\u6155\u620a\u66ae\u6bcd\u7c3f\u83e9\u5023\u4ff8\u5305\u5446\u5831\u5949\u5b9d\u5cf0\u5cef\u5d29\u5e96\u62b1\u6367\u653e\u65b9\u670b"],["9640","\u6cd5\u6ce1\u70f9\u7832\u7e2b\u80de\u82b3\u840c\u84ec\u8702\u8912\u8a2a\u8c4a\u90a6\u92d2\u98fd\u9cf3\u9d6c\u4e4f\u4ea1\u508d\u5256\u574a\u59a8\u5e3d\u5fd8\u5fd9\u623f\u66b4\u671b\u67d0\u68d2\u5192\u7d21\u80aa\u81a8\u8b00\u8c8c\u8cbf\u927e\u9632\u5420\u982c\u5317\u50d5\u535c\u58a8\u64b2\u6734\u7267\u7766\u7a46\u91e6\u52c3\u6ca1\u6b86\u5800\u5e4c\u5954\u672c\u7ffb\u51e1\u76c6"],["9680","\u6469\u78e8\u9b54\u9ebb\u57cb\u59b9\u6627\u679a\u6bce\u54e9\u69d9\u5e55\u819c\u6795\u9baa\u67fe\u9c52\u685d\u4ea6\u4fe3\u53c8\u62b9\u672b\u6cab\u8fc4\u4fad\u7e6d\u9ebf\u4e07\u6162\u6e80\u6f2b\u8513\u5473\u672a\u9b45\u5df3\u7b95\u5cac\u5bc6\u871c\u6e4a\u84d1\u7a14\u8108\u5999\u7c8d\u6c11\u7720\u52d9\u5922\u7121\u725f\u77db\u9727\u9d61\u690b\u5a7f\u5a18\u51a5\u540d\u547d\u660e\u76df\u8ff7\u9298\u9cf4\u59ea\u725d\u6ec5\u514d\u68c9\u7dbf\u7dec\u9762\u9eba\u6478\u6a21\u8302\u5984\u5b5f\u6bdb\u731b\u76f2\u7db2\u8017\u8499\u5132\u6728\u9ed9\u76ee\u6762\u52ff\u9905\u5c24\u623b\u7c7e\u8cb0\u554f\u60b6\u7d0b\u9580\u5301\u4e5f\u51b6\u591c\u723a\u8036\u91ce\u5f25\u77e2\u5384\u5f79\u7d04\u85ac\u8a33\u8e8d\u9756\u67f3\u85ae\u9453\u6109\u6108\u6cb9\u7652"],["9740","\u8aed\u8f38\u552f\u4f51\u512a\u52c7\u53cb\u5ba5\u5e7d\u60a0\u6182\u63d6\u6709\u67da\u6e67\u6d8c\u7336\u7337\u7531\u7950\u88d5\u8a98\u904a\u9091\u90f5\u96c4\u878d\u5915\u4e88\u4f59\u4e0e\u8a89\u8f3f\u9810\u50ad\u5e7c\u5996\u5bb9\u5eb8\u63da\u63fa\u64c1\u66dc\u694a\u69d8\u6d0b\u6eb6\u7194\u7528\u7aaf\u7f8a\u8000\u8449\u84c9\u8981\u8b21\u8e0a\u9065\u967d\u990a\u617e\u6291\u6b32"],["9780","\u6c83\u6d74\u7fcc\u7ffc\u6dc0\u7f85\u87ba\u88f8\u6765\u83b1\u983c\u96f7\u6d1b\u7d61\u843d\u916a\u4e71\u5375\u5d50\u6b04\u6feb\u85cd\u862d\u89a7\u5229\u540f\u5c65\u674e\u68a8\u7406\u7483\u75e2\u88cf\u88e1\u91cc\u96e2\u9678\u5f8b\u7387\u7acb\u844e\u63a0\u7565\u5289\u6d41\u6e9c\u7409\u7559\u786b\u7c92\u9686\u7adc\u9f8d\u4fb6\u616e\u65c5\u865c\u4e86\u4eae\u50da\u4e21\u51cc\u5bee\u6599\u6881\u6dbc\u731f\u7642\u77ad\u7a1c\u7ce7\u826f\u8ad2\u907c\u91cf\u9675\u9818\u529b\u7dd1\u502b\u5398\u6797\u6dcb\u71d0\u7433\u81e8\u8f2a\u96a3\u9c57\u9e9f\u7460\u5841\u6d99\u7d2f\u985e\u4ee4\u4f36\u4f8b\u51b7\u52b1\u5dba\u601c\u73b2\u793c\u82d3\u9234\u96b7\u96f6\u970a\u9e97\u9f62\u66a6\u6b74\u5217\u52a3\u70c8\u88c2\u5ec9\u604b\u6190\u6f23\u7149\u7c3e\u7df4\u806f"],["9840","\u84ee\u9023\u932c\u5442\u9b6f\u6ad3\u7089\u8cc2\u8def\u9732\u52b4\u5a41\u5eca\u5f04\u6717\u697c\u6994\u6d6a\u6f0f\u7262\u72fc\u7bed\u8001\u807e\u874b\u90ce\u516d\u9e93\u7984\u808b\u9332\u8ad6\u502d\u548c\u8a71\u6b6a\u8cc4\u8107\u60d1\u67a0\u9df2\u4e99\u4e98\u9c10\u8a6b\u85c1\u8568\u6900\u6e7e\u7897\u8155"],["989f","\u5f0c\u4e10\u4e15\u4e2a\u4e31\u4e36\u4e3c\u4e3f\u4e42\u4e56\u4e58\u4e82\u4e85\u8c6b\u4e8a\u8212\u5f0d\u4e8e\u4e9e\u4e9f\u4ea0\u4ea2\u4eb0\u4eb3\u4eb6\u4ece\u4ecd\u4ec4\u4ec6\u4ec2\u4ed7\u4ede\u4eed\u4edf\u4ef7\u4f09\u4f5a\u4f30\u4f5b\u4f5d\u4f57\u4f47\u4f76\u4f88\u4f8f\u4f98\u4f7b\u4f69\u4f70\u4f91\u4f6f\u4f86\u4f96\u5118\u4fd4\u4fdf\u4fce\u4fd8\u4fdb\u4fd1\u4fda\u4fd0\u4fe4\u4fe5\u501a\u5028\u5014\u502a\u5025\u5005\u4f1c\u4ff6\u5021\u5029\u502c\u4ffe\u4fef\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505a\u5056\u506c\u5078\u5080\u509a\u5085\u50b4\u50b2"],["9940","\u50c9\u50ca\u50b3\u50c2\u50d6\u50de\u50e5\u50ed\u50e3\u50ee\u50f9\u50f5\u5109\u5101\u5102\u5116\u5115\u5114\u511a\u5121\u513a\u5137\u513c\u513b\u513f\u5140\u5152\u514c\u5154\u5162\u7af8\u5169\u516a\u516e\u5180\u5182\u56d8\u518c\u5189\u518f\u5191\u5193\u5195\u5196\u51a4\u51a6\u51a2\u51a9\u51aa\u51ab\u51b3\u51b1\u51b2\u51b0\u51b5\u51bd\u51c5\u51c9\u51db\u51e0\u8655\u51e9\u51ed"],["9980","\u51f0\u51f5\u51fe\u5204\u520b\u5214\u520e\u5227\u522a\u522e\u5233\u5239\u524f\u5244\u524b\u524c\u525e\u5254\u526a\u5274\u5269\u5273\u527f\u527d\u528d\u5294\u5292\u5271\u5288\u5291\u8fa8\u8fa7\u52ac\u52ad\u52bc\u52b5\u52c1\u52cd\u52d7\u52de\u52e3\u52e6\u98ed\u52e0\u52f3\u52f5\u52f8\u52f9\u5306\u5308\u7538\u530d\u5310\u530f\u5315\u531a\u5323\u532f\u5331\u5333\u5338\u5340\u5346\u5345\u4e17\u5349\u534d\u51d6\u535e\u5369\u536e\u5918\u537b\u5377\u5382\u5396\u53a0\u53a6\u53a5\u53ae\u53b0\u53b6\u53c3\u7c12\u96d9\u53df\u66fc\u71ee\u53ee\u53e8\u53ed\u53fa\u5401\u543d\u5440\u542c\u542d\u543c\u542e\u5436\u5429\u541d\u544e\u548f\u5475\u548e\u545f\u5471\u5477\u5470\u5492\u547b\u5480\u5476\u5484\u5490\u5486\u54c7\u54a2\u54b8\u54a5\u54ac\u54c4\u54c8\u54a8"],["9a40","\u54ab\u54c2\u54a4\u54be\u54bc\u54d8\u54e5\u54e6\u550f\u5514\u54fd\u54ee\u54ed\u54fa\u54e2\u5539\u5540\u5563\u554c\u552e\u555c\u5545\u5556\u5557\u5538\u5533\u555d\u5599\u5580\u54af\u558a\u559f\u557b\u557e\u5598\u559e\u55ae\u557c\u5583\u55a9\u5587\u55a8\u55da\u55c5\u55df\u55c4\u55dc\u55e4\u55d4\u5614\u55f7\u5616\u55fe\u55fd\u561b\u55f9\u564e\u5650\u71df\u5634\u5636\u5632\u5638"],["9a80","\u566b\u5664\u562f\u566c\u566a\u5686\u5680\u568a\u56a0\u5694\u568f\u56a5\u56ae\u56b6\u56b4\u56c2\u56bc\u56c1\u56c3\u56c0\u56c8\u56ce\u56d1\u56d3\u56d7\u56ee\u56f9\u5700\u56ff\u5704\u5709\u5708\u570b\u570d\u5713\u5718\u5716\u55c7\u571c\u5726\u5737\u5738\u574e\u573b\u5740\u574f\u5769\u57c0\u5788\u5761\u577f\u5789\u5793\u57a0\u57b3\u57a4\u57aa\u57b0\u57c3\u57c6\u57d4\u57d2\u57d3\u580a\u57d6\u57e3\u580b\u5819\u581d\u5872\u5821\u5862\u584b\u5870\u6bc0\u5852\u583d\u5879\u5885\u58b9\u589f\u58ab\u58ba\u58de\u58bb\u58b8\u58ae\u58c5\u58d3\u58d1\u58d7\u58d9\u58d8\u58e5\u58dc\u58e4\u58df\u58ef\u58fa\u58f9\u58fb\u58fc\u58fd\u5902\u590a\u5910\u591b\u68a6\u5925\u592c\u592d\u5932\u5938\u593e\u7ad2\u5955\u5950\u594e\u595a\u5958\u5962\u5960\u5967\u596c\u5969"],["9b40","\u5978\u5981\u599d\u4f5e\u4fab\u59a3\u59b2\u59c6\u59e8\u59dc\u598d\u59d9\u59da\u5a25\u5a1f\u5a11\u5a1c\u5a09\u5a1a\u5a40\u5a6c\u5a49\u5a35\u5a36\u5a62\u5a6a\u5a9a\u5abc\u5abe\u5acb\u5ac2\u5abd\u5ae3\u5ad7\u5ae6\u5ae9\u5ad6\u5afa\u5afb\u5b0c\u5b0b\u5b16\u5b32\u5ad0\u5b2a\u5b36\u5b3e\u5b43\u5b45\u5b40\u5b51\u5b55\u5b5a\u5b5b\u5b65\u5b69\u5b70\u5b73\u5b75\u5b78\u6588\u5b7a\u5b80"],["9b80","\u5b83\u5ba6\u5bb8\u5bc3\u5bc7\u5bc9\u5bd4\u5bd0\u5be4\u5be6\u5be2\u5bde\u5be5\u5beb\u5bf0\u5bf6\u5bf3\u5c05\u5c07\u5c08\u5c0d\u5c13\u5c20\u5c22\u5c28\u5c38\u5c39\u5c41\u5c46\u5c4e\u5c53\u5c50\u5c4f\u5b71\u5c6c\u5c6e\u4e62\u5c76\u5c79\u5c8c\u5c91\u5c94\u599b\u5cab\u5cbb\u5cb6\u5cbc\u5cb7\u5cc5\u5cbe\u5cc7\u5cd9\u5ce9\u5cfd\u5cfa\u5ced\u5d8c\u5cea\u5d0b\u5d15\u5d17\u5d5c\u5d1f\u5d1b\u5d11\u5d14\u5d22\u5d1a\u5d19\u5d18\u5d4c\u5d52\u5d4e\u5d4b\u5d6c\u5d73\u5d76\u5d87\u5d84\u5d82\u5da2\u5d9d\u5dac\u5dae\u5dbd\u5d90\u5db7\u5dbc\u5dc9\u5dcd\u5dd3\u5dd2\u5dd6\u5ddb\u5deb\u5df2\u5df5\u5e0b\u5e1a\u5e19\u5e11\u5e1b\u5e36\u5e37\u5e44\u5e43\u5e40\u5e4e\u5e57\u5e54\u5e5f\u5e62\u5e64\u5e47\u5e75\u5e76\u5e7a\u9ebc\u5e7f\u5ea0\u5ec1\u5ec2\u5ec8\u5ed0\u5ecf"],["9c40","\u5ed6\u5ee3\u5edd\u5eda\u5edb\u5ee2\u5ee1\u5ee8\u5ee9\u5eec\u5ef1\u5ef3\u5ef0\u5ef4\u5ef8\u5efe\u5f03\u5f09\u5f5d\u5f5c\u5f0b\u5f11\u5f16\u5f29\u5f2d\u5f38\u5f41\u5f48\u5f4c\u5f4e\u5f2f\u5f51\u5f56\u5f57\u5f59\u5f61\u5f6d\u5f73\u5f77\u5f83\u5f82\u5f7f\u5f8a\u5f88\u5f91\u5f87\u5f9e\u5f99\u5f98\u5fa0\u5fa8\u5fad\u5fbc\u5fd6\u5ffb\u5fe4\u5ff8\u5ff1\u5fdd\u60b3\u5fff\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600e\u6031\u601b\u6015\u602b\u6026\u600f\u603a\u605a\u6041\u606a\u6077\u605f\u604a\u6046\u604d\u6063\u6043\u6064\u6042\u606c\u606b\u6059\u6081\u608d\u60e7\u6083\u609a\u6084\u609b\u6096\u6097\u6092\u60a7\u608b\u60e1\u60b8\u60e0\u60d3\u60b4\u5ff0\u60bd\u60c6\u60b5\u60d8\u614d\u6115\u6106\u60f6\u60f7\u6100\u60f4\u60fa\u6103\u6121\u60fb\u60f1\u610d\u610e\u6147\u613e\u6128\u6127\u614a\u613f\u613c\u612c\u6134\u613d\u6142\u6144\u6173\u6177\u6158\u6159\u615a\u616b\u6174\u616f\u6165\u6171\u615f\u615d\u6153\u6175\u6199\u6196\u6187\u61ac\u6194\u619a\u618a\u6191\u61ab\u61ae\u61cc\u61ca\u61c9\u61f7\u61c8\u61c3\u61c6\u61ba\u61cb\u7f79\u61cd\u61e6\u61e3\u61f6\u61fa\u61f4\u61ff\u61fd\u61fc\u61fe\u6200\u6208\u6209\u620d\u620c\u6214\u621b"],["9d40","\u621e\u6221\u622a\u622e\u6230\u6232\u6233\u6241\u624e\u625e\u6263\u625b\u6260\u6268\u627c\u6282\u6289\u627e\u6292\u6293\u6296\u62d4\u6283\u6294\u62d7\u62d1\u62bb\u62cf\u62ff\u62c6\u64d4\u62c8\u62dc\u62cc\u62ca\u62c2\u62c7\u629b\u62c9\u630c\u62ee\u62f1\u6327\u6302\u6308\u62ef\u62f5\u6350\u633e\u634d\u641c\u634f\u6396\u638e\u6380\u63ab\u6376\u63a3\u638f\u6389\u639f\u63b5\u636b"],["9d80","\u6369\u63be\u63e9\u63c0\u63c6\u63e3\u63c9\u63d2\u63f6\u63c4\u6416\u6434\u6406\u6413\u6426\u6436\u651d\u6417\u6428\u640f\u6467\u646f\u6476\u644e\u652a\u6495\u6493\u64a5\u64a9\u6488\u64bc\u64da\u64d2\u64c5\u64c7\u64bb\u64d8\u64c2\u64f1\u64e7\u8209\u64e0\u64e1\u62ac\u64e3\u64ef\u652c\u64f6\u64f4\u64f2\u64fa\u6500\u64fd\u6518\u651c\u6505\u6524\u6523\u652b\u6534\u6535\u6537\u6536\u6538\u754b\u6548\u6556\u6555\u654d\u6558\u655e\u655d\u6572\u6578\u6582\u6583\u8b8a\u659b\u659f\u65ab\u65b7\u65c3\u65c6\u65c1\u65c4\u65cc\u65d2\u65db\u65d9\u65e0\u65e1\u65f1\u6772\u660a\u6603\u65fb\u6773\u6635\u6636\u6634\u661c\u664f\u6644\u6649\u6641\u665e\u665d\u6664\u6667\u6668\u665f\u6662\u6670\u6683\u6688\u668e\u6689\u6684\u6698\u669d\u66c1\u66b9\u66c9\u66be\u66bc"],["9e40","\u66c4\u66b8\u66d6\u66da\u66e0\u663f\u66e6\u66e9\u66f0\u66f5\u66f7\u670f\u6716\u671e\u6726\u6727\u9738\u672e\u673f\u6736\u6741\u6738\u6737\u6746\u675e\u6760\u6759\u6763\u6764\u6789\u6770\u67a9\u677c\u676a\u678c\u678b\u67a6\u67a1\u6785\u67b7\u67ef\u67b4\u67ec\u67b3\u67e9\u67b8\u67e4\u67de\u67dd\u67e2\u67ee\u67b9\u67ce\u67c6\u67e7\u6a9c\u681e\u6846\u6829\u6840\u684d\u6832\u684e"],["9e80","\u68b3\u682b\u6859\u6863\u6877\u687f\u689f\u688f\u68ad\u6894\u689d\u689b\u6883\u6aae\u68b9\u6874\u68b5\u68a0\u68ba\u690f\u688d\u687e\u6901\u68ca\u6908\u68d8\u6922\u6926\u68e1\u690c\u68cd\u68d4\u68e7\u68d5\u6936\u6912\u6904\u68d7\u68e3\u6925\u68f9\u68e0\u68ef\u6928\u692a\u691a\u6923\u6921\u68c6\u6979\u6977\u695c\u6978\u696b\u6954\u697e\u696e\u6939\u6974\u693d\u6959\u6930\u6961\u695e\u695d\u6981\u696a\u69b2\u69ae\u69d0\u69bf\u69c1\u69d3\u69be\u69ce\u5be8\u69ca\u69dd\u69bb\u69c3\u69a7\u6a2e\u6991\u69a0\u699c\u6995\u69b4\u69de\u69e8\u6a02\u6a1b\u69ff\u6b0a\u69f9\u69f2\u69e7\u6a05\u69b1\u6a1e\u69ed\u6a14\u69eb\u6a0a\u6a12\u6ac1\u6a23\u6a13\u6a44\u6a0c\u6a72\u6a36\u6a78\u6a47\u6a62\u6a59\u6a66\u6a48\u6a38\u6a22\u6a90\u6a8d\u6aa0\u6a84\u6aa2\u6aa3"],["9f40","\u6a97\u8617\u6abb\u6ac3\u6ac2\u6ab8\u6ab3\u6aac\u6ade\u6ad1\u6adf\u6aaa\u6ada\u6aea\u6afb\u6b05\u8616\u6afa\u6b12\u6b16\u9b31\u6b1f\u6b38\u6b37\u76dc\u6b39\u98ee\u6b47\u6b43\u6b49\u6b50\u6b59\u6b54\u6b5b\u6b5f\u6b61\u6b78\u6b79\u6b7f\u6b80\u6b84\u6b83\u6b8d\u6b98\u6b95\u6b9e\u6ba4\u6baa\u6bab\u6baf\u6bb2\u6bb1\u6bb3\u6bb7\u6bbc\u6bc6\u6bcb\u6bd3\u6bdf\u6bec\u6beb\u6bf3\u6bef"],["9f80","\u9ebe\u6c08\u6c13\u6c14\u6c1b\u6c24\u6c23\u6c5e\u6c55\u6c62\u6c6a\u6c82\u6c8d\u6c9a\u6c81\u6c9b\u6c7e\u6c68\u6c73\u6c92\u6c90\u6cc4\u6cf1\u6cd3\u6cbd\u6cd7\u6cc5\u6cdd\u6cae\u6cb1\u6cbe\u6cba\u6cdb\u6cef\u6cd9\u6cea\u6d1f\u884d\u6d36\u6d2b\u6d3d\u6d38\u6d19\u6d35\u6d33\u6d12\u6d0c\u6d63\u6d93\u6d64\u6d5a\u6d79\u6d59\u6d8e\u6d95\u6fe4\u6d85\u6df9\u6e15\u6e0a\u6db5\u6dc7\u6de6\u6db8\u6dc6\u6dec\u6dde\u6dcc\u6de8\u6dd2\u6dc5\u6dfa\u6dd9\u6de4\u6dd5\u6dea\u6dee\u6e2d\u6e6e\u6e2e\u6e19\u6e72\u6e5f\u6e3e\u6e23\u6e6b\u6e2b\u6e76\u6e4d\u6e1f\u6e43\u6e3a\u6e4e\u6e24\u6eff\u6e1d\u6e38\u6e82\u6eaa\u6e98\u6ec9\u6eb7\u6ed3\u6ebd\u6eaf\u6ec4\u6eb2\u6ed4\u6ed5\u6e8f\u6ea5\u6ec2\u6e9f\u6f41\u6f11\u704c\u6eec\u6ef8\u6efe\u6f3f\u6ef2\u6f31\u6eef\u6f32\u6ecc"],["e040","\u6f3e\u6f13\u6ef7\u6f86\u6f7a\u6f78\u6f81\u6f80\u6f6f\u6f5b\u6ff3\u6f6d\u6f82\u6f7c\u6f58\u6f8e\u6f91\u6fc2\u6f66\u6fb3\u6fa3\u6fa1\u6fa4\u6fb9\u6fc6\u6faa\u6fdf\u6fd5\u6fec\u6fd4\u6fd8\u6ff1\u6fee\u6fdb\u7009\u700b\u6ffa\u7011\u7001\u700f\u6ffe\u701b\u701a\u6f74\u701d\u7018\u701f\u7030\u703e\u7032\u7051\u7063\u7099\u7092\u70af\u70f1\u70ac\u70b8\u70b3\u70ae\u70df\u70cb\u70dd"],["e080","\u70d9\u7109\u70fd\u711c\u7119\u7165\u7155\u7188\u7166\u7162\u714c\u7156\u716c\u718f\u71fb\u7184\u7195\u71a8\u71ac\u71d7\u71b9\u71be\u71d2\u71c9\u71d4\u71ce\u71e0\u71ec\u71e7\u71f5\u71fc\u71f9\u71ff\u720d\u7210\u721b\u7228\u722d\u722c\u7230\u7232\u723b\u723c\u723f\u7240\u7246\u724b\u7258\u7274\u727e\u7282\u7281\u7287\u7292\u7296\u72a2\u72a7\u72b9\u72b2\u72c3\u72c6\u72c4\u72ce\u72d2\u72e2\u72e0\u72e1\u72f9\u72f7\u500f\u7317\u730a\u731c\u7316\u731d\u7334\u732f\u7329\u7325\u733e\u734e\u734f\u9ed8\u7357\u736a\u7368\u7370\u7378\u7375\u737b\u737a\u73c8\u73b3\u73ce\u73bb\u73c0\u73e5\u73ee\u73de\u74a2\u7405\u746f\u7425\u73f8\u7432\u743a\u7455\u743f\u745f\u7459\u7441\u745c\u7469\u7470\u7463\u746a\u7476\u747e\u748b\u749e\u74a7\u74ca\u74cf\u74d4\u73f1"],["e140","\u74e0\u74e3\u74e7\u74e9\u74ee\u74f2\u74f0\u74f1\u74f8\u74f7\u7504\u7503\u7505\u750c\u750e\u750d\u7515\u7513\u751e\u7526\u752c\u753c\u7544\u754d\u754a\u7549\u755b\u7546\u755a\u7569\u7564\u7567\u756b\u756d\u7578\u7576\u7586\u7587\u7574\u758a\u7589\u7582\u7594\u759a\u759d\u75a5\u75a3\u75c2\u75b3\u75c3\u75b5\u75bd\u75b8\u75bc\u75b1\u75cd\u75ca\u75d2\u75d9\u75e3\u75de\u75fe\u75ff"],["e180","\u75fc\u7601\u75f0\u75fa\u75f2\u75f3\u760b\u760d\u7609\u761f\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763b\u7647\u7648\u7646\u765c\u7658\u7661\u7662\u7668\u7669\u766a\u7667\u766c\u7670\u7672\u7676\u7678\u767c\u7680\u7683\u7688\u768b\u768e\u7696\u7693\u7699\u769a\u76b0\u76b4\u76b8\u76b9\u76ba\u76c2\u76cd\u76d6\u76d2\u76de\u76e1\u76e5\u76e7\u76ea\u862f\u76fb\u7708\u7707\u7704\u7729\u7724\u771e\u7725\u7726\u771b\u7737\u7738\u7747\u775a\u7768\u776b\u775b\u7765\u777f\u777e\u7779\u778e\u778b\u7791\u77a0\u779e\u77b0\u77b6\u77b9\u77bf\u77bc\u77bd\u77bb\u77c7\u77cd\u77d7\u77da\u77dc\u77e3\u77ee\u77fc\u780c\u7812\u7926\u7820\u792a\u7845\u788e\u7874\u7886\u787c\u789a\u788c\u78a3\u78b5\u78aa\u78af\u78d1\u78c6\u78cb\u78d4\u78be\u78bc\u78c5\u78ca\u78ec"],["e240","\u78e7\u78da\u78fd\u78f4\u7907\u7912\u7911\u7919\u792c\u792b\u7940\u7960\u7957\u795f\u795a\u7955\u7953\u797a\u797f\u798a\u799d\u79a7\u9f4b\u79aa\u79ae\u79b3\u79b9\u79ba\u79c9\u79d5\u79e7\u79ec\u79e1\u79e3\u7a08\u7a0d\u7a18\u7a19\u7a20\u7a1f\u7980\u7a31\u7a3b\u7a3e\u7a37\u7a43\u7a57\u7a49\u7a61\u7a62\u7a69\u9f9d\u7a70\u7a79\u7a7d\u7a88\u7a97\u7a95\u7a98\u7a96\u7aa9\u7ac8\u7ab0"],["e280","\u7ab6\u7ac5\u7ac4\u7abf\u9083\u7ac7\u7aca\u7acd\u7acf\u7ad5\u7ad3\u7ad9\u7ada\u7add\u7ae1\u7ae2\u7ae6\u7aed\u7af0\u7b02\u7b0f\u7b0a\u7b06\u7b33\u7b18\u7b19\u7b1e\u7b35\u7b28\u7b36\u7b50\u7b7a\u7b04\u7b4d\u7b0b\u7b4c\u7b45\u7b75\u7b65\u7b74\u7b67\u7b70\u7b71\u7b6c\u7b6e\u7b9d\u7b98\u7b9f\u7b8d\u7b9c\u7b9a\u7b8b\u7b92\u7b8f\u7b5d\u7b99\u7bcb\u7bc1\u7bcc\u7bcf\u7bb4\u7bc6\u7bdd\u7be9\u7c11\u7c14\u7be6\u7be5\u7c60\u7c00\u7c07\u7c13\u7bf3\u7bf7\u7c17\u7c0d\u7bf6\u7c23\u7c27\u7c2a\u7c1f\u7c37\u7c2b\u7c3d\u7c4c\u7c43\u7c54\u7c4f\u7c40\u7c50\u7c58\u7c5f\u7c64\u7c56\u7c65\u7c6c\u7c75\u7c83\u7c90\u7ca4\u7cad\u7ca2\u7cab\u7ca1\u7ca8\u7cb3\u7cb2\u7cb1\u7cae\u7cb9\u7cbd\u7cc0\u7cc5\u7cc2\u7cd8\u7cd2\u7cdc\u7ce2\u9b3b\u7cef\u7cf2\u7cf4\u7cf6\u7cfa\u7d06"],["e340","\u7d02\u7d1c\u7d15\u7d0a\u7d45\u7d4b\u7d2e\u7d32\u7d3f\u7d35\u7d46\u7d73\u7d56\u7d4e\u7d72\u7d68\u7d6e\u7d4f\u7d63\u7d93\u7d89\u7d5b\u7d8f\u7d7d\u7d9b\u7dba\u7dae\u7da3\u7db5\u7dc7\u7dbd\u7dab\u7e3d\u7da2\u7daf\u7ddc\u7db8\u7d9f\u7db0\u7dd8\u7ddd\u7de4\u7dde\u7dfb\u7df2\u7de1\u7e05\u7e0a\u7e23\u7e21\u7e12\u7e31\u7e1f\u7e09\u7e0b\u7e22\u7e46\u7e66\u7e3b\u7e35\u7e39\u7e43\u7e37"],["e380","\u7e32\u7e3a\u7e67\u7e5d\u7e56\u7e5e\u7e59\u7e5a\u7e79\u7e6a\u7e69\u7e7c\u7e7b\u7e83\u7dd5\u7e7d\u8fae\u7e7f\u7e88\u7e89\u7e8c\u7e92\u7e90\u7e93\u7e94\u7e96\u7e8e\u7e9b\u7e9c\u7f38\u7f3a\u7f45\u7f4c\u7f4d\u7f4e\u7f50\u7f51\u7f55\u7f54\u7f58\u7f5f\u7f60\u7f68\u7f69\u7f67\u7f78\u7f82\u7f86\u7f83\u7f88\u7f87\u7f8c\u7f94\u7f9e\u7f9d\u7f9a\u7fa3\u7faf\u7fb2\u7fb9\u7fae\u7fb6\u7fb8\u8b71\u7fc5\u7fc6\u7fca\u7fd5\u7fd4\u7fe1\u7fe6\u7fe9\u7ff3\u7ff9\u98dc\u8006\u8004\u800b\u8012\u8018\u8019\u801c\u8021\u8028\u803f\u803b\u804a\u8046\u8052\u8058\u805a\u805f\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807d\u807f\u8084\u8086\u8085\u809b\u8093\u809a\u80ad\u5190\u80ac\u80db\u80e5\u80d9\u80dd\u80c4\u80da\u80d6\u8109\u80ef\u80f1\u811b\u8129\u8123\u812f\u814b"],["e440","\u968b\u8146\u813e\u8153\u8151\u80fc\u8171\u816e\u8165\u8166\u8174\u8183\u8188\u818a\u8180\u8182\u81a0\u8195\u81a4\u81a3\u815f\u8193\u81a9\u81b0\u81b5\u81be\u81b8\u81bd\u81c0\u81c2\u81ba\u81c9\u81cd\u81d1\u81d9\u81d8\u81c8\u81da\u81df\u81e0\u81e7\u81fa\u81fb\u81fe\u8201\u8202\u8205\u8207\u820a\u820d\u8210\u8216\u8229\u822b\u8238\u8233\u8240\u8259\u8258\u825d\u825a\u825f\u8264"],["e480","\u8262\u8268\u826a\u826b\u822e\u8271\u8277\u8278\u827e\u828d\u8292\u82ab\u829f\u82bb\u82ac\u82e1\u82e3\u82df\u82d2\u82f4\u82f3\u82fa\u8393\u8303\u82fb\u82f9\u82de\u8306\u82dc\u8309\u82d9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832f\u832b\u8317\u8318\u8385\u839a\u83aa\u839f\u83a2\u8396\u8323\u838e\u8387\u838a\u837c\u83b5\u8373\u8375\u83a0\u8389\u83a8\u83f4\u8413\u83eb\u83ce\u83fd\u8403\u83d8\u840b\u83c1\u83f7\u8407\u83e0\u83f2\u840d\u8422\u8420\u83bd\u8438\u8506\u83fb\u846d\u842a\u843c\u855a\u8484\u8477\u846b\u84ad\u846e\u8482\u8469\u8446\u842c\u846f\u8479\u8435\u84ca\u8462\u84b9\u84bf\u849f\u84d9\u84cd\u84bb\u84da\u84d0\u84c1\u84c6\u84d6\u84a1\u8521\u84ff\u84f4\u8517\u8518\u852c\u851f\u8515\u8514\u84fc\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854b\u8555\u8580\u85a4\u8588\u8591\u858a\u85a8\u856d\u8594\u859b\u85ea\u8587\u859c\u8577\u857e\u8590\u85c9\u85ba\u85cf\u85b9\u85d0\u85d5\u85dd\u85e5\u85dc\u85f9\u860a\u8613\u860b\u85fe\u85fa\u8606\u8622\u861a\u8630\u863f\u864d\u4e55\u8654\u865f\u8667\u8671\u8693\u86a3\u86a9\u86aa\u868b\u868c\u86b6\u86af\u86c4\u86c6\u86b0\u86c9\u8823\u86ab\u86d4\u86de\u86e9\u86ec"],["e580","\u86df\u86db\u86ef\u8712\u8706\u8708\u8700\u8703\u86fb\u8711\u8709\u870d\u86f9\u870a\u8734\u873f\u8737\u873b\u8725\u8729\u871a\u8760\u875f\u8778\u874c\u874e\u8774\u8757\u8768\u876e\u8759\u8753\u8763\u876a\u8805\u87a2\u879f\u8782\u87af\u87cb\u87bd\u87c0\u87d0\u96d6\u87ab\u87c4\u87b3\u87c7\u87c6\u87bb\u87ef\u87f2\u87e0\u880f\u880d\u87fe\u87f6\u87f7\u880e\u87d2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883b\u8844\u8842\u8852\u8859\u885e\u8862\u886b\u8881\u887e\u889e\u8875\u887d\u88b5\u8872\u8882\u8897\u8892\u88ae\u8899\u88a2\u888d\u88a4\u88b0\u88bf\u88b1\u88c3\u88c4\u88d4\u88d8\u88d9\u88dd\u88f9\u8902\u88fc\u88f4\u88e8\u88f2\u8904\u890c\u890a\u8913\u8943\u891e\u8925\u892a\u892b\u8941\u8944\u893b\u8936\u8938\u894c\u891d\u8960\u895e"],["e640","\u8966\u8964\u896d\u896a\u896f\u8974\u8977\u897e\u8983\u8988\u898a\u8993\u8998\u89a1\u89a9\u89a6\u89ac\u89af\u89b2\u89ba\u89bd\u89bf\u89c0\u89da\u89dc\u89dd\u89e7\u89f4\u89f8\u8a03\u8a16\u8a10\u8a0c\u8a1b\u8a1d\u8a25\u8a36\u8a41\u8a5b\u8a52\u8a46\u8a48\u8a7c\u8a6d\u8a6c\u8a62\u8a85\u8a82\u8a84\u8aa8\u8aa1\u8a91\u8aa5\u8aa6\u8a9a\u8aa3\u8ac4\u8acd\u8ac2\u8ada\u8aeb\u8af3\u8ae7"],["e680","\u8ae4\u8af1\u8b14\u8ae0\u8ae2\u8af7\u8ade\u8adb\u8b0c\u8b07\u8b1a\u8ae1\u8b16\u8b10\u8b17\u8b20\u8b33\u97ab\u8b26\u8b2b\u8b3e\u8b28\u8b41\u8b4c\u8b4f\u8b4e\u8b49\u8b56\u8b5b\u8b5a\u8b6b\u8b5f\u8b6c\u8b6f\u8b74\u8b7d\u8b80\u8b8c\u8b8e\u8b92\u8b93\u8b96\u8b99\u8b9a\u8c3a\u8c41\u8c3f\u8c48\u8c4c\u8c4e\u8c50\u8c55\u8c62\u8c6c\u8c78\u8c7a\u8c82\u8c89\u8c85\u8c8a\u8c8d\u8c8e\u8c94\u8c7c\u8c98\u621d\u8cad\u8caa\u8cbd\u8cb2\u8cb3\u8cae\u8cb6\u8cc8\u8cc1\u8ce4\u8ce3\u8cda\u8cfd\u8cfa\u8cfb\u8d04\u8d05\u8d0a\u8d07\u8d0f\u8d0d\u8d10\u9f4e\u8d13\u8ccd\u8d14\u8d16\u8d67\u8d6d\u8d71\u8d73\u8d81\u8d99\u8dc2\u8dbe\u8dba\u8dcf\u8dda\u8dd6\u8dcc\u8ddb\u8dcb\u8dea\u8deb\u8ddf\u8de3\u8dfc\u8e08\u8e09\u8dff\u8e1d\u8e1e\u8e10\u8e1f\u8e42\u8e35\u8e30\u8e34\u8e4a"],["e740","\u8e47\u8e49\u8e4c\u8e50\u8e48\u8e59\u8e64\u8e60\u8e2a\u8e63\u8e55\u8e76\u8e72\u8e7c\u8e81\u8e87\u8e85\u8e84\u8e8b\u8e8a\u8e93\u8e91\u8e94\u8e99\u8eaa\u8ea1\u8eac\u8eb0\u8ec6\u8eb1\u8ebe\u8ec5\u8ec8\u8ecb\u8edb\u8ee3\u8efc\u8efb\u8eeb\u8efe\u8f0a\u8f05\u8f15\u8f12\u8f19\u8f13\u8f1c\u8f1f\u8f1b\u8f0c\u8f26\u8f33\u8f3b\u8f39\u8f45\u8f42\u8f3e\u8f4c\u8f49\u8f46\u8f4e\u8f57\u8f5c"],["e780","\u8f62\u8f63\u8f64\u8f9c\u8f9f\u8fa3\u8fad\u8faf\u8fb7\u8fda\u8fe5\u8fe2\u8fea\u8fef\u9087\u8ff4\u9005\u8ff9\u8ffa\u9011\u9015\u9021\u900d\u901e\u9016\u900b\u9027\u9036\u9035\u9039\u8ff8\u904f\u9050\u9051\u9052\u900e\u9049\u903e\u9056\u9058\u905e\u9068\u906f\u9076\u96a8\u9072\u9082\u907d\u9081\u9080\u908a\u9089\u908f\u90a8\u90af\u90b1\u90b5\u90e2\u90e4\u6248\u90db\u9102\u9112\u9119\u9132\u9130\u914a\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918b\u9189\u9182\u91a2\u91ab\u91af\u91aa\u91b5\u91b4\u91ba\u91c0\u91c1\u91c9\u91cb\u91d0\u91d6\u91df\u91e1\u91db\u91fc\u91f5\u91f6\u921e\u91ff\u9214\u922c\u9215\u9211\u925e\u9257\u9245\u9249\u9264\u9248\u9295\u923f\u924b\u9250\u929c\u9296\u9293\u929b\u925a\u92cf\u92b9\u92b7\u92e9\u930f\u92fa\u9344\u932e"],["e840","\u9319\u9322\u931a\u9323\u933a\u9335\u933b\u935c\u9360\u937c\u936e\u9356\u93b0\u93ac\u93ad\u9394\u93b9\u93d6\u93d7\u93e8\u93e5\u93d8\u93c3\u93dd\u93d0\u93c8\u93e4\u941a\u9414\u9413\u9403\u9407\u9410\u9436\u942b\u9435\u9421\u943a\u9441\u9452\u9444\u945b\u9460\u9462\u945e\u946a\u9229\u9470\u9475\u9477\u947d\u945a\u947c\u947e\u9481\u947f\u9582\u9587\u958a\u9594\u9596\u9598\u9599"],["e880","\u95a0\u95a8\u95a7\u95ad\u95bc\u95bb\u95b9\u95be\u95ca\u6ff6\u95c3\u95cd\u95cc\u95d5\u95d4\u95d6\u95dc\u95e1\u95e5\u95e2\u9621\u9628\u962e\u962f\u9642\u964c\u964f\u964b\u9677\u965c\u965e\u965d\u965f\u9666\u9672\u966c\u968d\u9698\u9695\u9697\u96aa\u96a7\u96b1\u96b2\u96b0\u96b4\u96b6\u96b8\u96b9\u96ce\u96cb\u96c9\u96cd\u894d\u96dc\u970d\u96d5\u96f9\u9704\u9706\u9708\u9713\u970e\u9711\u970f\u9716\u9719\u9724\u972a\u9730\u9739\u973d\u973e\u9744\u9746\u9748\u9742\u9749\u975c\u9760\u9764\u9766\u9768\u52d2\u976b\u9771\u9779\u9785\u977c\u9781\u977a\u9786\u978b\u978f\u9790\u979c\u97a8\u97a6\u97a3\u97b3\u97b4\u97c3\u97c6\u97c8\u97cb\u97dc\u97ed\u9f4f\u97f2\u7adf\u97f6\u97f5\u980f\u980c\u9838\u9824\u9821\u9837\u983d\u9846\u984f\u984b\u986b\u986f\u9870"],["e940","\u9871\u9874\u9873\u98aa\u98af\u98b1\u98b6\u98c4\u98c3\u98c6\u98e9\u98eb\u9903\u9909\u9912\u9914\u9918\u9921\u991d\u991e\u9924\u9920\u992c\u992e\u993d\u993e\u9942\u9949\u9945\u9950\u994b\u9951\u9952\u994c\u9955\u9997\u9998\u99a5\u99ad\u99ae\u99bc\u99df\u99db\u99dd\u99d8\u99d1\u99ed\u99ee\u99f1\u99f2\u99fb\u99f8\u9a01\u9a0f\u9a05\u99e2\u9a19\u9a2b\u9a37\u9a45\u9a42\u9a40\u9a43"],["e980","\u9a3e\u9a55\u9a4d\u9a5b\u9a57\u9a5f\u9a62\u9a65\u9a64\u9a69\u9a6b\u9a6a\u9aad\u9ab0\u9abc\u9ac0\u9acf\u9ad1\u9ad3\u9ad4\u9ade\u9adf\u9ae2\u9ae3\u9ae6\u9aef\u9aeb\u9aee\u9af4\u9af1\u9af7\u9afb\u9b06\u9b18\u9b1a\u9b1f\u9b22\u9b23\u9b25\u9b27\u9b28\u9b29\u9b2a\u9b2e\u9b2f\u9b32\u9b44\u9b43\u9b4f\u9b4d\u9b4e\u9b51\u9b58\u9b74\u9b93\u9b83\u9b91\u9b96\u9b97\u9b9f\u9ba0\u9ba8\u9bb4\u9bc0\u9bca\u9bb9\u9bc6\u9bcf\u9bd1\u9bd2\u9be3\u9be2\u9be4\u9bd4\u9be1\u9c3a\u9bf2\u9bf1\u9bf0\u9c15\u9c14\u9c09\u9c13\u9c0c\u9c06\u9c08\u9c12\u9c0a\u9c04\u9c2e\u9c1b\u9c25\u9c24\u9c21\u9c30\u9c47\u9c32\u9c46\u9c3e\u9c5a\u9c60\u9c67\u9c76\u9c78\u9ce7\u9cec\u9cf0\u9d09\u9d08\u9ceb\u9d03\u9d06\u9d2a\u9d26\u9daf\u9d23\u9d1f\u9d44\u9d15\u9d12\u9d41\u9d3f\u9d3e\u9d46\u9d48"],["ea40","\u9d5d\u9d5e\u9d64\u9d51\u9d50\u9d59\u9d72\u9d89\u9d87\u9dab\u9d6f\u9d7a\u9d9a\u9da4\u9da9\u9db2\u9dc4\u9dc1\u9dbb\u9db8\u9dba\u9dc6\u9dcf\u9dc2\u9dd9\u9dd3\u9df8\u9de6\u9ded\u9def\u9dfd\u9e1a\u9e1b\u9e1e\u9e75\u9e79\u9e7d\u9e81\u9e88\u9e8b\u9e8c\u9e92\u9e95\u9e91\u9e9d\u9ea5\u9ea9\u9eb8\u9eaa\u9ead\u9761\u9ecc\u9ece\u9ecf\u9ed0\u9ed4\u9edc\u9ede\u9edd\u9ee0\u9ee5\u9ee8\u9eef"],["ea80","\u9ef4\u9ef6\u9ef7\u9ef9\u9efb\u9efc\u9efd\u9f07\u9f08\u76b7\u9f15\u9f21\u9f2c\u9f3e\u9f4a\u9f52\u9f54\u9f63\u9f5f\u9f60\u9f61\u9f66\u9f67\u9f6c\u9f6a\u9f77\u9f72\u9f76\u9f95\u9f9c\u9fa0\u582f\u69c7\u9059\u7464\u51dc\u7199"],["ed40","\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f"],["ed80","\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1"],["ee40","\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559"],["ee80","\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"],["eeef","\u2170",9,"\uffe2\uffe4\uff07\uff02"],["f040","\ue000",62],["f080","\ue03f",124],["f140","\ue0bc",62],["f180","\ue0fb",124],["f240","\ue178",62],["f280","\ue1b7",124],["f340","\ue234",62],["f380","\ue273",124],["f440","\ue2f0",62],["f480","\ue32f",124],["f540","\ue3ac",62],["f580","\ue3eb",124],["f640","\ue468",62],["f680","\ue4a7",124],["f740","\ue524",62],["f780","\ue563",124],["f840","\ue5e0",62],["f880","\ue61f",124],["f940","\ue69c"],["fa40","\u2170",9,"\u2160",9,"\uffe2\uffe4\uff07\uff02\u3231\u2116\u2121\u2235\u7e8a\u891c\u9348\u9288\u84dc\u4fc9\u70bb\u6631\u68c8\u92f9\u66fb\u5f45\u4e28\u4ee1\u4efc\u4f00\u4f03\u4f39\u4f56\u4f92\u4f8a\u4f9a\u4f94\u4fcd\u5040\u5022\u4fff\u501e\u5046\u5070\u5042\u5094\u50f4\u50d8\u514a"],["fa80","\u5164\u519d\u51be\u51ec\u5215\u529c\u52a6\u52c0\u52db\u5300\u5307\u5324\u5372\u5393\u53b2\u53dd\ufa0e\u549c\u548a\u54a9\u54ff\u5586\u5759\u5765\u57ac\u57c8\u57c7\ufa0f\ufa10\u589e\u58b2\u590b\u5953\u595b\u595d\u5963\u59a4\u59ba\u5b56\u5bc0\u752f\u5bd8\u5bec\u5c1e\u5ca6\u5cba\u5cf5\u5d27\u5d53\ufa11\u5d42\u5d6d\u5db8\u5db9\u5dd0\u5f21\u5f34\u5f67\u5fb7\u5fde\u605d\u6085\u608a\u60de\u60d5\u6120\u60f2\u6111\u6137\u6130\u6198\u6213\u62a6\u63f5\u6460\u649d\u64ce\u654e\u6600\u6615\u663b\u6609\u662e\u661e\u6624\u6665\u6657\u6659\ufa12\u6673\u6699\u66a0\u66b2\u66bf\u66fa\u670e\uf929\u6766\u67bb\u6852\u67c0\u6801\u6844\u68cf\ufa13\u6968\ufa14\u6998\u69e2\u6a30\u6a6b\u6a46\u6a73\u6a7e\u6ae2\u6ae4\u6bd6\u6c3f\u6c5c\u6c86\u6c6f\u6cda\u6d04\u6d87\u6d6f"],["fb40","\u6d96\u6dac\u6dcf\u6df8\u6df2\u6dfc\u6e39\u6e5c\u6e27\u6e3c\u6ebf\u6f88\u6fb5\u6ff5\u7005\u7007\u7028\u7085\u70ab\u710f\u7104\u715c\u7146\u7147\ufa15\u71c1\u71fe\u72b1\u72be\u7324\ufa16\u7377\u73bd\u73c9\u73d6\u73e3\u73d2\u7407\u73f5\u7426\u742a\u7429\u742e\u7462\u7489\u749f\u7501\u756f\u7682\u769c\u769e\u769b\u76a6\ufa17\u7746\u52af\u7821\u784e\u7864\u787a\u7930\ufa18\ufa19"],["fb80","\ufa1a\u7994\ufa1b\u799b\u7ad1\u7ae7\ufa1c\u7aeb\u7b9e\ufa1d\u7d48\u7d5c\u7db7\u7da0\u7dd6\u7e52\u7f47\u7fa1\ufa1e\u8301\u8362\u837f\u83c7\u83f6\u8448\u84b4\u8553\u8559\u856b\ufa1f\u85b0\ufa20\ufa21\u8807\u88f5\u8a12\u8a37\u8a79\u8aa7\u8abe\u8adf\ufa22\u8af6\u8b53\u8b7f\u8cf0\u8cf4\u8d12\u8d76\ufa23\u8ecf\ufa24\ufa25\u9067\u90de\ufa26\u9115\u9127\u91da\u91d7\u91de\u91ed\u91ee\u91e4\u91e5\u9206\u9210\u920a\u923a\u9240\u923c\u924e\u9259\u9251\u9239\u9267\u92a7\u9277\u9278\u92e7\u92d7\u92d9\u92d0\ufa27\u92d5\u92e0\u92d3\u9325\u9321\u92fb\ufa28\u931e\u92ff\u931d\u9302\u9370\u9357\u93a4\u93c6\u93de\u93f8\u9431\u9445\u9448\u9592\uf9dc\ufa29\u969d\u96af\u9733\u973b\u9743\u974d\u974f\u9751\u9755\u9857\u9865\ufa2a\ufa2b\u9927\ufa2c\u999e\u9a4e\u9ad9"],["fc40","\u9adc\u9b75\u9b72\u9b8f\u9bb1\u9bbb\u9c00\u9d70\u9d6b\ufa2d\u9e19\u9ed1"]]},{}],20:[function(require,module,exports){"use strict";var Buffer=require("safer-buffer").Buffer;exports.utf16be=Utf16BECodec;function Utf16BECodec(){}Utf16BECodec.prototype.encoder=Utf16BEEncoder;Utf16BECodec.prototype.decoder=Utf16BEDecoder;Utf16BECodec.prototype.bomAware=true;function Utf16BEEncoder(){}Utf16BEEncoder.prototype.write=function(str){var buf=Buffer.from(str,"ucs2");for(var i=0;i=2){if(buf[0]==254&&buf[1]==255)enc="utf-16be";else if(buf[0]==255&&buf[1]==254)enc="utf-16le";else{var asciiCharsLE=0,asciiCharsBE=0,_len=Math.min(buf.length-buf.length%2,64);for(var i=0;i<_len;i+=2){if(buf[i]===0&&buf[i+1]!==0)asciiCharsBE++;if(buf[i]!==0&&buf[i+1]===0)asciiCharsLE++}if(asciiCharsBE>asciiCharsLE)enc="utf-16be";else if(asciiCharsBE0)res=this.iconv.decode(Buffer.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return res};exports.utf7imap=Utf7IMAPCodec;function Utf7IMAPCodec(codecOptions,iconv){this.iconv=iconv}Utf7IMAPCodec.prototype.encoder=Utf7IMAPEncoder;Utf7IMAPCodec.prototype.decoder=Utf7IMAPDecoder;Utf7IMAPCodec.prototype.bomAware=true;function Utf7IMAPEncoder(options,codec){this.iconv=codec.iconv;this.inBase64=false;this.base64Accum=Buffer.alloc(6);this.base64AccumIdx=0}Utf7IMAPEncoder.prototype.write=function(str){var inBase64=this.inBase64,base64Accum=this.base64Accum,base64AccumIdx=this.base64AccumIdx,buf=Buffer.alloc(str.length*5+10),bufIdx=0;for(var i=0;i0){bufIdx+=buf.write(base64Accum.slice(0,base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),bufIdx);base64AccumIdx=0}buf[bufIdx++]=minusChar;inBase64=false}if(!inBase64){buf[bufIdx++]=uChar;if(uChar===andChar)buf[bufIdx++]=minusChar}}else{if(!inBase64){buf[bufIdx++]=andChar;inBase64=true}if(inBase64){base64Accum[base64AccumIdx++]=uChar>>8;base64Accum[base64AccumIdx++]=uChar&255;if(base64AccumIdx==base64Accum.length){bufIdx+=buf.write(base64Accum.toString("base64").replace(/\//g,","),bufIdx);base64AccumIdx=0}}}}this.inBase64=inBase64;this.base64AccumIdx=base64AccumIdx;return buf.slice(0,bufIdx)};Utf7IMAPEncoder.prototype.end=function(){var buf=Buffer.alloc(10),bufIdx=0;if(this.inBase64){if(this.base64AccumIdx>0){bufIdx+=buf.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),bufIdx);this.base64AccumIdx=0}buf[bufIdx++]=minusChar;this.inBase64=false}return buf.slice(0,bufIdx)};function Utf7IMAPDecoder(options,codec){this.iconv=codec.iconv;this.inBase64=false;this.base64Accum=""}var base64IMAPChars=base64Chars.slice();base64IMAPChars[",".charCodeAt(0)]=true;Utf7IMAPDecoder.prototype.write=function(buf){var res="",lastI=0,inBase64=this.inBase64,base64Accum=this.base64Accum;for(var i=0;i0)res=this.iconv.decode(Buffer.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return res}},{"safer-buffer":38}],22:[function(require,module,exports){"use strict";var BOMChar="\ufeff";exports.PrependBOM=PrependBOMWrapper;function PrependBOMWrapper(encoder,options){this.encoder=encoder;this.addBOM=true}PrependBOMWrapper.prototype.write=function(str){if(this.addBOM){str=BOMChar+str;this.addBOM=false}return this.encoder.write(str)};PrependBOMWrapper.prototype.end=function(){return this.encoder.end()};exports.StripBOM=StripBOMWrapper;function StripBOMWrapper(decoder,options){this.decoder=decoder;this.pass=false;this.options=options||{}}StripBOMWrapper.prototype.write=function(buf){var res=this.decoder.write(buf);if(this.pass||!res)return res;if(res[0]===BOMChar){res=res.slice(1);if(typeof this.options.stripBOM==="function")this.options.stripBOM()}this.pass=true;return res};StripBOMWrapper.prototype.end=function(){return this.decoder.end()}},{}],23:[function(require,module,exports){(function(process){(function(){"use strict";var Buffer=require("safer-buffer").Buffer;var bomHandling=require("./bom-handling"),iconv=module.exports;iconv.encodings=null;iconv.defaultCharUnicode="\ufffd";iconv.defaultCharSingleByte="?";iconv.encode=function encode(str,encoding,options){str=""+(str||"");var encoder=iconv.getEncoder(encoding,options);var res=encoder.write(str);var trail=encoder.end();return trail&&trail.length>0?Buffer.concat([res,trail]):res};iconv.decode=function decode(buf,encoding,options){if(typeof buf==="string"){if(!iconv.skipDecodeWarning){console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");iconv.skipDecodeWarning=true}buf=Buffer.from(""+(buf||""),"binary")}var decoder=iconv.getDecoder(encoding,options);var res=decoder.write(buf);var trail=decoder.end();return trail?res+trail:res};iconv.encodingExists=function encodingExists(enc){try{iconv.getCodec(enc);return true}catch(e){return false}};iconv.toEncoding=iconv.encode;iconv.fromEncoding=iconv.decode;iconv._codecDataCache={};iconv.getCodec=function getCodec(encoding){if(!iconv.encodings)iconv.encodings=require("../encodings");var enc=iconv._canonicalizeEncoding(encoding);var codecOptions={};while(true){var codec=iconv._codecDataCache[enc];if(codec)return codec;var codecDef=iconv.encodings[enc];switch(typeof codecDef){case"string":enc=codecDef;break;case"object":for(var key in codecDef)codecOptions[key]=codecDef[key];if(!codecOptions.encodingName)codecOptions.encodingName=enc;enc=codecDef.type;break;case"function":if(!codecOptions.encodingName)codecOptions.encodingName=enc;codec=new codecDef(codecOptions,iconv);iconv._codecDataCache[codecOptions.encodingName]=codec;return codec;default:throw new Error("Encoding not recognized: '"+encoding+"' (searched as: '"+enc+"')")}}};iconv._canonicalizeEncoding=function(encoding){return(""+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};iconv.getEncoder=function getEncoder(encoding,options){var codec=iconv.getCodec(encoding),encoder=new codec.encoder(options,codec);if(codec.bomAware&&options&&options.addBOM)encoder=new bomHandling.PrependBOM(encoder,options);return encoder};iconv.getDecoder=function getDecoder(encoding,options){var codec=iconv.getCodec(encoding),decoder=new codec.decoder(options,codec);if(codec.bomAware&&!(options&&options.stripBOM===false))decoder=new bomHandling.StripBOM(decoder,options);return decoder};var nodeVer=typeof process!=="undefined"&&process.versions&&process.versions.node;if(nodeVer){var nodeVerArr=nodeVer.split(".").map(Number);if(nodeVerArr[0]>0||nodeVerArr[1]>=10){require("./streams")(iconv)}require("./extend-node")(iconv)}if("\u0100"!="\u0100"){console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.")}}).call(this)}).call(this,require("_process"))},{"../encodings":7,"./bom-handling":22,"./extend-node":43,"./streams":43,_process:47,"safer-buffer":38}],24:[function(require,module,exports){(function(__filename){(function(){(function(){var fabs=Math.abs,floor=Math.floor,sin=Math.sin,cos=Math.cos,tan=Math.tan,asin=Math.asin,acos=Math.acos,atan=Math.atan,atan2=Math.atan2,sqrt=Math.sqrt,pow=Math.pow,exp=Math.exp,log=Math.log,hypot=Math.hypot,sinh=Math.sinh,cosh=Math.cosh,MIN=Math.min,MAX=Math.max;var HUGE_VAL=Infinity,M_PI=Math.PI;var RAD_TO_DEG=57.29577951308232,DEG_TO_RAD=.017453292519943295;var SRS_WGS84_SEMIMAJOR=6378137;var SRS_WGS84_ESQUARED=.0066943799901413165;var M_FORTPI=M_PI/4,M_HALFPI=M_PI/2,M_PI_HALFPI=1.5*M_PI,M_TWOPI=2*M_PI,M_TWO_D_PI=2/M_PI,M_TWOPI_HALFPI=2.5*M_PI;var PJD_UNKNOWN=0,PJD_3PARAM=1,PJD_7PARAM=2,PJD_GRIDSHIFT=3,PJD_WGS84=4;var PJD_ERR_GEOCENTRIC=-45,PJD_ERR_AXIS=-47,PJD_ERR_GRID_AREA=-48,PJD_ERR_CATALOG=-49;var EPS10=1e-10;var PJ_LOG_NONE=0,PJ_LOG_ERROR=1,PJ_LOG_DEBUG_MAJOR=2,PJ_LOG_DEBUG_MINOR=3;var ctx={last_errno:0,debug_level:PJ_LOG_NONE,logger:null};var pj_err_list=["no arguments in initialization list","no options found in 'init' file","invalid init= string","projection not named","unknown projection id","effective eccentricity = 1","unknown unit conversion id","invalid boolean param argument","unknown elliptical parameter name","reciprocal flattening (1/f) = 0","|radius reference latitude| > 90","squared eccentricity < 0","major axis or radius = 0 or not given","latitude or longitude exceeded limits","invalid x or y","improperly formed DMS value","non-convergent inverse meridional dist","non-convergent inverse phi2","acos/asin: |arg| >1+1e-14","tolerance condition error","conic lat_1 = -lat_2","lat_1 >= 90","lat_1 = 0","lat_ts >= 90","no distance between control points","projection not selected to be rotated","W <= 0 or M <= 0","lsat not in 1-5 range","path not in range","h <= 0","k <= 0","lat_0 = 0 or 90 or alpha = 90","lat_1=lat_2 or lat_1=0 or lat_2=90","elliptical usage required","invalid UTM zone number","arg(s) out of range for Tcheby eval","failed to find projection to be rotated","failed to load datum shift file","both n & m must be spec'd and > 0","n <= 0, n > 1 or not specified","lat_1 or lat_2 not specified","|lat_1| == |lat_2|","lat_0 is pi/2 from mean lat","unparseable coordinate system definition","geocentric transformation missing z or ellps","unknown prime meridian conversion id","illegal axis orientation combination","point not within available datum shift grids","invalid sweep axis, choose x or y"];function check_fatal_error(){var code=ctx.last_errno;if(!code)return;if(code>0||!is_transient_error(code)){e_error(code)}else{}}function is_transient_error(code){return transient_error.indexOf(code)>-1}var transient_error=[-14,-15,-17,-18,-19,-20,-27,-48];function pj_ctx_set_errno(code){ctx.last_errno=code}function f_error(){pj_ctx_set_errno(-20)}function i_error(){pj_ctx_set_errno(-20)}function error_msg(code){return pj_err_list[~code]||"unknown error"}function error(code){e_error(code)}function e_error(code){pj_ctx_set_errno(code);fatal()}function fatal(msg,o){if(!o)o={};if(!o.code)o.code=ctx.last_errno||0;if(!msg)msg=error_msg(o.code);ctx.last_errno=0;throw new ProjError(msg,o)}function ProjError(msg,o){var err=new Error(msg);err.name="ProjError";Object.keys(o).forEach(function(k){err[k]=o[k]});return err}function dmstor(str){return dmstod(str)*DEG_TO_RAD}function dmstod(str){var match=/(-?[0-9.]+)d?([0-9.]*)'?([0-9.]*)"?([nsew]?)$/i.exec(str);var d=NaN;var deg,min,sec;if(match){deg=match[1]||"0";min=match[2]||"0";sec=match[3]||"0";d=+deg+ +min/60+ +sec/3600;if(/[ws]/i.test(match[4])){d=-d}}if(isNaN(d)){e_error(-16)}return d}function pj_atof(str){return pj_strtod(str)}function pj_strtod(str){return parseFloat(str)}function pj_param(params,code){var type=code[0],name=code.substr(1),obj=params[name],isset=obj!==void 0,val,param;if(type=="t"){val=isset}else if(isset){param=obj.param;obj.used=true;if(type=="i"){val=parseInt(param)}else if(type=="d"){val=pj_atof(param)}else if(type=="r"){val=dmstor(param)}else if(type=="s"){val=String(param)}else if(type=="b"){if(param=="T"||param=="t"||param===true){val=true}else if(param=="F"||param=="f"){val=false}else{pj_ctx_set_errno(-8);val=false}}}else{val={i:0,b:false,d:0,r:0,s:""}[type]}if(val===void 0){fatal("invalid request to pj_param, fatal")}return val}function pj_get_params(args){var rxp=/\+([a-z][a-z0-9_]*(?:=[^\s]*)?)/gi;var params={};var match;while(match=rxp.exec(args)){pj_mkparam(params,match[1])}return params}function pj_mkparam(params,token){var parts=token.split("=");var name,val;if(parts.length==1){name=token;val=true}else{name=parts[0];val=token.substr(parts[0].length+1)}params[name]={used:false,param:val}}var pj_list={};function pj_add(func,key,name,desc){pj_list[key]={init:func,name:name,description:desc}}function pj_is_latlong(P){return!P||P.is_latlong}function pj_is_geocent(P){return!P||P.is_geocent}function get_geod_defn(P){var got_datum=false,defn="";if("datum"in P.params){got_datum=true;defn+=get_param(P,"datum")}else if("ellps"in P.params){defn+=get_param(P,"ellps")}else if("a"in P.params){defn+=get_param(P,"a");if("b"in P.params){defn+=get_param(P,"b")}else if("es"in P.params){defn+=get_param(P,"es")}else if("f"in P.params){defn+=get_param(P,"f")}else{defn+=" +es="+P.es}}else{error(-13)}if(!got_datum){defn+=get_param(P,"towgs84");defn+=get_param(P,"nadgrids")}defn+=get_param(P,"R");defn+=get_param(P,"R_A");defn+=get_param(P,"R_V");defn+=get_param(P,"R_a");defn+=get_param(P,"R_lat_a");defn+=get_param(P,"R_lat_g");defn+=get_param(P,"pm");return defn}function get_proj_defn(P){var skip="datum,ellps,a,b,es,rf,f,towgs84,nadgrids,R,R_A,R_V,R_a,R_lat_a,R_lat_g,pm,init,no_defs".split(",");var defn="";Object.keys(P.params).forEach(function(name){if(skip.indexOf(name)==-1){defn+=get_param(P,name)}});defn+=get_geod_defn(P);return defn.trim()}function get_param(P,name){var param="";if(name in P.params){param=" +"+name;if(P.params[name].param!==true){param+="="+pj_param(P.params,"s"+name)}}return param}var pj_datums=[["WGS84","towgs84=0,0,0","WGS84","WGS_1984"],["GGRS87","towgs84=-199.87,74.79,246.62","GRS80","Greek_Geodetic_Reference_System_1987"],["NAD83","towgs84=0,0,0","GRS80","North_American_Datum_1983"],["NAD27","nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat","clrk66","North_American_Datum_1927"],["potsdam","towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7","bessel","Potsdam Rauenberg 1950 DHDN"],["carthage","towgs84=-263.0,6.0,431.0","clrk80ign","Carthage 1934 Tunisia"],["hermannskogel","towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232","bessel","Hermannskogel"],["ire65","towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15","mod_airy","Ireland 1965"],["nzgd49","towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993","intl","New Zealand Geodetic Datum 1949"],["OSGB36","towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894","airy","OSGB 1936"],[null,null,null,null]];var pj_prime_meridians=[["greenwich","0dE"],["lisbon","9d07'54.862\"W"],["paris","2d20'14.025\"E"],["bogota","74d04'51.3\"W"],["madrid","3d41'16.58\"W"],["rome","12d27'8.4\"E"],["bern","7d26'22.5\"E"],["jakarta","106d48'27.79\"E"],["ferro","17d40'W"],["brussels","4d22'4.71\"E"],["stockholm","18d3'29.8\"E"],["athens","23d42'58.815\"E"],["oslo","10d43'22.5\"E"],[null,null]];function find_prime_meridian(id){var defn=pj_prime_meridians.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],definition:defn[1]}:null}function find_datum(id){var defn=pj_datums.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],defn:defn[1],ellipse_id:defn[2],name:defn[3]}:null}function pj_datum_set(P){var SEC_TO_RAD=484813681109536e-20;var params=P.datum_params=[0,0,0,0,0,0,0];var name,datum,nadgrids,catalog,towgs84;P.datum_type=PJD_UNKNOWN;if(name=pj_param(P.params,"sdatum")){datum=find_datum(name);if(!datum){error(-9)}if(datum.ellipse_id){pj_mkparam(P.params,"ellps="+datum.ellipse_id)}if(datum.defn){pj_mkparam(P.params,datum.defn)}}nadgrids=pj_param(P.params,"snadgrids");if(nadgrids&&nadgrids!="@null"){fatal("+nadgrids is not implemented")}if(catalog=pj_param(P.params,"scatalog")){fatal("+catalog is not implemented")}if(towgs84=pj_param(P.params,"stowgs84")){towgs84.split(",").forEach(function(s,i){params[i]=pj_atof(s)||0});if(params[3]!=0||params[4]!=0||params[5]!=0||params[6]!=0){P.datum_type=PJD_7PARAM;params[3]*=SEC_TO_RAD;params[4]*=SEC_TO_RAD;params[5]*=SEC_TO_RAD;params[6]=params[6]/1e6+1}else{P.datum_type=PJD_3PARAM}}}var pj_ellps=[["MERIT","a=6378137.0","rf=298.257","MERIT 1983"],["SGS85","a=6378136.0","rf=298.257","Soviet Geodetic System 85"],["GRS80","a=6378137.0","rf=298.257222101","GRS 1980(IUGG, 1980)"],["IAU76","a=6378140.0","rf=298.257","IAU 1976"],["airy","a=6377563.396","b=6356256.910","Airy 1830"],["APL4.9","a=6378137.0","rf=298.25","Appl. Physics. 1965"],["NWL9D","a=6378145.0","rf=298.25","Naval Weapons Lab., 1965"],["mod_airy","a=6377340.189","b=6356034.446","Modified Airy"],["andrae","a=6377104.43","rf=300.0","Andrae 1876 (Den., Iclnd.)"],["aust_SA","a=6378160.0","rf=298.25","Australian Natl & S. Amer. 1969"],["GRS67","a=6378160.0","rf=298.2471674270","GRS 67(IUGG 1967)"],["bessel","a=6377397.155","rf=299.1528128","Bessel 1841"],["bess_nam","a=6377483.865","rf=299.1528128","Bessel 1841 (Namibia)"],["clrk66","a=6378206.4","b=6356583.8","Clarke 1866"],["clrk80","a=6378249.145","rf=293.4663","Clarke 1880 mod."],["clrk80ign","a=6378249.2","rf=293.4660212936269","Clarke 1880 (IGN)."],["CPM","a=6375738.7","rf=334.29","Comm. des Poids et Mesures 1799"],["delmbr","a=6376428","rf=311.5","Delambre 1810 (Belgium)"],["engelis","a=6378136.05","rf=298.2566","Engelis 1985"],["evrst30","a=6377276.345","rf=300.8017","Everest 1830"],["evrst48","a=6377304.063","rf=300.8017","Everest 1948"],["evrst56","a=6377301.243","rf=300.8017","Everest 1956"],["evrst69","a=6377295.664","rf=300.8017","Everest 1969"],["evrstSS","a=6377298.556","rf=300.8017","Everest (Sabah & Sarawak)"],["fschr60","a=6378166","rf=298.3","Fischer (Mercury Datum) 1960"],["fschr60m","a=6378155","rf=298.3","Modified Fischer 1960"],["fschr68","a=6378150","rf=298.3","Fischer 1968"],["helmert","a=6378200","rf=298.3","Helmert 1906"],["hough","a=6378270.0","rf=297","Hough"],["intl","a=6378388.0","rf=297","International 1909 (Hayford)"],["krass","a=6378245.0","rf=298.3","Krasovsky 1940"],["kaula","a=6378163","rf=298.24","Kaula 1961"],["lerch","a=6378139","rf=298.257","Lerch 1979"],["mprts","a=6397300","rf=191","Maupertius 1738"],["new_intl","a=6378157.5","b=6356772.2","New International 1967"],["plessis","a=6376523","b=6355863","Plessis 1817 (France)"],["SEasia","a=6378155.0","b=6356773.3205","Southeast Asia"],["walbeck","a=6376896.0","b=6355834.8467","Walbeck"],["WGS60","a=6378165.0","rf=298.3","WGS 60"],["WGS66","a=6378145.0","rf=298.25","WGS 66"],["WGS72","a=6378135.0","rf=298.26","WGS 72"],["WGS84","a=6378137.0","rf=298.257223563","WGS 84"],["sphere","a=6370997.0","b=6370997.0","Normal Sphere (r=6370997)"],[null,null,null,null]];function find_ellps(id){var defn=pj_ellps.reduce(function(memo,arr){return arr[0]===id?arr:memo},null);return defn?{id:defn[0],major:defn[1],ell:defn[2],name:defn[3]}:null}function pj_ell_set(P){var SIXTH=.16666666666666666,RA4=.04722222222222222,RA6=.022156084656084655,RV4=.06944444444444445,RV6=.04243827160493827;var params=P.params;var a=0;var es=0;var name,ellps,tmp,b,i;if(pj_param(params,"tR")){a=pj_param(params,"dR")}else{if(name=pj_param(params,"sellps")){ellps=find_ellps(name);if(!ellps){error(-9)}pj_mkparam(params,ellps.major);pj_mkparam(params,ellps.ell)}a=pj_param(params,"da");if(pj_param(params,"tes")){es=pj_param(params,"des")}else if(pj_param(params,"te")){tmp=pj_param(params,"de");es=tmp*tmp}else if(pj_param(params,"trf")){tmp=pj_param(params,"drf");if(!tmp){error(-10)}tmp=1/tmp;es=tmp*(2-tmp)}else if(pj_param(params,"tf")){tmp=pj_param(params,"df");es=tmp*(2-tmp)}else if(pj_param(params,"tb")){b=pj_param(params,"db");es=1-b*b/(a*a)}if(!b){b=a*sqrt(1-es)}if(pj_param(params,"bR_A")){a*=1-es*(SIXTH+es*(RA4+es*RA6));es=0}else if(pj_param(params,"bR_V")){a*=1-es*(SIXTH+es*(RV4+es*RV6))}else if(pj_param(params,"bR_a")){a=.5*(a+b);es=0}else if(pj_param(params,"bR_g")){a=sqrt(a*b);es=0}else if(pj_param(params,"bR_h")){if(a+b===0){error(-20)}a=2*a*b/(a+b);es=0}else if(i=pj_param(params,"tR_lat_a")||pj_param(params,"tR_lat_g")){tmp=sin(pj_param(params,i?"rR_lat_a":"rR_lat_g"));if(fabs(tmp)>M_HALFPI){error(-11)}tmp=1-es*tmp*tmp;a*=i?.5*(1-es+tmp)/(tmp*sqrt(tmp)):sqrt(1-es)/tmp;es=0}}if(es<0)error(-12);if(a<=0)error(-13);P.es=es;P.a=a}var pj_units=[["km","1000","Kilometer"],["m","1","Meter"],["dm","1/10","Decimeter"],["cm","1/100","Centimeter"],["mm","1/1000","Millimeter"],["kmi","1852.0","International Nautical Mile"],["in","0.0254","International Inch"],["ft","0.3048","International Foot"],["yd","0.9144","International Yard"],["mi","1609.344","International Statute Mile"],["fath","1.8288","International Fathom"],["ch","20.1168","International Chain"],["link","0.201168","International Link"],["us-in","1/39.37","U.S. Surveyor's Inch"],["us-ft","0.304800609601219","U.S. Surveyor's Foot"],["us-yd","0.914401828803658","U.S. Surveyor's Yard"],["us-ch","20.11684023368047","U.S. Surveyor's Chain"],["us-mi","1609.347218694437","U.S. Surveyor's Statute Mile"],["ind-yd","0.91439523","Indian Yard"],["ind-ft","0.30479841","Indian Foot"],["ind-ch","20.11669506","Indian Chain"],[null,null,null]];function find_units_by_value(val){return pj_units.reduce(function(memo,defn){if(val==+defn[1]){memo=find_units(defn[0])}return memo},null)}function find_units(id){var arr=pj_units.reduce(function(memo,defn){return id===defn[0]?defn:memo},null);return arr?{id:arr[0],to_meter:arr[1],name:arr[2]}:null}var initcache={};function pj_search_initcache(key){return initcache[key.toLowerCase()]||null}function pj_insert_initcache(key,defn){initcache[key.toLowerCase()]=defn}var libcache={};function mproj_insert_libcache(libId,contents){libcache[libId]=contents}function mproj_search_libcache(libId){return libcache[libId]||null}function mproj_read_lib_anycase(libFile){var fs=require("fs"),path=require("path"),dir=path.join(path.dirname(__filename),"../nad"),pathUC=path.join(dir,libFile.toUpperCase()),pathLC=path.join(dir,libFile.toLowerCase()),contents;if(fs.existsSync(pathUC)){contents=fs.readFileSync(pathUC,"utf8")}else if(fs.existsSync(pathLC)){contents=fs.readFileSync(pathLC,"utf8")}else{fatal("unable to read from 'init' file named "+libFile)}return contents}function pj_read_init_opts(initStr){var parts=initStr.split(":"),libId=parts[0],crsId=parts[1],libStr,o;if(!crsId||!libId){error(-3)}libId=libId.toLowerCase();libStr=mproj_search_libcache(libId);if(!libStr){libStr=mproj_read_lib_anycase(libId);libcache[libId]=libStr}return libStr?pj_find_opts(libStr,crsId):null}function pj_find_opts(contents,id){var opts="",comment="",idx,idx2;idx=contents.indexOf("<"+id+">");if(idx>-1){idx2=contents.lastIndexOf("#",idx);if(idx2>-1){comment=contents.substring(idx2+1,idx).trim();if(/\n/.test(comment)){comment=""}}opts=contents.substr(idx+id.length+2);opts=opts.substr(0,opts.indexOf("<"));opts=opts.replace(/#.*/g,"");opts=opts.replace(/[\s]+/g," ");opts=opts.replace(/\+title=[^+]*[^ +]/g,function(match){return match.replace(/ /g,"\t")});opts=" "+opts;opts=opts.replace(/ (?=[a-z])/gi," +");opts=opts.replace(/\t/g," ").trim()}return opts?{opts:opts,comment:comment}:null}function pj_init(args){var params=pj_get_params(args);var P={params:params,is_latlong:false,is_geocent:false,is_long_wrap_set:false,long_wrap_center:0,axis:"enu",gridlist:null,gridlist_count:0,vgridlist_geoid:null,vgridlist_geoid_count:0};var name,defn;if(!Object.keys(params).length){error(-1)}if(pj_param(params,"tinit")){get_init(params,pj_param(params,"sinit"))}name=pj_param(params,"sproj");if(!name){error(-4)}defn=pj_list[name];if(!defn){error(-5)}if(!pj_param(params,"bno_defs")){get_defaults(P.params,name)}pj_datum_set(P);pj_ell_set(P);P.a_orig=P.a;P.es_orig=P.es;P.e=sqrt(P.es);P.ra=1/P.a;P.one_es=1-P.es;if(!P.one_es){error(-6)}P.rone_es=1/P.one_es;if(is_wgs84(P)){P.datum_type=PJD_WGS84}P.geoc=!!P.es&&pj_param(params,"bgeoc");P.over=pj_param(params,"bover");P.has_geoid_vgrids=pj_param(params,"tgeoidgrids");if(P.has_geoid_vgrids){pj_param(params,"sgeoidgrids")}P.is_long_wrap_set=pj_param(params,"tlon_wrap");if(P.is_long_wrap_set){P.long_wrap_center=pj_param(params,"rlon_wrap");if(fabs(P.long_wrap_center)<10*M_TWOPI===false){error(-14)}}if(pj_param(params,"saxis")){init_axis(P)}P.lam0=pj_param(params,"rlon_0");P.phi0=pj_param(params,"rlat_0");P.x0=pj_param(params,"dx_0");P.y0=pj_param(params,"dy_0");if(pj_param(params,"tk_0")){P.k0=pj_param(params,"dk_0")}else if(pj_param(params,"tk")){P.k0=pj_param(params,"dk")}else{P.k0=1}if(P.k0<=0){error(-31)}init_units(P);init_prime_meridian(P);defn.init(P);return P}function get_defaults(params,name){get_opt(params,"+ellps=WGS84")}function get_init(params,initStr){var defn=pj_search_initcache(initStr);if(!defn){defn=pj_read_init_opts(initStr);pj_insert_initcache(initStr,defn)}if(!defn){error(-2)}get_opt(params,defn.opts)}function get_opt(params,args){var newParams=pj_get_params(args);var geoIsSet=["datum","ellps","a","b","rf","f"].reduce(function(memo,key){return memo||key in params},false);Object.keys(newParams).forEach(function(key){if(key in params)return;if(key=="ellps"&&geoIsSet)return;params[key]=newParams[key]})}function init_prime_meridian(P){var params=P.params,name,pm,offs;name=pj_param(params,"spm");if(name){pm=find_prime_meridian(name);offs=dmstor(pm?pm.definition:name);if(isNaN(offs)){error(-46)}P.from_greenwich=offs}else{P.from_greenwich=0}}function init_units(P){var params=P.params;var name,s,units;if(name=pj_param(params,"sunits")){units=find_units(name);if(!units){error(-7)}s=units.to_meter}if(s||(s=pj_param(params,"sto_meter"))){P.to_meter=parse_to_meter(s);P.fr_meter=1/P.to_meter}else{P.to_meter=P.fr_meter=1}s=null;if(name=pj_param(params,"svunits")){units=find_units(name);if(!units){error(-7)}s=units.to_meter}if(s||pj_param(params,"svto_meter")){P.vto_meter=parse_to_meter(s);P.vfr_meter=1/P.vto_meter}else{P.vto_meter=P.to_meter;P.vfr_meter=P.fr_meter}}function parse_to_meter(s){var parts=s.split("/");var val=pj_strtod(parts[0]);if(parts.length>1){val/=pj_strtod(parts[1])}return val}function init_axis(P){var axis_legal="ewnsud";var axis=pj_param(P.params,"saxis");if(axis.length!=3){error(PJD_ERR_AXIS)}if(axis_legal.indexOf(axis[0])==-1||axis_legal.indexOf(axis[1])==-1||axis_legal.indexOf(axis[2])==-1){error(PJD_ERR_AXIS)}P.axis=axis}function is_wgs84(P){return P.datum_type==PJD_3PARAM&&P.datum_params[0]==P.datum_params[1]==P.datum_params[2]===0&&P.a==6378137&&Math.abs(P.es-.00669437999)<5e-11}var GEOCENT_NO_ERROR=0,GEOCENT_LAT_ERROR=1,GEOCENT_LON_ERROR=2,GEOCENT_A_ERROR=4,GEOCENT_B_ERROR=8,GEOCENT_A_LESS_B_ERROR=16;function pj_Set_Geocentric_Parameters(a,b){var err=GEOCENT_NO_ERROR,a2=a*a,b2=b*b;if(a<=0)err|=GEOCENT_A_ERROR;if(b<=0)err|=GEOCENT_B_ERROR;if(a-1.001*M_HALFPI){lat=-M_HALFPI}else if(lat>M_HALFPI&&lat<1.001*M_HALFPI){lat=M_HALFPI}else if(lat<-M_HALFPI||lat>M_HALFPI){err|=GEOCENT_LAT_ERROR}if(!err){if(lng>M_PI)lng-=2*M_PI;sinlat=sin(lat);coslat=cos(lat);sin2lat=sinlat*sinlat;rn=gi.a/sqrt(1-gi.e2*sin2lat);xx[i]=(rn+height)*coslat*cos(lng);yy[i]=(rn+height)*coslat*sin(lng);zz[i]=(rn*(1-gi.e2)+height)*sinlat}return err}function pj_Convert_Geocentric_To_Geodetic(gi,i,xx,yy,zz){var EPS=1e-12,EPS2=EPS*EPS,MAXITER=30,x=xx[i],y=yy[i],z=zz[i],lat,lng,height,p,rr,ct,st,rx,rn,rk,cphi0,sphi0,cphi,sphi,sdphi,iter;p=sqrt(x*x+y*y);rr=sqrt(x*x+y*y+z*z);if(p/gi.aEPS2&&iter2,xx=[p[0]],yy=[p[1]],zz=[z?p[2]:0];if(srcdefn.is_latlong){xx[0]*=DEG_TO_RAD;yy[0]*=DEG_TO_RAD}ctx.last_errno=0;pj_transform(srcdefn,dstdefn,xx,yy,zz);if(ctx.last_errno||xx[0]==HUGE_VAL){fatal(null,{point:p})}if(dstdefn.is_latlong){xx[0]*=RAD_TO_DEG;yy[0]*=RAD_TO_DEG}p[0]=xx[0];p[1]=yy[0];if(z)p[2]=zz[0]}function pj_transform(srcdefn,dstdefn,xx,yy,zz){var point_count=xx.length;var lp={};var xy={};var err,i,tmp;if(srcdefn.axis!="enu"){pj_adjust_axis(srcdefn.axis,false,xx,yy,zz)}if(srcdefn.vto_meter!=1&&zz){for(i=0;idstdefn.long_wrap_center+M_PI){xx[i]-=M_TWOPI}}}if(dstdefn.vto_meter!=1&&zz){for(i=0;i5e-11){return false}if(srcdefn.datum_type==PJD_3PARAM){return srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]}if(srcdefn.datum_type==PJD_7PARAM){return srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]&&srcdefn.datum_params[3]==dstdefn.datum_params[3]&&srcdefn.datum_params[4]==dstdefn.datum_params[4]&&srcdefn.datum_params[5]==dstdefn.datum_params[5]&&srcdefn.datum_params[6]==dstdefn.datum_params[6]}if(srcdefn.datum_type==PJD_GRIDSHIFT){return pj_param(srcdefn.params,"snadgrids")==pj_param(dstdefn.params,"snadgrids")}return true}function pj_geocentric_to_wgs84(defn,xx,yy,zz){var point_count=xx.length,pp=defn.datum_params,Dx_BF=pp[0],Dy_BF=pp[1],Dz_BF=pp[2],x,y,z,Rx_BF,Ry_BF,Rz_BF,M_BF,i;if(defn.datum_type==PJD_3PARAM){for(i=0;iSPI){lon+=ONEPI;lon-=TWOPI*floor(lon/TWOPI);lon-=ONEPI}return lon}function pj_fwd_deg(lp,P){var lp2={lam:lp.lam*DEG_TO_RAD,phi:lp.phi*DEG_TO_RAD};return pj_fwd(lp2,P)}function pj_fwd(lp,P){var xy={x:0,y:0};var EPS=1e-12;var t=fabs(lp.phi)-M_HALFPI;if(!(t<=EPS&&fabs(lp.lam)<=10)){pj_ctx_set_errno(-14)}else{ctx.last_errno=0;if(fabs(t)<=EPS){lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else if(P.geoc){lp.phi=atan(P.rone_es*tan(lp.phi))}lp.lam-=P.lam0;if(!P.over){lp.lam=adjlon(lp.lam)}if(P.fwd){P.fwd(lp,xy);xy.x=P.fr_meter*(P.a*xy.x+P.x0);xy.y=P.fr_meter*(P.a*xy.y+P.y0)}else{xy.x=xy.y=HUGE_VAL}}if(ctx.last_errno||!isFinite(xy.x)||!isFinite(xy.y)){xy.x=xy.y=HUGE_VAL}return xy}function pj_inv_deg(xy,P){var lp=pj_inv(xy,P);return{lam:lp.lam*RAD_TO_DEG,phi:lp.phi*RAD_TO_DEG}}function pj_inv(xy,P){var EPS=1e-12;var lp={lam:0,phi:0};if(!(xy.xEPS){lp.phi=atan(P.one_es*tan(lp.phi))}}else{lp.lam=lp.phi=HUGE_VAL}}if(ctx.last_errno||!isFinite(lp.lam)||!isFinite(lp.phi)){lp.lam=lp.phi=HUGE_VAL}return lp}function get_rtodms(decimals,fixedWidth,pos,neg){var dtodms=get_dtodms(decimals,fixedWidth,pos,neg);return function(r){return dtodms(r*RAD_TO_DEG)}}function get_dtodms(decimals,fixedWidth,pos,neg){var RES,CONV,i;if(decimals<0||decimals>=9){decimals=3}RES=1;for(i=0;i2){out.z=array[2]}if(array.length>3){out.m=array[3]}return out};function get_proj4js_transform(P1,P2){return function(p){var useArray=Array.isArray(p);p=useArray?p.concat():[p.x,p.y];pj_transform_point(P1,P2,p);if(!useArray){p={x:p[0],y:p[1]}}return p}}function get_fallback_wkt_maker(P){return make_fallback_wkt}function make_fallback_wkt(P){var projName=P.proj in pj_list?pj_list[P.proj].name:"";var proj4=get_proj_defn(P);var geogcs=wkt_make_geogcs(P);var name=projName?geogcs.NAME+" / "+projName:"unnamed";return{PROJCS:{NAME:name,GEOGCS:geogcs,PROJECTION:"custom_proj4",PARAMETER:[],UNIT:wkt_make_unit(P),EXTENSION:["PROJ4",proj4+" +wktext"]}}}function get_fallback_wkt_parser(projcs){var proj4=get_proj4_from_extension(projcs);return proj4?get_proj4_from_extension:null}function get_proj4_from_extension(projcs){var ext=projcs.EXTENSION;if(ext&&ext[0]=="PROJ4"){return(ext[1]||"").replace(" +wktext","")}return null}var wkt_makers=[];var wkt_parsers=[];function wkt_is_object(val){return!!val&&typeof val=="object"&&!Array.isArray(val)}function wkt_is_string(val){return typeof val=="string"}function find_wkt_parser(projcs){var parser=find_wkt_conversion_function(projcs,wkt_parsers);if(!parser){parser=get_fallback_wkt_parser(projcs)}if(!parser){wkt_error("unsupported WKT definition: "+get_wkt_label(projcs))}return parser}function find_wkt_maker(P){var maker=find_wkt_conversion_function(P,wkt_makers);if(!maker){maker=get_fallback_wkt_maker(P)}if(!maker){wkt_error("unsupported projection: "+get_proj_label(P))}return maker}function find_wkt_conversion_function(o,arr){var is_match;for(var i=0;i0){arr=names.split(",")}return arr}function wkt_error(msg){throw new Error(msg)}function wkt_warn(msg){console.error("[wkt] "+msg)}function wkt_get_unit_defn(projcs){return{to_meter:projcs.UNIT[1]}}function wkt_convert_unit(PROJCS){var defn=wkt_get_unit_defn(PROJCS);var proj4="";if(defn.to_meter!=1){proj4="+to_meter="+defn.to_meter}else if(!WKT_OMIT_DEFAULTS){proj4="+units=m"}return proj4}function wkt_make_unit(P){return["Meter",P.to_meter||1]}function wkt_convert_geogcs(geogcs,opts){var datum=geogcs.DATUM,spheroid=datum.SPHEROID,datumId=wkt_find_datum_id(datum),ellId=wkt_find_ellps_id(spheroid),aux_sphere=opts&&opts.aux_sphere,a=spheroid[1],rf=spheroid[2],str,pm;wkt_check_units(geogcs.UNIT,"degree");if(aux_sphere){str="+a="+spheroid[1]}else if(datumId){str="+datum="+datumId}else if(ellId){str="+ellps="+ellId}else{str="+a="+a;if(rf>0){str+=" +rf="+rf}}if(datum.TOWGS84&&!aux_sphere&&!datumId){str+=" +towgs84="+datum.TOWGS84.join(",")}pm=geogcs.PRIMEM?geogcs.PRIMEM[1]:0;if(pm>0||pm<0){str+=" +pm="+pm}return str}function wkt_find_ellps_id(spheroid){var aliases={international1924:"intl"};var key=wkt_harmonize_geo_name(spheroid[0]);var defn;if(key in aliases){return aliases[key]}if(/^grs1980/.test(key)){return"GRS80"}if(key=="sphere"){return null}for(var i=0;i-1}}function get_simple_maker_test(projId){return function(P){var id=get_proj_id(P);return id&&id==projId}}function add_wkt_parser(is_match,parse){if(typeof is_match!="function")wkt_error("Missing WKT parser test");if(typeof parse!="function")wkt_error("Missing WKT parse function");wkt_parsers.push([is_match,parse])}function add_wkt_maker(is_match,make){if(typeof is_match!="function")wkt_error("Missing WKT maker test");if(typeof make!="function")wkt_error("Missing WKT maker function");wkt_makers.push([is_match,make])}add_wkt_parser(wkt_is_utm,wkt_to_utm);add_wkt_parser(wkt_is_ups,wkt_to_ups);add_wkt_maker(get_simple_maker_test("utm"),wkt_from_utm);add_wkt_maker(get_simple_maker_test("ups"),wkt_from_ups);var WKT_UTM=/UTM_zone_([0-9]{1,2})(N|S)/i;var WKT_UPS=/UPS_(North|South)/i;function wkt_is_utm(projcs){return WKT_UTM.test(wkt_name_to_slug(projcs.NAME))}function wkt_is_ups(projcs){return WKT_UPS.test(wkt_name_to_slug(projcs.NAME))}function wkt_to_utm(projcs){return wkt_projcs_converter({PROJECTION:wkt_simple_projection_converter("utm"),PARAMETER:utm_params})(projcs);function utm_params(projcs){var match=WKT_UTM.exec(wkt_name_to_slug(projcs.NAME));var params="+zone="+match[1];if(match[2]=="S")params+=" +south";return params}}function wkt_to_ups(projcs){return wkt_projcs_converter({PROJECTION:wkt_simple_projection_converter("ups"),PARAMETER:ups_params})(projcs);function ups_params(projcs){var match=WKT_UPS.exec(wkt_name_to_slug(projcs.NAME));return match[1].toLowerCase()=="south"?"+south":""}}function wkt_from_utm(P){return wkt_projcs_maker({NAME:wkt_make_utm_name,PROJECTION:function(){return"Transverse_Mercator"},PARAMETER:wkt_make_utm_params})(P)}function wkt_from_ups(P){return wkt_projcs_maker({NAME:wkt_make_ups_name,PROJECTION:function(){return"Polar_Stereographic"},PARAMETER:wkt_make_ups_params})(P)}function wkt_make_utm_name(P,projcs){return projcs.GEOGCS.NAME+" / UTM zone "+pj_param(P.params,"szone")+(pj_param(P.params,"tsouth")?"S":"N")}function wkt_make_ups_name(P,projcs){return projcs.GEOGCS.NAME+" / UPS "+(pj_param(P.params,"tsouth")?"South":"North")}function wkt_make_utm_params(P){var lon0=P.lam0*180/M_PI;return[["latitude_of_origin",0],["central_meridian",lon0],["scale_factor",P.k0],["false_easting",P.x0],["false_northing",P.y0]]}function wkt_make_ups_params(P){return[["latitude_of_origin",-90],["central_meridian",0],["scale_factor",.994],["false_easting",2e6],["false_northing",2e6]]}add_wkt_parser(get_simple_parser_test("Mercator_2SP,Mercator_1SP,Mercator,Mercator_Auxiliary_Sphere"),wkt_projcs_converter({GEOGCS:wkt_convert_merc_geogcs,PROJECTION:wkt_simple_projection_converter("merc"),PARAMETER:wkt_convert_merc_params}));add_wkt_maker(get_simple_maker_test("merc"),wkt_projcs_maker({GEOGCS:wkt_make_merc_geogcs,PROJECTION:wkt_make_merc_projection,PARAMETER:wkt_make_merc_params,NAME:wkt_make_merc_name}));function wkt_make_merc_name(P){return wkt_proj4_is_webmercator(P)?"WGS 84 / Pseudo-Mercator":null}function wkt_make_merc_geogcs(P){if(wkt_proj4_is_webmercator(P)){return wkt_make_geogcs(pj_init("+proj=longlat +datum=WGS84"))}return null}function wkt_convert_merc_geogcs(projcs){var opts=wkt_projcs_is_webmercator(projcs)?{aux_sphere:true}:null;return wkt_convert_geogcs(projcs.GEOGCS,opts)}function wkt_make_merc_projection(P){return wkt_proj4_is_merc_2sp(P)?"Mercator_2SP":"Mercator_1SP"}function wkt_convert_merc_params(projcs){var rules=wkt_projcs_is_merc_2sp(projcs)?"lat_ts,lat_0b":"lat_tsb,lat_ts";return wkt_parameter_converter(rules)(projcs)}function wkt_make_merc_params(P){var rules=wkt_proj4_is_merc_2sp(P)?"lat_ts,lat_0b":"lat_tsb";return wkt_parameter_maker(rules)(P)}function wkt_projcs_is_merc_2sp(projcs){var param=wkt_find_parameter_by_name(projcs,"standard_parallel_1");return param&¶m[1]!=0}function wkt_proj4_is_merc_2sp(P){return pj_param(P.params,"tlat_ts")&&pj_param(P.params,"dlat_ts")!=0}function wkt_projcs_is_webmercator(projcs){return/(Web_Mercator|Pseudo_Mercator)/i.test(wkt_name_to_slug(projcs.NAME))}function wkt_proj4_is_webmercator(P){return P.es===0&&P.a==6378137}var wkt_common_params=[["x_0","false_easting","m"],["y_0","false_northing","m"],["k_0","scale_factor","f"],["lat_0","latitude_of_center"],["lon_0","central_meridian"]];var wkt_param_table={lat_0b:["lat_0","latitude_of_origin"],lat_0c:["lat_0",null],lat_0d:["lat_0","standard_parallel_1"],lat_1:["lat_1","standard_parallel_1"],lat_1b:["lat_1","latitude_of_point_1"],lat_1c:["lat_1","latitude_of_origin"],lat_2:["lat_2","standard_parallel_2"],lat_2b:["lat_2","latitude_of_point_2"],lat_ts:["lat_ts","standard_parallel_1"],lat_tsb:["lat_ts","latitude_of_origin"],lonc:["lonc","central_meridian"],lon_1:["lon_1","longitude_of_point_1"],lon_2:["lon_2","longitude_of_point_2"],alpha:["alpha","azimuth"],gamma:["gamma","rectified_grid_angle"],h:["h","height","f"]};var wkt_param_aliases={longitude_of_center:"central_meridian",latitude_of_origin:"latitude_of_center",latitude_of_center:"latitude_of_origin",longitude_of_1st_point:"longitude_of_point_1",longitude_of_2nd_point:"longitude_of_point_2",latitude_of_1st_point:"latitude_of_point_1",latitude_of_2nd_point:"latitude_of_point_2",k:"k_0"};function wkt_convert_param_name_old(wktName,proj){var defn=wkt_find_param_defn_old(proj,function(defn){return defn[1]==wktName});return defn?defn[0]:""}function wkt_find_param_defn_old(proj,test){var defn,projs;for(var i=0;i-1&&value===0||name=="k_0"&&value==1){return}}return"+"+name+"="+value}function wkt_make_parameter(defn,strVal,toMeter){var type=defn[2],val;if(type=="m"){val=parseFloat(strVal)/toMeter}else if(type=="f"){val=parseFloat(strVal)}else{val=dmstod(strVal)}return[defn[1],val]}function wkt_find_parameter_by_name(projcs,name){var params=projcs.PARAMETER||[];var paramName;for(var i=0;i=0)y=y*x+p[s++];return y};m.AngRound=function(x){if(x===0)return x;var z=1/16,y=Math.abs(x);y=y90?Number.NaN:x};m.AngDiff=function(x,y){var r=m.sum(m.AngNormalize(-x),m.AngNormalize(y)),d=m.AngNormalize(r.s),t=r.t;return m.sum(d===180&&t>0?-180:d,t)};m.sincosd=function(x){var r,q,s,c,sinx,cosx;r=x%360;q=Math.floor(r/90+.5);r-=90*q;r*=this.degree;s=Math.sin(r);c=Math.cos(r);switch(q&3){case 0:sinx=s;cosx=c;break;case 1:sinx=c;cosx=-s;break;case 2:sinx=-s;cosx=-c;break;default:sinx=-c;cosx=s;break}if(x){sinx+=0;cosx+=0}return{s:sinx,c:cosx}};m.atan2d=function(y,x){var q=0,t,ang;if(Math.abs(y)>Math.abs(x)){t=x;x=y;y=t;q=2}if(x<0){x=-x;++q}ang=Math.atan2(y,x)/this.degree;switch(q){case 1:ang=(y>=0?180:-180)-ang;break;case 2:ang=90-ang;break;case 3:ang=-90+ang;break}return ang}})(GeographicLib.Math);(function(a,m){a.Accumulator=function(y){this.Set(y)};a.Accumulator.prototype.Set=function(y){if(!y)y=0;if(y.constructor===a.Accumulator){this._s=y._s;this._t=y._t}else{this._s=y;this._t=0}};a.Accumulator.prototype.Add=function(y){var u=m.sum(y,this._t),v=m.sum(u.s,this._s);u=u.t;this._s=v.s;this._t=v.t;if(this._s===0)this._s=u;else this._t+=u};a.Accumulator.prototype.Sum=function(y){var b;if(!y)return this._s;else{b=new a.Accumulator(this);b.Add(y);return b._s}};a.Accumulator.prototype.Negate=function(){this._s*=-1;this._t*=-1}})(GeographicLib.Accumulator,GeographicLib.Math);GeographicLib.Geodesic={};GeographicLib.GeodesicLine={};GeographicLib.PolygonArea={};(function(g,l,p,m,c){var GEOGRAPHICLIB_GEODESIC_ORDER=6,nA1_=GEOGRAPHICLIB_GEODESIC_ORDER,nA2_=GEOGRAPHICLIB_GEODESIC_ORDER,nA3_=GEOGRAPHICLIB_GEODESIC_ORDER,nA3x_=nA3_,nC3x_,nC4x_,maxit1_=20,maxit2_=maxit1_+m.digits+10,tol0_=m.epsilon,tol1_=200*tol0_,tol2_=Math.sqrt(tol0_),tolb_=tol0_*tol1_,xthresh_=1e3*tol2_,CAP_NONE=0,CAP_ALL=31,CAP_MASK=CAP_ALL,OUT_ALL=32640,astroid,A1m1f_coeff,C1f_coeff,C1pf_coeff,A2m1f_coeff,C2f_coeff,A3_coeff,C3_coeff,C4_coeff;g.tiny_=Math.sqrt(Number.MIN_VALUE);g.nC1_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC1p_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC2_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC3_=GEOGRAPHICLIB_GEODESIC_ORDER;g.nC4_=GEOGRAPHICLIB_GEODESIC_ORDER;nC3x_=g.nC3_*(g.nC3_-1)/2;nC4x_=g.nC4_*(g.nC4_+1)/2;g.CAP_C1=1<<0;g.CAP_C1p=1<<1;g.CAP_C2=1<<2;g.CAP_C3=1<<3;g.CAP_C4=1<<4;g.NONE=0;g.ARC=1<<6;g.LATITUDE=1<<7|CAP_NONE;g.LONGITUDE=1<<8|g.CAP_C3;g.AZIMUTH=1<<9|CAP_NONE;g.DISTANCE=1<<10|g.CAP_C1;g.STANDARD=g.LATITUDE|g.LONGITUDE|g.AZIMUTH|g.DISTANCE;g.DISTANCE_IN=1<<11|g.CAP_C1|g.CAP_C1p;g.REDUCEDLENGTH=1<<12|g.CAP_C1|g.CAP_C2;g.GEODESICSCALE=1<<13|g.CAP_C1|g.CAP_C2;g.AREA=1<<14|g.CAP_C4;g.ALL=OUT_ALL|CAP_ALL;g.LONG_UNROLL=1<<15;g.OUT_MASK=OUT_ALL|g.LONG_UNROLL;g.SinCosSeries=function(sinp,sinx,cosx,c){var k=c.length,n=k-(sinp?1:0),ar=2*(cosx-sinx)*(cosx+sinx),y0=n&1?c[--k]:0,y1=0;n=Math.floor(n/2);while(n--){y1=ar*y0-y1+c[--k];y0=ar*y1-y0+c[--k]}return sinp?2*sinx*cosx*y0:cosx*(y0-y1)};astroid=function(x,y){var k,p=m.sq(x),q=m.sq(y),r=(p+q-1)/6,S,r2,r3,disc,u,T3,T,ang,v,uv,w;if(!(q===0&&r<=0)){S=p*q/4;r2=m.sq(r);r3=r*r2;disc=S*(S+2*r3);u=r;if(disc>=0){T3=S+r3;T3+=T3<0?-Math.sqrt(disc):Math.sqrt(disc);T=m.cbrt(T3);u+=T+(T!==0?r2/T:0)}else{ang=Math.atan2(Math.sqrt(-disc),-(S+r3));u+=2*r*Math.cos(ang/3)}v=Math.sqrt(m.sq(u)+q);uv=u<0?q/(v-u):u+v;w=(uv-q)/(2*v);k=uv/(Math.sqrt(uv+m.sq(w))+w)}else{k=0}return k};A1m1f_coeff=[+1,4,64,0,256];g.A1m1f=function(eps){var p=Math.floor(nA1_/2),t=m.polyval(p,A1m1f_coeff,0,m.sq(eps))/A1m1f_coeff[p+1];return(t+eps)/(1-eps)};C1f_coeff=[-1,6,-16,32,-9,64,-128,2048,+9,-16,768,+3,-5,512,-7,1280,-7,2048];g.C1f=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC1_;++l){p=Math.floor((g.nC1_-l)/2);c[l]=d*m.polyval(p,C1f_coeff,o,eps2)/C1f_coeff[o+p+1];o+=p+2;d*=eps}};C1pf_coeff=[+205,-432,768,1536,+4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,+3467,7680,+38081,61440];g.C1pf=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC1p_;++l){p=Math.floor((g.nC1p_-l)/2);c[l]=d*m.polyval(p,C1pf_coeff,o,eps2)/C1pf_coeff[o+p+1];o+=p+2;d*=eps}};A2m1f_coeff=[-11,-28,-192,0,256];g.A2m1f=function(eps){var p=Math.floor(nA2_/2),t=m.polyval(p,A2m1f_coeff,0,m.sq(eps))/A2m1f_coeff[p+1];return(t-eps)/(1+eps)};C2f_coeff=[+1,2,16,32,+35,64,384,2048,+15,80,768,+7,35,512,+63,1280,+77,2048];g.C2f=function(eps,c){var eps2=m.sq(eps),d=eps,o=0,l,p;for(l=1;l<=g.nC2_;++l){p=Math.floor((g.nC2_-l)/2);c[l]=d*m.polyval(p,C2f_coeff,o,eps2)/C2f_coeff[o+p+1];o+=p+2;d*=eps}};g.Geodesic=function(a,f){this.a=a;this.f=f;this._f1=1-this.f;this._e2=this.f*(2-this.f);this._ep2=this._e2/m.sq(this._f1);this._n=this.f/(2-this.f);this._b=this.a*this._f1;this._c2=(m.sq(this.a)+m.sq(this._b)*(this._e2===0?1:(this._e2>0?m.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2;this._etol2=.1*tol2_/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2);if(!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(nA3x_);this._C3x=new Array(nC3x_);this._C4x=new Array(nC4x_);this.A3coeff();this.C3coeff();this.C4coeff()};A3_coeff=[-3,128,-2,-3,64,-1,-3,-1,16,+3,-1,-2,8,+1,-1,2,+1,1];g.Geodesic.prototype.A3coeff=function(){var o=0,k=0,j,p;for(j=nA3_-1;j>=0;--j){p=Math.min(nA3_-j-1,j);this._A3x[k++]=m.polyval(p,A3_coeff,o,this._n)/A3_coeff[o+p+1];o+=p+2}};C3_coeff=[+3,128,+2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,+5,256,+1,3,128,-3,-2,3,64,+1,-3,2,32,+7,512,-10,9,384,+5,-9,5,192,+7,512,-14,7,512,+21,2560];g.Geodesic.prototype.C3coeff=function(){var o=0,k=0,l,j,p;for(l=1;l=l;--j){p=Math.min(g.nC3_-j-1,j);this._C3x[k++]=m.polyval(p,C3_coeff,o,this._n)/C3_coeff[o+p+1];o+=p+2}}};C4_coeff=[+97,15015,+1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,+64,624,-4576,6864,-3003,15015,+100,208,572,3432,-12012,30030,45045,+1,9009,-2944,468,135135,+5792,1040,-1287,135135,+5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,+8,10725,+1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,+1024,-208,105105,+3584,-3328,1144,315315,-128,135135,-2560,832,405405,+128,99099];g.Geodesic.prototype.C4coeff=function(){var o=0,k=0,l,j,p;for(l=0;l=l;--j){p=g.nC4_-j-1;this._C4x[k++]=m.polyval(p,C4_coeff,o,this._n)/C4_coeff[o+p+1];o+=p+2}}};g.Geodesic.prototype.A3f=function(eps){return m.polyval(nA3x_-1,this._A3x,0,eps)};g.Geodesic.prototype.C3f=function(eps,c){var mult=1,o=0,l,p;for(l=1;l=0&&sbet12<.5&&cbet2*lam12<.5;if(shortline){sbetm2=m.sq(sbet1+sbet2);sbetm2/=sbetm2+m.sq(cbet1+cbet2);vals.dnm=Math.sqrt(1+this._ep2*sbetm2);omg12=lam12/(this._f1*vals.dnm);somg12=Math.sin(omg12);comg12=Math.cos(omg12)}else{somg12=slam12;comg12=clam12}vals.salp1=cbet2*somg12;vals.calp1=comg12>=0?sbet12+cbet2*sbet1*m.sq(somg12)/(1+comg12):sbet12a-cbet2*sbet1*m.sq(somg12)/(1-comg12);ssig12=m.hypot(vals.salp1,vals.calp1);csig12=sbet1*sbet2+cbet1*cbet2*comg12;if(shortline&&ssig12=0?m.sq(somg12)/(1+comg12):1-comg12);t=m.hypot(vals.salp2,vals.calp2);vals.salp2/=t;vals.calp2/=t;vals.sig12=Math.atan2(ssig12,csig12)}else if(Math.abs(this._n)>.1||csig12>=0||ssig12>=6*Math.abs(this._n)*Math.PI*m.sq(cbet1)){}else{lam12x=Math.atan2(-slam12,-clam12);if(this.f>=0){k2=m.sq(sbet1)*this._ep2;eps=k2/(2*(1+Math.sqrt(1+k2))+k2);lamscale=this.f*cbet1*this.A3f(eps)*Math.PI;betscale=lamscale*cbet1;x=lam12x/lamscale;y=sbet12a/betscale}else{cbet12a=cbet2*cbet1-sbet2*sbet1;bet12a=Math.atan2(sbet12a,cbet12a);nvals=this.Lengths(this._n,Math.PI+bet12a,sbet1,-cbet1,dn1,sbet2,cbet2,dn2,cbet1,cbet2,g.REDUCEDLENGTH,C1a,C2a);m12b=nvals.m12b;m0=nvals.m0;x=-1+m12b/(cbet1*cbet2*m0*Math.PI);betscale=x<-.01?sbet12a/x:-this.f*m.sq(cbet1)*Math.PI;lamscale=betscale/cbet1;y=lam12/lamscale}if(y>-tol1_&&x>-1-xthresh_){if(this.f>=0){vals.salp1=Math.min(1,-x);vals.calp1=-Math.sqrt(1-m.sq(vals.salp1))}else{vals.calp1=Math.max(x>-tol1_?0:-1,x);vals.salp1=Math.sqrt(1-m.sq(vals.calp1))}}else{k=astroid(x,y);omg12a=lamscale*(this.f>=0?-x*k/(1+k):-y*(1+k)/k);somg12=Math.sin(omg12a);comg12=-Math.cos(omg12a);vals.salp1=cbet2*somg12;vals.calp1=sbet12a-cbet2*sbet1*m.sq(somg12)/(1-comg12)}}if(!(vals.salp1<=0)){t=m.hypot(vals.salp1,vals.calp1);vals.salp1/=t;vals.calp1/=t}else{vals.salp1=1;vals.calp1=0}return vals};g.Geodesic.prototype.Lambda12=function(sbet1,cbet1,dn1,sbet2,cbet2,dn2,salp1,calp1,slam120,clam120,diffp,C1a,C2a,C3a){var vals={},t,salp0,calp0,somg1,comg1,somg2,comg2,somg12,comg12,B312,eta,k2,nvals;if(sbet1===0&&calp1===0)calp1=-g.tiny_;salp0=salp1*cbet1;calp0=m.hypot(calp1,salp1*sbet1);vals.ssig1=sbet1;somg1=salp0*sbet1;vals.csig1=comg1=calp1*cbet1;t=m.hypot(vals.ssig1,vals.csig1);vals.ssig1/=t;vals.csig1/=t;vals.salp2=cbet2!==cbet1?salp0/cbet2:salp1;vals.calp2=cbet2!==cbet1||Math.abs(sbet2)!==-sbet1?Math.sqrt(m.sq(calp1*cbet1)+(cbet1<-sbet1?(cbet2-cbet1)*(cbet1+cbet2):(sbet1-sbet2)*(sbet1+sbet2)))/cbet2:Math.abs(calp1);vals.ssig2=sbet2;somg2=salp0*sbet2;vals.csig2=comg2=vals.calp2*cbet2;t=m.hypot(vals.ssig2,vals.csig2);vals.ssig2/=t;vals.csig2/=t;vals.sig12=Math.atan2(Math.max(0,vals.csig1*vals.ssig2-vals.ssig1*vals.csig2),vals.csig1*vals.csig2+vals.ssig1*vals.ssig2);somg12=Math.max(0,comg1*somg2-somg1*comg2);comg12=comg1*comg2+somg1*somg2;eta=Math.atan2(somg12*clam120-comg12*slam120,comg12*clam120+somg12*slam120);k2=m.sq(calp0)*this._ep2;vals.eps=k2/(2*(1+Math.sqrt(1+k2))+k2);this.C3f(vals.eps,C3a);B312=g.SinCosSeries(true,vals.ssig2,vals.csig2,C3a)-g.SinCosSeries(true,vals.ssig1,vals.csig1,C3a);vals.domg12=-this.f*this.A3f(vals.eps)*salp0*(vals.sig12+B312);vals.lam12=eta+vals.domg12;if(diffp){if(vals.calp2===0)vals.dlam12=-2*this._f1*dn1/sbet1;else{nvals=this.Lengths(vals.eps,vals.sig12,vals.ssig1,vals.csig1,dn1,vals.ssig2,vals.csig2,dn2,cbet1,cbet2,g.REDUCEDLENGTH,C1a,C2a);vals.dlam12=nvals.m12b;vals.dlam12*=this._f1/(vals.calp2*cbet2)}}return vals};g.Geodesic.prototype.Inverse=function(lat1,lon1,lat2,lon2,outmask){var r,vals;if(!outmask)outmask=g.STANDARD;if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;outmask&=g.OUT_MASK;r=this.InverseInt(lat1,lon1,lat2,lon2,outmask);vals=r.vals;if(outmask&g.AZIMUTH){vals.azi1=m.atan2d(r.salp1,r.calp1);vals.azi2=m.atan2d(r.salp2,r.calp2)}return vals};g.Geodesic.prototype.InverseInt=function(lat1,lon1,lat2,lon2,outmask){var vals={},lon12,lon12s,lonsign,t,swapp,latsign,sbet1,cbet1,sbet2,cbet2,s12x,m12x,dn1,dn2,lam12,slam12,clam12,sig12,calp1,salp1,calp2,salp2,C1a,C2a,C3a,meridian,nvals,ssig1,csig1,ssig2,csig2,eps,omg12,dnm,numit,salp1a,calp1a,salp1b,calp1b,tripn,tripb,v,dv,dalp1,sdalp1,cdalp1,nsalp1,lengthmask,salp0,calp0,alp12,k2,A4,C4a,B41,B42,somg12,comg12,domg12,dbet1,dbet2,salp12,calp12,sdomg12,cdomg12;vals.lat1=lat1=m.LatFix(lat1);vals.lat2=lat2=m.LatFix(lat2);lat1=m.AngRound(lat1);lat2=m.AngRound(lat2);lon12=m.AngDiff(lon1,lon2);lon12s=lon12.t;lon12=lon12.s;if(outmask&g.LONG_UNROLL){vals.lon1=lon1;vals.lon2=lon1+lon12+lon12s}else{vals.lon1=m.AngNormalize(lon1);vals.lon2=m.AngNormalize(lon2)}lonsign=lon12>=0?1:-1;lon12=lonsign*m.AngRound(lon12);lon12s=m.AngRound(180-lon12-lonsign*lon12s);lam12=lon12*m.degree;t=m.sincosd(lon12>90?lon12s:lon12);slam12=t.s;clam12=(lon12>90?-1:1)*t.c;swapp=Math.abs(lat1)=0){if(sig12<3*g.tiny_)sig12=m12x=s12x=0;m12x*=this._b;s12x*=this._b;vals.a12=sig12/m.degree}else meridian=false}somg12=2;if(!meridian&&sbet1===0&&(this.f<=0||lon12s>=this.f*180)){calp1=calp2=0;salp1=salp2=1;s12x=this.a*lam12;sig12=omg12=lam12/this._f1;m12x=this._b*Math.sin(sig12);if(outmask&g.GEODESICSCALE)vals.M12=vals.M21=Math.cos(sig12);vals.a12=lon12/this._f1}else if(!meridian){nvals=this.InverseStart(sbet1,cbet1,dn1,sbet2,cbet2,dn2,lam12,slam12,clam12,C1a,C2a);sig12=nvals.sig12;salp1=nvals.salp1;calp1=nvals.calp1;if(sig12>=0){salp2=nvals.salp2;calp2=nvals.calp2;dnm=nvals.dnm;s12x=sig12*this._b*dnm;m12x=m.sq(dnm)*this._b*Math.sin(sig12/dnm);if(outmask&g.GEODESICSCALE)vals.M12=vals.M21=Math.cos(sig12/dnm);vals.a12=sig12/m.degree;omg12=lam12/(this._f1*dnm)}else{numit=0;salp1a=g.tiny_;calp1a=1;salp1b=g.tiny_;calp1b=-1;for(tripn=false,tripb=false;numit=(tripn?8:1)*tol0_))break;if(v>0&&(numitcalp1b/salp1b)){salp1b=salp1;calp1b=calp1}else if(v<0&&(numit0){dalp1=-v/dv;sdalp1=Math.sin(dalp1);cdalp1=Math.cos(dalp1);nsalp1=salp1*cdalp1+calp1*sdalp1;if(nsalp1>0&&Math.abs(dalp1)1){somg12=Math.sin(omg12);comg12=Math.cos(omg12)}if(!meridian&&comg12>-.7071&&sbet2-sbet1<1.75){domg12=1+comg12;dbet1=1+cbet1;dbet2=1+cbet2;alp12=2*Math.atan2(somg12*(sbet1*dbet2+sbet2*dbet1),domg12*(sbet1*sbet2+dbet1*dbet2))}else{salp12=salp2*calp1-calp2*salp1;calp12=calp2*calp1+salp2*salp1;if(salp12===0&&calp12<0){salp12=g.tiny_*calp1;calp12=-1}alp12=Math.atan2(salp12,calp12)}vals.S12+=this._c2*alp12;vals.S12*=swapp*lonsign*latsign;vals.S12+=0}if(swapp<0){t=salp1;salp1=salp2;salp2=t;t=calp1;calp1=calp2;calp2=t;if(outmask&g.GEODESICSCALE){t=vals.M12;vals.M12=vals.M21;vals.M21=t}}salp1*=swapp*lonsign;calp1*=swapp*latsign;salp2*=swapp*lonsign;calp2*=swapp*latsign;return{vals:vals,salp1:salp1,calp1:calp1,salp2:salp2,calp2:calp2}};g.Geodesic.prototype.GenDirect=function(lat1,lon1,azi1,arcmode,s12_a12,outmask){var line;if(!outmask)outmask=g.STANDARD;else if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;if(!arcmode)outmask|=g.DISTANCE_IN;line=new l.GeodesicLine(this,lat1,lon1,azi1,outmask);return line.GenPosition(arcmode,s12_a12,outmask)};g.Geodesic.prototype.Direct=function(lat1,lon1,azi1,s12,outmask){return this.GenDirect(lat1,lon1,azi1,false,s12,outmask)};g.Geodesic.prototype.ArcDirect=function(lat1,lon1,azi1,a12,outmask){return this.GenDirect(lat1,lon1,azi1,true,a12,outmask)};g.Geodesic.prototype.Line=function(lat1,lon1,azi1,caps){return new l.GeodesicLine(this,lat1,lon1,azi1,caps)};g.Geodesic.prototype.DirectLine=function(lat1,lon1,azi1,s12,caps){return this.GenDirectLine(lat1,lon1,azi1,false,s12,caps)};g.Geodesic.prototype.ArcDirectLine=function(lat1,lon1,azi1,a12,caps){return this.GenDirectLine(lat1,lon1,azi1,true,a12,caps)};g.Geodesic.prototype.GenDirectLine=function(lat1,lon1,azi1,arcmode,s12_a12,caps){var t;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;if(!arcmode)caps|=g.DISTANCE_IN;t=new l.GeodesicLine(this,lat1,lon1,azi1,caps);t.GenSetDistance(arcmode,s12_a12);return t};g.Geodesic.prototype.InverseLine=function(lat1,lon1,lat2,lon2,caps){var r,t,azi1;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;r=this.InverseInt(lat1,lon1,lat2,lon2,g.ARC);azi1=m.atan2d(r.salp1,r.calp1);if(caps&(g.OUT_MASK&g.DISTANCE_IN))caps|=g.DISTANCE;t=new l.GeodesicLine(this,lat1,lon1,azi1,caps,r.salp1,r.calp1);t.SetArc(r.vals.a12);return t};g.Geodesic.prototype.Polygon=function(polyline){return new p.PolygonArea(this,polyline)};g.WGS84=new g.Geodesic(c.WGS84.a,c.WGS84.f)})(GeographicLib.Geodesic,GeographicLib.GeodesicLine,GeographicLib.PolygonArea,GeographicLib.Math,GeographicLib.Constants);(function(g,l,m){l.GeodesicLine=function(geod,lat1,lon1,azi1,caps,salp1,calp1){var t,cbet1,sbet1,eps,s,c;if(!caps)caps=g.STANDARD|g.DISTANCE_IN;this.a=geod.a;this.f=geod.f;this._b=geod._b;this._c2=geod._c2;this._f1=geod._f1;this.caps=caps|g.LATITUDE|g.AZIMUTH|g.LONG_UNROLL;this.lat1=m.LatFix(lat1);this.lon1=lon1;if(typeof salp1==="undefined"||typeof calp1==="undefined"){this.azi1=m.AngNormalize(azi1);t=m.sincosd(m.AngRound(this.azi1));this.salp1=t.s;this.calp1=t.c}else{this.azi1=azi1;this.salp1=salp1;this.calp1=calp1}t=m.sincosd(m.AngRound(this.lat1));sbet1=this._f1*t.s;cbet1=t.c;t=m.hypot(sbet1,cbet1);sbet1/=t;cbet1/=t;cbet1=Math.max(g.tiny_,cbet1);this._dn1=Math.sqrt(1+geod._ep2*m.sq(sbet1));this._salp0=this.salp1*cbet1;this._calp0=m.hypot(this.calp1,this.salp1*sbet1);this._ssig1=sbet1;this._somg1=this._salp0*sbet1;this._csig1=this._comg1=sbet1!==0||this.calp1!==0?cbet1*this.calp1:1;t=m.hypot(this._ssig1,this._csig1);this._ssig1/=t;this._csig1/=t;this._k2=m.sq(this._calp0)*geod._ep2;eps=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2);if(this.caps&g.CAP_C1){this._A1m1=g.A1m1f(eps);this._C1a=new Array(g.nC1_+1);g.C1f(eps,this._C1a);this._B11=g.SinCosSeries(true,this._ssig1,this._csig1,this._C1a);s=Math.sin(this._B11);c=Math.cos(this._B11);this._stau1=this._ssig1*c+this._csig1*s;this._ctau1=this._csig1*c-this._ssig1*s}if(this.caps&g.CAP_C1p){this._C1pa=new Array(g.nC1p_+1);g.C1pf(eps,this._C1pa)}if(this.caps&g.CAP_C2){this._A2m1=g.A2m1f(eps);this._C2a=new Array(g.nC2_+1);g.C2f(eps,this._C2a);this._B21=g.SinCosSeries(true,this._ssig1,this._csig1,this._C2a)}if(this.caps&g.CAP_C3){this._C3a=new Array(g.nC3_);geod.C3f(eps,this._C3a);this._A3c=-this.f*this._salp0*geod.A3f(eps);this._B31=g.SinCosSeries(true,this._ssig1,this._csig1,this._C3a)}if(this.caps&g.CAP_C4){this._C4a=new Array(g.nC4_);geod.C4f(eps,this._C4a);this._A4=m.sq(this.a)*this._calp0*this._salp0*geod._e2;this._B41=g.SinCosSeries(false,this._ssig1,this._csig1,this._C4a)}this.a13=this.s13=Number.NaN};l.GeodesicLine.prototype.GenPosition=function(arcmode,s12_a12,outmask){var vals={},sig12,ssig12,csig12,B12,AB1,ssig2,csig2,tau12,s,c,serr,omg12,lam12,lon12,E,sbet2,cbet2,somg2,comg2,salp2,calp2,dn2,B22,AB2,J12,t,B42,salp12,calp12;if(!outmask)outmask=g.STANDARD;else if(outmask===g.LONG_UNROLL)outmask|=g.STANDARD;outmask&=this.caps&g.OUT_MASK;vals.lat1=this.lat1;vals.azi1=this.azi1;vals.lon1=outmask&g.LONG_UNROLL?this.lon1:m.AngNormalize(this.lon1);if(arcmode)vals.a12=s12_a12;else vals.s12=s12_a12;if(!(arcmode||this.caps&g.DISTANCE_IN&g.OUT_MASK)){vals.a12=Number.NaN;return vals}B12=0;AB1=0;if(arcmode){sig12=s12_a12*m.degree;t=m.sincosd(s12_a12);ssig12=t.s;csig12=t.c}else{tau12=s12_a12/(this._b*(1+this._A1m1));s=Math.sin(tau12);c=Math.cos(tau12);B12=-g.SinCosSeries(true,this._stau1*c+this._ctau1*s,this._ctau1*c-this._stau1*s,this._C1pa);sig12=tau12-(B12-this._B11);ssig12=Math.sin(sig12);csig12=Math.cos(sig12);if(Math.abs(this.f)>.01){ssig2=this._ssig1*csig12+this._csig1*ssig12;csig2=this._csig1*csig12-this._ssig1*ssig12;B12=g.SinCosSeries(true,ssig2,csig2,this._C1a);serr=(1+this._A1m1)*(sig12+(B12-this._B11))-s12_a12/this._b;sig12=sig12-serr/Math.sqrt(1+this._k2*m.sq(ssig2));ssig12=Math.sin(sig12);csig12=Math.cos(sig12)}}ssig2=this._ssig1*csig12+this._csig1*ssig12;csig2=this._csig1*csig12-this._ssig1*ssig12;dn2=Math.sqrt(1+this._k2*m.sq(ssig2));if(outmask&(g.DISTANCE|g.REDUCEDLENGTH|g.GEODESICSCALE)){if(arcmode||Math.abs(this.f)>.01)B12=g.SinCosSeries(true,ssig2,csig2,this._C1a);AB1=(1+this._A1m1)*(B12-this._B11)}sbet2=this._calp0*ssig2;cbet2=m.hypot(this._salp0,this._calp0*csig2);if(cbet2===0)cbet2=csig2=g.tiny_;salp2=this._salp0;calp2=this._calp0*csig2;if(arcmode&&outmask&g.DISTANCE)vals.s12=this._b*((1+this._A1m1)*sig12+AB1);if(outmask&g.LONGITUDE){somg2=this._salp0*ssig2;comg2=csig2;E=m.copysign(1,this._salp0);omg12=outmask&g.LONG_UNROLL?E*(sig12-(Math.atan2(ssig2,csig2)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(E*somg2,comg2)-Math.atan2(E*this._somg1,this._comg1))):Math.atan2(somg2*this._comg1-comg2*this._somg1,comg2*this._comg1+somg2*this._somg1);lam12=omg12+this._A3c*(sig12+(g.SinCosSeries(true,ssig2,csig2,this._C3a)-this._B31));lon12=lam12/m.degree;vals.lon2=outmask&g.LONG_UNROLL?this.lon1+lon12:m.AngNormalize(m.AngNormalize(this.lon1)+m.AngNormalize(lon12))}if(outmask&g.LATITUDE)vals.lat2=m.atan2d(sbet2,this._f1*cbet2);if(outmask&g.AZIMUTH)vals.azi2=m.atan2d(salp2,calp2);if(outmask&(g.REDUCEDLENGTH|g.GEODESICSCALE)){B22=g.SinCosSeries(true,ssig2,csig2,this._C2a);AB2=(1+this._A2m1)*(B22-this._B21);J12=(this._A1m1-this._A2m1)*sig12+(AB1-AB2);if(outmask&g.REDUCEDLENGTH)vals.m12=this._b*(dn2*(this._csig1*ssig2)-this._dn1*(this._ssig1*csig2)-this._csig1*csig2*J12);if(outmask&g.GEODESICSCALE){t=this._k2*(ssig2-this._ssig1)*(ssig2+this._ssig1)/(this._dn1+dn2);vals.M12=csig12+(t*ssig2-csig2*J12)*this._ssig1/this._dn1;vals.M21=csig12-(t*this._ssig1-this._csig1*J12)*ssig2/dn2}}if(outmask&g.AREA){B42=g.SinCosSeries(false,ssig2,csig2,this._C4a);if(this._calp0===0||this._salp0===0){salp12=salp2*this.calp1-calp2*this.salp1;calp12=calp2*this.calp1+salp2*this.salp1}else{salp12=this._calp0*this._salp0*(csig12<=0?this._csig1*(1-csig12)+ssig12*this._ssig1:ssig12*(this._csig1*ssig12/(1+csig12)+this._ssig1));calp12=m.sq(this._salp0)+m.sq(this._calp0)*this._csig1*csig2}vals.S12=this._c2*Math.atan2(salp12,calp12)+this._A4*(B42-this._B41)}if(!arcmode)vals.a12=sig12/m.degree;return vals};l.GeodesicLine.prototype.Position=function(s12,outmask){return this.GenPosition(false,s12,outmask)};l.GeodesicLine.prototype.ArcPosition=function(a12,outmask){return this.GenPosition(true,a12,outmask)};l.GeodesicLine.prototype.GenSetDistance=function(arcmode,s13_a13){if(arcmode)this.SetArc(s13_a13);else this.SetDistance(s13_a13)};l.GeodesicLine.prototype.SetDistance=function(s13){var r;this.s13=s13;r=this.GenPosition(false,this.s13,g.ARC);this.a13=0+r.a12};l.GeodesicLine.prototype.SetArc=function(a13){var r;this.a13=a13;r=this.GenPosition(true,this.a13,g.DISTANCE);this.s13=0+r.s12}})(GeographicLib.Geodesic,GeographicLib.GeodesicLine,GeographicLib.Math);(function(p,g,m,a){var transit,transitdirect;transit=function(lon1,lon2){var lon12,cross;lon1=m.AngNormalize(lon1);lon2=m.AngNormalize(lon2);lon12=m.AngDiff(lon1,lon2).s;cross=lon1<=0&&lon2>0&&lon12>0?1:lon2<=0&&lon1>0&&lon12<0?-1:0;return cross};transitdirect=function(lon1,lon2){lon1=lon1%720;lon2=lon2%720;return(lon2>=0&&lon2<360||lon2<-360?0:1)-(lon1>=0&&lon1<360||lon1<-360?0:1)};p.PolygonArea=function(geod,polyline){this._geod=geod;this.a=this._geod.a;this.f=this._geod.f;this._area0=4*Math.PI*geod._c2;this.polyline=!polyline?false:polyline;this._mask=g.LATITUDE|g.LONGITUDE|g.DISTANCE|(this.polyline?g.NONE:g.AREA|g.LONG_UNROLL);if(!this.polyline)this._areasum=new a.Accumulator(0);this._perimetersum=new a.Accumulator(0);this.Clear()};p.PolygonArea.prototype.Clear=function(){this.num=0;this._crossings=0;if(!this.polyline)this._areasum.Set(0);this._perimetersum.Set(0);this._lat0=this._lon0=this.lat=this.lon=Number.NaN};p.PolygonArea.prototype.AddPoint=function(lat,lon){var t;if(this.num===0){this._lat0=this.lat=lat;this._lon0=this.lon=lon}else{t=this._geod.Inverse(this.lat,this.lon,lat,lon,this._mask);this._perimetersum.Add(t.s12);if(!this.polyline){this._areasum.Add(t.S12);this._crossings+=transit(this.lon,lon)}this.lat=lat;this.lon=lon}++this.num};p.PolygonArea.prototype.AddEdge=function(azi,s){var t;if(this.num){t=this._geod.Direct(this.lat,this.lon,azi,s,this._mask);this._perimetersum.Add(s);if(!this.polyline){this._areasum.Add(t.S12);this._crossings+=transitdirect(this.lon,t.lon2)}this.lat=t.lat2;this.lon=t.lon2}++this.num};p.PolygonArea.prototype.Compute=function(reverse,sign){var vals={number:this.num},t,tempsum,crossings;if(this.num<2){vals.perimeter=0;if(!this.polyline)vals.area=0;return vals}if(this.polyline){vals.perimeter=this._perimetersum.Sum();return vals}t=this._geod.Inverse(this.lat,this.lon,this._lat0,this._lon0,this._mask);vals.perimeter=this._perimetersum.Sum(t.s12);tempsum=new a.Accumulator(this._areasum);tempsum.Add(t.S12);crossings=this._crossings+transit(this.lon,this._lon0);if(crossings&1)tempsum.Add((tempsum.Sum()<0?1:-1)*this._area0/2);if(!reverse)tempsum.Negate();if(sign){if(tempsum.Sum()>this._area0/2)tempsum.Add(-this._area0);else if(tempsum.Sum()<=-this._area0/2)tempsum.Add(+this._area0)}else{if(tempsum.Sum()>=this._area0)tempsum.Add(-this._area0);else if(tempsum<0)tempsum.Add(-this._area0)}vals.area=tempsum.Sum();return vals};p.PolygonArea.prototype.TestPoint=function(lat,lon,reverse,sign){var vals={number:this.num+1},t,tempsum,crossings,i;if(this.num===0){vals.perimeter=0;if(!this.polyline)vals.area=0;return vals}vals.perimeter=this._perimetersum.Sum();tempsum=this.polyline?0:this._areasum.Sum();crossings=this._crossings;for(i=0;i<(this.polyline?1:2);++i){t=this._geod.Inverse(i===0?this.lat:lat,i===0?this.lon:lon,i!==0?this._lat0:lat,i!==0?this._lon0:lon,this._mask);vals.perimeter+=t.s12;if(!this.polyline){tempsum+=t.S12;crossings+=transit(i===0?this.lon:lon,i!==0?this._lon0:lon)}}if(this.polyline)return vals;if(crossings&1)tempsum+=(tempsum<0?1:-1)*this._area0/2;if(!reverse)tempsum*=-1;if(sign){if(tempsum>this._area0/2)tempsum-=this._area0;else if(tempsum<=-this._area0/2)tempsum+=this._area0}else{if(tempsum>=this._area0)tempsum-=this._area0;else if(tempsum<0)tempsum+=this._area0}vals.area=tempsum;return vals};p.PolygonArea.prototype.TestEdge=function(azi,s,reverse,sign){var vals={number:this.num?this.num+1:0},t,tempsum,crossings;if(this.num===0)return vals;vals.perimeter=this._perimetersum.Sum()+s;if(this.polyline)return vals;tempsum=this._areasum.Sum();crossings=this._crossings;t=this._geod.Direct(this.lat,this.lon,azi,s,this._mask);tempsum+=t.S12;crossings+=transitdirect(this.lon,t.lon2);t=this._geod.Inverse(t.lat2,t.lon2,this._lat0,this._lon0,this._mask);vals.perimeter+=t.s12;tempsum+=t.S12;crossings+=transit(t.lon2,this._lon0);if(crossings&1)tempsum+=(tempsum<0?1:-1)*this._area0/2;if(!reverse)tempsum*=-1;if(sign){if(tempsum>this._area0/2)tempsum-=this._area0;else if(tempsum<=-this._area0/2)tempsum+=this._area0}else{if(tempsum>=this._area0)tempsum-=this._area0;else if(tempsum<0)tempsum+=this._area0}vals.area=tempsum;return vals}})(GeographicLib.PolygonArea,GeographicLib.Geodesic,GeographicLib.Math,GeographicLib.Accumulator);function pj_qsfn(sinphi,e,one_es){var EPS=1e-7;var con;if(e>=EPS){con=e*sinphi;return one_es*(sinphi/(1-con*con)-.5/e*log((1-con)/(1+con)))}else return sinphi+sinphi}function pj_msfn(sinphi,cosphi,es){return cosphi/sqrt(1-es*sinphi*sinphi)}pj_add(pj_aea,"aea","Albers Equal Area","\n\tConic Sph&Ell\n\tlat_1= lat_2=");pj_add(pj_leac,"leac","Lambert Equal Area Conic","\n\tConic, Sph&Ell\n\tlat_1= south");function pj_aea(P){var phi1=pj_param(P.params,"rlat_1");var phi2=pj_param(P.params,"rlat_2");pj_aea_init(P,phi1,phi2)}function pj_leac(P){var phi1=pj_param(P.params,"rlat_1");var phi2=pj_param(P.params,"bsouth")?-M_HALFPI:M_HALFPI;pj_aea_init(P,phi1,phi2)}function pj_aea_init(P,phi1,phi2){var ec,n,c,dd,n2,rho0,rho,en,ellips,cosphi,sinphi,secant,ml2,m2,ml1,m1;P.fwd=e_fwd;P.inv=e_inv;if(fabs(phi1+phi2)=EPS10;if(ellips=P.es>0){en=pj_enfn(P.es);m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_qsfn(sinphi,P.e,P.one_es);if(secant){sinphi=sin(phi2);cosphi=cos(phi2);m2=pj_msfn(sinphi,cosphi,P.es);ml2=pj_qsfn(sinphi,P.e,P.one_es);n=(m1*m1-m2*m2)/(ml2-ml1)}ec=1-.5*P.one_es*log((1-P.e)/(1+P.e))/P.e;c=m1*m1+n*ml1;dd=1/n;rho0=dd*sqrt(c-n*pj_qsfn(sin(P.phi0),P.e,P.one_es))}else{if(secant)n=.5*(n+sin(phi2));n2=n+n;c=cosphi*cosphi+n2*sinphi;dd=1/n;rho0=dd*sqrt(c-n2*sin(P.phi0))}function e_fwd(lp,xy){var lam=lp.lam;var rho;if((rho=c-(ellips?n*pj_qsfn(sin(lp.phi),P.e,P.one_es):n2*sin(lp.phi)))<0)f_error();rho=dd*sqrt(rho);xy.x=rho*sin(lam*=n);xy.y=rho0-rho*cos(lam)}function e_inv(xy,lp){var TOL7=1e-7,x=xy.x,y=rho0-xy.y,rho=hypot(x,y);if(rho!=0){if(n<0){rho=-rho;x=-x;y=-y}lp.phi=rho/dd;if(ellips){lp.phi=(c-lp.phi*lp.phi)/n;if(fabs(ec-fabs(lp.phi))>TOL7){if((lp.phi=phi1_(lp.phi,P.e,P.one_es))==HUGE_VAL)i_error()}else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else if(fabs(lp.phi=(c-lp.phi*lp.phi)/n2)<=1)lp.phi=asin(lp.phi);else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;lp.lam=atan2(x,y)/n}else{lp.lam=0;lp.phi=n>0?M_HALFPI:-M_HALFPI}}function phi1_(qs,Te,Tone_es){var N_ITER=15,EPSILON=1e-7,TOL=1e-10;var Phi,sinpi,cospi,con,com,dphi,i;Phi=asin(.5*qs);if(TeTOL&&--i);return i?Phi:HUGE_VAL}}function pj_enfn(es){var C00=1,C02=.25,C04=.046875,C06=.01953125,C08=.01068115234375,C22=.75,C44=.46875,C46=.013020833333333334,C48=.007120768229166667,C66=.3645833333333333,C68=.005696614583333333,C88=.3076171875;var en=[],t;en[0]=C00-es*(C02+es*(C04+es*(C06+es*C08)));en[1]=es*(C22-es*(C04+es*(C06+es*C08)));en[2]=(t=es*es)*(C44-es*(C46+es*C48));en[3]=(t*=es)*(C66-es*C68);en[4]=t*es*C88;return en}function pj_mlfn(phi,sphi,cphi,en){cphi*=sphi;sphi*=sphi;return en[0]*phi-cphi*(en[1]+sphi*(en[2]+sphi*(en[3]+sphi*en[4])))}function pj_inv_mlfn(arg,es,en){var EPS=1e-11,MAX_ITER=10,EN_SIZE=5;var k=1/(1-es),s,t,phi;phi=arg;for(var i=MAX_ITER;i>0;--i){s=sin(phi);t=1-es*s*s;phi-=t=(pj_mlfn(phi,s,cos(phi),en)-arg)*(t*sqrt(t))*k;if(fabs(t)=1){if(av>ONE_TOL)pj_ctx_set_errno(-19);return v<0?-M_HALFPI:M_HALFPI}return asin(v)}function aacos(v){var ONE_TOL=1.00000000000001;var av=fabs(v);if(av>=1){if(av>ONE_TOL)pj_ctx_set_errno(-19);return v<0?M_PI:0}return acos(v)}function asqrt(v){return v<=0?0:sqrt(v)}function aatan2(n,d){var ATOL=1e-50;return fabs(n)M_PI){if(c_rh-EPS10>M_PI)i_error();c_rh=M_PI}else if(c_rhEPS){t=.5*(1+cosz);Krho=-log(t)/s-Cb/t}else{Krho=.5-Cb}xy.x=Krho*cosphi*sinlam;if(mode==OBLIQ)xy.y=Krho*(cosph0*sinphi-sinph0*cosphi*coslam);else xy.y=Krho*sinphi;break;case S_POLE:case N_POLE:lp.phi=fabs(p_halfpi-lp.phi);if(!no_cut&&lp.phi-EPS>M_HALFPI)f_error();if((lp.phi*=.5)>EPS){t=tan(lp.phi);Krho=-2*(log(cos(lp.phi))/t+t*Cb);xy.x=Krho*sinlam;xy.y=Krho*coslam;if(mode==N_POLE)xy.y=-xy.y}else xy.x=xy.y=0}}}pj_add(pj_wintri,"wintri","Winkel Tripel","\n\tMisc Sph\n\tlat_1");pj_add(pj_aitoff,"aitoff","Aitoff","\n\tMisc Sph");function pj_wintri(P){var Q=P.opaque={mode:1};if(pj_param(P.params,"tlat_1")){if((Q.cosphi1=cos(pj_param(P.params,"rlat_1")))===0){e_error(-22)}}else{Q.cosphi1=.6366197723675814}pj_aitoff(P)}function pj_aitoff(P){var Q=P.opaque||{mode:0};P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var c,d;if(d=acos(cos(lp.phi)*cos(c=.5*lp.lam))){xy.x=2*d*cos(lp.phi)*sin(c)*(xy.y=1/sin(d));xy.y*=d*sin(lp.phi)}else xy.x=xy.y=0;if(Q.mode){xy.x=(xy.x+lp.lam*Q.cosphi1)*.5;xy.y=(xy.y+lp.phi)*.5}}function s_inv(xy,lp){var MAXITER=10,MAXROUND=20,EPSILON=1e-12,round=0,iter,D,C,f1,f2,f1p,f1l,f2p,f2l,dp,dl,sl,sp,cp,cl,x,y;if(fabs(xy.x)M_PI)dl-=M_PI;while(dl<-M_PI)dl+=M_PI;lp.phi-=dp;lp.lam-=dl}while((fabs(dp)>EPSILON||fabs(dl)>EPSILON)&&iter++M_HALFPI)lp.phi-=2*(lp.phi-M_HALFPI);if(lp.phi<-M_HALFPI)lp.phi-=2*(lp.phi+M_HALFPI);if(fabs(fabs(lp.phi)-M_HALFPI)EPSILON||fabs(xy.y-y)>EPSILON)&&round++=EPS){if(ortl&&ax>=M_HALFPI)xy.x=sqrt(HLFPI2-lp.phi*lp.phi+EPS)+ax-M_HALFPI;else{f=.5*(HLFPI2/ax+ax);xy.x=ax-f+sqrt(f*f-xy.y*xy.y)}if(lp.lam<0)xy.x=-xy.x}else xy.x=0}}pj_add(pj_bertin1953,"bertin1953","Bertin 1953","\n\tMisc Sph no inv.");function pj_bertin1953(P){var cos_delta_phi,sin_delta_phi,cos_delta_gamma,sin_delta_gamma;P.es=0;P.fwd=s_fwd;P.lam0=0;P.phi0=DEG_TO_RAD*-42;cos_delta_phi=cos(P.phi0);sin_delta_phi=sin(P.phi0);cos_delta_gamma=1;sin_delta_gamma=0;function s_fwd(lp,xy){var fu=1.4,k=12,w=1.68,d;var cosphi,x,y,z,z0;lp.lam+=DEG_TO_RAD*-16.5;cosphi=cos(lp.phi);x=cos(lp.lam)*cosphi;y=sin(lp.lam)*cosphi;z=sin(lp.phi);z0=z*cos_delta_phi+x*sin_delta_phi;lp.lam=atan2(y*cos_delta_gamma-z0*sin_delta_gamma,x*cos_delta_phi-z*sin_delta_phi);z0=z0*cos_delta_gamma+y*sin_delta_gamma;lp.phi=asin(z0);lp.lam=adjlon(lp.lam);if(lp.lam+lp.phi<-fu){d=(lp.lam-lp.phi+1.6)*(lp.lam+lp.phi+fu)/8;lp.lam+=d;lp.phi-=.8*d*sin(lp.phi+M_PI/2)}cosphi=cos(lp.phi);d=sqrt(2/(1+cosphi*cos(lp.lam/2)));xy.x=w*d*cosphi*sin(lp.lam/2);xy.y=d*sin(lp.phi);d=(1-cos(lp.lam*lp.phi))/k;if(xy.y<0){xy.x*=1+d}if(xy.y>0){xy.x*=1+d/1.5*xy.x*xy.x}return xy}}pj_add(pj_boggs,"boggs","Boggs Eumorphic","\n\tPCyl., no inv., Sph.");function pj_boggs(P){var NITER=20,EPS=1e-7,ONETOL=1.000001,M_SQRT2=sqrt(2),FXC=2.00276,FXC2=1.11072,FYC=.49931;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var theta,th1,c,i;theta=lp.phi;if(fabs(fabs(lp.phi)-M_HALFPI)=M_HALFPI)cphi1=0;else cphi1=1/tan(phi1);P.inv=s_inv;P.fwd=s_fwd}function e_fwd(lp,xy){var rh,E,c;rh=am1+m1-pj_mlfn(lp.phi,E=sin(lp.phi),c=cos(lp.phi),en);E=c*lp.lam/(rh*sqrt(1-P.es*E*E));xy.x=rh*sin(E);xy.y=am1-rh*cos(E)}function e_inv(xy,lp){var s,rh;rh=hypot(xy.x,xy.y=am1-xy.y);lp.phi=pj_inv_mlfn(am1+m1-rh,P.es,en);if((s=fabs(lp.phi))EPS10){xy.x=rh*sin(E=lp.lam*cos(lp.phi)/rh);xy.y=cphi1-rh*cos(E)}else xy.x=xy.y=0}function s_inv(xy,lp){var rh=hypot(xy.x,xy.y=cphi1-xy.y);lp.phi=cphi1+phi1-rh;if(fabs(lp.phi)>M_HALFPI)i_error();if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10)lp.lam=0;else lp.lam=rh*atan2(xy.x,xy.y)/cos(lp.phi)}}pj_add(pj_cass,"cass","Cassini","\n\tCyl, Sph&Ell");function pj_cass(P){var C1=.16666666666666666,C2=.008333333333333333,C3=.041666666666666664,C4=.3333333333333333,C5=.06666666666666667;var m0,en;if(P.es){en=pj_enfn(P.es);m0=pj_mlfn(P.phi0,sin(P.phi0),cos(P.phi0),en);P.fwd=e_fwd;P.inv=e_inv}else{P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){var n,t,a1,c,a2,tn;xy.y=pj_mlfn(lp.phi,n=sin(lp.phi),c=cos(lp.phi),en);n=1/sqrt(1-P.es*n*n);tn=tan(lp.phi);t=tn*tn;a1=lp.lam*c;c*=P.es*c/(1-P.es);a2=a1*a1;xy.x=n*a1*(1-a2*t*(C1-(8-t+8*c)*a2*C2));xy.y-=m0-n*tn*a2*(.5+(5-t+6*c)*a2*C3)}function e_inv(xy,lp){var n,t,r,dd,d2,tn,ph1;ph1=pj_inv_mlfn(m0+xy.y,P.es,en);tn=tan(ph1);t=tn*tn;n=sin(ph1);r=1/(1-P.es*n*n);n=sqrt(r);r*=(1-P.es)*n;dd=xy.x/n;d2=dd*dd;lp.phi=ph1-n*tn/r*d2*(.5-(1+3*t)*d2*C3);lp.lam=dd*(1+t*d2*(-C4+(1+3*t)*d2*C5))/cos(ph1)}function s_fwd(lp,xy){xy.x=asin(cos(lp.phi)*sin(lp.lam));xy.y=atan2(tan(lp.phi),cos(lp.lam))-P.phi0}function s_inv(xy,lp){var dd=xy.y+P.phi0;lp.phi=asin(sin(dd)*cos(xy.x));lp.lam=atan2(tan(xy.x),cos(dd))}}function pj_authset(es){var P00=.3333333333333333,P01=.17222222222222222,P02=.10257936507936508,P10=.06388888888888888,P11=.0664021164021164,P20=.01677689594356261,APA=[];var t;APA[0]=es*P00;t=es*es;APA[0]+=t*P01;APA[1]=t*P10;t*=es;APA[0]+=t*P02;APA[1]+=t*P11;APA[2]=t*P20;return APA}function pj_authlat(beta,APA){var t=beta+beta;return beta+APA[0]*sin(t)+APA[1]*sin(t+t)+APA[2]*sin(t+t+t)}pj_add(pj_cea,"cea","Equal Area Cylindrical","\n\tCyl, Sph&Ell\n\tlat_ts=");function pj_cea(P){var t=0,qp,apa;if(pj_param(P.params,"tlat_ts")){P.k0=cos(t=pj_param(P.params,"rlat_ts"));if(P.k0<0){e_error(-24)}}if(P.es){t=sin(t);P.k0/=sqrt(1-P.es*t*t);P.e=sqrt(P.es);if(!(apa=pj_authset(P.es)))e_error_0();qp=pj_qsfn(1,P.e,P.one_es);P.fwd=e_fwd;P.inv=e_inv}else{P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){xy.x=P.k0*lp.lam;xy.y=.5*pj_qsfn(sin(lp.phi),P.e,P.one_es)/P.k0}function e_inv(xy,lp){lp.phi=pj_authlat(asin(2*xy.y*P.k0/qp),apa);lp.lam=xy.x/P.k0}function s_fwd(lp,xy){xy.x=P.k0*lp.lam;xy.y=sin(lp.phi)/P.k0}function s_inv(xy,lp){var x=xy.x,y=xy.y;var t;if((t=fabs(y*=P.k0))-EPS10<=1){if(t>=1)lp.phi=y<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(y);lp.lam=x/P.k0}else i_error()}}pj_add(pj_chamb,"chamb","Chamberlin Trimetric","\n\tMisc Sph, no inv.\n\tlat_1= lon_1= lat_2= lon_2= lat_3= lon_3=");function pj_chamb(P){var THIRD=1/3,TOL=1e-9,c=[],x0,y0,v,beta_0,beta_1,beta_2,i,j;for(i=0;i<3;++i){c[i]={p:{}};c[i].phi=pj_param(P.params,"rlat_"+(i+1));c[i].lam=pj_param(P.params,"rlon_"+(i+1));c[i].lam=adjlon(c[i].lam-P.lam0);c[i].cosphi=cos(c[i].phi);c[i].sinphi=sin(c[i].phi)}for(i=0;i<3;++i){j=i==2?0:i+1;c[i].v=vect(c[j].phi-c[i].phi,c[i].cosphi,c[i].sinphi,c[j].cosphi,c[j].sinphi,c[j].lam-c[i].lam);if(!c[i].v.r)e_error(-25)}beta_0=lc(c[0].v.r,c[2].v.r,c[1].v.r);beta_1=lc(c[0].v.r,c[1].v.r,c[2].v.r);beta_2=M_PI-beta_0;y0=2*(c[0].p.y=c[1].p.y=c[2].v.r*sin(beta_0));c[2].p.y=0;c[0].p.x=-(c[1].p.x=.5*c[0].v.r);x0=c[2].p.x=c[0].p.x+c[2].v.r*cos(beta_0);P.es=0;P.fwd=s_fwd;function s_fwd(lp,xy){var sinphi,cosphi,a,i,j,x,y;var v=[];sinphi=sin(lp.phi);cosphi=cos(lp.phi);for(i=0;i<3;++i){v[i]=vect(lp.phi-c[i].phi,c[i].cosphi,c[i].sinphi,cosphi,sinphi,lp.lam-c[i].lam);if(!v[i].r)break;v[i].Az=adjlon(v[i].Az-c[i].v.Az)}if(i<3){x=c[i].p.x;y=c[i].p.y}else{x=x0;y=y0;for(i=0;i<3;++i){j=i==2?0:i+1;a=lc(c[i].v.r,v[i].r,v[j].r);if(v[i].Az<0)a=-a;if(!i){x+=v[i].r*cos(a);y-=v[i].r*sin(a)}else if(i==1){a=beta_1-a;x-=v[i].r*cos(a);y-=v[i].r*sin(a)}else{a=beta_2-a;x+=v[i].r*cos(a);y+=v[i].r*sin(a)}}x*=THIRD;y*=THIRD}xy.x=x;xy.y=y}function vect(dphi,c1,s1,c2,s2,dlam){var v={};var cdl,dp,dl;cdl=cos(dlam);if(fabs(dphi)>1||fabs(dlam)>1)v.r=aacos(cs1*s2+c1*c2*cdl);else{dp=sin(.5*dphi);dl=sin(.5*dlam);v.r=2*aasin(sqrt(dp*dp+c1*c2*dl*dl))}if(fabs(v.r)>TOL)v.Az=atan2(c2*sin(dlam),c1*s2-s1*c2*cdl);else v.r=v.Az=0;return v}function lc(b,c,a){return aacos(.5*(b*b+c*c-a*a)/(b*c))}}pj_add(pj_crast,"crast","Craster Parabolic (Putnins P4)","\n\tPCyl., Sph.");function pj_crast(P){var XM=.9772050238058398;var RXM=1.0233267079464885;var YM=3.0699801238394655;var RYM=.32573500793527993;var THIRD=1/3;P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){lp.phi*=THIRD;xy.x=XM*lp.lam*(2*cos(lp.phi+lp.phi)-1);xy.y=YM*sin(lp.phi)}function s_inv(xy,lp){lp.phi=3*asin(xy.y*RYM);lp.lam=xy.x*RXM/(2*cos((lp.phi+lp.phi)*THIRD)-1)}}pj_add(pj_denoy,"denoy","Denoyer Semi-Elliptical","\n\tPCyl, Sph., no inv.");function pj_denoy(P){P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var C0=.95;var C1=-.08333333333333333;var C3=.0016666666666666666;var D1=.9;var D5=.03;var lam=fabs(lp.lam);xy.y=lp.phi;xy.x=lp.lam;xy.x*=cos((C0+lam*(C1+lam*lam*C3))*(lp.phi*(D1+D5*lp.phi*lp.phi*lp.phi*lp.phi)))}}pj_add(pj_eck1,"eck1","Eckert I","\n\tPCyl Sph");pj_add(pj_eck2,"eck2","Eckert II","\n\tPCyl Sph");pj_add(pj_eck3,"eck3","Eckert III","\n\tPCyl Sph");pj_add(pj_wag6,"wag6","Wagner VI","\n\tPCyl Sph");pj_add(pj_kav7,"kav7","Kavraisky VII","\n\tPCyl Sph");pj_add(pj_putp1,"putp1","Putnins P1","\n\tPCyl Sph");pj_add(pj_eck4,"eck4","Eckert IV","\n\tPCyl Sph");pj_add(pj_eck5,"eck5","Eckert V","\n\tPCyl Sph");function pj_eck1(P){var FC=.9213177319235613,RP=.3183098861837907;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.x=FC*lp.lam*(1-RP*fabs(lp.phi));xy.y=FC*lp.phi}function s_inv(xy,lp){lp.phi=xy.y/FC;lp.lam=xy.x/(FC*(1-RP*fabs(lp.phi)))}}function pj_eck2(P){var FXC=.46065886596178063,FYC=1.4472025091165353,C13=.3333333333333333,ONEEPS=1.0000001;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.x=FXC*lp.lam*(xy.y=sqrt(4-3*sin(fabs(lp.phi))));xy.y=FYC*(2-xy.y);if(lp.phi<0)xy.y=-xy.y}function s_inv(xy,lp){lp.lam=xy.x/(FXC*(lp.phi=2-fabs(xy.y)/FYC));lp.phi=(4-lp.phi*lp.phi)*C13;if(fabs(lp.phi)>=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi);if(xy.y<0)lp.phi=-lp.phi}}function pj_eck3(P){var Q={C_x:.4222382003157712,C_y:.8444764006315424,A:1,B:.4052847345693511};pj_eck3_init(P,Q)}function pj_kav7(P){var Q={C_x:.8660254037844,C_y:1,A:0,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_wag6(P){var Q={C_x:.94745,C_y:.94745,A:0,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_putp1(P){var Q={C_x:1.8949,C_y:.94745,A:-.5,B:.3039635509270133};pj_eck3_init(P,Q)}function pj_eck3_init(P,Q){P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){xy.y=Q.C_y*lp.phi;xy.x=Q.C_x*lp.lam*(Q.A+asqrt(1-Q.B*lp.phi*lp.phi))}function s_inv(xy,lp){lp.phi=xy.y/Q.C_y;lp.lam=xy.x/(Q.C_x*(Q.A+asqrt(1-Q.B*lp.phi*lp.phi)))}}function pj_eck4(P){var C_x=.4222382003157712,C_y=1.3265004281770023,RC_y=.7538633073600218,C_p=3.5707963267948966,RC_p=.2800495767557787,EPS=1e-7,NITER=6;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var p,V,s,c,i;p=C_p*sin(lp.phi);V=lp.phi*lp.phi;lp.phi*=.895168+V*(.0218849+V*.00826809);for(i=NITER;i;--i){c=cos(lp.phi);s=sin(lp.phi);lp.phi-=V=(lp.phi+s*(c+2)-p)/(1+c*(c+2)-s*s);if(fabs(V)=EPS10;if(ellips=P.es>0){m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_mlfn(phi1,sinphi,cosphi,en);if(secant){sinphi=sin(phi2);cosphi=cos(phi2);n=(m1-pj_msfn(sinphi,cosphi,P.es))/(pj_mlfn(phi2,sinphi,cosphi,en)-ml1)}c=ml1+m1/n;rho0=c-pj_mlfn(P.phi0,sin(P.phi0),cos(P.phi0),en)}else{if(secant)n=(cosphi-cos(phi2))/(phi2-phi1);c=phi1+cos(phi1)/n;rho0=c-P.phi0}P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){rho=c-(ellips?pj_mlfn(lp.phi,sin(lp.phi),cos(lp.phi),en):lp.phi);xy.x=rho*sin(lp.lam*=n);xy.y=rho0-rho*cos(lp.lam)}function e_inv(xy,lp){if((rho=hypot(xy.x,xy.y=rho0-xy.y))!=0){if(n<0){rho=-rho;xy.x=-xy.x;xy.y=-xy.y}lp.phi=c-rho;if(ellips)lp.phi=pj_inv_mlfn(lp.phi,P.es,en);lp.lam=atan2(xy.x,xy.y)/n}else{lp.lam=0;lp.phi=n>0?M_HALFPI:-M_HALFPI}}}pj_add(pj_eqearth,"eqearth","Equal Earth","\n\tPCyl., Sph.");function pj_eqearth(P){var A1=1.340264,A2=-.081106,A3=893e-6,A4=.003796,M=Math.sqrt(3)/2;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var paramLat=Math.asin(M*Math.sin(lp.phi)),paramLatSq=paramLat*paramLat,paramLatPow6=paramLatSq*paramLatSq*paramLatSq;xy.x=lp.lam*Math.cos(paramLat)/(M*(A1+3*A2*paramLatSq+paramLatPow6*(7*A3+9*A4*paramLatSq)));xy.y=paramLat*(A1+A2*paramLatSq+paramLatPow6*(A3+A4*paramLatSq))}function s_inv(xy,lp){var EPS=1e-9,NITER=12,paramLat=xy.y,paramLatSq,paramLatPow6,fy,fpy,dlat,i;for(i=0;i0&&zone<=60)--zone;else e_error(-35)}else{zone=floor((adjlon(P.lam0)+M_PI)*30/M_PI);if(zone<0)zone=0;else if(zone>=60)zone=59}P.lam0=(zone+.5)*M_PI/30-M_PI;P.k0=.9996;P.phi0=0;pj_etmerc(P)}function pj_etmerc(P){var cgb=[],cbg=[],utg=[],gtu=[],Qn,Zb,f,n,np,Z;if(P.es<=0)e_error(-34);f=P.es/(1+sqrt(1-P.es));np=n=f/(2-f);cgb[0]=n*(2+n*(-2/3+n*(-2+n*(116/45+n*(26/45+n*(-2854/675))))));cbg[0]=n*(-2+n*(2/3+n*(4/3+n*(-82/45+n*(32/45+n*(4642/4725))))));np*=n;cgb[1]=np*(7/3+n*(-8/5+n*(-227/45+n*(2704/315+n*(2323/945)))));cbg[1]=np*(5/3+n*(-16/15+n*(-13/9+n*(904/315+n*(-1522/945)))));np*=n;cgb[2]=np*(56/15+n*(-136/35+n*(-1262/105+n*(73814/2835))));cbg[2]=np*(-26/15+n*(34/21+n*(8/5+n*(-12686/2835))));np*=n;cgb[3]=np*(4279/630+n*(-332/35+n*(-399572/14175)));cbg[3]=np*(1237/630+n*(-12/5+n*(-24832/14175)));np*=n;cgb[4]=np*(4174/315+n*(-144838/6237));cbg[4]=np*(-734/315+n*(109598/31185));np*=n;cgb[5]=np*(601676/22275);cbg[5]=np*(444337/155925);np=n*n;Qn=P.k0/(1+n)*(1+np*(1/4+np*(1/64+np/256)));utg[0]=n*(-.5+n*(2/3+n*(-37/96+n*(1/360+n*(81/512+n*(-96199/604800))))));gtu[0]=n*(.5+n*(-2/3+n*(5/16+n*(41/180+n*(-127/288+n*(7891/37800))))));utg[1]=np*(-1/48+n*(-1/15+n*(437/1440+n*(-46/105+n*(1118711/3870720)))));gtu[1]=np*(13/48+n*(-3/5+n*(557/1440+n*(281/630+n*(-1983433/1935360)))));np*=n;utg[2]=np*(-17/480+n*(37/840+n*(209/4480+n*(-5569/90720))));gtu[2]=np*(61/240+n*(-103/140+n*(15061/26880+n*(167603/181440))));np*=n;utg[3]=np*(-4397/161280+n*(11/504+n*(830251/7257600)));gtu[3]=np*(49561/161280+n*(-179/168+n*(6601661/7257600)));np*=n;utg[4]=np*(-4583/161280+n*(108847/3991680));gtu[4]=np*(34729/80640+n*(-3418889/1995840));np*=n;utg[5]=np*(-20648693/638668800);gtu[5]=np*(212378941/319334400);Z=gatg(cbg,P.phi0);Zb=-Qn*(Z+clens(gtu,2*Z));P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var sin_Cn,cos_Cn,cos_Ce,sin_Ce,tmp;var Cn=lp.phi,Ce=lp.lam;Cn=gatg(cbg,Cn);sin_Cn=sin(Cn);cos_Cn=cos(Cn);sin_Ce=sin(Ce);cos_Ce=cos(Ce);Cn=atan2(sin_Cn,cos_Ce*cos_Cn);Ce=atan2(sin_Ce*cos_Cn,hypot(sin_Cn,cos_Cn*cos_Ce));Ce=asinhy(tan(Ce));tmp=clenS(gtu,2*Cn,2*Ce);Cn+=tmp[0];Ce+=tmp[1];if(fabs(Ce)<=2.623395162778){xy.y=Qn*Cn+Zb;xy.x=Qn*Ce}else{xy.x=xy.y=HUGE_VAL}}function e_inv(xy,lp){var sin_Cn,cos_Cn,cos_Ce,sin_Ce,tmp;var Cn=xy.y,Ce=xy.x;Cn=(Cn-Zb)/Qn;Ce=Ce/Qn;if(fabs(Ce)<=2.623395162778){tmp=clenS(utg,2*Cn,2*Ce);Cn+=tmp[0];Ce+=tmp[1];Ce=atan(sinh(Ce));sin_Cn=sin(Cn);cos_Cn=cos(Cn);sin_Ce=sin(Ce);cos_Ce=cos(Ce);Ce=atan2(sin_Ce,cos_Ce*cos_Cn);Cn=atan2(sin_Cn*cos_Ce,hypot(sin_Ce,cos_Ce*cos_Cn));lp.phi=gatg(cgb,Cn);lp.lam=Ce}else{lp.phi=lp.lam=HUGE_VAL}}function log1py(x){var y=1+x,z=y-1;return z===0?x:x*log(y)/z}function asinhy(x){var y=fabs(x);y=log1py(y*(1+y/(hypot(1,y)+1)));return x<0?-y:y}function gatg(pp,B){var cos_2B=2*cos(2*B),i=pp.length-1,h1=pp[i],h2=0,h;while(--i>=0){h=-h2+cos_2B*h1+pp[i];h2=h1;h1=h}return B+h*sin(2*B)}function clens(pp,arg_r){var r=2*cos(arg_r),i=pp.length-1,hr1=pp[i],hr2=0,hr;while(--i>=0){hr=-hr2+r*hr1+pp[i];hr2=hr1;hr1=hr}return sin(arg_r)*hr}function clenS(pp,arg_r,arg_i){var sin_arg_r=sin(arg_r),cos_arg_r=cos(arg_r),sinh_arg_i=sinh(arg_i),cosh_arg_i=cosh(arg_i),r=2*cos_arg_r*cosh_arg_i,i=-2*sin_arg_r*sinh_arg_i,j=pp.length-1,hr=pp[j],hi1=0,hr1=0,hi=0,hr2,hi2;while(--j>=0){hr2=hr1;hi2=hi1;hr1=hr;hi1=hi;hr=-hr2+r*hr1-i*hi1+pp[j];hi=-hi2+i*hr1+r*hi1}r=sin_arg_r*cosh_arg_i;i=cos_arg_r*sinh_arg_i;return[r*hr-i*hi,r*hi+i*hr]}}pj_add(pj_gall,"gall","Gall (Gall Stereographic)","\n\tCyl, Sph");function pj_gall(P){var YF=1.7071067811865475,XF=.7071067811865476,RYF=.585786437626905,RXF=1.4142135623730951;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){xy.x=XF*lp.lam;xy.y=YF*tan(.5*lp.phi)}function s_inv(xy,lp){lp.lam=RXF*xy.x;lp.phi=2*atan(xy.y*RYF)}}pj_add(pj_geocent,"geocent","Geocentric","\n\t");function pj_geocent(P){P.is_geocent=true;P.x0=0;P.y0=0;P.fwd=function(lp,xy){xy.x=lp.lam;xy.y=lp.phi};P.inv=function(xy,lp){lp.phi=xy.y;lp.lam=xy.x}}pj_add(pj_gilbert,"gilbert","Gilbert Two World Perspective","\n\tPCyl., Sph., NoInv.\n\tlat_1=");function pj_gilbert(P){var lat1=pj_param(P.params,"tlat_1")?pj_param(P.params,"rlat_1"):0,phi1=phiprime(lat1),sp1=sin(phi1),cp1=cos(phi1);P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var lam=lp.lam*.5,phi=phiprime(lp.phi),sp=sin(phi),cp=cos(phi),cl=cos(lam);if(sp1*sp+cp1*cp*cl>=0){xy.x=cp*sin(lam);xy.y=cp1*sp-sp1*cp*cl}else{f_error()}}function phiprime(phi){return aasin(tan(.5*phi))}}pj_add(pj_gins8,"gins8","Ginsburg VIII (TsNIIGAiK)","\n\tPCyl, Sph., no inv.");function pj_gins8(P){P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var Cl=952426e-9;var Cp=.162388;var C12=.08333333333333333;var t=lp.phi*lp.phi;xy.y=lp.phi*(1+t*C12);xy.x=lp.lam*(1-Cp*t);t=lp.lam*lp.lam;xy.x*=.87-Cl*t*t}}pj_add(pj_gn_sinu,"gn_sinu","General Sinusoidal Series","\n\tPCyl, Sph.\n\tm= n=");pj_add(pj_sinu,"sinu","Sinusoidal (Sanson-Flamsteed)","\n\tPCyl, Sph&Ell");pj_add(pj_eck6,"eck6","Eckert VI","\n\tPCyl, Sph.\n\tm= n=");pj_add(pj_mbtfps,"mbtfps","McBryde-Thomas Flat-Polar Sinusoidal","\n\tPCyl, Sph.");function pj_gn_sinu(P){if(pj_param(P.params,"tn"),pj_param(P.params,"tm")){pj_sinu_init(P,pj_param(P.params,"dm"),pj_param(P.params,"dn"))}else{e_error(-99)}}function pj_sinu(P){var en;if(P.es){en=pj_enfn(P.es);P.fwd=e_fwd;P.inv=e_inv}else{pj_sinu_init(P,0,1)}function e_fwd(lp,xy){var s,c;xy.y=pj_mlfn(lp.phi,s=sin(lp.phi),c=cos(lp.phi),en);xy.x=lp.lam*c/sqrt(1-P.es*s*s)}function e_inv(xy,lp){var s=fabs(lp.phi=pj_inv_mlfn(xy.y,P.es,en));if(s=1)lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI;else lp.phi=asin(lp.phi);y=(cosz-sinph0*sin(lp.phi))*rh;x*=sinz*cosph0;break;case EQUIT:lp.phi=y*sinz/rh;if(fabs(lp.phi)>=1)lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI;else lp.phi=asin(lp.phi);y=cosz*rh;x*=sinz;break;case S_POLE:lp.phi-=M_HALFPI;break;case N_POLE:lp.phi=M_HALFPI-lp.phi;y=-y;break}lp.lam=atan2(x,y)}}}pj_add(pj_moll,"moll","Mollweide","\n\tPCyl Sph");pj_add(pj_wag4,"wag4","Wagner IV","\n\tPCyl Sph");pj_add(pj_wag5,"wag5","Wagner V","\n\tPCyl Sph");function pj_moll(P){pj_moll_init(P,pj_moll_init_Q(P,M_HALFPI))}function pj_wag4(P){pj_moll_init(P,pj_moll_init_Q(P,M_PI/3))}function pj_wag5(P){var Q={C_x:.90977,C_y:1.65014,C_p:3.00896};pj_moll_init(P,Q)}function pj_moll_init_Q(P,p){var sp=sin(p),p2=p+p,r=sqrt(M_TWOPI*sp/(p2+sin(p2)));return{C_x:2*r/M_PI,C_y:r/sp,C_p:p2+sin(p2)}}function pj_moll_init(P,Q){var MAX_ITER=10,LOOP_TOL=1e-7;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var k,V,i;k=Q.C_p*sin(lp.phi);for(i=MAX_ITER;i;--i){lp.phi-=V=(lp.phi+sin(lp.phi)-k)/(1+cos(lp.phi));if(fabs(V)0?Y_COR:-Y_COR}};P.inv=function(xy,lp){if(fabs(xy.y)<=PHI_LIM){sinuInv(xy,lp)}else{xy.y+=xy.y>0?Y_COR:-Y_COR;mollInv(xy,lp)}}}pj_add(pj_hammer,"hammer","Hammer & Eckert-Greifendorff","\n\tMisc Sph, \n\tW= M=");function pj_hammer(P){var w,m,rm;var EPS=1e-10;P.inv=s_inv;P.fwd=s_fwd;P.es=0;if(pj_param(P.params,"tW")){if((w=fabs(pj_param(P.params,"dW")))<=0)e_error(-27)}else w=.5;if(pj_param(P.params,"tM")){if((m=fabs(pj_param(P.params,"dM")))<=0)e_error(-27)}else m=1;rm=1/m;m/=w;function s_fwd(lp,xy){var cosphi,d;d=sqrt(2/(1+(cosphi=cos(lp.phi))*cos(lp.lam*=w)));xy.x=m*d*cosphi*sin(lp.lam);xy.y=rm*d*sin(lp.phi)}function s_inv(xy,lp){var z=sqrt(1-.25*w*w*xy.x*xy.x-.25*xy.y*xy.y);if(fabs(2*z*z-1)1){if(fabs(th)>ONETOL){i_error()}else{th=th>0?M_HALFPI:-M_HALFPI}}else{th=asin(th)}lp.lam=RXC*xy.x/cos(th);th+=th;lp.phi=(th+sin(th))*(xy.y<0?RCS:RCN);if(fabs(lp.phi)>1){if(fabs(lp.phi)>ONETOL){i_error()}else{lp.phi=lp.phi>0?M_HALFPI:-M_HALFPI}}else{lp.phi=asin(lp.phi)}}}pj_add(pj_healpix,"healpix","HEALPix","\n\tSph., Ellps.");pj_add(pj_rhealpix,"rhealpix","rHEALPix","\n\tSph., Ellps.\n\tnorth_square= south_square=");function pj_rhealpix(P){pj_healpix(P,true)}function pj_healpix(P,rhealpix){var R1=[[0,-1],[1,0]];var R2=[[-1,0],[0,-1]];var R3=[[0,1],[-1,0]];var IDENT=[[1,0],[0,1]];var rot=[IDENT,R1,R2,R3,R3,R2,R1];var EPS=1e-15;var north_square;var south_square;var qp;var apa;var vertsJit;if(rhealpix){north_square=pj_param(P.params,"inorth_square");south_square=pj_param(P.params,"isouth_square");if(north_square<0||north_square>3){e_error(-47)}if(south_square<0||south_square>3){e_error(-47)}vertsJit=[[-M_PI-EPS,M_FORTPI+EPS],[-M_PI+north_square*M_HALFPI-EPS,M_FORTPI+EPS],[-M_PI+north_square*M_HALFPI-EPS,3*M_FORTPI+EPS],[-M_PI+(north_square+1)*M_HALFPI+EPS,3*M_FORTPI+EPS],[-M_PI+(north_square+1)*M_HALFPI+EPS,M_FORTPI+EPS],[M_PI+EPS,M_FORTPI+EPS],[M_PI+EPS,-M_FORTPI-EPS],[-M_PI+(south_square+1)*M_HALFPI+EPS,-M_FORTPI-EPS],[-M_PI+(south_square+1)*M_HALFPI+EPS,-3*M_FORTPI-EPS],[-M_PI+south_square*M_HALFPI-EPS,-3*M_FORTPI-EPS],[-M_PI+south_square*M_HALFPI-EPS,-M_FORTPI-EPS],[-M_PI-EPS,-M_FORTPI-EPS]];if(P.es!=0){apa=pj_authset(P.es);qp=pj_qsfn(1,P.e,P.one_es);P.a=P.a*sqrt(.5*qp);P.ra=1/P.a;P.fwd=e_rhealpix_forward;P.inv=e_rhealpix_inverse}else{P.fwd=s_rhealpix_forward;P.inv=s_rhealpix_inverse}}else{vertsJit=[[-M_PI-EPS,M_FORTPI],[-3*M_FORTPI,M_HALFPI+EPS],[-M_HALFPI,M_FORTPI+EPS],[-M_FORTPI,M_HALFPI+EPS],[0,M_FORTPI+EPS],[M_FORTPI,M_HALFPI+EPS],[M_HALFPI,M_FORTPI+EPS],[3*M_FORTPI,M_HALFPI+EPS],[M_PI+EPS,M_FORTPI],[M_PI+EPS,-M_FORTPI],[3*M_FORTPI,-M_HALFPI-EPS],[M_HALFPI,-M_FORTPI-EPS],[M_FORTPI,-M_HALFPI-EPS],[0,-M_FORTPI-EPS],[-M_FORTPI,-M_HALFPI-EPS],[-M_HALFPI,-M_FORTPI-EPS],[-3*M_FORTPI,-M_HALFPI-EPS],[-M_PI-EPS,-M_FORTPI]];if(P.es!=0){apa=pj_authset(P.es);qp=pj_qsfn(1,P.e,P.one_es);P.a=P.a*sqrt(.5*qp);P.ra=1/P.a;P.fwd=e_healpix_forward;P.inv=e_healpix_inverse}else{P.fwd=s_healpix_forward;P.inv=s_healpix_inverse}}function s_healpix_forward(lp,xy){healpix_sphere(lp,xy)}function e_healpix_forward(lp,xy){lp.phi=auth_lat(P,lp.phi,0);healpix_sphere(lp,xy)}function s_healpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}healpix_sphere_inverse(xy,lp)}function e_healpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}healpix_sphere_inverse(xy,lp);lp.phi=auth_lat(P,lp.phi,1)}function s_rhealpix_forward(lp,xy){healpix_sphere(lp,xy);combine_caps(xy,north_square,south_square,0)}function e_rhealpix_forward(lp,xy){lp.phi=auth_lat(P,lp.phi,0);healpix_sphere(lp,xy);return combine_caps(xy,north_square,south_square,0)}function s_rhealpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}combine_caps(xy,north_square,south_square,1);healpix_sphere_inverse(xy,lp)}function e_rhealpix_inverse(xy,lp){if(!in_image(xy.x,xy.y)){lp.lam=HUGE_VAL;lp.phi=HUGE_VAL;pj_ctx_set_errno(-15);return}combine_caps(xy,north_square,south_square,1);healpix_sphere_inverse(xy,lp);lp.phi=auth_lat(P,lp.phi,1)}function healpix_sphere(lp,xy){var lam=lp.lam;var phi=lp.phi;var phi0=asin(2/3);if(fabs(phi)<=phi0){xy.x=lam;xy.y=3*M_PI/8*sin(phi)}else{var lamc;var sigma=sqrt(3*(1-fabs(sin(phi))));var cn=floor(2*lam/M_PI+2);if(cn>=4){cn=3}lamc=-3*M_FORTPI+M_HALFPI*cn;xy.x=lamc+(lam-lamc)*sigma;xy.y=pj_sign(phi)*M_FORTPI*(2-sigma)}}function healpix_sphere_inverse(xy,lp){var x=xy.x;var y=xy.y;var y0=M_FORTPI;if(fabs(y)<=y0){lp.lam=x;lp.phi=asin(8*y/(3*M_PI))}else if(fabs(y)=4){cn=3}xc=-3*M_FORTPI+M_HALFPI*cn;tau=2-4*fabs(y)/M_PI;lp.lam=xc+(x-xc)/tau;lp.phi=pj_sign(y)*asin(1-pow(tau,2)/3)}else{lp.lam=-M_PI;lp.phi=pj_sign(y)*M_HALFPI}}function pj_sign(v){return v>0?1:v<0?-1:0}function get_rotate_index(index){switch(index){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case-1:return 4;case-2:return 5;case-3:return 6}return 0}function pnpoly(vert,testx,testy){var counter=0;var nvert=vert.length;var x1,y1,x2,y2;var xinters;var i;for(i=0;iMIN(y1,y2)&&testy<=MAX(y1,y2)&&testx<=MAX(x1,x2)&&y1!=y2){xinters=(testy-y1)*(x2-x1)/(y2-y1)+x1;if(x1==x2||testx<=xinters)counter++}x1=x2;y1=y2}return counter%2!=0}function in_image(x,y){return pnpoly(vertsJit,x,y)}function auth_lat(P,alpha,inverse){if(!inverse){var q=pj_qsfn(sin(alpha),P.e,1-P.es);var ratio=q/qp;if(fabs(ratio)>1){ratio=pj_sign(ratio)}return asin(ratio)}else{return pj_authlat(alpha,apa)}}function vector_add(a,b){return[a[0]+b[0],a[1]+b[1]]}function vector_sub(a,b){return[a[0]-b[0],a[1]-b[1]]}function dot_product(a,b){var i,j;var ret=[0,0];for(i=0;i<2;i++){for(j=0;j<2;j++){ret[i]+=a[i][j]*b[j]}}return ret}function get_cap(x,y,north_square,south_square,inverse){var capmap={};var c;capmap.x=x;capmap.y=y;if(!inverse){if(y>M_FORTPI){capmap.region="north";c=M_HALFPI}else if(y<-M_FORTPI){capmap.region="south";c=-M_HALFPI}else{capmap.region="equatorial";capmap.cn=0;return capmap}if(x<-M_HALFPI){capmap.cn=0;capmap.x=-3*M_FORTPI;capmap.y=c}else if(x>=-M_HALFPI&&x<0){capmap.cn=1;capmap.x=-M_FORTPI;capmap.y=c}else if(x>=0&&xM_FORTPI){capmap.region="north";capmap.x=-3*M_FORTPI+north_square*M_HALFPI;capmap.y=M_HALFPI;x=x-north_square*M_HALFPI}else if(y<-M_FORTPI){capmap.region="south";capmap.x=-3*M_FORTPI+south_square*M_HALFPI;capmap.y=-M_HALFPI;x=x-south_square*M_HALFPI}else{capmap.region="equatorial";capmap.cn=0;return capmap}if(capmap.region=="north"){if(y>=-x-M_FORTPI-EPS&&y-x-M_FORTPI+EPS&&y>=x+5*M_FORTPI-EPS){capmap.cn=(north_square+2)%4}else if(y<=-x-M_FORTPI+EPS&&y>x+5*M_FORTPI+EPS){capmap.cn=(north_square+3)%4}else{capmap.cn=north_square}}else if(capmap.region=="south"){if(y<=x+M_FORTPI+EPS&&y>-x-5*M_FORTPI+EPS){capmap.cn=(south_square+1)%4}else if(y=x+M_FORTPI-EPS&&y<-x-5*M_FORTPI-EPS){capmap.cn=(south_square+3)%4}else{capmap.cn=south_square}}}return capmap}function combine_caps(xy,north_square,south_square,inverse){var v,c,vector,v_min_c,ret_dot,tmpRot,a;var pole=0;var capmap=get_cap(xy.x,xy.y,north_square,south_square,inverse);if(capmap.region=="equatorial"){xy.x=capmap.x;xy.y=capmap.y;return}v=[xy.x,xy.y];c=[capmap.x,capmap.y];if(!inverse){if(capmap.region=="north"){pole=north_square;tmpRot=rot[get_rotate_index(capmap.cn-pole)]}else{pole=south_square;tmpRot=rot[get_rotate_index(-1*(capmap.cn-pole))]}}else{if(capmap.region=="north"){pole=north_square;tmpRot=rot[get_rotate_index(-1*(capmap.cn-pole))]}else{pole=south_square;tmpRot=rot[get_rotate_index(capmap.cn-pole)]}}v_min_c=vector_sub(v,c);ret_dot=dot_product(tmpRot,v_min_c);a=[-3*M_FORTPI+(!inverse?0:capmap.cn)*M_HALFPI,M_HALFPI];vector=vector_add(ret_dot,a);xy.x=vector[0];xy.y=vector[1]}}pj_add(pj_krovak,"krovak","Krovak","\n\tPCyl., Ellps.");function pj_krovak(P){var u0,n0,g;var alpha,k,n,rho0,ad,czech;var EPS=1e-15;var S45=.785398163397448;var S90=1.570796326794896;var UQ=1.04216856380474;var S0=1.37008346281555;P.a=6377397.155;P.e=sqrt(P.es=.006674372230614);if(!pj_param(P.params,"tlat_0"))P.phi0=.863937979737193;if(!pj_param(P.params,"tlon_0"))P.lam0=.7417649320975901-.308341501185665;if(!pj_param(P.params,"tk"))P.k0=.9999;czech=1;if(!pj_param(P.params,"tczech"))czech=-1;alpha=sqrt(1+P.es*pow(cos(P.phi0),4)/(1-P.es));u0=asin(sin(P.phi0)/alpha);g=pow((1+P.e*sin(P.phi0))/(1-P.e*sin(P.phi0)),alpha*P.e/2);k=tan(u0/2+S45)/pow(tan(P.phi0/2+S45),alpha)*g;n0=sqrt(1-P.es)/(1-P.es*pow(sin(P.phi0),2));n=sin(S0);rho0=P.k0*n0/tan(S0);ad=S90-UQ;P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var gfi,u,deltav,s,d,eps,rho;gfi=pow((1+P.e*sin(lp.phi))/(1-P.e*sin(lp.phi)),alpha*P.e/2);u=2*(atan(k*pow(tan(lp.phi/2+S45),alpha)/gfi)-S45);deltav=-lp.lam*alpha;s=asin(cos(ad)*sin(u)+sin(ad)*cos(u)*cos(deltav));d=asin(cos(u)*sin(deltav)/cos(s));eps=n*d;rho=rho0*pow(tan(S0/2+S45),n)/pow(tan(s/2+S45),n);xy.y=rho*cos(eps);xy.x=rho*sin(eps);xy.y*=czech;xy.x*=czech}function e_inv(xy,lp){var u,deltav,s,d,eps,rho,fi1,xy0;var ok;xy0=xy.x;xy.x=xy.y;xy.y=xy0;xy.x*=czech;xy.y*=czech;rho=sqrt(xy.x*xy.x+xy.y*xy.y);eps=atan2(xy.y,xy.x);d=eps/sin(S0);s=2*(atan(pow(rho0/rho,1/n)*tan(S0/2+S45))-S45);u=asin(cos(ad)*sin(s)-sin(ad)*cos(s)*cos(d));deltav=asin(cos(s)*sin(d)/cos(u));lp.lam=P.lam0-deltav/alpha;fi1=u;ok=0;do{lp.phi=2*(atan(pow(k,-1/alpha)*pow(tan(u/2+S45),1/alpha)*pow((1+P.e*sin(fi1))/(1-P.e*sin(fi1)),P.e/2))-S45);if(fabs(fi1-lp.phi)=0){b=sqrt(q);xy.x=b*sinlam;xy.y=coslam*(mode==S_POLE?b:-b)}else xy.x=xy.y=0;break}}function e_inv(xy,lp){var cCe,sCe,q,rho,ab=0;switch(mode){case EQUIT:case OBLIQ:xy.x/=dd;xy.y*=dd;rho=hypot(xy.x,xy.y);if(rho1)i_error();lp.phi=2*asin(lp.phi);if(mode==OBLIQ||mode==EQUIT){sinz=sin(lp.phi);cosz=cos(lp.phi)}switch(mode){case EQUIT:lp.phi=fabs(rh)<=EPS10?0:asin(xy.y*sinz/rh);xy.x*=sinz;xy.y=cosz*rh;break;case OBLIQ:lp.phi=fabs(rh)<=EPS10?P.phi0:asin(cosz*sinb1+xy.y*sinz*cosb1/rh);xy.x*=sinz*cosb1;xy.y=(cosz-sin(lp.phi)*sinb1)*rh;break;case N_POLE:xy.y=-xy.y;lp.phi=M_HALFPI-lp.phi;break;case S_POLE:lp.phi-=M_HALFPI;break}lp.lam=xy.y==0&&(mode==EQUIT||mode==OBLIQ)?0:atan2(xy.x,xy.y)}}pj_add(pj_lonlat,"lonlat","Lat/long (Geodetic)","\n\t");pj_add(pj_lonlat,"longlat","Lat/long (Geodetic alias)","\n\t");pj_add(pj_lonlat,"latlon","Lat/long (Geodetic alias)","\n\t");pj_add(pj_lonlat,"latlong","Lat/long (Geodetic alias)","\n\t");function pj_lonlat(P){P.x0=0;P.y0=0;P.is_latlong=true;P.fwd=function(lp,xy){xy.x=lp.lam/P.a;xy.y=lp.phi/P.a};P.inv=function(xy,lp){lp.lam=xy.x*P.a;lp.phi=xy.y*P.a}}function pj_tsfn(phi,sinphi,e){sinphi*=e;return tan(.5*(M_HALFPI-phi))/pow((1-sinphi)/(1+sinphi),.5*e)}pj_add(pj_lcc,"lcc","Lambert Conformal Conic","\n\tConic, Sph&Ell\n\tlat_1= and lat_2= or lat_0=");function pj_lcc(P){var EPS10=1e-10;var cosphi,sinphi,secant;var phi1,phi2,n,rho0,c,ellips,ml1,m1;P.inv=e_inv;P.fwd=e_fwd;phi1=pj_param(P.params,"rlat_1");if(pj_param(P.params,"tlat_2"))phi2=pj_param(P.params,"rlat_2");else{phi2=phi1;if(!pj_param(P.params,"tlat_0"))P.phi0=phi1}if(fabs(phi1+phi2)=EPS10;if(ellips=P.es!=0){P.e=sqrt(P.es);m1=pj_msfn(sinphi,cosphi,P.es);ml1=pj_tsfn(phi1,sinphi,P.e);if(secant){sinphi=sin(phi2);n=log(m1/pj_msfn(sinphi,cos(phi2),P.es));n/=log(ml1/pj_tsfn(phi2,sinphi,P.e))}c=rho0=m1*pow(ml1,-n)/n;rho0*=fabs(fabs(P.phi0)-M_HALFPI)0?M_HALFPI:-M_HALFPI}}}pj_add(pj_loxim,"loxim","Loximuthal","\n\tPCyl Sph");function pj_loxim(P){var EPS=1e-8;var phi1,cosphi1,tanphi1;phi1=pj_param(P.params,"rlat_1");cosphi1=cos(phi1);tanphi1=tan(M_FORTPI+.5*phi1);if(cosphi1=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi);lp.lam=xy.x/(FXC*(2*cos(C23*(lp.phi*=3))-1));if(fabs(lp.phi=sin(lp.phi)/CS)>=1){if(fabs(lp.phi)>ONEEPS)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI}else lp.phi=asin(lp.phi)}}pj_add(pj_mbt_fpq,"mbt_fpq","McBryde-Thomas Flat-Polar Quartic","\n\tCyl., Sph.");function pj_mbt_fpq(P){var NITER=20,EPS=1e-7,ONETOL=1.000001,C=1.7071067811865475,RC=.585786437626905,FYC=1.874758284622695,RYC=.533402096794177,FXC=.3124597141037825,RXC=3.2004125807650623;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var th1,c,i;c=C*sin(lp.phi);for(i=NITER;i;--i){lp.phi-=th1=(sin(.5*lp.phi)+sin(lp.phi)-c)/(.5*cos(.5*lp.phi)+cos(lp.phi));if(fabs(th1)1){if(fabs(lp.phi)>ONETOL)i_error();else if(lp.phi<0){t=-1;lp.phi=-M_PI}else{t=1;lp.phi=M_PI}}else lp.phi=2*asin(t=lp.phi);lp.lam=RXC*xy.x/(1+2*cos(lp.phi)/cos(.5*lp.phi));lp.phi=RC*(t+sin(lp.phi));if(fabs(lp.phi)>1)if(fabs(lp.phi)>ONETOL)i_error();else lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(lp.phi)}}pj_add(pj_mbt_fps,"mbt_fps","McBryde-Thomas Flat-Pole Sine (No. 2)","\n\tCyl., Sph.");function pj_mbt_fps(P){var MAX_ITER=10,LOOP_TOL=1e-7,C1=.45503,C2=1.36509,C3=1.41546,C_x=.22248,C_y=1.44492,C1_2=1/3;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var k,V,t,i;k=C3*sin(lp.phi);for(i=MAX_ITER;i;--i){t=lp.phi/C2;lp.phi-=V=(C1*sin(t)+sin(lp.phi)-k)/(C1_2*cos(t)+cos(lp.phi));if(fabs(V)TOL&&--i);if(i<=0){pj_ctx_set_errno(-18)}return Phi}pj_add(pj_merc,"merc","Mercator","\n\tCyl, Sph&Ell\n\tlat_ts=");function pj_merc(P){var EPS10=1e-10;var phits=0;var is_phits=pj_param(P.params,"tlat_ts");if(is_phits){phits=pj_param(P.params,"rlat_ts");if(phits>=M_HALFPI){e_error(-24)}}if(P.es){if(is_phits){P.k0=pj_msfn(sin(phits),cos(phits),P.es)}P.inv=e_inv;P.fwd=e_fwd}else{P.inv=s_inv;P.fwd=s_fwd}function e_fwd(lp,xy){if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10){f_error()}xy.x=P.k0*lp.lam;xy.y=-P.k0*log(pj_tsfn(lp.phi,sin(lp.phi),P.e))}function e_inv(xy,lp){lp.phi=pj_phi2(exp(-xy.y/P.k0),P.e);if(lp.phi===HUGE_VAL){i_error()}lp.lam=xy.x/P.k0}function s_fwd(lp,xy){if(fabs(fabs(lp.phi)-M_HALFPI)<=EPS10){f_error()}xy.x=P.k0*lp.lam;xy.y=P.k0*log(tan(M_FORTPI+.5*lp.phi))}function s_inv(xy,lp){lp.phi=M_HALFPI-2*atan(exp(-xy.y/P.k0));lp.lam=xy.x/P.k0}}pj_add(pj_mill,"mill","Miller Cylindrical","\n\tCyl, Sph");function pj_mill(P){P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){xy.x=lp.lam;xy.y=log(tan(M_FORTPI+lp.phi*.4))*1.25}function s_inv(xy,lp){lp.lam=xy.x;lp.phi=2.5*(atan(exp(.8*xy.y))-M_FORTPI)}}function pj_zpoly1(z,C){var t,r,i;var n=C.length-1;r=C[n][0];i=C[n][1];while(--n>=0){t=r;r=C[n][0]+z.r*t-z.i*i;i=C[n][1]+z.r*i+z.i*t}return{r:z.r*r-z.i*i,i:z.r*i+z.i*r}}function pj_zpolyd1(z,C,der){var ai,ar,bi,br,t;var first=true;var n=C.length-1;ar=br=C[n][0];ai=bi=C[n][1];while(--n>=0){if(first){first=false}else{br=ar+z.r*(t=br)-z.i*bi;bi=ai+z.r*bi+z.i*t}ar=C[n][0]+z.r*(t=ar)-z.i*ai;ai=C[n][1]+z.r*ai+z.i*t}der.r=ar+z.r*br-z.i*bi;der.i=ai+z.r*bi+z.i*br;return{r:z.r*ar-z.i*ai,i:z.r*ai+z.i*ar}}pj_add(pj_mil_os,"mil_os","Miller Oblated Stereographic","\n\tAzi(mod)");pj_add(pj_lee_os,"lee_os","Lee Oblated Stereographic","\n\tAzi(mod)");pj_add(pj_gs48,"gs48","Mod Stereographic of 48 U.S.","\n\tAzi(mod)");pj_add(pj_alsk,"alsk","Mod Stereographic of Alaska","\n\tAzi(mod)");pj_add(pj_gs50,"gs50","Mod Stereographic of 50 U.S.","\n\tAzi(mod)");function pj_mil_os(P){var AB=[[.9245,0],[0,0],[.01943,0]];P.lam0=DEG_TO_RAD*20;P.phi0=DEG_TO_RAD*18;P.es=0;pj_mod_ster(P,AB)}function pj_lee_os(P){var AB=[[.721316,0],[0,0],[-.0088162,-.00617325]];P.lam0=DEG_TO_RAD*-165;P.phi0=DEG_TO_RAD*-10;P.es=0;pj_mod_ster(P,AB)}function pj_gs48(P){var AB=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]];P.lam0=DEG_TO_RAD*-96;P.phi0=DEG_TO_RAD*39;P.es=0;P.a=6370997;pj_mod_ster(P,AB)}function pj_alsk(P){var ABe=[[.9945303,0],[.0052083,-.0027404],[.0072721,.0048181],[-.0151089,-.1932526],[.0642675,-.1381226],[.3582802,-.2884586]];var ABs=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]];var AB;P.lam0=DEG_TO_RAD*-152;P.phi0=DEG_TO_RAD*64;if(P.es!=0){AB=ABe;P.a=6378206.4;P.e=sqrt(P.es=.00676866)}else{AB=ABs;P.a=6370997}pj_mod_ster(P,AB)}function pj_gs50(P){var ABe=[[.9827497,0],[.0210669,.0053804],[-.1031415,-.0571664],[-.0323337,-.0322847],[.0502303,.1211983],[.0251805,.0895678],[-.0012315,-.1416121],[.0072202,-.1317091],[-.0194029,.0759677],[-.0210072,.0834037]];var ABs=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]];var AB;P.lam0=DEG_TO_RAD*-120;P.phi0=DEG_TO_RAD*45;if(P.es!=0){AB=ABe;P.a=6378206.4;P.e=sqrt(P.es=.00676866)}else{AB=ABs;P.a=6370997}pj_mod_ster(P,AB)}function pj_mod_ster(P,zcoeff){var EPSLN=1e-12;var esphi,chio;var cchio,schio;if(P.es!=0){esphi=P.e*sin(P.phi0);chio=2*atan(tan((M_HALFPI+P.phi0)*.5)*pow((1-esphi)/(1+esphi),P.e*.5))-M_HALFPI}else chio=P.phi0;schio=sin(chio);cchio=cos(chio);P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var sinlon,coslon,esphi,chi,schi,cchi,s;var p={};sinlon=sin(lp.lam);coslon=cos(lp.lam);esphi=P.e*sin(lp.phi);chi=2*atan(tan((M_HALFPI+lp.phi)*.5)*pow((1-esphi)/(1+esphi),P.e*.5))-M_HALFPI;schi=sin(chi);cchi=cos(chi);s=2/(1+schio*schi+cchio*cchi*coslon);p.r=s*cchi*sinlon;p.i=s*(cchio*schi-schio*cchi*coslon);p=pj_zpoly1(p,zcoeff);xy.x=p.r;xy.y=p.i}function e_inv(xy,lp){var nn;var p={},fxy,fpxy={},dp={};var den,rh=0,z,sinz=0,cosz=0,chi,phi=0,esphi;var dphi;p.r=xy.x;p.i=xy.y;for(nn=20;nn;--nn){fxy=pj_zpolyd1(p,zcoeff,fpxy);fxy.r-=xy.x;fxy.i-=xy.y;den=fpxy.r*fpxy.r+fpxy.i*fpxy.i;dp.r=-(fxy.r*fpxy.r+fxy.i*fpxy.i)/den;dp.i=-(fxy.i*fpxy.r-fxy.r*fpxy.i)/den;p.r+=dp.r;p.i+=dp.i;if(fabs(dp.r)+fabs(dp.i)<=EPSLN)break}if(nn){rh=hypot(p.r,p.i);z=2*atan(.5*rh);sinz=sin(z);cosz=cos(z);lp.lam=P.lam0;if(fabs(rh)<=EPSLN){lp.lam=0;lp.phi=P.phi0;return}chi=aasin(cosz*schio+p.i*sinz*cchio/rh);phi=chi;for(nn=20;nn;--nn){esphi=P.e*sin(phi);dphi=2*atan(tan((M_HALFPI+chi)*.5)*pow((1+esphi)/(1-esphi),P.e*.5))-M_HALFPI-phi;phi+=dphi;if(fabs(dphi)<=EPSLN)break}}if(nn){lp.phi=phi;lp.lam=atan2(p.r*sinz,rh*cchio*cosz-p.i*schio*sinz)}else lp.lam=lp.phi=HUGE_VAL}}pj_add(pj_natearth,"natearth","Natural Earth","\n\tPCyl., Sph.");pj_add(pj_natearth2,"natearth2","Natural Earth 2","\n\tPCyl., Sph.");function pj_natearth(P){var A0=.8707,A1=-.131979,A2=-.013791,A3=.003971,A4=-.001529,B0=1.007226,B1=.015085,B2=-.044475,B3=.028874,B4=-.005916,C0=B0,C1=3*B1,C2=7*B2,C3=9*B3,C4=11*B4,EPS=1e-11,MAX_Y=.8707*.52*M_PI;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var phi2,phi4;phi2=lp.phi*lp.phi;phi4=phi2*phi2;xy.x=lp.lam*(A0+phi2*(A1+phi2*(A2+phi4*phi2*(A3+phi2*A4))));xy.y=lp.phi*(B0+phi2*(B1+phi4*(B2+B3*phi2+B4*phi4)))}function s_inv(xy,lp){var x=xy.x,y=xy.y;var yc,tol,y2,y4,f,fder;if(y>MAX_Y){y=MAX_Y}else if(y<-MAX_Y){y=-MAX_Y}yc=y;for(;;){y2=yc*yc;y4=y2*y2;f=yc*(B0+y2*(B1+y4*(B2+B3*y2+B4*y4)))-y;fder=C0+y2*(C1+y4*(C2+C3*y2+C4*y4));yc-=tol=f/fder;if(fabs(tol)MAX_Y){y=MAX_Y}else if(y<-MAX_Y){y=-MAX_Y}yc=y;for(;;){y2=yc*yc;y4=y2*y2;f=yc*(B0+y4*y4*(B1+B2*y2+B3*y4))-y;fder=C0+y4*y4*(C1+C2*y2+C3*y4);yc-=tol=f/fder;if(fabs(tol)0;--i){c=cos(.5*lp.phi);lp.phi-=V=(lp.phi-tan(lp.phi/2)-p)/(1-.5/(c*c));if(fabs(V)=0;--i)p.r=tpsi[i]+phi*p.r;p.r*=phi;p.i=lp.lam;p=pj_zpoly1(p,bf);xy.x=p.i;xy.y=p.r}function e_inv(xy,lp){var nn,i,dr,di,f,den;var p={r:xy.y,i:xy.x};var fp={};for(nn=20;nn>0;--nn){f=pj_zpolyd1(p,bf,fp);f.r-=xy.y;f.i-=xy.x;den=fp.r*fp.r+fp.i*fp.i;p.r+=dr=-(f.r*fp.r+f.i*fp.i)/den;p.i+=di=-(f.i*fp.r-f.r*fp.i)/den;if(fabs(dr)+fabs(di)<=EPSLN)break}if(nn>0){lp.lam=p.i;i=tphi.length-1;lp.phi=tphi[i];for(--i;i>=0;--i)lp.phi=tphi[i]+p.r*lp.phi;lp.phi=P.phi0+p.r*lp.phi*SEC5_TO_RAD}else lp.lam=lp.phi=HUGE_VAL}}pj_add(pj_ob_tran,"ob_tran","General Oblique Transformation","\n\tMisc Sph"+"\n\to_proj= plus parameters for projection"+"\n\to_lat_p= o_lon_p= (new pole) or"+"\n\to_alpha= o_lon_c= o_lat_c= or"+"\n\to_lon_1= o_lat_1= o_lon_2= o_lat_2=");function pj_ob_tran(P){var name,defn,P2;var lamp,cphip,sphip,phip;var lamc,phic,alpha;var lam1,lam2,phi1,phi2,con;var TOL=1e-10;name=pj_param(P.params,"so_proj");defn=pj_list[name];if(!name)e_error(-26);if(!defn||name=="ob_tran")e_error(-37);P.es=0;P2={};Object.keys(P).forEach(function(key){P2[key]=P[key]});defn.init(P2);if(P2.is_latlong&&P.to_meter==1){P.to_meter=DEG_TO_RAD;P.fr_meter=RAD_TO_DEG}if(pj_param(P.params,"to_alpha")){lamc=pj_param(P.params,"ro_lon_c");phic=pj_param(P.params,"ro_lat_c");alpha=pj_param(P.params,"ro_alpha");if(fabs(fabs(phic)-M_HALFPI)<=TOL)e_error(-32);lamp=lamc+aatan2(-cos(alpha),-sin(alpha)*sin(phic));phip=aasin(cos(phic)*sin(alpha))}else if(pj_param(P.params,"to_lat_p")){lamp=pj_param(P.params,"ro_lon_p");phip=pj_param(P.params,"ro_lat_p")}else{lam1=pj_param(P.params,"ro_lon_1");phi1=pj_param(P.params,"ro_lat_1");lam2=pj_param(P.params,"ro_lon_2");phi2=pj_param(P.params,"ro_lat_2");if(fabs(phi1-phi2)<=TOL||(con=fabs(phi1))<=TOL||fabs(con-M_HALFPI)<=TOL||fabs(fabs(phi2)-M_HALFPI)<=TOL)e_error(-33);lamp=atan2(cos(phi1)*sin(phi2)*cos(lam1)-sin(phi1)*cos(phi2)*cos(lam2),sin(phi1)*cos(phi2)*sin(lam2)-cos(phi1)*sin(phi2)*sin(lam1));phip=atan(-cos(lamp-lam1)/tan(phi1))}if(fabs(phip)>TOL){cphip=cos(phip);sphip=sin(phip);P.fwd=o_fwd;P.inv=P2.inv?o_inv:null}else{P.fwd=t_fwd;P.inv=P2.inv?t_inv:null}function o_fwd(lp,xy){var coslam,sinphi,cosphi;coslam=cos(lp.lam);sinphi=sin(lp.phi);cosphi=cos(lp.phi);lp.lam=adjlon(aatan2(cosphi*sin(lp.lam),sphip*cosphi*coslam+cphip*sinphi)+lamp);lp.phi=aasin(sphip*sinphi-cphip*cosphi*coslam);P2.fwd(lp,xy)}function t_fwd(lp,xy){var cosphi,coslam;cosphi=cos(lp.phi);coslam=cos(lp.lam);lp.lam=adjlon(aatan2(cosphi*sin(lp.lam),sin(lp.phi))+lamp);lp.phi=aasin(-cosphi*coslam);P2.fwd(lp,xy)}function o_inv(xy,lp){var coslam,sinphi,cosphi;P2.inv(xy,lp);if(lp.lam!=HUGE_VAL){coslam=cos(lp.lam-=lamp);sinphi=sin(lp.phi);cosphi=cos(lp.phi);lp.phi=aasin(sphip*sinphi+cphip*cosphi*coslam);lp.lam=aatan2(cosphi*sin(lp.lam),sphip*cosphi*coslam-cphip*sinphi)}}function t_inv(xy,lp){var cosphi,t;P2.inv(xy,lp);if(lp.lam!=HUGE_VAL){cosphi=cos(lp.phi);t=lp.lam-lamp;lp.lam=aatan2(cosphi*sin(t),-sin(lp.phi));lp.phi=aasin(cosphi*cos(t))}}}pj_add(pj_ocea,"ocea","Oblique Cylindrical Equal Area","\n\tCyl, Sph lonc= alpha= or\n\tlat_1= lat_2= lon_1= lon_2=");function pj_ocea(P){var phi_0=0,phi_1,phi_2,lam_1,lam_2,lonz,alpha,rok,rtk,sinphi,cosphi,singam,cosgam;rok=1/P.k0;rtk=P.k0;if(pj_param(P.params,"talpha")){alpha=pj_param(P.params,"ralpha");lonz=pj_param(P.params,"rlonc");singam=atan(-cos(alpha)/(-sin(phi_0)*sin(alpha)))+lonz;sinphi=asin(cos(phi_0)*sin(alpha))}else{phi_1=pj_param(P.params,"rlat_1");phi_2=pj_param(P.params,"rlat_2");lam_1=pj_param(P.params,"rlon_1");lam_2=pj_param(P.params,"rlon_2");singam=atan2(cos(phi_1)*sin(phi_2)*cos(lam_1)-sin(phi_1)*cos(phi_2)*cos(lam_2),sin(phi_1)*cos(phi_2)*sin(lam_2)-cos(phi_1)*sin(phi_2)*sin(lam_1));if(lam_1==-M_HALFPI)singam=-singam;sinphi=atan(-cos(singam-lam_1)/tan(phi_1))}P.lam0=singam+M_HALFPI;cosphi=cos(sinphi);sinphi=sin(sinphi);cosgam=cos(singam);singam=sin(singam);P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var t;xy.y=sin(lp.lam);t=cos(lp.lam);xy.x=atan((tan(lp.phi)*cosphi+sinphi*xy.y)/t);if(t<0)xy.x+=M_PI;xy.x*=rtk;xy.y=rok*(sinphi*sin(lp.phi)-cosphi*cos(lp.phi)*xy.y)}function s_inv(xy,lp){var t,s;xy.y/=rok;xy.x/=rtk;t=sqrt(1-xy.y*xy.y);lp.phi=asin(xy.y*sinphi+t*cosphi*(s=sin(xy.x)));lp.lam=atan2(t*sinphi*s-xy.y*cosphi,t*cos(xy.x))}}pj_add(pj_omerc,"omerc","Oblique Mercator","\n\tCyl, Sph&Ell no_rot"+"\n\talpha= [gamma=] [no_off] lonc= or\n\t lon_1= lat_1= lon_2= lat_2=");function pj_omerc(P){var TOL=1e-7;var con,com,cosph0,D,F,H,L,sinph0,p,J,gamma=0,gamma0,lamc=0,lam1=0,lam2=0,phi1=0,phi2=0,alpha_c=0;var alp,gam,no_off=0;var A,B,E,AB,ArB,BrA,rB,singam,cosgam,sinrot,cosrot;var v_pole_n,v_pole_s,u_0;var no_rot;no_rot=pj_param(P.params,"tno_rot");if((alp=pj_param(P.params,"talpha"))!=0)alpha_c=pj_param(P.params,"ralpha");if((gam=pj_param(P.params,"tgamma"))!=0)gamma=pj_param(P.params,"rgamma");if(alp||gam){lamc=pj_param(P.params,"rlonc");no_off=pj_param(P.params,"tno_off")||pj_param(P.params,"tno_uoff");if(no_off){pj_param(P.params,"sno_uoff");pj_param(P.params,"sno_off")}}else{lam1=pj_param(P.params,"rlon_1");phi1=pj_param(P.params,"rlat_1");lam2=pj_param(P.params,"rlon_2");phi2=pj_param(P.params,"rlat_2");if(fabs(phi1-phi2)<=TOL||(con=fabs(phi1))<=TOL||fabs(con-M_HALFPI)<=TOL||fabs(fabs(P.phi0)-M_HALFPI)<=TOL||fabs(fabs(phi2)-M_HALFPI)<=TOL)e_error(-33)}com=sqrt(P.one_es);if(fabs(P.phi0)>EPS10){sinph0=sin(P.phi0);cosph0=cos(P.phi0);con=1-P.es*sinph0*sinph0;B=cosph0*cosph0;B=sqrt(1+P.es*B*B/P.one_es);A=B*P.k0*com/con;D=B*com/(cosph0*sqrt(con));if((F=D*D-1)<=0)F=0;else{F=sqrt(F);if(P.phi0<0)F=-F}E=F+=D;E*=pow(pj_tsfn(P.phi0,sinph0,P.e),B)}else{B=1/com;A=P.k0;E=D=F=1}if(alp||gam){if(alp){gamma0=asin(sin(alpha_c)/D);if(!gam)gamma=alpha_c}else alpha_c=asin(D*sin(gamma0=gamma));P.lam0=lamc-asin(.5*(F-1/F)*tan(gamma0))/B}else{H=pow(pj_tsfn(phi1,sin(phi1),P.e),B);L=pow(pj_tsfn(phi2,sin(phi2),P.e),B);F=E/H;p=(L-H)/(L+H);J=E*E;J=(J-L*H)/(J+L*H);if((con=lam1-lam2)<-M_PI)lam2-=M_TWOPI;else if(con>M_PI)lam2+=M_TWOPI;P.lam0=adjlon(.5*(lam1+lam2)-atan(J*tan(.5*B*(lam1-lam2))/p)/B);gamma0=atan(2*sin(B*adjlon(lam1-P.lam0))/(F-1/F));gamma=alpha_c=asin(D*sin(gamma0))}singam=sin(gamma0);cosgam=cos(gamma0);sinrot=sin(gamma);cosrot=cos(gamma);BrA=1/(ArB=A*(rB=1/B));AB=A*B;if(no_off)u_0=0;else{u_0=fabs(ArB*atan(sqrt(D*D-1)/cos(alpha_c)));if(P.phi0<0)u_0=-u_0}F=.5*gamma0;v_pole_n=ArB*log(tan(M_FORTPI-F));v_pole_s=ArB*log(tan(M_FORTPI+F));P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var S,T,U,V,W,temp,u,v;if(fabs(fabs(lp.phi)-M_HALFPI)>EPS10){W=E/pow(pj_tsfn(lp.phi,sin(lp.phi),P.e),B);temp=1/W;S=.5*(W-temp);T=.5*(W+temp);V=sin(B*lp.lam);U=(S*singam-V*cosgam)/T;if(fabs(fabs(U)-1)0?v_pole_n:v_pole_s;u=ArB*lp.phi}if(no_rot){xy.x=u;xy.y=v}else{u-=u_0;xy.x=v*cosrot+u*sinrot;xy.y=u*cosrot-v*sinrot}}function e_inv(xy,lp){var u,v,Qp,Sp,Tp,Vp,Up;if(no_rot){v=xy.y;u=xy.x}else{v=xy.x*cosrot-xy.y*sinrot;u=xy.y*cosrot+xy.x*sinrot+u_0}Qp=exp(-BrA*v);Sp=.5*(Qp-1/Qp);Tp=.5*(Qp+1/Qp);Vp=sin(BrA*u);Up=(Vp*cosgam+Sp*singam)/Tp;if(fabs(fabs(Up)-1)EPS10){Q.mode=OBLIQ;Q.sinph0=sin(P.phi0);Q.cosph0=cos(P.phi0)}else Q.mode=EQUIT;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var coslam,cosphi,sinphi;cosphi=cos(lp.phi);coslam=cos(lp.lam);switch(Q.mode){case EQUIT:if(cosphi*coslam<-EPS10)f_error();xy.y=sin(lp.phi);break;case OBLIQ:if(Q.sinph0*(sinphi=sin(lp.phi))+Q.cosph0*cosphi*coslam<-EPS10)f_error();xy.y=Q.cosph0*sinphi-Q.sinph0*cosphi*coslam;break;case N_POLE:coslam=-coslam;case S_POLE:if(fabs(lp.phi-P.phi0)-EPS10>M_HALFPI)f_error();xy.y=cosphi*coslam;break}xy.x=cosphi*sin(lp.lam)}function s_inv(xy,lp){var rh,cosc,sinc;if((sinc=rh=hypot(xy.x,xy.y))>1){if(sinc-1>EPS10)i_error();sinc=1}cosc=sqrt(1-sinc*sinc);if(fabs(rh)<=EPS10){lp.phi=P.phi0;lp.lam=0}else{switch(Q.mode){case N_POLE:xy.y=-xy.y;lp.phi=acos(sinc);break;case S_POLE:lp.phi=-acos(sinc);break;case EQUIT:case OBLIQ:if(Q.mode==EQUIT){lp.phi=xy.y*sinc/rh;xy.x*=sinc;xy.y=cosc*rh}else{lp.phi=cosc*Q.sinph0+xy.y*sinc*Q.cosph0/rh;xy.y=(cosc-Q.sinph0*lp.phi)*rh;xy.x*=sinc*Q.cosph0}if(fabs(lp.phi)>=1)lp.phi=lp.phi<0?-M_HALFPI:M_HALFPI;else lp.phi=asin(lp.phi);break}lp.lam=xy.y==0&&(Q.mode==OBLIQ||Q.mode==EQUIT)?xy.x==0?0:xy.x<0?-M_HALFPI:M_HALFPI:atan2(xy.x,xy.y)}}}pj_add(pj_patterson,"patterson","Patterson Cylindrical","\n\tCyl., Sph.");function pj_patterson(P){var K1=1.0148,K2=.23185,K3=-.14499,K4=.02406,C1=K1,C2=5*K2,C3=7*K3,C4=9*K4,EPS=1e-11,MAX_Y=908571831.7;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var phi2=lp.phi*lp.phi;xy.x=lp.lam;xy.y=lp.phi*(K1+phi2*phi2*(K2+phi2*(K3+K4*phi2)))}function s_inv(xy,lp){var MAX_ITER=100;var yc,tol,y2,f,fder;var i;yc=xy.y;if(xy.y>MAX_Y){xy.y=MAX_Y}else if(xy.y<-MAX_Y){xy.y=-MAX_Y}for(i=MAX_ITER;i;--i){y2=yc*yc;f=yc*(K1+y2*y2*(K2+y2*(K3+K4*y2)))-xy.y;fder=C1+y2*y2*(C2+y2*(C3+C4*y2));yc-=tol=f/fder;if(fabs(tol)TOL?pj_msfn(sp,cp,P.es)/sp:0;xy.x=ms*sin(lp.lam*=sp);xy.y=pj_mlfn(lp.phi,sp,cp,en)-ml0+ms*(1-cos(lp.lam))}}function e_inv(xy,lp){var x=xy.x,y=xy.y;var r,c,sp,cp,s2ph,ml,mlb,mlp,dPhi,i;y+=ml0;if(fabs(y)<=TOL){lp.lam=x;lp.phi=0}else{r=y*y+x*x;for(lp.phi=y,i=I_ITER;i>0;--i){sp=sin(lp.phi);s2ph=sp*(cp=cos(lp.phi));if(fabs(cp)CONV&&--i);if(!i)i_error();lp.lam=asin(xy.x*tan(lp.phi))/sin(lp.phi)}}}pj_add(pj_putp2,"putp2","Putnins P2","\n\tPCyl., Sph.");function pj_putp2(P){var C_x=1.8949,C_y=1.71848,C_p=.6141848493043784,EPS=1e-10,NITER=10,PI_DIV_3=1.0471975511965976;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var p,c,s,V,i;p=C_p*sin(lp.phi);s=lp.phi*lp.phi;lp.phi*=.615709+s*(.00909953+s*.0046292);for(i=NITER;i;--i){c=cos(lp.phi);s=sin(lp.phi);lp.phi-=V=(lp.phi+s*(c-1)-p)/(1+c*(c-1)-s*s);if(fabs(V)=M_HALFPI-M_FORTPI/2){face=FACE_TOP}else if(P.phi0<=-(M_HALFPI-M_FORTPI/2)){face=FACE_BOTTOM}else if(fabs(P.lam0)<=M_FORTPI){face=FACE_FRONT}else if(fabs(P.lam0)<=M_HALFPI+M_FORTPI){face=P.lam0>0?FACE_RIGHT:FACE_LEFT}else{face=FACE_BACK}if(P.es!==0){a_squared=P.a*P.a;b=P.a*sqrt(1-P.es);one_minus_f=1-(P.a-b)/P.a;one_minus_f_squared=one_minus_f*one_minus_f}P.fwd=e_fwd;P.inv=e_inv;function e_fwd(lp,xy){var lat,lon;var theta,phi;var t,mu;var area;var q,r,s;var sinlat,coslat;var sinlon,coslon;var tmp;if(P.es!==0){lat=atan(one_minus_f_squared*tan(lp.phi))}else{lat=lp.phi}lon=lp.lam;if(face==FACE_TOP){phi=M_HALFPI-lat;if(lon>=M_FORTPI&&lon<=M_HALFPI+M_FORTPI){area=AREA_0;theta=lon-M_HALFPI}else if(lon>M_HALFPI+M_FORTPI||lon<=-(M_HALFPI+M_FORTPI)){area=AREA_1;theta=lon>0?lon-M_PI:lon+M_PI}else if(lon>-(M_HALFPI+M_FORTPI)&&lon<=-M_FORTPI){area=AREA_2;theta=lon+M_HALFPI}else{area=AREA_3;theta=lon}}else if(face==FACE_BOTTOM){phi=M_HALFPI+lat;if(lon>=M_FORTPI&&lon<=M_HALFPI+M_FORTPI){area=AREA_0;theta=-lon+M_HALFPI}else if(lon=-M_FORTPI){area=AREA_1;theta=-lon}else if(lon<-M_FORTPI&&lon>=-(M_HALFPI+M_FORTPI)){area=AREA_2;theta=-lon-M_HALFPI}else{area=AREA_3;theta=lon>0?-lon+M_PI:-lon-M_PI}}else{if(face==FACE_RIGHT){lon=qsc_shift_lon_origin(lon,+M_HALFPI)}else if(face==FACE_BACK){lon=qsc_shift_lon_origin(lon,+M_PI)}else if(face==FACE_LEFT){lon=qsc_shift_lon_origin(lon,-M_HALFPI)}sinlat=sin(lat);coslat=cos(lat);sinlon=sin(lon);coslon=cos(lon);q=coslat*coslon;r=coslat*sinlon;s=sinlat;if(face==FACE_FRONT){phi=acos(q);tmp=qsc_fwd_equat_face_theta(phi,s,r)}else if(face==FACE_RIGHT){phi=acos(r);tmp=qsc_fwd_equat_face_theta(phi,s,-q)}else if(face==FACE_BACK){phi=acos(-q);tmp=qsc_fwd_equat_face_theta(phi,s,-r)}else if(face==FACE_LEFT){phi=acos(-r);tmp=qsc_fwd_equat_face_theta(phi,s,q)}else{phi=0;tmp={area:AREA_0,theta:0}}theta=tmp.theta;area=tmp.area}mu=atan(12/M_PI*(theta+acos(sin(theta)*cos(M_FORTPI))-M_HALFPI));t=sqrt((1-cos(phi))/(cos(mu)*cos(mu))/(1-cos(atan(1/cos(theta)))));if(area==AREA_1){mu+=M_HALFPI}else if(area==AREA_2){mu+=M_PI}else if(area==AREA_3){mu+=M_PI_HALFPI}xy.x=t*cos(mu);xy.y=t*sin(mu)}function e_inv(xy,lp){var mu,nu,cosmu,tannu;var tantheta,theta,cosphi,phi;var t;var area;nu=atan(sqrt(xy.x*xy.x+xy.y*xy.y));mu=atan2(xy.y,xy.x);if(xy.x>=0&&xy.x>=fabs(xy.y)){area=AREA_0}else if(xy.y>=0&&xy.y>=fabs(xy.x)){area=AREA_1;mu-=M_HALFPI}else if(xy.x<0&&-xy.x>=fabs(xy.y)){area=AREA_2;mu=mu<0?mu+M_PI:mu-M_PI}else{area=AREA_3;mu+=M_HALFPI}t=M_PI/12*tan(mu);tantheta=sin(t)/(cos(t)-1/sqrt(2));theta=atan(tantheta);cosmu=cos(mu);tannu=tan(nu);cosphi=1-cosmu*cosmu*tannu*tannu*(1-cos(atan(1/cos(theta))));if(cosphi<-1){cosphi=-1}else if(cosphi>+1){cosphi=+1}if(face==FACE_TOP){phi=acos(cosphi);lp.phi=M_HALFPI-phi;if(area==AREA_0){lp.lam=theta+M_HALFPI}else if(area==AREA_1){lp.lam=theta<0?theta+M_PI:theta-M_PI}else if(area==AREA_2){lp.lam=theta-M_HALFPI}else{lp.lam=theta}}else if(face==FACE_BOTTOM){phi=acos(cosphi);lp.phi=phi-M_HALFPI;if(area==AREA_0){lp.lam=-theta+M_HALFPI}else if(area==AREA_1){lp.lam=-theta}else if(area==AREA_2){lp.lam=-theta-M_HALFPI}else{lp.lam=theta<0?-theta-M_PI:-theta+M_PI}}else{var q,r,s;q=cosphi;t=q*q;if(t>=1){s=0}else{s=sqrt(1-t)*sin(theta)}t+=s*s;if(t>=1){r=0}else{r=sqrt(1-t)}if(area==AREA_1){t=r;r=-s;s=t}else if(area==AREA_2){r=-r;s=-s}else if(area==AREA_3){t=r;r=s;s=-t}if(face==FACE_RIGHT){t=q;q=-r;r=t}else if(face==FACE_BACK){q=-q;r=-r}else if(face==FACE_LEFT){t=q;q=r;r=-t}lp.phi=acos(-s)-M_HALFPI;lp.lam=atan2(r,q);if(face==FACE_RIGHT){lp.lam=qsc_shift_lon_origin(lp.lam,-M_HALFPI)}else if(face==FACE_BACK){lp.lam=qsc_shift_lon_origin(lp.lam,-M_PI)}else if(face==FACE_LEFT){lp.lam=qsc_shift_lon_origin(lp.lam,+M_HALFPI)}}if(P.es!==0){var invert_sign;var tanphi,xa;invert_sign=lp.phi<0?1:0;tanphi=tan(lp.phi);xa=b/sqrt(tanphi*tanphi+one_minus_f_squared);lp.phi=atan(sqrt(P.a*P.a-xa*xa)/(one_minus_f*xa));if(invert_sign){lp.phi=-lp.phi}}}function qsc_fwd_equat_face_theta(phi,y,x){var area,theta;if(phiM_FORTPI&&theta<=M_HALFPI+M_FORTPI){area=AREA_1;theta-=M_HALFPI}else if(theta>M_HALFPI+M_FORTPI||theta<=-(M_HALFPI+M_FORTPI)){area=AREA_2;theta=theta>=0?theta-M_PI:theta+M_PI}else{area=AREA_3;theta+=M_HALFPI}}return{area:area,theta:theta}}function qsc_shift_lon_origin(lon,offset){var slon=lon+offset;if(slon<-M_PI){slon+=M_TWOPI}else if(slon>+M_PI){slon-=M_TWOPI}return slon}}pj_add(pj_robin,"robin","Robinson","\n\tPCyl., Sph.");function pj_robin(P){var X=to_float([[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]]);var Y=to_float([[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]]);var FXC=.8487,FYC=1.3523,C1=11.459155902616464,RC1=.08726646259971647,NODES=18,ONEEPS=1.000001,EPS=1e-8;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var i,dphi;i=floor((dphi=fabs(lp.phi))*C1);if(i<0)f_error();if(i>=NODES)i=NODES-1;dphi=RAD_TO_DEG*(dphi-RC1*i);xy.x=V(X[i],dphi)*FXC*lp.lam;xy.y=V(Y[i],dphi)*FYC;if(lp.phi<0)xy.y=-xy.y}function s_inv(xy,lp){var t,t1,T,i;lp.lam=xy.x/FXC;lp.phi=fabs(xy.y/FYC);if(lp.phi>=1){if(lp.phi>ONEEPS)i_error();else{lp.phi=xy.y<0?-M_HALFPI:M_HALFPI;lp.lam/=X[NODES][0]}}else{i=floor(lp.phi*NODES);if(i<0||i>=NODES){return i_error()}for(;;){if(Y[i][0]>lp.phi)--i;else if(Y[i+1][0]<=lp.phi)++i;else break}T=new Float32Array(Y[i]);t=5*(lp.phi-T[0])/(Y[i+1][0]-T[0]);T[0]-=lp.phi;for(;;){t-=t1=V(T,t)/DV(T,t);if(fabs(t1)=M_HALFPI)e_error(-43);rho_0=c2*(c1-tan(del));break;case"VITK1":n=(cs=tan(del))*sin(sig)/del;rho_c=del/(cs*tan(sig))+sig;rho_0=rho_c-P.phi0;break}P.inv=s_inv;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var rho;switch(type){case"MURD2":rho=rho_c+tan(sig-lp.phi);break;case"PCONIC":rho=c2*(c1-tan(lp.phi-sig));break;default:rho=rho_c-lp.phi;break}xy.x=rho*sin(lp.lam*=n);xy.y=rho_0-rho*cos(lp.lam)}function s_inv(xy,lp){var rho;rho=hypot(xy.x,xy.y=rho_0-xy.y);if(n<0){rho=-rho;xy.x=-xy.x;xy.y=-xy.y}lp.lam=atan2(xy.x,xy.y)/n;switch(type){case"PCONIC":lp.phi=atan(c1-rho/c2)+sig;break;case"MURD2":lp.phi=sig-atan(rho-rho_c);break;default:lp.phi=rho_c-rho}}}pj_add(pj_somerc,"somerc","Swiss. Obl. Mercator","\n\tCyl, Ell\n\tFor CH1903");function pj_somerc(P){var K,c,hlf_e,kR,cosp0,sinp0;var EPS=1e-10;var NITER=6;var cp,phip0,sp;hlf_e=.5*P.e;cp=cos(P.phi0);cp*=cp;c=sqrt(1+P.es*cp*cp*P.rone_es);sp=sin(P.phi0);cosp0=cos(phip0=aasin(sinp0=sp/c));sp*=P.e;K=log(tan(M_FORTPI+.5*phip0))-c*(log(tan(M_FORTPI+.5*P.phi0))-hlf_e*log((1+sp)/(1-sp)));kR=P.k0*sqrt(P.one_es)/(1-sp*sp);P.inv=e_inv;P.fwd=e_fwd;function e_fwd(lp,xy){var phip,lamp,phipp,lampp,sp,cp;sp=P.e*sin(lp.phi);phip=2*atan(exp(c*(log(tan(M_FORTPI+.5*lp.phi))-hlf_e*log((1+sp)/(1-sp)))+K))-M_HALFPI;lamp=c*lp.lam;cp=cos(phip);phipp=aasin(cosp0*sin(phip)-sinp0*cp*cos(lamp));lampp=aasin(cp*sin(lamp)/cos(phipp));xy.x=kR*lampp;xy.y=kR*log(tan(M_FORTPI+.5*phipp))}function e_inv(xy,lp){var phip,lamp,phipp,lampp,cp,esp,con,delp;var i;phipp=2*(atan(exp(xy.y/kR))-M_FORTPI);lampp=xy.x/kR;cp=cos(phipp);phip=aasin(cosp0*sin(phipp)+sinp0*cp*cos(lampp));lamp=aasin(cp*sin(lampp)/cos(phip));con=(K-log(tan(M_FORTPI+.5*phip)))/c;for(i=NITER;i;--i){esp=P.e*sin(phip);delp=(con+log(tan(M_FORTPI+.5*phip))-hlf_e*log((1+esp)/(1-esp)))*(1-esp*esp)*cos(phip)*P.rone_es;phip-=delp;if(fabs(delp)EPS10?OBLIQ:EQUIT;phits=fabs(phits);if(P.es){switch(mode){case N_POLE:case S_POLE:if(fabs(phits-M_HALFPI)=EPS10?cos(phits)/tan(M_FORTPI-.5*phits):2*P.k0;break}P.fwd=s_fwd;P.inv=s_inv}function e_fwd(lp,xy){var coslam,sinlam,sinX=0,cosX=0,X,A,sinphi;coslam=cos(lp.lam);sinlam=sin(lp.lam);sinphi=sin(lp.phi);if(mode==OBLIQ||mode==EQUIT){sinX=sin(X=2*atan(ssfn(lp.phi,sinphi,P.e))-M_HALFPI);cosX=cos(X)}switch(mode){case OBLIQ:A=akm1/(cosX1*(1+sinX1*sinX+cosX1*cosX*coslam));xy.y=A*(cosX1*sinX-sinX1*cosX*coslam);xy.x=A*cosX;break;case EQUIT:A=akm1/(1+cosX*coslam);xy.y=A*sinX;xy.x=A*cosX;break;case S_POLE:lp.phi=-lp.phi;coslam=-coslam;sinphi=-sinphi;case N_POLE:xy.x=akm1*pj_tsfn(lp.phi,sinphi,P.e);xy.y=-xy.x*coslam;break}xy.x=xy.x*sinlam}function s_fwd(lp,xy){var phi=lp.phi,sinphi=sin(phi),cosphi=cos(phi),coslam=cos(lp.lam),sinlam=sin(lp.lam);switch(mode){case EQUIT:case OBLIQ:if(mode==EQUIT){xy.y=1+cosphi*coslam}else{xy.y=1+sinph0*sinphi+cosph0*cosphi*coslam}if(xy.y<=EPS10)f_error();xy.x=(xy.y=akm1/xy.y)*cosphi*sinlam;xy.y*=mode==EQUIT?sinphi:cosph0*sinphi-sinph0*cosphi*coslam;break;case N_POLE:coslam=-coslam;phi=-phi;case S_POLE:if(fabs(phi-M_HALFPI)0;--i){phi=2*atan(num*srat(en.e*sin(lp.phi),-.5*en.e))-M_HALFPI;if(fabs(phi-lp.phi)M_HALFPI){pj_ctx_set_errno(-14);return}sinphi=sin(lp.phi);cosphi=cos(lp.phi);t=fabs(cosphi)>EPS10?sinphi/cosphi:0;t*=t;al=cosphi*lp.lam;als=al*al;al/=sqrt(1-P.es*sinphi*sinphi);n=esp*cosphi*cosphi;xy.x=P.k0*al*(FC1+FC3*als*(1-t+n+FC5*als*(5+t*(t-18)+n*(14-58*t)+FC7*als*(61+t*(t*(179-t)-479)))));xy.y=P.k0*(pj_mlfn(lp.phi,sinphi,cosphi,en)-ml0+sinphi*al*lp.lam*FC2*(1+FC4*als*(5-t+n*(9+4*n)+FC6*als*(61+t*(t-58)+n*(270-330*t)+FC8*als*(1385+t*(t*(543-t)-3111))))))}function s_fwd(lp,xy){var b,cosphi;if(lp.lam<-M_HALFPI||lp.lam>M_HALFPI){pj_ctx_set_errno(-14);return}cosphi=cos(lp.phi);b=cosphi*sin(lp.lam);if(fabs(fabs(b)-1)<=EPS10)f_error();xy.x=ml0*log((1+b)/(1-b));xy.y=cosphi*cos(lp.lam)/sqrt(1-b*b);b=fabs(xy.y);if(b>=1){if(b-1>EPS10){f_error()}else{xy.y=0}}else xy.y=acos(xy.y);if(lp.phi<0)xy.y=-xy.y;xy.y=esp*(xy.y-P.phi0)}function e_inv(xy,lp){var n,con,cosphi,d,ds,sinphi,t;lp.phi=pj_inv_mlfn(ml0+xy.y/P.k0,P.es,en);if(fabs(lp.phi)>=M_HALFPI){lp.phi=xy.y<0?-M_HALFPI:M_HALFPI;lp.lam=0}else{sinphi=sin(lp.phi);cosphi=cos(lp.phi);t=fabs(cosphi)>1e-10?sinphi/cosphi:0;n=esp*cosphi*cosphi;d=xy.x*sqrt(con=1-P.es*sinphi*sinphi)/P.k0;con*=t;t*=t;ds=d*d;lp.phi-=con*ds/(1-P.es)*FC2*(1-ds*FC4*(5+t*(3-9*n)+n*(1-4*n)-ds*FC6*(61+t*(90-252*n+45*t)+46*n-ds*FC8*(1385+t*(3633+t*(4095+1575*t))))));lp.lam=d*(FC1-ds*FC3*(1+2*t+n-ds*FC5*(5+t*(28+24*t+8*n)+6*n-ds*FC7*(61+t*(662+t*(1320+720*t))))))/cosphi}}function s_inv(xy,lp){var h=exp(xy.x/esp);var g=.5*(h-1/h);h=cos(P.phi0+xy.y/esp);lp.phi=asin(sqrt((1-h*h)/(1+g*g)));if(xy.y<0&&-lp.phi+P.phi0<0)lp.phi=-lp.phi;lp.lam=g||h?atan2(g,h):0}}pj_add(pj_tpeqd,"tpeqd","Two Point Equidistant","\n\tMisc Sph\n\tlat_1= lon_1= lat_2= lon_2=");function pj_tpeqd(P){var cp1,sp1,cp2,sp2,ccs,cs,sc,r2z0,z02,dlam2;var hz0,thz0,rhshz0,ca,sa,lamp,lamc;var lam_1,lam_2,phi_1,phi_2,A12,pp;phi_1=pj_param(P.params,"rlat_1");lam_1=pj_param(P.params,"rlon_1");phi_2=pj_param(P.params,"rlat_2");lam_2=pj_param(P.params,"rlon_2");if(phi_1==phi_2&&lam_1==lam_2)e_error(-25);P.lam0=adjlon(.5*(lam_1+lam_2));dlam2=adjlon(lam_2-lam_1);cp1=cos(phi_1);cp2=cos(phi_2);sp1=sin(phi_1);sp2=sin(phi_2);cs=cp1*sp2;sc=sp1*cp2;ccs=cp1*cp2*sin(dlam2);z02=aacos(sp1*sp2+cp1*cp2*cos(dlam2));hz0=.5*z02;A12=atan2(cp2*sin(dlam2),cp1*sp2-sp1*cp2*cos(dlam2));ca=cos(pp=aasin(cp1*sin(A12)));sa=sin(pp);lamp=adjlon(atan2(cp1*cos(A12),sp1)-hz0);dlam2*=.5;lamc=M_HALFPI-atan2(sin(A12)*sp1,cos(A12))-dlam2;thz0=tan(hz0);rhshz0=.5/sin(hz0);r2z0=.5/z02;z02*=z02;P.fwd=s_fwd;P.inv=s_inv;P.es=0;function s_fwd(lp,xy){var t,z1,z2,dl1,dl2,sp,cp;sp=sin(lp.phi);cp=cos(lp.phi);z1=aacos(sp1*sp+cp1*cp*cos(dl1=lp.lam+dlam2));z2=aacos(sp2*sp+cp2*cp*cos(dl2=lp.lam-dlam2));z1*=z1;z2*=z2;xy.x=r2z0*(t=z1-z2);t=z02-t;xy.y=r2z0*asqrt(4*z02*z2-t*t);if(ccs*sp-cp*(cs*sin(dl1)-sc*sin(dl2))<0)xy.y=-xy.y}function s_inv(xy,lp){var cz1,cz2,s,d,cp,sp;cz1=cos(hypot(xy.y,xy.x+hz0));cz2=cos(hypot(xy.y,xy.x-hz0));s=cz1+cz2;d=cz1-cz2;lp.lam=-atan2(d,s*thz0);lp.phi=aacos(hypot(thz0*s,d)*rhshz0);if(xy.y<0)lp.phi=-lp.phi;sp=sin(lp.phi);cp=cos(lp.phi);lp.phi=aasin(sa*sp+ca*cp*(s=cos(lp.lam-=lamp)));lp.lam=atan2(cp*sin(lp.lam),sa*cp*s-ca*sp)+lamc}}pj_add(pj_urm5,"urm5","Urmaev V","\n\tPCyl., Sph., no inv.\n\tn= q= alpha=");function pj_urm5(P){var m,rmn,q3,n;var alpha,t;n=pj_param(P.params,"dn");if(n>0&&n<=1===false){e_error(-40)}q3=pj_param(P.params,"dq")/3;alpha=pj_param(P.params,"ralpha");t=n*sin(alpha);m=cos(alpha)/sqrt(1-t*t);rmn=1/(m*n);P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var t=lp.phi=aasin(n*sin(lp.phi));xy.x=m*lp.lam*cos(lp.phi);t*=t;xy.y=lp.phi*(1+t*q3)*rmn}}pj_add(pj_urmfps,"urmfps","Urmaev Flat-Polar Sinusoidal","\n\tPCyl, Sph.\n\tn=");pj_add(pj_wag1,"wag1","Wagner I (Kavraisky VI)","\n\tPCyl, Sph.");function pj_wag1(P){pj_urmfps_init(P,.8660254037844386)}function pj_urmfps(P){var n=pj_param(P.params,"dn");if(n<=0||n>1)e_error(-40);pj_urmfps_init(P,n)}function pj_urmfps_init(P,n){var C_x=.8773826753,C_y=1.139753528477/n;P.es=0;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var phi=aasin(n*sin(lp.phi));xy.x=C_x*lp.lam*cos(phi);xy.y=C_y*phi}function s_inv(xy,lp){xy.y/=C_y;lp.phi=aasin(sin(xy.y)/n);lp.lam=xy.x/(C_x*cos(xy.y))}}pj_add(pj_vandg,"vandg","van der Grinten (I)","\n\tMisc Sph");pj_add(pj_vandg2,"vandg2","van der Grinten II","\n\tMisc Sph, no inv.");pj_add(pj_vandg3,"vandg3","van der Grinten III","\n\tMisc Sph, no inv.");pj_add(pj_vandg4,"vandg4","van der Grinten IV","\n\tMisc Sph, no inv.");function pj_vandg(P){var TOL=1e-10,THIRD=.3333333333333333,TWO_THRD=.6666666666666666,C2_27=.07407407407407407,PI4_3=4.188790204786391,PISQ=9.869604401089358,TPISQ=19.739208802178716,HPISQ=4.934802200544679;P.fwd=s_fwd;P.inv=s_inv;function s_fwd(lp,xy){var al,al2,g,g2,p2;p2=fabs(lp.phi/M_HALFPI);if(p2-TOL>1)f_error();if(p2>1)p2=1;if(fabs(lp.phi)<=TOL){xy.x=lp.lam;xy.y=0}else if(fabs(lp.lam)<=TOL||fabs(p2-1)1?d>0?0:M_PI:acos(d);lp.phi=M_PI*(m*cos(d*THIRD+PI4_3)-THIRD*c2);if(xy.y<0)lp.phi=-lp.phi;t=r2+TPISQ*(x2-y2+HPISQ);lp.lam=fabs(xy.x)<=TOL?0:.5*(r-PISQ+(t<=0?0:sqrt(t)))/xy.x}else i_error()}}function pj_vandg2(P){pj_vandg2_init(P,false)}function pj_vandg3(P){pj_vandg2_init(P,true)}function pj_vandg2_init(P,vdg3){var TOL=1e-10;P.fwd=s_fwd;P.es=0;function s_fwd(lp,xy){var x1,at,bt,ct;bt=fabs(M_TWO_D_PI*lp.phi);if((ct=1-bt*bt)<0)ct=0;else ct=sqrt(ct);if(fabs(lp.lam)=0;--i){var obj;var root=chain[i];if(root==="[]"){obj=[];obj=obj.concat(leaf)}else{obj=options.plainObjects?Object.create(null):{};var cleanRoot=root.charAt(0)==="["&&root.charAt(root.length-1)==="]"?root.slice(1,-1):root;var index=parseInt(cleanRoot,10);if(!isNaN(index)&&root!==cleanRoot&&String(index)===cleanRoot&&index>=0&&(options.parseArrays&&index<=options.arrayLimit)){obj=[];obj[index]=leaf}else{obj[cleanRoot]=leaf}}leaf=obj}return leaf};var parseKeys=function parseQueryStringKeys(givenKey,val,options){if(!givenKey){return}var key=options.allowDots?givenKey.replace(/\.([^.[]+)/g,"[$1]"):givenKey;var brackets=/(\[[^[\]]*])/;var child=/(\[[^[\]]*])/g;var segment=brackets.exec(key);var parent=segment?key.slice(0,segment.index):key;var keys=[];if(parent){if(!options.plainObjects&&has.call(Object.prototype,parent)){if(!options.allowPrototypes){return}}keys.push(parent)}var i=0;while((segment=child.exec(key))!==null&&i0?prefix+joined:""}},{"./formats":25,"./utils":29}],29:[function(require,module,exports){"use strict";var has=Object.prototype.hasOwnProperty;var hexTable=function(){var array=[];for(var i=0;i<256;++i){array.push("%"+((i<16?"0":"")+i.toString(16)).toUpperCase())}return array}();var compactQueue=function compactQueue(queue){var obj;while(queue.length){var item=queue.pop();obj=item.obj[item.prop];if(Array.isArray(obj)){var compacted=[];for(var j=0;j=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122){out+=string.charAt(i);continue}if(c<128){out=out+hexTable[c];continue}if(c<2048){out=out+(hexTable[192|c>>6]+hexTable[128|c&63]);continue}if(c<55296||c>=57344){out=out+(hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|c&63]);continue}i+=1;c=65536+((c&1023)<<10|string.charCodeAt(i)&1023);out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|c&63]}return out};var compact=function compact(value){var queue=[{obj:{o:value},prop:"o"}];var refs=[];for(var i=0;i=2*(1<<30)){throw new RangeError('The value "'+size+'" is invalid for option "size"')}var buf=Buffer(size);if(!fill||fill.length===0){buf.fill(0)}else if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}return buf}}if(!safer.kStringMaxLength){try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}}if(!safer.constants){safer.constants={MAX_LENGTH:safer.kMaxLength};if(safer.kStringMaxLength){safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength}}module.exports=safer}).call(this)}).call(this,require("_process"))},{_process:47,buffer:44}],39:[function(require,module,exports){"use strict";exports.__esModule=true;var handle_qs_js_1=require("then-request/lib/handle-qs.js");var GenericResponse=require("http-response-object");var fd=FormData;exports.FormData=fd;function doRequest(method,url,options){var xhr=new XMLHttpRequest;if(typeof method!=="string"){throw new TypeError("The method must be a string.")}if(url&&typeof url==="object"){url=url.href}if(typeof url!=="string"){throw new TypeError("The URL/path must be a string.")}if(options===null||options===undefined){options={}}if(typeof options!=="object"){throw new TypeError("Options must be an object (or null).")}method=method.toUpperCase();options.headers=options.headers||{};var match;var crossDomain=!!((match=/^([\w-]+:)?\/\/([^\/]+)/.exec(url))&&match[2]!=location.host);if(!crossDomain)options.headers["X-Requested-With"]="XMLHttpRequest";if(options.qs){url=handle_qs_js_1["default"](url,options.qs)}if(options.json){options.body=JSON.stringify(options.json);options.headers["content-type"]="application/json"}if(options.form){options.body=options.form}xhr.open(method,url,false);for(var name in options.headers){xhr.setRequestHeader(name.toLowerCase(),""+options.headers[name])}xhr.send(options.body?options.body:null);var headers={};xhr.getAllResponseHeaders().split("\r\n").forEach(function(header){var h=header.split(":");if(h.length>1){headers[h[0].toLowerCase()]=h.slice(1).join(":").trim()}});return new GenericResponse(xhr.status,headers,xhr.responseText,url)}exports["default"]=doRequest;module.exports=doRequest;module.exports["default"]=doRequest;module.exports.FormData=fd},{"http-response-object":4,"then-request/lib/handle-qs.js":40}],40:[function(require,module,exports){"use strict";exports.__esModule=true;var qs_1=require("qs");function handleQs(url,query){var _a=url.split("?"),start=_a[0],part2=_a[1];var qs=(part2||"").split("#")[0];var end=part2&&part2.split("#").length>1?"#"+part2.split("#")[1]:"";var baseQs=qs_1.parse(qs);for(var i in query){baseQs[i]=query[i]}qs=qs_1.stringify(baseQs);if(qs!==""){qs="?"+qs}return start+qs+end}exports["default"]=handleQs},{qs:26}],41:[function(require,module,exports){},{}],42:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],43:[function(require,module,exports){arguments[4][41][0].apply(exports,arguments)},{dup:41}],44:[function(require,module,exports){(function(Buffer){(function(){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,"parent",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,"offset",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;imax)str+=" ... ";return""};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":42,buffer:44,ieee754:45}],45:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],46:[function(require,module,exports){(function(process){(function(){"use strict";function assertPath(path){if(typeof path!=="string"){throw new TypeError("Path must be a string. Received "+JSON.stringify(path))}}function normalizeStringPosix(path,allowAboveRoot){var res="";var lastSegmentLength=0;var lastSlash=-1;var dots=0;var code;for(var i=0;i<=path.length;++i){if(i2){var lastSlashIndex=res.lastIndexOf("/");if(lastSlashIndex!==res.length-1){if(lastSlashIndex===-1){res="";lastSegmentLength=0}else{res=res.slice(0,lastSlashIndex);lastSegmentLength=res.length-1-res.lastIndexOf("/")}lastSlash=i;dots=0;continue}}else if(res.length===2||res.length===1){res="";lastSegmentLength=0;lastSlash=i;dots=0;continue}}if(allowAboveRoot){if(res.length>0)res+="/..";else res="..";lastSegmentLength=2}}else{if(res.length>0)res+="/"+path.slice(lastSlash+1,i);else res=path.slice(lastSlash+1,i);lastSegmentLength=i-lastSlash-1}lastSlash=i;dots=0}else if(code===46&&dots!==-1){++dots}else{dots=-1}}return res}function _format(sep,pathObject){var dir=pathObject.dir||pathObject.root;var base=pathObject.base||(pathObject.name||"")+(pathObject.ext||"");if(!dir){return base}if(dir===pathObject.root){return dir+base}return dir+sep+base}var posix={resolve:function resolve(){var resolvedPath="";var resolvedAbsolute=false;var cwd;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path;if(i>=0)path=arguments[i];else{if(cwd===undefined)cwd=process.cwd();path=cwd}assertPath(path);if(path.length===0){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charCodeAt(0)===47}resolvedPath=normalizeStringPosix(resolvedPath,!resolvedAbsolute);if(resolvedAbsolute){if(resolvedPath.length>0)return"/"+resolvedPath;else return"/"}else if(resolvedPath.length>0){return resolvedPath}else{return"."}},normalize:function normalize(path){assertPath(path);if(path.length===0)return".";var isAbsolute=path.charCodeAt(0)===47;var trailingSeparator=path.charCodeAt(path.length-1)===47;path=normalizeStringPosix(path,!isAbsolute);if(path.length===0&&!isAbsolute)path=".";if(path.length>0&&trailingSeparator)path+="/";if(isAbsolute)return"/"+path;return path},isAbsolute:function isAbsolute(path){assertPath(path);return path.length>0&&path.charCodeAt(0)===47},join:function join(){if(arguments.length===0)return".";var joined;for(var i=0;i0){if(joined===undefined)joined=arg;else joined+="/"+arg}}if(joined===undefined)return".";return posix.normalize(joined)},relative:function relative(from,to){assertPath(from);assertPath(to);if(from===to)return"";from=posix.resolve(from);to=posix.resolve(to);if(from===to)return"";var fromStart=1;for(;fromStartlength){if(to.charCodeAt(toStart+i)===47){return to.slice(toStart+i+1)}else if(i===0){return to.slice(toStart+i)}}else if(fromLen>length){if(from.charCodeAt(fromStart+i)===47){lastCommonSep=i}else if(i===0){lastCommonSep=0}}break}var fromCode=from.charCodeAt(fromStart+i);var toCode=to.charCodeAt(toStart+i);if(fromCode!==toCode)break;else if(fromCode===47)lastCommonSep=i}var out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i){if(i===fromEnd||from.charCodeAt(i)===47){if(out.length===0)out+="..";else out+="/.."}}if(out.length>0)return out+to.slice(toStart+lastCommonSep);else{toStart+=lastCommonSep;if(to.charCodeAt(toStart)===47)++toStart;return to.slice(toStart)}},_makeLong:function _makeLong(path){return path},dirname:function dirname(path){assertPath(path);if(path.length===0)return".";var code=path.charCodeAt(0);var hasRoot=code===47;var end=-1;var matchedSlash=true;for(var i=path.length-1;i>=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1)return"//";return path.slice(0,end)},basename:function basename(path,ext){if(ext!==undefined&&typeof ext!=="string")throw new TypeError('"ext" argument must be a string');assertPath(path);var start=0;var end=-1;var matchedSlash=true;var i;if(ext!==undefined&&ext.length>0&&ext.length<=path.length){if(ext.length===path.length&&ext===path)return"";var extIdx=ext.length-1;var firstNonSlashEnd=-1;for(i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){start=i+1;break}}else{if(firstNonSlashEnd===-1){matchedSlash=false;firstNonSlashEnd=i+1}if(extIdx>=0){if(code===ext.charCodeAt(extIdx)){if(--extIdx===-1){end=i}}else{extIdx=-1;end=firstNonSlashEnd}}}}if(start===end)end=firstNonSlashEnd;else if(end===-1)end=path.length;return path.slice(start,end)}else{for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}},extname:function extname(path){assertPath(path);var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)},format:function format(pathObject){if(pathObject===null||typeof pathObject!=="object"){throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof pathObject)}return _format("/",pathObject)},parse:function parse(path){assertPath(path);var ret={root:"",dir:"",base:"",ext:"",name:""};if(path.length===0)return ret;var code=path.charCodeAt(0);var isAbsolute=code===47;var start;if(isAbsolute){ret.root="/";start=1}else{start=0}var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var i=path.length-1;var preDotState=0;for(;i>=start;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){if(end!==-1){if(startPart===0&&isAbsolute)ret.base=ret.name=path.slice(1,end);else ret.base=ret.name=path.slice(startPart,end)}}else{if(startPart===0&&isAbsolute){ret.name=path.slice(1,startDot);ret.base=path.slice(1,end)}else{ret.name=path.slice(startPart,startDot);ret.base=path.slice(startPart,end)}ret.ext=path.slice(startDot,end)}if(startPart>0)ret.dir=path.slice(0,startPart-1);else if(isAbsolute)ret.dir="/";return ret},sep:"/",delimiter:":",win32:null,posix:null};posix.posix=posix;module.exports=posix}).call(this)}).call(this,require("_process"))},{_process:47}],47:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex1){for(var i=1;i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3}return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128){self.lastNeed=0;return"\ufffd"}if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self.lastNeed=1;return"\ufffd"}if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self.lastNeed=2;return"\ufffd"}}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"\ufffd";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":48}],50:[function(require,module,exports){(function(setImmediate,clearImmediate){(function(){var nextTick=require("process/browser.js").nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;exports.setTimeout=function(){return new Timeout(apply.call(setTimeout,window,arguments),clearTimeout)};exports.setInterval=function(){return new Timeout(apply.call(setInterval,window,arguments),clearInterval)};exports.clearTimeout=exports.clearInterval=function(timeout){timeout.close()};function Timeout(id,clearFn){this._id=id;this._clearFn=clearFn}Timeout.prototype.unref=Timeout.prototype.ref=function(){};Timeout.prototype.close=function(){this._clearFn.call(window,this._id)};exports.enroll=function(item,msecs){clearTimeout(item._idleTimeoutId);item._idleTimeout=msecs};exports.unenroll=function(item){clearTimeout(item._idleTimeoutId);item._idleTimeout=-1};exports._unrefActive=exports.active=function(item){clearTimeout(item._idleTimeoutId);var msecs=item._idleTimeout;if(msecs>=0){item._idleTimeoutId=setTimeout(function onTimeout(){if(item._onTimeout)item._onTimeout()},msecs)}};exports.setImmediate=typeof setImmediate==="function"?setImmediate:function(fn){var id=nextImmediateId++;var args=arguments.length<2?false:slice.call(arguments,1);immediateIds[id]=true;nextTick(function onNextTick(){if(immediateIds[id]){if(args){fn.apply(null,args)}else{fn.call(null)}exports.clearImmediate(id)}});return id};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id]}}).call(this)}).call(this,require("timers").setImmediate,require("timers").clearImmediate)},{"process/browser.js":47,timers:50}]},{},[1]); \ No newline at end of file diff --git a/man/apply_mapshaper_commands.Rd b/man/apply_mapshaper_commands.Rd index d9c6efe..b5c0256 100644 --- a/man/apply_mapshaper_commands.Rd +++ b/man/apply_mapshaper_commands.Rd @@ -4,7 +4,7 @@ \alias{apply_mapshaper_commands} \title{Apply a mapshaper command string to a geojson object} \usage{ -apply_mapshaper_commands(data, command, force_FC, sys = FALSE) +apply_mapshaper_commands(data, command, force_FC, sys = FALSE, sys_gb = 8) } \arguments{ \item{data}{geojson object or path to geojson file. If a file path, \code{sys} @@ -22,6 +22,9 @@ will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ geojson diff --git a/man/check_sys_mapshaper.Rd b/man/check_sys_mapshaper.Rd index 767b530..3057f41 100644 --- a/man/check_sys_mapshaper.Rd +++ b/man/check_sys_mapshaper.Rd @@ -4,9 +4,11 @@ \alias{check_sys_mapshaper} \title{Check the system mapshaper} \usage{ -check_sys_mapshaper(verbose = TRUE) +check_sys_mapshaper(command = "mapshaper-xl", verbose = TRUE) } \arguments{ +\item{command}{either "mapshaper-xl" (default) or "mapshaper"} + \item{verbose}{Print a message stating mapshaper's current version? Default \code{TRUE}} } \value{ diff --git a/man/ms_clip.Rd b/man/ms_clip.Rd index babc13c..f317234 100644 --- a/man/ms_clip.Rd +++ b/man/ms_clip.Rd @@ -10,7 +10,8 @@ ms_clip( bbox = NULL, remove_slivers = FALSE, force_FC = TRUE, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -35,16 +36,19 @@ the target layer. Supply as a numeric vector: \code{c(minX, minY, maxX, maxY)}.} \item{remove_slivers}{Remove tiny sliver polygons created by clipping. (Default \code{FALSE})} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} even -if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -\code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -objects, as the output is always the same as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ clipped target in the same class as the input target diff --git a/man/ms_dissolve.Rd b/man/ms_dissolve.Rd index 78e7ddc..f9e5ea7 100644 --- a/man/ms_dissolve.Rd +++ b/man/ms_dissolve.Rd @@ -12,7 +12,8 @@ ms_dissolve( weight = NULL, snap = TRUE, force_FC = TRUE, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -35,16 +36,19 @@ copied to the aggregated feature.} \item{snap}{Snap together vertices within a small distance threshold to fix small coordinate misalignment in adjacent polygons. Default \code{TRUE}.} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} even -if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -\code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -objects, as the output is always the same class as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ the same class as the input diff --git a/man/ms_erase.Rd b/man/ms_erase.Rd index f4e52ba..b1a1d8f 100644 --- a/man/ms_erase.Rd +++ b/man/ms_erase.Rd @@ -10,7 +10,8 @@ ms_erase( bbox = NULL, remove_slivers = FALSE, force_FC = TRUE, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -33,16 +34,19 @@ the target layer. Supply as a numeric vector: \code{c(minX, minY, maxX, maxY)}.} \item{remove_slivers}{Remove tiny sliver polygons created by erasing. (Default \code{FALSE})} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} even -if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -\code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -objects, as the output is always the same class as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ erased target in the same format as the input target diff --git a/man/ms_explode.Rd b/man/ms_explode.Rd index 398b844..973240f 100644 --- a/man/ms_explode.Rd +++ b/man/ms_explode.Rd @@ -4,7 +4,7 @@ \alias{ms_explode} \title{Convert multipart lines or polygons to singlepart} \usage{ -ms_explode(input, force_FC = TRUE, sys = FALSE) +ms_explode(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) } \arguments{ \item{input}{One of: @@ -15,16 +15,19 @@ ms_explode(input, force_FC = TRUE, sys = FALSE) \item \code{sf} or \code{sfc} multipart lines, or polygons object }} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} even -if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} and -\code{geojsonio::geojson_sp}. If \code{FALSE} and there are no attributes associated with -the geometries, a \code{GeometryCollection} will be output. Ignored for \code{Spatial} -objects, as the output is always the same class as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ same class as input diff --git a/man/ms_filter_fields.Rd b/man/ms_filter_fields.Rd index 2504a28..aa51fa1 100644 --- a/man/ms_filter_fields.Rd +++ b/man/ms_filter_fields.Rd @@ -4,7 +4,7 @@ \alias{ms_filter_fields} \title{Delete fields in the attribute table} \usage{ -ms_filter_fields(input, fields, sys = FALSE) +ms_filter_fields(input, fields, sys = FALSE, sys_gb = 8) } \arguments{ \item{input}{spatial object to filter fields on. One of: @@ -20,6 +20,9 @@ ms_filter_fields(input, fields, sys = FALSE) \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ object with only specified attributes retained, in the same class as diff --git a/man/ms_filter_islands.Rd b/man/ms_filter_islands.Rd index d00205a..dc0669a 100644 --- a/man/ms_filter_islands.Rd +++ b/man/ms_filter_islands.Rd @@ -10,7 +10,8 @@ ms_filter_islands( min_vertices = NULL, drop_null_geometries = TRUE, force_FC = TRUE, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -32,17 +33,19 @@ calculated using spherical geometry in units of square meters.} Default \code{TRUE}. Ignored for \code{SpatialPolyons*}, as it is always \code{TRUE}.} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} -even if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -attributes associated with the geometries, a \code{GeometryCollection} will -be output. Ignored for \code{Spatial} objects, as the output is always the -same class as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ object with only specified features retained, in the same class as diff --git a/man/ms_innerlines.Rd b/man/ms_innerlines.Rd index 06d35bc..8d96bf2 100644 --- a/man/ms_innerlines.Rd +++ b/man/ms_innerlines.Rd @@ -4,7 +4,7 @@ \alias{ms_innerlines} \title{Create a line layer consisting of shared boundaries with no attribute data} \usage{ -ms_innerlines(input, force_FC = TRUE, sys = FALSE) +ms_innerlines(input, force_FC = TRUE, sys = FALSE, sys_gb = 8) } \arguments{ \item{input}{input polygons object to convert to inner lines. One of: @@ -15,16 +15,19 @@ ms_innerlines(input, force_FC = TRUE, sys = FALSE) \item \code{sf} or \code{sfc} polygons object }} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} -even if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -attributes associated with the geometries, a \code{GeometryCollection} will -be output. Ignored for \code{Spatial} objects.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ lines in the same class as the input layer, but without attributes diff --git a/man/ms_lines.Rd b/man/ms_lines.Rd index f636522..7e67653 100644 --- a/man/ms_lines.Rd +++ b/man/ms_lines.Rd @@ -4,7 +4,7 @@ \alias{ms_lines} \title{Convert polygons to topological boundaries (lines)} \usage{ -ms_lines(input, fields = NULL, force_FC = TRUE, sys = FALSE) +ms_lines(input, fields = NULL, force_FC = TRUE, sys = FALSE, sys_gb = 8) } \arguments{ \item{input}{input polygons object to convert to inner lines. One of: @@ -22,16 +22,19 @@ intermediate level of hierarchy at TYPE 1, with the lowest-level internal boundaries set to TYPE 2. Supplying a character vector of field names adds additional levels of hierarchy.} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} -even if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -attributes associated with the geometries, a \code{GeometryCollection} will -be output. Ignored for \code{Spatial} objects.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ topological boundaries as lines, in the same class as the input diff --git a/man/ms_points.Rd b/man/ms_points.Rd index cf0b96e..1fef39c 100644 --- a/man/ms_points.Rd +++ b/man/ms_points.Rd @@ -10,7 +10,8 @@ ms_points( x = NULL, y = NULL, force_FC = TRUE, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -35,17 +36,19 @@ specified. If left as \code{NULL} (default), will use centroids.} \item{y}{name of field containing y coordinate values. Must be \code{NULL} if \code{location} is specified.} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} -even if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -attributes associated with the geometries, a \code{GeometryCollection} will -be output. Ignored for \code{Spatial} objects, as a -\code{SpatialPoints*} is always the output.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ points in the same class as the input. diff --git a/man/ms_simplify.Rd b/man/ms_simplify.Rd index 99d5c52..a6ddfba 100644 --- a/man/ms_simplify.Rd +++ b/man/ms_simplify.Rd @@ -16,7 +16,8 @@ ms_simplify( force_FC = TRUE, drop_null_geometries = TRUE, snap_interval = NULL, - sys = FALSE + sys = FALSE, + sys_gb = 8 ) } \arguments{ @@ -55,13 +56,12 @@ small coordinate misalignment in adjacent polygons. Default \code{TRUE}.} This prevents small shapes from disappearing during simplification if \code{keep_shapes = TRUE}. Default \code{FALSE}} -\item{force_FC}{should the output be forced to be a \code{FeatureCollection} -even if there are no attributes? Default \code{TRUE}. -\code{FeatureCollections} are more compatible with \code{rgdal::readOGR} -and \code{geojsonio::geojson_sp}. If \code{FALSE} and there are no -attributes associated with the geometries, a \code{GeometryCollection} will -be output. Ignored for \code{Spatial} objects, as the output is always the -same class as the input.} +\item{force_FC}{should the output be forced to be a FeatureCollection (or +Spatial*DataFrame) even if there are no attributes? Default \code{TRUE}. +FeatureCollections are more compatible with rgdal::readOGR and +geojsonio::geojson_sp. If FALSE and there are no attributes associated with +the geometries, a GeometryCollection (or Spatial object with no dataframe) +will be output.} \item{drop_null_geometries}{should Features with null geometries be dropped? Ignored for \code{Spatial*} objects, as it is always \code{TRUE}.} @@ -72,6 +72,9 @@ numeric. Default \code{NULL}} \item{sys}{Should the system mapshaper be used instead of the bundled mapshaper? Gives better performance on large files. Requires the mapshaper node package to be installed and on the PATH.} + +\item{sys_gb}{How much memory (in GB) should be allocated if using the system +mapshaper (\code{sys = TRUE})? Default 8. Ignored if \code{sys = FALSE}} } \value{ a simplified representation of the geometry in the same class as the diff --git a/tests/testthat/test-clip_erase.R b/tests/testthat/test-clip_erase.R index bdec958..dedc516 100644 --- a/tests/testthat/test-clip_erase.R +++ b/tests/testthat/test-clip_erase.R @@ -76,6 +76,7 @@ test_that("ms_clip.geo_json works", { skip_if_not(has_sys_mapshaper()) expect_is(ms_clip(poly, clip_poly, sys = TRUE), "geo_json") + expect_is(ms_clip(poly, clip_poly, sys = TRUE, sys_gb = 2), "geo_json") }) test_that("ms_clip.character works", { diff --git a/tests/testthat/test-filter_islands.R b/tests/testthat/test-filter_islands.R index aa06011..dca8ee6 100644 --- a/tests/testthat/test-filter_islands.R +++ b/tests/testthat/test-filter_islands.R @@ -74,6 +74,7 @@ test_that("ms_filter_islands works drop_null_geometries = FALSE", { }) test_that("specifying min_vertices and min_area works", { + skip("possible bug in mapshaper https://github.com/mbloch/mapshaper/issues/487") expected_json <- structure("{\"type\":\"FeatureCollection\",\"features\":[\n{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[102,2],[102,4],[104,4],[104,2],[102,2]]]},\"properties\":{\"rmapshaperid\":0}},\n{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[100,0],[100,1],[101,1],[101,0],[100,0]]]},\"properties\":{\"rmapshaperid\":1}}\n]}", class = c("json", "geo_json")) expect_equal(ms_filter_islands(geojson_list(poly), min_area = 12391399902, min_vertices = 4), geojson_list(expected_json)) }) diff --git a/tools/readme/unnamed-chunk-4-1.png b/tools/readme/unnamed-chunk-4-1.png index 5b53411..afbfe2f 100644 Binary files a/tools/readme/unnamed-chunk-4-1.png and b/tools/readme/unnamed-chunk-4-1.png differ diff --git a/vignettes/rmapshaper.Rmd b/vignettes/rmapshaper.Rmd index e1094fc..2f7b191 100644 --- a/vignettes/rmapshaper.Rmd +++ b/vignettes/rmapshaper.Rmd @@ -124,17 +124,16 @@ check_sys_mapshaper() ``` If you get an error, you will need to install mapshaper. First install node -(https://nodejs.org/en/) and then install mapshaper with: +(https://nodejs.org/en/) and then install mapshaper in a command prompt with: ``` -npm install -g mapshaper +$ npm install -g mapshaper ``` Then you can use the `sys` argument in any rmapshaper function: ```{r eval=nzchar(Sys.which("mapshaper"))} -states_simp_internal <- ms_simplify(states_sf) states_simp_sys <- ms_simplify(states_sf, sys = TRUE) -all.equal(states_simp_internal, states_simp_sys) +plot(states_simp_sys[, "region"]) ```