From 158a90b25bbcace5c8d68f0d6a42a34ece1e3113 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 20 May 2016 02:20:17 -0700 Subject: [PATCH] Grafana Provider, with Data Source and Dashboard resources (#6206) * Grafana provider * grafana_data_source resource. Allows data sources to be created in Grafana. Supports all data source types that are accepted in the current version of Grafana, and will support any future ones that fit into the existing structure. * Vendoring of apparentlymart/go-grafana-api This is in anticipation of adding a Grafana provider plugin. * grafana_dashboard resource * Website documentation for the Grafana provider. --- Godeps/Godeps.json | 58 + builtin/bins/provider-grafana/main.go | 12 + builtin/providers/grafana/provider.go | 41 + builtin/providers/grafana/provider_test.go | 54 + .../providers/grafana/resource_dashboard.go | 127 + .../grafana/resource_dashboard_test.go | 83 + .../providers/grafana/resource_data_source.go | 184 + .../grafana/resource_data_source_test.go | 87 + vendor/github.com/Unknwon/com/.gitignore | 24 + vendor/github.com/Unknwon/com/.travis.yml | 13 + vendor/github.com/Unknwon/com/LICENSE | 191 + vendor/github.com/Unknwon/com/README.md | 20 + vendor/github.com/Unknwon/com/cmd.go | 161 + vendor/github.com/Unknwon/com/convert.go | 157 + vendor/github.com/Unknwon/com/dir.go | 173 + vendor/github.com/Unknwon/com/file.go | 145 + vendor/github.com/Unknwon/com/html.go | 60 + vendor/github.com/Unknwon/com/http.go | 201 + vendor/github.com/Unknwon/com/math.go | 29 + vendor/github.com/Unknwon/com/path.go | 80 + vendor/github.com/Unknwon/com/regex.go | 56 + vendor/github.com/Unknwon/com/slice.go | 87 + vendor/github.com/Unknwon/com/string.go | 243 + vendor/github.com/Unknwon/com/time.go | 115 + vendor/github.com/Unknwon/com/url.go | 41 + vendor/github.com/Unknwon/macaron/.gitignore | 2 + vendor/github.com/Unknwon/macaron/LICENSE | 191 + vendor/github.com/Unknwon/macaron/README.md | 94 + vendor/github.com/Unknwon/macaron/context.go | 510 + vendor/github.com/Unknwon/macaron/gzip.go | 113 + .../Unknwon/macaron/inject/README.md | 4 + .../Unknwon/macaron/inject/inject.go | 202 + .../Unknwon/macaron/inject/inject.goconvey | 1 + vendor/github.com/Unknwon/macaron/logger.go | 61 + vendor/github.com/Unknwon/macaron/macaron.go | 278 + .../Unknwon/macaron/macaronlogo.png | Bin 0 -> 88924 bytes vendor/github.com/Unknwon/macaron/recovery.go | 163 + vendor/github.com/Unknwon/macaron/render.go | 598 + .../Unknwon/macaron/response_writer.go | 111 + .../Unknwon/macaron/return_handler.go | 76 + vendor/github.com/Unknwon/macaron/router.go | 360 + vendor/github.com/Unknwon/macaron/static.go | 205 + vendor/github.com/Unknwon/macaron/tree.go | 379 + .../apparentlymart/go-grafana-api/.gitignore | 24 + .../apparentlymart/go-grafana-api/LICENSE | 202 + .../apparentlymart/go-grafana-api/README.md | 2 + .../apparentlymart/go-grafana-api/admin.go | 46 + .../apparentlymart/go-grafana-api/client.go | 56 + .../go-grafana-api/dashboard.go | 100 + .../go-grafana-api/datasource.go | 123 + .../apparentlymart/go-grafana-api/orgs.go | 70 + .../apparentlymart/go-grafana-api/user.go | 39 + vendor/github.com/gosimple/slug/.gitignore | 2 + vendor/github.com/gosimple/slug/README.md | 54 + vendor/github.com/gosimple/slug/doc.go | 43 + .../gosimple/slug/languages_substitution.go | 45 + vendor/github.com/gosimple/slug/slug.go | 126 + vendor/github.com/grafana/grafana/LICENSE.md | 14 + vendor/github.com/grafana/grafana/NOTICE.md | 16 + .../grafana/grafana/pkg/api/dtos/apikey.go | 6 + .../grafana/grafana/pkg/api/dtos/index.go | 25 + .../grafana/grafana/pkg/api/dtos/invite.go | 26 + .../grafana/grafana/pkg/api/dtos/models.go | 91 + .../grafana/grafana/pkg/api/dtos/org.go | 14 + .../grafana/pkg/api/dtos/plugin_bundle.go | 8 + .../grafana/grafana/pkg/api/dtos/user.go | 52 + .../grafana/grafana/pkg/log/console.go | 157 + .../grafana/grafana/pkg/log/file.go | 243 + .../github.com/grafana/grafana/pkg/log/log.go | 303 + .../grafana/grafana/pkg/log/syslog.go | 95 + .../grafana/grafana/pkg/models/address.go | 10 + .../grafana/grafana/pkg/models/apikey.go | 70 + .../grafana/pkg/models/dashboard_snapshot.go | 49 + .../grafana/grafana/pkg/models/dashboards.go | 148 + .../grafana/grafana/pkg/models/datasource.go | 144 + .../grafana/grafana/pkg/models/emails.go | 22 + .../grafana/pkg/models/home_dashboard.go | 14 + .../grafana/grafana/pkg/models/models.go | 9 + .../grafana/grafana/pkg/models/org.go | 89 + .../grafana/grafana/pkg/models/org_user.go | 78 + .../grafana/pkg/models/plugin_bundle.go | 34 + .../grafana/grafana/pkg/models/quotas.go | 130 + .../grafana/grafana/pkg/models/search.go | 10 + .../grafana/grafana/pkg/models/star.go | 40 + .../grafana/grafana/pkg/models/stats.go | 20 + .../grafana/grafana/pkg/models/temp_user.go | 92 + .../grafana/grafana/pkg/models/user.go | 164 + .../grafana/grafana/pkg/setting/setting.go | 634 + .../grafana/pkg/setting/setting_oauth.go | 18 + .../grafana/pkg/setting/setting_quota.go | 94 + .../grafana/pkg/setting/setting_smtp.go | 31 + .../grafana/grafana/pkg/util/encoding.go | 104 + .../grafana/grafana/pkg/util/filepath.go | 98 + .../grafana/grafana/pkg/util/json.go | 3 + .../grafana/grafana/pkg/util/strings.go | 18 + .../grafana/grafana/pkg/util/url.go | 37 + .../grafana/grafana/pkg/util/validation.go | 18 + .../macaron-contrib/session/.gitignore | 2 + .../macaron-contrib/session/LICENSE | 191 + .../macaron-contrib/session/README.md | 21 + .../macaron-contrib/session/file.go | 259 + .../macaron-contrib/session/memory.go | 212 + .../macaron-contrib/session/session.go | 399 + .../macaron-contrib/session/utils.go | 60 + .../github.com/rainycape/unidecode/.gitignore | 23 + vendor/github.com/rainycape/unidecode/LICENSE | 203 + .../github.com/rainycape/unidecode/README.md | 6 + .../github.com/rainycape/unidecode/decode.go | 41 + .../rainycape/unidecode/make_table.go | 71 + .../github.com/rainycape/unidecode/table.go | 5 + .../github.com/rainycape/unidecode/table.txt | 46731 ++++++++++++++++ .../rainycape/unidecode/unidecode.go | 58 + vendor/gopkg.in/ini.v1/.gitignore | 4 + vendor/gopkg.in/ini.v1/LICENSE | 191 + vendor/gopkg.in/ini.v1/README.md | 578 + vendor/gopkg.in/ini.v1/README_ZH.md | 565 + vendor/gopkg.in/ini.v1/ini.go | 1027 + vendor/gopkg.in/ini.v1/parser.go | 312 + vendor/gopkg.in/ini.v1/struct.go | 351 + website/source/assets/stylesheets/_docs.scss | 1 + .../providers/grafana/index.html.markdown | 38 + .../providers/grafana/r/dashboard.html.md | 47 + .../providers/grafana/r/data_source.html.md | 77 + website/source/layouts/docs.erb | 4 + website/source/layouts/grafana.erb | 29 + 125 files changed, 61456 insertions(+) create mode 100644 builtin/bins/provider-grafana/main.go create mode 100644 builtin/providers/grafana/provider.go create mode 100644 builtin/providers/grafana/provider_test.go create mode 100644 builtin/providers/grafana/resource_dashboard.go create mode 100644 builtin/providers/grafana/resource_dashboard_test.go create mode 100644 builtin/providers/grafana/resource_data_source.go create mode 100644 builtin/providers/grafana/resource_data_source_test.go create mode 100644 vendor/github.com/Unknwon/com/.gitignore create mode 100644 vendor/github.com/Unknwon/com/.travis.yml create mode 100644 vendor/github.com/Unknwon/com/LICENSE create mode 100644 vendor/github.com/Unknwon/com/README.md create mode 100644 vendor/github.com/Unknwon/com/cmd.go create mode 100644 vendor/github.com/Unknwon/com/convert.go create mode 100644 vendor/github.com/Unknwon/com/dir.go create mode 100644 vendor/github.com/Unknwon/com/file.go create mode 100644 vendor/github.com/Unknwon/com/html.go create mode 100644 vendor/github.com/Unknwon/com/http.go create mode 100644 vendor/github.com/Unknwon/com/math.go create mode 100644 vendor/github.com/Unknwon/com/path.go create mode 100644 vendor/github.com/Unknwon/com/regex.go create mode 100644 vendor/github.com/Unknwon/com/slice.go create mode 100644 vendor/github.com/Unknwon/com/string.go create mode 100644 vendor/github.com/Unknwon/com/time.go create mode 100644 vendor/github.com/Unknwon/com/url.go create mode 100644 vendor/github.com/Unknwon/macaron/.gitignore create mode 100644 vendor/github.com/Unknwon/macaron/LICENSE create mode 100644 vendor/github.com/Unknwon/macaron/README.md create mode 100644 vendor/github.com/Unknwon/macaron/context.go create mode 100644 vendor/github.com/Unknwon/macaron/gzip.go create mode 100644 vendor/github.com/Unknwon/macaron/inject/README.md create mode 100644 vendor/github.com/Unknwon/macaron/inject/inject.go create mode 100644 vendor/github.com/Unknwon/macaron/inject/inject.goconvey create mode 100644 vendor/github.com/Unknwon/macaron/logger.go create mode 100644 vendor/github.com/Unknwon/macaron/macaron.go create mode 100644 vendor/github.com/Unknwon/macaron/macaronlogo.png create mode 100644 vendor/github.com/Unknwon/macaron/recovery.go create mode 100644 vendor/github.com/Unknwon/macaron/render.go create mode 100644 vendor/github.com/Unknwon/macaron/response_writer.go create mode 100644 vendor/github.com/Unknwon/macaron/return_handler.go create mode 100644 vendor/github.com/Unknwon/macaron/router.go create mode 100644 vendor/github.com/Unknwon/macaron/static.go create mode 100644 vendor/github.com/Unknwon/macaron/tree.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/.gitignore create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/LICENSE create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/README.md create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/admin.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/client.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/dashboard.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/datasource.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/orgs.go create mode 100644 vendor/github.com/apparentlymart/go-grafana-api/user.go create mode 100644 vendor/github.com/gosimple/slug/.gitignore create mode 100644 vendor/github.com/gosimple/slug/README.md create mode 100644 vendor/github.com/gosimple/slug/doc.go create mode 100644 vendor/github.com/gosimple/slug/languages_substitution.go create mode 100644 vendor/github.com/gosimple/slug/slug.go create mode 100644 vendor/github.com/grafana/grafana/LICENSE.md create mode 100644 vendor/github.com/grafana/grafana/NOTICE.md create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/apikey.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/index.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/invite.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/models.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/org.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/plugin_bundle.go create mode 100644 vendor/github.com/grafana/grafana/pkg/api/dtos/user.go create mode 100644 vendor/github.com/grafana/grafana/pkg/log/console.go create mode 100644 vendor/github.com/grafana/grafana/pkg/log/file.go create mode 100644 vendor/github.com/grafana/grafana/pkg/log/log.go create mode 100644 vendor/github.com/grafana/grafana/pkg/log/syslog.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/address.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/apikey.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/dashboard_snapshot.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/dashboards.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/datasource.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/emails.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/home_dashboard.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/models.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/org.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/org_user.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/plugin_bundle.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/quotas.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/search.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/star.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/stats.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/temp_user.go create mode 100644 vendor/github.com/grafana/grafana/pkg/models/user.go create mode 100644 vendor/github.com/grafana/grafana/pkg/setting/setting.go create mode 100644 vendor/github.com/grafana/grafana/pkg/setting/setting_oauth.go create mode 100644 vendor/github.com/grafana/grafana/pkg/setting/setting_quota.go create mode 100644 vendor/github.com/grafana/grafana/pkg/setting/setting_smtp.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/encoding.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/filepath.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/json.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/strings.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/url.go create mode 100644 vendor/github.com/grafana/grafana/pkg/util/validation.go create mode 100644 vendor/github.com/macaron-contrib/session/.gitignore create mode 100644 vendor/github.com/macaron-contrib/session/LICENSE create mode 100644 vendor/github.com/macaron-contrib/session/README.md create mode 100644 vendor/github.com/macaron-contrib/session/file.go create mode 100644 vendor/github.com/macaron-contrib/session/memory.go create mode 100644 vendor/github.com/macaron-contrib/session/session.go create mode 100644 vendor/github.com/macaron-contrib/session/utils.go create mode 100644 vendor/github.com/rainycape/unidecode/.gitignore create mode 100644 vendor/github.com/rainycape/unidecode/LICENSE create mode 100644 vendor/github.com/rainycape/unidecode/README.md create mode 100644 vendor/github.com/rainycape/unidecode/decode.go create mode 100644 vendor/github.com/rainycape/unidecode/make_table.go create mode 100644 vendor/github.com/rainycape/unidecode/table.go create mode 100644 vendor/github.com/rainycape/unidecode/table.txt create mode 100644 vendor/github.com/rainycape/unidecode/unidecode.go create mode 100644 vendor/gopkg.in/ini.v1/.gitignore create mode 100644 vendor/gopkg.in/ini.v1/LICENSE create mode 100644 vendor/gopkg.in/ini.v1/README.md create mode 100644 vendor/gopkg.in/ini.v1/README_ZH.md create mode 100644 vendor/gopkg.in/ini.v1/ini.go create mode 100644 vendor/gopkg.in/ini.v1/parser.go create mode 100644 vendor/gopkg.in/ini.v1/struct.go create mode 100644 website/source/docs/providers/grafana/index.html.markdown create mode 100644 website/source/docs/providers/grafana/r/dashboard.html.md create mode 100644 website/source/docs/providers/grafana/r/data_source.html.md create mode 100644 website/source/layouts/grafana.erb diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 54600af2ec9d..1aaf0b015738 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -204,6 +204,18 @@ "ImportPath": "github.com/Ensighten/udnssdk", "Rev": "0290933f5e8afd933f2823fce32bf2847e6ea603" }, + { + "ImportPath": "github.com/Unknwon/com", + "Rev": "28b053d5a2923b87ce8c5a08f3af779894a72758" + }, + { + "ImportPath": "github.com/Unknwon/macaron", + "Rev": "9b82b0372a4edf52f66fbc8feaa6aafe0123001d" + }, + { + "ImportPath": "github.com/Unknwon/macaron/inject", + "Rev": "9b82b0372a4edf52f66fbc8feaa6aafe0123001d" + }, { "ImportPath": "github.com/ajg/form", "Rev": "c9e1c3ae1f869d211cdaa085d23c6af2f5f83866" @@ -212,6 +224,10 @@ "ImportPath": "github.com/apparentlymart/go-cidr/cidr", "Rev": "a3ebdb999b831ecb6ab8a226e31b07b2b9061c47" }, + { + "ImportPath": "github.com/apparentlymart/go-grafana-api", + "Rev": "d49f95c81c580a4e7a15244b9b12dce8f60750f4" + }, { "ImportPath": "github.com/apparentlymart/go-rundeck-api/rundeck", "Comment": "v0.0.1-1-g43fcd8f", @@ -677,6 +693,35 @@ "ImportPath": "github.com/google/go-querystring/query", "Rev": "2a60fc2ba6c19de80291203597d752e9ba58e4c0" }, + { + "ImportPath": "github.com/gosimple/slug", + "Rev": "ea39c588e0a5b1064e0f98d7307e6c2f286f32e8" + }, + { + "ImportPath": "github.com/grafana/grafana/pkg/api/dtos", + "Comment": "v2.6.0-179-gc0cf0cb", + "Rev": "c0cf0cb802adad24252ce1307c4c896edd566870" + }, + { + "ImportPath": "github.com/grafana/grafana/pkg/log", + "Comment": "v2.6.0-179-gc0cf0cb", + "Rev": "c0cf0cb802adad24252ce1307c4c896edd566870" + }, + { + "ImportPath": "github.com/grafana/grafana/pkg/models", + "Comment": "v2.6.0-179-gc0cf0cb", + "Rev": "c0cf0cb802adad24252ce1307c4c896edd566870" + }, + { + "ImportPath": "github.com/grafana/grafana/pkg/setting", + "Comment": "v2.6.0-179-gc0cf0cb", + "Rev": "c0cf0cb802adad24252ce1307c4c896edd566870" + }, + { + "ImportPath": "github.com/grafana/grafana/pkg/util", + "Comment": "v2.6.0-179-gc0cf0cb", + "Rev": "c0cf0cb802adad24252ce1307c4c896edd566870" + }, { "ImportPath": "github.com/hashicorp/atlas-go/archive", "Comment": "20141209094003-92-g95fa852", @@ -911,6 +956,10 @@ "ImportPath": "github.com/lusis/go-artifactory/src/artifactory.v401", "Rev": "7e4ce345df825841661d1b3ffbb1327083d4a22f" }, + { + "ImportPath": "github.com/macaron-contrib/session", + "Rev": "d392059301313eee8059c85a4e698f22c664ef78" + }, { "ImportPath": "github.com/masterzen/simplexml/dom", "Rev": "95ba30457eb1121fa27753627c774c7cd4e90083" @@ -1238,6 +1287,10 @@ "Comment": "v2.0.1-8-g983d3a5", "Rev": "983d3a5fab1bf04d1b412465d2d9f8430e2e917e" }, + { + "ImportPath": "github.com/rainycape/unidecode", + "Rev": "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c" + }, { "ImportPath": "github.com/satori/go.uuid", "Rev": "d41af8bb6a7704f00bc3b7cba9355ae6a5a80048" @@ -1481,6 +1534,11 @@ { "ImportPath": "google.golang.org/cloud/internal", "Rev": "fb10e8da373d97f6ba5e648299a10b3b91f14cd5" + }, + { + "ImportPath": "gopkg.in/ini.v1", + "Comment": "v1.8.5", + "Rev": "77178f22699a4ecafce485fb8d86b7afeb7e3e28" } ] } diff --git a/builtin/bins/provider-grafana/main.go b/builtin/bins/provider-grafana/main.go new file mode 100644 index 000000000000..aeaba2ef9281 --- /dev/null +++ b/builtin/bins/provider-grafana/main.go @@ -0,0 +1,12 @@ +package main + +import ( + "github.com/hashicorp/terraform/builtin/providers/grafana" + "github.com/hashicorp/terraform/plugin" +) + +func main() { + plugin.Serve(&plugin.ServeOpts{ + ProviderFunc: grafana.Provider, + }) +} diff --git a/builtin/providers/grafana/provider.go b/builtin/providers/grafana/provider.go new file mode 100644 index 000000000000..bd29c72014fb --- /dev/null +++ b/builtin/providers/grafana/provider.go @@ -0,0 +1,41 @@ +package grafana + +import ( + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/terraform" + + gapi "github.com/apparentlymart/go-grafana-api" +) + +func Provider() terraform.ResourceProvider { + return &schema.Provider{ + Schema: map[string]*schema.Schema{ + "url": &schema.Schema{ + Type: schema.TypeString, + Required: true, + DefaultFunc: schema.EnvDefaultFunc("GRAFANA_URL", nil), + Description: "URL of the root of the target Grafana server.", + }, + "auth": &schema.Schema{ + Type: schema.TypeString, + Required: true, + DefaultFunc: schema.EnvDefaultFunc("GRAFANA_AUTH", nil), + Description: "Credentials for accessing the Grafana API.", + }, + }, + + ResourcesMap: map[string]*schema.Resource{ + "grafana_dashboard": ResourceDashboard(), + "grafana_data_source": ResourceDataSource(), + }, + + ConfigureFunc: providerConfigure, + } +} + +func providerConfigure(d *schema.ResourceData) (interface{}, error) { + return gapi.New( + d.Get("auth").(string), + d.Get("url").(string), + ) +} diff --git a/builtin/providers/grafana/provider_test.go b/builtin/providers/grafana/provider_test.go new file mode 100644 index 000000000000..9daba4c7207d --- /dev/null +++ b/builtin/providers/grafana/provider_test.go @@ -0,0 +1,54 @@ +package grafana + +import ( + "os" + "testing" + + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/terraform" +) + +// To run these acceptance tests, you will need a Grafana server. +// Grafana can be downloaded here: http://grafana.org/download/ +// +// The tests will need an API key to authenticate with the server. To create +// one, use the menu for one of your installation's organizations (The +// "Main Org." is fine if you've just done a fresh installation to run these +// tests) to reach the "API Keys" admin page. +// +// Giving the API key the Admin role is the easiest way to ensure enough +// access is granted to run all of the tests. +// +// Once you've created the API key, set the GRAFANA_URL and GRAFANA_AUTH +// environment variables to the Grafana base URL and the API key respectively, +// and then run: +// make testacc TEST=./builtin/providers/grafana + +var testAccProviders map[string]terraform.ResourceProvider +var testAccProvider *schema.Provider + +func init() { + testAccProvider = Provider().(*schema.Provider) + testAccProviders = map[string]terraform.ResourceProvider{ + "grafana": testAccProvider, + } +} + +func TestProvider(t *testing.T) { + if err := Provider().(*schema.Provider).InternalValidate(); err != nil { + t.Fatalf("err: %s", err) + } +} + +func TestProvider_impl(t *testing.T) { + var _ terraform.ResourceProvider = Provider() +} + +func testAccPreCheck(t *testing.T) { + if v := os.Getenv("GRAFANA_URL"); v == "" { + t.Fatal("GRAFANA_URL must be set for acceptance tests") + } + if v := os.Getenv("GRAFANA_AUTH"); v == "" { + t.Fatal("GRAFANA_AUTH must be set for acceptance tests") + } +} diff --git a/builtin/providers/grafana/resource_dashboard.go b/builtin/providers/grafana/resource_dashboard.go new file mode 100644 index 000000000000..aaac23da1b7f --- /dev/null +++ b/builtin/providers/grafana/resource_dashboard.go @@ -0,0 +1,127 @@ +package grafana + +import ( + "encoding/json" + "fmt" + + "github.com/hashicorp/terraform/helper/schema" + + gapi "github.com/apparentlymart/go-grafana-api" +) + +func ResourceDashboard() *schema.Resource { + return &schema.Resource{ + Create: CreateDashboard, + Delete: DeleteDashboard, + Read: ReadDashboard, + + Schema: map[string]*schema.Schema{ + "slug": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + }, + + "config_json": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + StateFunc: NormalizeDashboardConfigJSON, + ValidateFunc: ValidateDashboardConfigJSON, + }, + }, + } +} + +func CreateDashboard(d *schema.ResourceData, meta interface{}) error { + client := meta.(*gapi.Client) + + model := prepareDashboardModel(d.Get("config_json").(string)) + + resp, err := client.SaveDashboard(model, false) + if err != nil { + return err + } + + d.SetId(resp.Slug) + + return ReadDashboard(d, meta) +} + +func ReadDashboard(d *schema.ResourceData, meta interface{}) error { + client := meta.(*gapi.Client) + + slug := d.Id() + + dashboard, err := client.Dashboard(slug) + if err != nil { + return err + } + + configJSONBytes, err := json.Marshal(dashboard.Model) + if err != nil { + return err + } + + configJSON := NormalizeDashboardConfigJSON(string(configJSONBytes)) + + d.SetId(dashboard.Meta.Slug) + d.Set("slug", dashboard.Meta.Slug) + d.Set("config_json", configJSON) + + return nil +} + +func DeleteDashboard(d *schema.ResourceData, meta interface{}) error { + client := meta.(*gapi.Client) + + slug := d.Id() + return client.DeleteDashboard(slug) +} + +func prepareDashboardModel(configJSON string) map[string]interface{} { + configMap := map[string]interface{}{} + err := json.Unmarshal([]byte(configJSON), &configMap) + if err != nil { + // The validate function should've taken care of this. + panic(fmt.Errorf("Invalid JSON got into prepare func")) + } + + delete(configMap, "id") + configMap["version"] = 0 + + return configMap +} + +func ValidateDashboardConfigJSON(configI interface{}, k string) ([]string, []error) { + configJSON := configI.(string) + configMap := map[string]interface{}{} + err := json.Unmarshal([]byte(configJSON), &configMap) + if err != nil { + return nil, []error{err} + } + return nil, nil +} + +func NormalizeDashboardConfigJSON(configI interface{}) string { + configJSON := configI.(string) + + configMap := map[string]interface{}{} + err := json.Unmarshal([]byte(configJSON), &configMap) + if err != nil { + // The validate function should've taken care of this. + return "" + } + + // Some properties are managed by this provider and are thus not + // significant when included in the JSON. + delete(configMap, "id") + delete(configMap, "version") + + ret, err := json.Marshal(configMap) + if err != nil { + // Should never happen. + return configJSON + } + + return string(ret) +} diff --git a/builtin/providers/grafana/resource_dashboard_test.go b/builtin/providers/grafana/resource_dashboard_test.go new file mode 100644 index 000000000000..f02a756cd978 --- /dev/null +++ b/builtin/providers/grafana/resource_dashboard_test.go @@ -0,0 +1,83 @@ +package grafana + +import ( + "fmt" + "regexp" + "testing" + + gapi "github.com/apparentlymart/go-grafana-api" + + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" +) + +func TestAccDashboard_basic(t *testing.T) { + var dashboard gapi.Dashboard + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccDashboardCheckDestroy(&dashboard), + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccDashboardConfig_basic, + Check: resource.ComposeTestCheckFunc( + testAccDashboardCheckExists("grafana_dashboard.test", &dashboard), + resource.TestMatchResourceAttr( + "grafana_dashboard.test", "id", regexp.MustCompile(`terraform-acceptance-test.*`), + ), + ), + }, + }, + }) +} + +func testAccDashboardCheckExists(rn string, dashboard *gapi.Dashboard) resource.TestCheckFunc { + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[rn] + if !ok { + return fmt.Errorf("resource not found: %s", rn) + } + + if rs.Primary.ID == "" { + return fmt.Errorf("resource id not set") + } + + client := testAccProvider.Meta().(*gapi.Client) + gotDashboard, err := client.Dashboard(rs.Primary.ID) + if err != nil { + return fmt.Errorf("error getting dashboard: %s", err) + } + + *dashboard = *gotDashboard + + return nil + } +} + +func testAccDashboardCheckDestroy(dashboard *gapi.Dashboard) resource.TestCheckFunc { + return func(s *terraform.State) error { + client := testAccProvider.Meta().(*gapi.Client) + _, err := client.Dashboard(dashboard.Meta.Slug) + if err == nil { + return fmt.Errorf("dashboard still exists") + } + return nil + } +} + +// The "id" and "version" properties in the config below are there to test +// that we correctly normalize them away. They are not actually used by this +// resource, since it uses slugs for identification and never modifies an +// existing dashboard. +const testAccDashboardConfig_basic = ` +resource "grafana_dashboard" "test" { + config_json = <= **go 1.2** + +Code Convention: based on [Go Code Convention](https://github.com/Unknwon/go-code-convention). + +## Contribute + +Your contribute is welcome, but you have to check following steps after you added some functions and commit them: + +1. Make sure you wrote user-friendly comments for **all functions** . +2. Make sure you wrote test cases with any possible condition for **all functions** in file `*_test.go`. +3. Make sure you wrote benchmarks for **all functions** in file `*_test.go`. +4. Make sure you wrote useful examples for **all functions** in file `example_test.go`. +5. Make sure you ran `go test` and got **PASS** . diff --git a/vendor/github.com/Unknwon/com/cmd.go b/vendor/github.com/Unknwon/com/cmd.go new file mode 100644 index 000000000000..dc7086d8f712 --- /dev/null +++ b/vendor/github.com/Unknwon/com/cmd.go @@ -0,0 +1,161 @@ +// +build go1.2 + +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package com is an open source project for commonly used functions for the Go programming language. +package com + +import ( + "bytes" + "fmt" + "os/exec" + "runtime" + "strings" +) + +// ExecCmdDirBytes executes system command in given directory +// and return stdout, stderr in bytes type, along with possible error. +func ExecCmdDirBytes(dir, cmdName string, args ...string) ([]byte, []byte, error) { + bufOut := new(bytes.Buffer) + bufErr := new(bytes.Buffer) + + cmd := exec.Command(cmdName, args...) + cmd.Dir = dir + cmd.Stdout = bufOut + cmd.Stderr = bufErr + + err := cmd.Run() + return bufOut.Bytes(), bufErr.Bytes(), err +} + +// ExecCmdBytes executes system command +// and return stdout, stderr in bytes type, along with possible error. +func ExecCmdBytes(cmdName string, args ...string) ([]byte, []byte, error) { + return ExecCmdDirBytes("", cmdName, args...) +} + +// ExecCmdDir executes system command in given directory +// and return stdout, stderr in string type, along with possible error. +func ExecCmdDir(dir, cmdName string, args ...string) (string, string, error) { + bufOut, bufErr, err := ExecCmdDirBytes(dir, cmdName, args...) + return string(bufOut), string(bufErr), err +} + +// ExecCmd executes system command +// and return stdout, stderr in string type, along with possible error. +func ExecCmd(cmdName string, args ...string) (string, string, error) { + return ExecCmdDir("", cmdName, args...) +} + +// _________ .__ .____ +// \_ ___ \ ____ | | ___________ | | ____ ____ +// / \ \/ / _ \| | / _ \_ __ \ | | / _ \ / ___\ +// \ \___( <_> ) |_( <_> ) | \/ | |__( <_> ) /_/ > +// \______ /\____/|____/\____/|__| |_______ \____/\___ / +// \/ \/ /_____/ + +// Color number constants. +const ( + Gray = uint8(iota + 90) + Red + Green + Yellow + Blue + Magenta + //NRed = uint8(31) // Normal + EndColor = "\033[0m" +) + +// getColorLevel returns colored level string by given level. +func getColorLevel(level string) string { + level = strings.ToUpper(level) + switch level { + case "TRAC": + return fmt.Sprintf("\033[%dm%s\033[0m", Blue, level) + case "ERRO": + return fmt.Sprintf("\033[%dm%s\033[0m", Red, level) + case "WARN": + return fmt.Sprintf("\033[%dm%s\033[0m", Magenta, level) + case "SUCC": + return fmt.Sprintf("\033[%dm%s\033[0m", Green, level) + default: + return level + } +} + +// ColorLogS colors log and return colored content. +// Log format: [ error ]. +// Level: TRAC -> blue; ERRO -> red; WARN -> Magenta; SUCC -> green; others -> default. +// Content: default; path: yellow; error -> red. +// Level has to be surrounded by "[" and "]". +// Highlights have to be surrounded by "# " and " #"(space), "#" will be deleted. +// Paths have to be surrounded by "( " and " )"(space). +// Errors have to be surrounded by "[ " and " ]"(space). +// Note: it hasn't support windows yet, contribute is welcome. +func ColorLogS(format string, a ...interface{}) string { + log := fmt.Sprintf(format, a...) + + var clog string + + if runtime.GOOS != "windows" { + // Level. + i := strings.Index(log, "]") + if log[0] == '[' && i > -1 { + clog += "[" + getColorLevel(log[1:i]) + "]" + } + + log = log[i+1:] + + // Error. + log = strings.Replace(log, "[ ", fmt.Sprintf("[\033[%dm", Red), -1) + log = strings.Replace(log, " ]", EndColor+"]", -1) + + // Path. + log = strings.Replace(log, "( ", fmt.Sprintf("(\033[%dm", Yellow), -1) + log = strings.Replace(log, " )", EndColor+")", -1) + + // Highlights. + log = strings.Replace(log, "# ", fmt.Sprintf("\033[%dm", Gray), -1) + log = strings.Replace(log, " #", EndColor, -1) + + } else { + // Level. + i := strings.Index(log, "]") + if log[0] == '[' && i > -1 { + clog += "[" + log[1:i] + "]" + } + + log = log[i+1:] + + // Error. + log = strings.Replace(log, "[ ", "[", -1) + log = strings.Replace(log, " ]", "]", -1) + + // Path. + log = strings.Replace(log, "( ", "(", -1) + log = strings.Replace(log, " )", ")", -1) + + // Highlights. + log = strings.Replace(log, "# ", "", -1) + log = strings.Replace(log, " #", "", -1) + } + return clog + log +} + +// ColorLog prints colored log to stdout. +// See color rules in function 'ColorLogS'. +func ColorLog(format string, a ...interface{}) { + fmt.Print(ColorLogS(format, a...)) +} diff --git a/vendor/github.com/Unknwon/com/convert.go b/vendor/github.com/Unknwon/com/convert.go new file mode 100644 index 000000000000..25b3e0e56208 --- /dev/null +++ b/vendor/github.com/Unknwon/com/convert.go @@ -0,0 +1,157 @@ +// Copyright 2014 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "fmt" + "strconv" +) + +// Convert string to specify type. +type StrTo string + +func (f StrTo) Exist() bool { + return string(f) != string(0x1E) +} + +func (f StrTo) Uint8() (uint8, error) { + v, err := strconv.ParseUint(f.String(), 10, 8) + return uint8(v), err +} + +func (f StrTo) Int() (int, error) { + v, err := strconv.ParseInt(f.String(), 10, 0) + return int(v), err +} + +func (f StrTo) Int64() (int64, error) { + v, err := strconv.ParseInt(f.String(), 10, 64) + return int64(v), err +} + +func (f StrTo) MustUint8() uint8 { + v, _ := f.Uint8() + return v +} + +func (f StrTo) MustInt() int { + v, _ := f.Int() + return v +} + +func (f StrTo) MustInt64() int64 { + v, _ := f.Int64() + return v +} + +func (f StrTo) String() string { + if f.Exist() { + return string(f) + } + return "" +} + +// Convert any type to string. +func ToStr(value interface{}, args ...int) (s string) { + switch v := value.(type) { + case bool: + s = strconv.FormatBool(v) + case float32: + s = strconv.FormatFloat(float64(v), 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 32)) + case float64: + s = strconv.FormatFloat(v, 'f', argInt(args).Get(0, -1), argInt(args).Get(1, 64)) + case int: + s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) + case int8: + s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) + case int16: + s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) + case int32: + s = strconv.FormatInt(int64(v), argInt(args).Get(0, 10)) + case int64: + s = strconv.FormatInt(v, argInt(args).Get(0, 10)) + case uint: + s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) + case uint8: + s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) + case uint16: + s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) + case uint32: + s = strconv.FormatUint(uint64(v), argInt(args).Get(0, 10)) + case uint64: + s = strconv.FormatUint(v, argInt(args).Get(0, 10)) + case string: + s = v + case []byte: + s = string(v) + default: + s = fmt.Sprintf("%v", v) + } + return s +} + +type argInt []int + +func (a argInt) Get(i int, args ...int) (r int) { + if i >= 0 && i < len(a) { + r = a[i] + } else if len(args) > 0 { + r = args[0] + } + return +} + +// HexStr2int converts hex format string to decimal number. +func HexStr2int(hexStr string) (int, error) { + num := 0 + length := len(hexStr) + for i := 0; i < length; i++ { + char := hexStr[length-i-1] + factor := -1 + + switch { + case char >= '0' && char <= '9': + factor = int(char) - '0' + case char >= 'a' && char <= 'f': + factor = int(char) - 'a' + 10 + default: + return -1, fmt.Errorf("invalid hex: %s", string(char)) + } + + num += factor * PowInt(16, i) + } + return num, nil +} + +// Int2HexStr converts decimal number to hex format string. +func Int2HexStr(num int) (hex string) { + if num == 0 { + return "0" + } + + for num > 0 { + r := num % 16 + + c := "?" + if r >= 0 && r <= 9 { + c = string(r + '0') + } else { + c = string(r + 'a' - 10) + } + hex = c + hex + num = num / 16 + } + return hex +} diff --git a/vendor/github.com/Unknwon/com/dir.go b/vendor/github.com/Unknwon/com/dir.go new file mode 100644 index 000000000000..c126d79da861 --- /dev/null +++ b/vendor/github.com/Unknwon/com/dir.go @@ -0,0 +1,173 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "errors" + "fmt" + "os" + "path" + "strings" +) + +// IsDir returns true if given path is a directory, +// or returns false when it's a file or does not exist. +func IsDir(dir string) bool { + f, e := os.Stat(dir) + if e != nil { + return false + } + return f.IsDir() +} + +func statDir(dirPath, recPath string, includeDir, isDirOnly bool) ([]string, error) { + dir, err := os.Open(dirPath) + if err != nil { + return nil, err + } + defer dir.Close() + + fis, err := dir.Readdir(0) + if err != nil { + return nil, err + } + + statList := make([]string, 0) + for _, fi := range fis { + if strings.Contains(fi.Name(), ".DS_Store") { + continue + } + + relPath := path.Join(recPath, fi.Name()) + curPath := path.Join(dirPath, fi.Name()) + if fi.IsDir() { + if includeDir { + statList = append(statList, relPath+"/") + } + s, err := statDir(curPath, relPath, includeDir, isDirOnly) + if err != nil { + return nil, err + } + statList = append(statList, s...) + } else if !isDirOnly { + statList = append(statList, relPath) + } + } + return statList, nil +} + +// StatDir gathers information of given directory by depth-first. +// It returns slice of file list and includes subdirectories if enabled; +// it returns error and nil slice when error occurs in underlying functions, +// or given path is not a directory or does not exist. +// +// Slice does not include given path itself. +// If subdirectories is enabled, they will have suffix '/'. +func StatDir(rootPath string, includeDir ...bool) ([]string, error) { + if !IsDir(rootPath) { + return nil, errors.New("not a directory or does not exist: " + rootPath) + } + + isIncludeDir := false + if len(includeDir) >= 1 { + isIncludeDir = includeDir[0] + } + return statDir(rootPath, "", isIncludeDir, false) +} + +// GetAllSubDirs returns all subdirectories of given root path. +// Slice does not include given path itself. +func GetAllSubDirs(rootPath string) ([]string, error) { + if !IsDir(rootPath) { + return nil, errors.New("not a directory or does not exist: " + rootPath) + } + return statDir(rootPath, "", true, true) +} + +// GetFileListBySuffix returns an ordered list of file paths. +// It recognize if given path is a file, and don't do recursive find. +func GetFileListBySuffix(dirPath, suffix string) ([]string, error) { + if !IsExist(dirPath) { + return nil, fmt.Errorf("given path does not exist: %s", dirPath) + } else if IsFile(dirPath) { + return []string{dirPath}, nil + } + + // Given path is a directory. + dir, err := os.Open(dirPath) + if err != nil { + return nil, err + } + + fis, err := dir.Readdir(0) + if err != nil { + return nil, err + } + + files := make([]string, 0, len(fis)) + for _, fi := range fis { + if strings.HasSuffix(fi.Name(), suffix) { + files = append(files, path.Join(dirPath, fi.Name())) + } + } + + return files, nil +} + +// CopyDir copy files recursively from source to target directory. +// +// The filter accepts a function that process the path info. +// and should return true for need to filter. +// +// It returns error when error occurs in underlying functions. +func CopyDir(srcPath, destPath string, filters ...func(filePath string) bool) error { + // Check if target directory exists. + if IsExist(destPath) { + return errors.New("file or directory alreay exists: " + destPath) + } + + err := os.MkdirAll(destPath, os.ModePerm) + if err != nil { + return err + } + + // Gather directory info. + infos, err := StatDir(srcPath, true) + if err != nil { + return err + } + + var filter func(filePath string) bool + if len(filters) > 0 { + filter = filters[0] + } + + for _, info := range infos { + if filter != nil && filter(info) { + continue + } + + curPath := path.Join(destPath, info) + if strings.HasSuffix(info, "/") { + err = os.MkdirAll(curPath, os.ModePerm) + } else { + err = Copy(path.Join(srcPath, info), curPath) + } + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/Unknwon/com/file.go b/vendor/github.com/Unknwon/com/file.go new file mode 100644 index 000000000000..b51502c9176b --- /dev/null +++ b/vendor/github.com/Unknwon/com/file.go @@ -0,0 +1,145 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "fmt" + "io" + "io/ioutil" + "math" + "os" + "path" +) + +// Storage unit constants. +const ( + Byte = 1 + KByte = Byte * 1024 + MByte = KByte * 1024 + GByte = MByte * 1024 + TByte = GByte * 1024 + PByte = TByte * 1024 + EByte = PByte * 1024 +) + +func logn(n, b float64) float64 { + return math.Log(n) / math.Log(b) +} + +func humanateBytes(s uint64, base float64, sizes []string) string { + if s < 10 { + return fmt.Sprintf("%dB", s) + } + e := math.Floor(logn(float64(s), base)) + suffix := sizes[int(e)] + val := float64(s) / math.Pow(base, math.Floor(e)) + f := "%.0f" + if val < 10 { + f = "%.1f" + } + + return fmt.Sprintf(f+"%s", val, suffix) +} + +// HumaneFileSize calculates the file size and generate user-friendly string. +func HumaneFileSize(s uint64) string { + sizes := []string{"B", "KB", "MB", "GB", "TB", "PB", "EB"} + return humanateBytes(s, 1024, sizes) +} + +// FileMTime returns file modified time and possible error. +func FileMTime(file string) (int64, error) { + f, err := os.Stat(file) + if err != nil { + return 0, err + } + return f.ModTime().Unix(), nil +} + +// FileSize returns file size in bytes and possible error. +func FileSize(file string) (int64, error) { + f, err := os.Stat(file) + if err != nil { + return 0, err + } + return f.Size(), nil +} + +// Copy copies file from source to target path. +func Copy(src, dest string) error { + // Gather file information to set back later. + si, err := os.Lstat(src) + if err != nil { + return err + } + + // Handle symbolic link. + if si.Mode()&os.ModeSymlink != 0 { + target, err := os.Readlink(src) + if err != nil { + return err + } + // NOTE: os.Chmod and os.Chtimes don't recoganize symbolic link, + // which will lead "no such file or directory" error. + return os.Symlink(target, dest) + } + + sr, err := os.Open(src) + if err != nil { + return err + } + defer sr.Close() + + dw, err := os.Create(dest) + if err != nil { + return err + } + defer dw.Close() + + if _, err = io.Copy(dw, sr); err != nil { + return err + } + + // Set back file information. + if err = os.Chtimes(dest, si.ModTime(), si.ModTime()); err != nil { + return err + } + return os.Chmod(dest, si.Mode()) +} + +// WriteFile writes data to a file named by filename. +// If the file does not exist, WriteFile creates it +// and its upper level paths. +func WriteFile(filename string, data []byte) error { + os.MkdirAll(path.Dir(filename), os.ModePerm) + return ioutil.WriteFile(filename, data, 0655) +} + +// IsFile returns true if given path is a file, +// or returns false when it's a directory or does not exist. +func IsFile(filePath string) bool { + f, e := os.Stat(filePath) + if e != nil { + return false + } + return !f.IsDir() +} + +// IsExist checks whether a file or directory exists. +// It returns false when the file or directory does not exist. +func IsExist(path string) bool { + _, err := os.Stat(path) + return err == nil || os.IsExist(err) +} diff --git a/vendor/github.com/Unknwon/com/html.go b/vendor/github.com/Unknwon/com/html.go new file mode 100644 index 000000000000..762d94b050de --- /dev/null +++ b/vendor/github.com/Unknwon/com/html.go @@ -0,0 +1,60 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "html" + "regexp" + "strings" +) + +// Html2JS converts []byte type of HTML content into JS format. +func Html2JS(data []byte) []byte { + s := string(data) + s = strings.Replace(s, `\`, `\\`, -1) + s = strings.Replace(s, "\n", `\n`, -1) + s = strings.Replace(s, "\r", "", -1) + s = strings.Replace(s, "\"", `\"`, -1) + s = strings.Replace(s, "", "<table>", -1) + return []byte(s) +} + +// encode html chars to string +func HtmlEncode(str string) string { + return html.EscapeString(str) +} + +// decode string to html chars +func HtmlDecode(str string) string { + return html.UnescapeString(str) +} + +// strip tags in html string +func StripTags(src string) string { + //去除style,script,html tag + re := regexp.MustCompile(`(?s)<(?:style|script)[^<>]*>.*?|]*>|`) + src = re.ReplaceAllString(src, "") + + //trim all spaces(2+) into \n + re = regexp.MustCompile(`\s{2,}`) + src = re.ReplaceAllString(src, "\n") + + return strings.TrimSpace(src) +} + +// change \n to
+func Nl2br(str string) string { + return strings.Replace(str, "\n", "
", -1) +} diff --git a/vendor/github.com/Unknwon/com/http.go b/vendor/github.com/Unknwon/com/http.go new file mode 100644 index 000000000000..3415059ae904 --- /dev/null +++ b/vendor/github.com/Unknwon/com/http.go @@ -0,0 +1,201 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "os" + "path" +) + +type NotFoundError struct { + Message string +} + +func (e NotFoundError) Error() string { + return e.Message +} + +type RemoteError struct { + Host string + Err error +} + +func (e *RemoteError) Error() string { + return e.Err.Error() +} + +var UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1541.0 Safari/537.36" + +// HttpCall makes HTTP method call. +func HttpCall(client *http.Client, method, url string, header http.Header, body io.Reader) (io.ReadCloser, error) { + req, err := http.NewRequest(method, url, body) + if err != nil { + return nil, err + } + req.Header.Set("User-Agent", UserAgent) + for k, vs := range header { + req.Header[k] = vs + } + resp, err := client.Do(req) + if err != nil { + return nil, err + } + if resp.StatusCode == 200 { + return resp.Body, nil + } + resp.Body.Close() + if resp.StatusCode == 404 { // 403 can be rate limit error. || resp.StatusCode == 403 { + err = fmt.Errorf("resource not found: %s", url) + } else { + err = fmt.Errorf("%s %s -> %d", method, url, resp.StatusCode) + } + return nil, err +} + +// HttpGet gets the specified resource. +// ErrNotFound is returned if the server responds with status 404. +func HttpGet(client *http.Client, url string, header http.Header) (io.ReadCloser, error) { + return HttpCall(client, "GET", url, header, nil) +} + +// HttpPost posts the specified resource. +// ErrNotFound is returned if the server responds with status 404. +func HttpPost(client *http.Client, url string, header http.Header, body []byte) (io.ReadCloser, error) { + return HttpCall(client, "POST", url, header, bytes.NewBuffer(body)) +} + +// HttpGetToFile gets the specified resource and writes to file. +// ErrNotFound is returned if the server responds with status 404. +func HttpGetToFile(client *http.Client, url string, header http.Header, fileName string) error { + rc, err := HttpGet(client, url, header) + if err != nil { + return err + } + defer rc.Close() + + os.MkdirAll(path.Dir(fileName), os.ModePerm) + f, err := os.Create(fileName) + if err != nil { + return err + } + defer f.Close() + _, err = io.Copy(f, rc) + return err +} + +// HttpGetBytes gets the specified resource. ErrNotFound is returned if the server +// responds with status 404. +func HttpGetBytes(client *http.Client, url string, header http.Header) ([]byte, error) { + rc, err := HttpGet(client, url, header) + if err != nil { + return nil, err + } + defer rc.Close() + return ioutil.ReadAll(rc) +} + +// HttpGetJSON gets the specified resource and mapping to struct. +// ErrNotFound is returned if the server responds with status 404. +func HttpGetJSON(client *http.Client, url string, v interface{}) error { + rc, err := HttpGet(client, url, nil) + if err != nil { + return err + } + defer rc.Close() + err = json.NewDecoder(rc).Decode(v) + if _, ok := err.(*json.SyntaxError); ok { + return fmt.Errorf("JSON syntax error at %s", url) + } + return nil +} + +// HttpPostJSON posts the specified resource with struct values, +// and maps results to struct. +// ErrNotFound is returned if the server responds with status 404. +func HttpPostJSON(client *http.Client, url string, body, v interface{}) error { + data, err := json.Marshal(body) + if err != nil { + return err + } + rc, err := HttpPost(client, url, http.Header{"content-type": []string{"application/json"}}, data) + if err != nil { + return err + } + defer rc.Close() + err = json.NewDecoder(rc).Decode(v) + if _, ok := err.(*json.SyntaxError); ok { + return fmt.Errorf("JSON syntax error at %s", url) + } + return nil +} + +// A RawFile describes a file that can be downloaded. +type RawFile interface { + Name() string + RawUrl() string + Data() []byte + SetData([]byte) +} + +// FetchFiles fetches files specified by the rawURL field in parallel. +func FetchFiles(client *http.Client, files []RawFile, header http.Header) error { + ch := make(chan error, len(files)) + for i := range files { + go func(i int) { + p, err := HttpGetBytes(client, files[i].RawUrl(), nil) + if err != nil { + ch <- err + return + } + files[i].SetData(p) + ch <- nil + }(i) + } + for _ = range files { + if err := <-ch; err != nil { + return err + } + } + return nil +} + +// FetchFiles uses command `curl` to fetch files specified by the rawURL field in parallel. +func FetchFilesCurl(files []RawFile, curlOptions ...string) error { + ch := make(chan error, len(files)) + for i := range files { + go func(i int) { + stdout, _, err := ExecCmd("curl", append(curlOptions, files[i].RawUrl())...) + if err != nil { + ch <- err + return + } + + files[i].SetData([]byte(stdout)) + ch <- nil + }(i) + } + for _ = range files { + if err := <-ch; err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/Unknwon/com/math.go b/vendor/github.com/Unknwon/com/math.go new file mode 100644 index 000000000000..99c56b65947e --- /dev/null +++ b/vendor/github.com/Unknwon/com/math.go @@ -0,0 +1,29 @@ +// Copyright 2014 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +// PowInt is int type of math.Pow function. +func PowInt(x int, y int) int { + if y <= 0 { + return 1 + } else { + if y % 2 == 0 { + sqrt := PowInt(x, y/2) + return sqrt * sqrt + } else { + return PowInt(x, y-1) * x + } + } +} diff --git a/vendor/github.com/Unknwon/com/path.go b/vendor/github.com/Unknwon/com/path.go new file mode 100644 index 000000000000..b1e860def42b --- /dev/null +++ b/vendor/github.com/Unknwon/com/path.go @@ -0,0 +1,80 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "errors" + "os" + "path/filepath" + "runtime" + "strings" +) + +// GetGOPATHs returns all paths in GOPATH variable. +func GetGOPATHs() []string { + gopath := os.Getenv("GOPATH") + var paths []string + if runtime.GOOS == "windows" { + gopath = strings.Replace(gopath, "\\", "/", -1) + paths = strings.Split(gopath, ";") + } else { + paths = strings.Split(gopath, ":") + } + return paths +} + +// GetSrcPath returns app. source code path. +// It only works when you have src. folder in GOPATH, +// it returns error not able to locate source folder path. +func GetSrcPath(importPath string) (appPath string, err error) { + paths := GetGOPATHs() + for _, p := range paths { + if IsExist(p + "/src/" + importPath + "/") { + appPath = p + "/src/" + importPath + "/" + break + } + } + + if len(appPath) == 0 { + return "", errors.New("Unable to locate source folder path") + } + + appPath = filepath.Dir(appPath) + "/" + if runtime.GOOS == "windows" { + // Replace all '\' to '/'. + appPath = strings.Replace(appPath, "\\", "/", -1) + } + + return appPath, nil +} + +// HomeDir returns path of '~'(in Linux) on Windows, +// it returns error when the variable does not exist. +func HomeDir() (home string, err error) { + if runtime.GOOS == "windows" { + home = os.Getenv("USERPROFILE") + if len(home) == 0 { + home = os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") + } + } else { + home = os.Getenv("HOME") + } + + if len(home) == 0 { + return "", errors.New("Cannot specify home directory because it's empty") + } + + return home, nil +} diff --git a/vendor/github.com/Unknwon/com/regex.go b/vendor/github.com/Unknwon/com/regex.go new file mode 100644 index 000000000000..765bfc431131 --- /dev/null +++ b/vendor/github.com/Unknwon/com/regex.go @@ -0,0 +1,56 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import "regexp" + +const ( + regex_email_pattern = `(?i)[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}` + regex_strict_email_pattern = `(?i)[A-Z0-9!#$%&'*+/=?^_{|}~-]+` + + `(?:\.[A-Z0-9!#$%&'*+/=?^_{|}~-]+)*` + + `@(?:[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?\.)+` + + `[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?` + regex_url_pattern = `(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?` +) + +var ( + regex_email *regexp.Regexp + regex_strict_email *regexp.Regexp + regex_url *regexp.Regexp +) + +func init() { + regex_email = regexp.MustCompile(regex_email_pattern) + regex_strict_email = regexp.MustCompile(regex_strict_email_pattern) + regex_url = regexp.MustCompile(regex_url_pattern) +} + +// validate string is an email address, if not return false +// basically validation can match 99% cases +func IsEmail(email string) bool { + return regex_email.MatchString(email) +} + +// validate string is an email address, if not return false +// this validation omits RFC 2822 +func IsEmailRFC(email string) bool { + return regex_strict_email.MatchString(email) +} + +// validate string is a url link, if not return false +// simple validation can match 99% cases +func IsUrl(url string) bool { + return regex_url.MatchString(url) +} diff --git a/vendor/github.com/Unknwon/com/slice.go b/vendor/github.com/Unknwon/com/slice.go new file mode 100644 index 000000000000..27801a4d7dfd --- /dev/null +++ b/vendor/github.com/Unknwon/com/slice.go @@ -0,0 +1,87 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "strings" +) + +// AppendStr appends string to slice with no duplicates. +func AppendStr(strs []string, str string) []string { + for _, s := range strs { + if s == str { + return strs + } + } + return append(strs, str) +} + +// CompareSliceStr compares two 'string' type slices. +// It returns true if elements and order are both the same. +func CompareSliceStr(s1, s2 []string) bool { + if len(s1) != len(s2) { + return false + } + + for i := range s1 { + if s1[i] != s2[i] { + return false + } + } + + return true +} + +// CompareSliceStr compares two 'string' type slices. +// It returns true if elements are the same, and ignores the order. +func CompareSliceStrU(s1, s2 []string) bool { + if len(s1) != len(s2) { + return false + } + + for i := range s1 { + for j := len(s2) - 1; j >= 0; j-- { + if s1[i] == s2[j] { + s2 = append(s2[:j], s2[j+1:]...) + break + } + } + } + if len(s2) > 0 { + return false + } + return true +} + +// IsSliceContainsStr returns true if the string exists in given slice, ignore case. +func IsSliceContainsStr(sl []string, str string) bool { + str = strings.ToLower(str) + for _, s := range sl { + if strings.ToLower(s) == str { + return true + } + } + return false +} + +// IsSliceContainsInt64 returns true if the int64 exists in given slice. +func IsSliceContainsInt64(sl []int64, i int64) bool { + for _, s := range sl { + if s == i { + return true + } + } + return false +} diff --git a/vendor/github.com/Unknwon/com/string.go b/vendor/github.com/Unknwon/com/string.go new file mode 100644 index 000000000000..4c79820f1ffe --- /dev/null +++ b/vendor/github.com/Unknwon/com/string.go @@ -0,0 +1,243 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/base64" + "errors" + "io" + r "math/rand" + "strconv" + "strings" + "time" + "unicode" + "unicode/utf8" +) + +// AESEncrypt encrypts text and given key with AES. +func AESEncrypt(key, text []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + b := base64.StdEncoding.EncodeToString(text) + ciphertext := make([]byte, aes.BlockSize+len(b)) + iv := ciphertext[:aes.BlockSize] + if _, err := io.ReadFull(rand.Reader, iv); err != nil { + return nil, err + } + cfb := cipher.NewCFBEncrypter(block, iv) + cfb.XORKeyStream(ciphertext[aes.BlockSize:], []byte(b)) + return ciphertext, nil +} + +// AESDecrypt decrypts text and given key with AES. +func AESDecrypt(key, text []byte) ([]byte, error) { + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + if len(text) < aes.BlockSize { + return nil, errors.New("ciphertext too short") + } + iv := text[:aes.BlockSize] + text = text[aes.BlockSize:] + cfb := cipher.NewCFBDecrypter(block, iv) + cfb.XORKeyStream(text, text) + data, err := base64.StdEncoding.DecodeString(string(text)) + if err != nil { + return nil, err + } + return data, nil +} + +// IsLetter returns true if the 'l' is an English letter. +func IsLetter(l uint8) bool { + n := (l | 0x20) - 'a' + if n >= 0 && n < 26 { + return true + } + return false +} + +// Expand replaces {k} in template with match[k] or subs[atoi(k)] if k is not in match. +func Expand(template string, match map[string]string, subs ...string) string { + var p []byte + var i int + for { + i = strings.Index(template, "{") + if i < 0 { + break + } + p = append(p, template[:i]...) + template = template[i+1:] + i = strings.Index(template, "}") + if s, ok := match[template[:i]]; ok { + p = append(p, s...) + } else { + j, _ := strconv.Atoi(template[:i]) + if j >= len(subs) { + p = append(p, []byte("Missing")...) + } else { + p = append(p, subs[j]...) + } + } + template = template[i+1:] + } + p = append(p, template...) + return string(p) +} + +// Reverse s string, support unicode +func Reverse(s string) string { + n := len(s) + runes := make([]rune, n) + for _, rune := range s { + n-- + runes[n] = rune + } + return string(runes[n:]) +} + +// RandomCreateBytes generate random []byte by specify chars. +func RandomCreateBytes(n int, alphabets ...byte) []byte { + const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + var bytes = make([]byte, n) + var randby bool + if num, err := rand.Read(bytes); num != n || err != nil { + r.Seed(time.Now().UnixNano()) + randby = true + } + for i, b := range bytes { + if len(alphabets) == 0 { + if randby { + bytes[i] = alphanum[r.Intn(len(alphanum))] + } else { + bytes[i] = alphanum[b%byte(len(alphanum))] + } + } else { + if randby { + bytes[i] = alphabets[r.Intn(len(alphabets))] + } else { + bytes[i] = alphabets[b%byte(len(alphabets))] + } + } + } + return bytes +} + +// ToSnakeCase can convert all upper case characters in a string to +// underscore format. +// +// Some samples. +// "FirstName" => "first_name" +// "HTTPServer" => "http_server" +// "NoHTTPS" => "no_https" +// "GO_PATH" => "go_path" +// "GO PATH" => "go_path" // space is converted to underscore. +// "GO-PATH" => "go_path" // hyphen is converted to underscore. +// +// From https://github.com/huandu/xstrings +func ToSnakeCase(str string) string { + if len(str) == 0 { + return "" + } + + buf := &bytes.Buffer{} + var prev, r0, r1 rune + var size int + + r0 = '_' + + for len(str) > 0 { + prev = r0 + r0, size = utf8.DecodeRuneInString(str) + str = str[size:] + + switch { + case r0 == utf8.RuneError: + buf.WriteByte(byte(str[0])) + + case unicode.IsUpper(r0): + if prev != '_' { + buf.WriteRune('_') + } + + buf.WriteRune(unicode.ToLower(r0)) + + if len(str) == 0 { + break + } + + r0, size = utf8.DecodeRuneInString(str) + str = str[size:] + + if !unicode.IsUpper(r0) { + buf.WriteRune(r0) + break + } + + // find next non-upper-case character and insert `_` properly. + // it's designed to convert `HTTPServer` to `http_server`. + // if there are more than 2 adjacent upper case characters in a word, + // treat them as an abbreviation plus a normal word. + for len(str) > 0 { + r1 = r0 + r0, size = utf8.DecodeRuneInString(str) + str = str[size:] + + if r0 == utf8.RuneError { + buf.WriteRune(unicode.ToLower(r1)) + buf.WriteByte(byte(str[0])) + break + } + + if !unicode.IsUpper(r0) { + if r0 == '_' || r0 == ' ' || r0 == '-' { + r0 = '_' + + buf.WriteRune(unicode.ToLower(r1)) + } else { + buf.WriteRune('_') + buf.WriteRune(unicode.ToLower(r1)) + buf.WriteRune(r0) + } + + break + } + + buf.WriteRune(unicode.ToLower(r1)) + } + + if len(str) == 0 || r0 == '_' { + buf.WriteRune(unicode.ToLower(r0)) + break + } + + default: + if r0 == ' ' || r0 == '-' { + r0 = '_' + } + + buf.WriteRune(r0) + } + } + + return buf.String() +} diff --git a/vendor/github.com/Unknwon/com/time.go b/vendor/github.com/Unknwon/com/time.go new file mode 100644 index 000000000000..dd1cdbcf2a00 --- /dev/null +++ b/vendor/github.com/Unknwon/com/time.go @@ -0,0 +1,115 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "fmt" + "strconv" + "strings" + "time" +) + +// Format unix time int64 to string +func Date(ti int64, format string) string { + t := time.Unix(int64(ti), 0) + return DateT(t, format) +} + +// Format unix time string to string +func DateS(ts string, format string) string { + i, _ := strconv.ParseInt(ts, 10, 64) + return Date(i, format) +} + +// Format time.Time struct to string +// MM - month - 01 +// M - month - 1, single bit +// DD - day - 02 +// D - day 2 +// YYYY - year - 2006 +// YY - year - 06 +// HH - 24 hours - 03 +// H - 24 hours - 3 +// hh - 12 hours - 03 +// h - 12 hours - 3 +// mm - minute - 04 +// m - minute - 4 +// ss - second - 05 +// s - second = 5 +func DateT(t time.Time, format string) string { + res := strings.Replace(format, "MM", t.Format("01"), -1) + res = strings.Replace(res, "M", t.Format("1"), -1) + res = strings.Replace(res, "DD", t.Format("02"), -1) + res = strings.Replace(res, "D", t.Format("2"), -1) + res = strings.Replace(res, "YYYY", t.Format("2006"), -1) + res = strings.Replace(res, "YY", t.Format("06"), -1) + res = strings.Replace(res, "HH", fmt.Sprintf("%02d", t.Hour()), -1) + res = strings.Replace(res, "H", fmt.Sprintf("%d", t.Hour()), -1) + res = strings.Replace(res, "hh", t.Format("03"), -1) + res = strings.Replace(res, "h", t.Format("3"), -1) + res = strings.Replace(res, "mm", t.Format("04"), -1) + res = strings.Replace(res, "m", t.Format("4"), -1) + res = strings.Replace(res, "ss", t.Format("05"), -1) + res = strings.Replace(res, "s", t.Format("5"), -1) + return res +} + +// DateFormat pattern rules. +var datePatterns = []string{ + // year + "Y", "2006", // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 + "y", "06", //A two digit representation of a year Examples: 99 or 03 + + // month + "m", "01", // Numeric representation of a month, with leading zeros 01 through 12 + "n", "1", // Numeric representation of a month, without leading zeros 1 through 12 + "M", "Jan", // A short textual representation of a month, three letters Jan through Dec + "F", "January", // A full textual representation of a month, such as January or March January through December + + // day + "d", "02", // Day of the month, 2 digits with leading zeros 01 to 31 + "j", "2", // Day of the month without leading zeros 1 to 31 + + // week + "D", "Mon", // A textual representation of a day, three letters Mon through Sun + "l", "Monday", // A full textual representation of the day of the week Sunday through Saturday + + // time + "g", "3", // 12-hour format of an hour without leading zeros 1 through 12 + "G", "15", // 24-hour format of an hour without leading zeros 0 through 23 + "h", "03", // 12-hour format of an hour with leading zeros 01 through 12 + "H", "15", // 24-hour format of an hour with leading zeros 00 through 23 + + "a", "pm", // Lowercase Ante meridiem and Post meridiem am or pm + "A", "PM", // Uppercase Ante meridiem and Post meridiem AM or PM + + "i", "04", // Minutes with leading zeros 00 to 59 + "s", "05", // Seconds, with leading zeros 00 through 59 + + // time zone + "T", "MST", + "P", "-07:00", + "O", "-0700", + + // RFC 2822 + "r", time.RFC1123Z, +} + +// Parse Date use PHP time format. +func DateParse(dateString, format string) (time.Time, error) { + replacer := strings.NewReplacer(datePatterns...) + format = replacer.Replace(format) + return time.ParseInLocation(format, dateString, time.Local) +} diff --git a/vendor/github.com/Unknwon/com/url.go b/vendor/github.com/Unknwon/com/url.go new file mode 100644 index 000000000000..b0b7c0e12b28 --- /dev/null +++ b/vendor/github.com/Unknwon/com/url.go @@ -0,0 +1,41 @@ +// Copyright 2013 com authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package com + +import ( + "encoding/base64" + "net/url" +) + +// url encode string, is + not %20 +func UrlEncode(str string) string { + return url.QueryEscape(str) +} + +// url decode string +func UrlDecode(str string) (string, error) { + return url.QueryUnescape(str) +} + +// base64 encode +func Base64Encode(str string) string { + return base64.StdEncoding.EncodeToString([]byte(str)) +} + +// base64 decode +func Base64Decode(str string) (string, error) { + s, e := base64.StdEncoding.DecodeString(str) + return string(s), e +} diff --git a/vendor/github.com/Unknwon/macaron/.gitignore b/vendor/github.com/Unknwon/macaron/.gitignore new file mode 100644 index 000000000000..57ee3ec50fee --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/.gitignore @@ -0,0 +1,2 @@ +macaron.sublime-project +macaron.sublime-workspace \ No newline at end of file diff --git a/vendor/github.com/Unknwon/macaron/LICENSE b/vendor/github.com/Unknwon/macaron/LICENSE new file mode 100644 index 000000000000..37ec93a14fdc --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/Unknwon/macaron/README.md b/vendor/github.com/Unknwon/macaron/README.md new file mode 100644 index 000000000000..e0362501ba5e --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/README.md @@ -0,0 +1,94 @@ +Macaron [![Build Status](https://drone.io/github.com/Unknwon/macaron/status.png)](https://drone.io/github.com/Unknwon/macaron/latest) [![](http://gocover.io/_badge/github.com/Unknwon/macaron)](http://gocover.io/github.com/Unknwon/macaron) +======================= + +![Macaron Logo](https://raw.githubusercontent.com/Unknwon/macaron/master/macaronlogo.png) + +Package macaron is a high productive and modular web framework in Go. + +##### Current version: 0.6.8 + +## Getting Started + +The minimum requirement of Go is **1.3**. + +To install Macaron: + + go get github.com/Unknwon/macaron + +The very basic usage of Macaron: + +```go +package main + +import "github.com/Unknwon/macaron" + +func main() { + m := macaron.Classic() + m.Get("/", func() string { + return "Hello world!" + }) + m.Run() +} +``` + +## Features + +- Powerful routing with suburl. +- Flexible routes combinations. +- Unlimited nested group routers. +- Directly integrate with existing services. +- Dynamically change template files at runtime. +- Allow to use in-memory template and static files. +- Easy to plugin/unplugin features with modular design. +- Handy dependency injection powered by [inject](https://github.com/codegangsta/inject). +- Better router layer and less reflection make faster speed. + +## Middlewares + +Middlewares allow you easily plugin/unplugin features for your Macaron applications. + +There are already many [middlewares](https://github.com/macaron-contrib) to simplify your work: + +- gzip - Gzip compression to all requests +- render - Go template engine +- static - Serves static files +- [binding](https://github.com/macaron-contrib/binding) - Request data binding and validation +- [i18n](https://github.com/macaron-contrib/i18n) - Internationalization and Localization +- [cache](https://github.com/macaron-contrib/cache) - Cache manager +- [session](https://github.com/macaron-contrib/session) - Session manager +- [csrf](https://github.com/macaron-contrib/csrf) - Generates and validates csrf tokens +- [captcha](https://github.com/macaron-contrib/captcha) - Captcha service +- [pongo2](https://github.com/macaron-contrib/pongo2) - Pongo2 template engine support +- [sockets](https://github.com/macaron-contrib/sockets) - WebSockets channels binding +- [bindata](https://github.com/macaron-contrib/bindata) - Embed binary data as static and template files +- [toolbox](https://github.com/macaron-contrib/toolbox) - Health check, pprof, profile and statistic services +- [oauth2](https://github.com/macaron-contrib/oauth2) - OAuth 2.0 backend +- [switcher](https://github.com/macaron-contrib/switcher) - Multiple-site support +- [method](https://github.com/macaron-contrib/method) - HTTP method override +- [permissions2](https://github.com/xyproto/permissions2) - Cookies, users and permissions +- [renders](https://github.com/macaron-contrib/renders) - Beego-like render engine(Macaron has built-in template engine, this is another option) + +## Use Cases + +- [Gogs](http://gogs.io): A painless self-hosted Git Service +- [Peach](http://peachdocs.org): A modern web documentation server +- [Go Walker](https://gowalker.org): Go online API documentation +- [Switch](http://gopm.io): Gopm registry +- [YouGam](http://yougam.com): Online Forum +- [Critical Stack Intel](https://intel.criticalstack.com/): A 100% free intel marketplace from Critical Stack, Inc. + +## Getting Help + +- [API Reference](https://gowalker.org/github.com/Unknwon/macaron) +- [Documentation](http://go-macaron.com) +- [FAQs](http://go-macaron.com/docs/faqs) +- [![Join the chat at https://gitter.im/Unknwon/macaron](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Unknwon/macaron?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## Credits + +- Basic design of [Martini](https://github.com/go-martini/martini). +- Logo is modified by [@insionng](https://github.com/insionng) based on [Tribal Dragon](http://xtremeyamazaki.deviantart.com/art/Tribal-Dragon-27005087). + +## License + +This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. diff --git a/vendor/github.com/Unknwon/macaron/context.go b/vendor/github.com/Unknwon/macaron/context.go new file mode 100644 index 000000000000..0e76224f438c --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/context.go @@ -0,0 +1,510 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "crypto/md5" + "encoding/hex" + "html/template" + "io" + "io/ioutil" + "mime/multipart" + "net/http" + "net/url" + "os" + "path" + "path/filepath" + "reflect" + "strconv" + "strings" + "time" + + "github.com/Unknwon/com" + + "github.com/Unknwon/macaron/inject" +) + +// Locale reprents a localization interface. +type Locale interface { + Language() string + Tr(string, ...interface{}) string +} + +// RequestBody represents a request body. +type RequestBody struct { + reader io.ReadCloser +} + +// Bytes reads and returns content of request body in bytes. +func (rb *RequestBody) Bytes() ([]byte, error) { + return ioutil.ReadAll(rb.reader) +} + +// String reads and returns content of request body in string. +func (rb *RequestBody) String() (string, error) { + data, err := rb.Bytes() + return string(data), err +} + +// ReadCloser returns a ReadCloser for request body. +func (rb *RequestBody) ReadCloser() io.ReadCloser { + return rb.reader +} + +// Request represents an HTTP request received by a server or to be sent by a client. +type Request struct { + *http.Request +} + +func (r *Request) Body() *RequestBody { + return &RequestBody{r.Request.Body} +} + +// Context represents the runtime context of current request of Macaron instance. +// It is the integration of most frequently used middlewares and helper methods. +type Context struct { + inject.Injector + handlers []Handler + action Handler + index int + + *Router + Req Request + Resp ResponseWriter + params Params + Render // Not nil only if you use macaran.Render middleware. + Locale + Data map[string]interface{} +} + +func (c *Context) handler() Handler { + if c.index < len(c.handlers) { + return c.handlers[c.index] + } + if c.index == len(c.handlers) { + return c.action + } + panic("invalid index for context handler") +} + +func (c *Context) Next() { + c.index += 1 + c.run() +} + +func (c *Context) Written() bool { + return c.Resp.Written() +} + +func (c *Context) run() { + for c.index <= len(c.handlers) { + vals, err := c.Invoke(c.handler()) + if err != nil { + panic(err) + } + c.index += 1 + + // if the handler returned something, write it to the http response + if len(vals) > 0 { + ev := c.GetVal(reflect.TypeOf(ReturnHandler(nil))) + handleReturn := ev.Interface().(ReturnHandler) + handleReturn(c, vals) + } + + if c.Written() { + return + } + } +} + +// RemoteAddr returns more real IP address. +func (ctx *Context) RemoteAddr() string { + addr := ctx.Req.Header.Get("X-Real-IP") + if len(addr) == 0 { + addr = ctx.Req.Header.Get("X-Forwarded-For") + if addr == "" { + addr = ctx.Req.RemoteAddr + if i := strings.LastIndex(addr, ":"); i > -1 { + addr = addr[:i] + } + } + } + return addr +} + +func (ctx *Context) renderHTML(status int, setName, tplName string, data ...interface{}) { + if ctx.Render == nil { + panic("renderer middleware hasn't been registered") + } + if len(data) <= 0 { + ctx.Render.HTMLSet(status, setName, tplName, ctx.Data) + } else if len(data) == 1 { + ctx.Render.HTMLSet(status, setName, tplName, data[0]) + } else { + ctx.Render.HTMLSet(status, setName, tplName, data[0], data[1].(HTMLOptions)) + } +} + +// HTML calls Render.HTML but allows less arguments. +func (ctx *Context) HTML(status int, name string, data ...interface{}) { + ctx.renderHTML(status, _DEFAULT_TPL_SET_NAME, name, data...) +} + +// HTML calls Render.HTMLSet but allows less arguments. +func (ctx *Context) HTMLSet(status int, setName, tplName string, data ...interface{}) { + ctx.renderHTML(status, setName, tplName, data...) +} + +func (ctx *Context) Redirect(location string, status ...int) { + code := http.StatusFound + if len(status) == 1 { + code = status[0] + } + + http.Redirect(ctx.Resp, ctx.Req.Request, location, code) +} + +// Maximum amount of memory to use when parsing a multipart form. +// Set this to whatever value you prefer; default is 10 MB. +var MaxMemory = int64(1024 * 1024 * 10) + +func (ctx *Context) parseForm() { + if ctx.Req.Form != nil { + return + } + + contentType := ctx.Req.Header.Get("Content-Type") + if (ctx.Req.Method == "POST" || ctx.Req.Method == "PUT") && + len(contentType) > 0 && strings.Contains(contentType, "multipart/form-data") { + ctx.Req.ParseMultipartForm(MaxMemory) + } else { + ctx.Req.ParseForm() + } +} + +// Query querys form parameter. +func (ctx *Context) Query(name string) string { + ctx.parseForm() + return ctx.Req.Form.Get(name) +} + +// QueryTrim querys and trims spaces form parameter. +func (ctx *Context) QueryTrim(name string) string { + return strings.TrimSpace(ctx.Query(name)) +} + +// QueryStrings returns a list of results by given query name. +func (ctx *Context) QueryStrings(name string) []string { + ctx.parseForm() + + vals, ok := ctx.Req.Form[name] + if !ok { + return []string{} + } + return vals +} + +// QueryEscape returns escapred query result. +func (ctx *Context) QueryEscape(name string) string { + return template.HTMLEscapeString(ctx.Query(name)) +} + +// QueryInt returns query result in int type. +func (ctx *Context) QueryInt(name string) int { + return com.StrTo(ctx.Query(name)).MustInt() +} + +// QueryInt64 returns query result in int64 type. +func (ctx *Context) QueryInt64(name string) int64 { + return com.StrTo(ctx.Query(name)).MustInt64() +} + +// QueryFloat64 returns query result in float64 type. +func (ctx *Context) QueryFloat64(name string) float64 { + v, _ := strconv.ParseFloat(ctx.Query(name), 64) + return v +} + +// Params returns value of given param name. +// e.g. ctx.Params(":uid") or ctx.Params("uid") +func (ctx *Context) Params(name string) string { + if len(name) == 0 { + return "" + } + if len(name) > 1 && name[0] != ':' { + name = ":" + name + } + return ctx.params[name] +} + +// SetParams sets value of param with given name. +func (ctx *Context) SetParams(name, val string) { + if !strings.HasPrefix(name, ":") { + name = ":" + name + } + ctx.params[name] = val +} + +// ParamsEscape returns escapred params result. +// e.g. ctx.ParamsEscape(":uname") +func (ctx *Context) ParamsEscape(name string) string { + return template.HTMLEscapeString(ctx.Params(name)) +} + +// ParamsInt returns params result in int type. +// e.g. ctx.ParamsInt(":uid") +func (ctx *Context) ParamsInt(name string) int { + return com.StrTo(ctx.Params(name)).MustInt() +} + +// ParamsInt64 returns params result in int64 type. +// e.g. ctx.ParamsInt64(":uid") +func (ctx *Context) ParamsInt64(name string) int64 { + return com.StrTo(ctx.Params(name)).MustInt64() +} + +// ParamsFloat64 returns params result in int64 type. +// e.g. ctx.ParamsFloat64(":uid") +func (ctx *Context) ParamsFloat64(name string) float64 { + v, _ := strconv.ParseFloat(ctx.Params(name), 64) + return v +} + +// GetFile returns information about user upload file by given form field name. +func (ctx *Context) GetFile(name string) (multipart.File, *multipart.FileHeader, error) { + return ctx.Req.FormFile(name) +} + +// SaveToFile reads a file from request by field name and saves to given path. +func (ctx *Context) SaveToFile(name, savePath string) error { + fr, _, err := ctx.GetFile(name) + if err != nil { + return err + } + defer fr.Close() + + fw, err := os.OpenFile(savePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666) + if err != nil { + return err + } + defer fw.Close() + + _, err = io.Copy(fw, fr) + return err +} + +// SetCookie sets given cookie value to response header. +// FIXME: IE support? http://golanghome.com/post/620#reply2 +func (ctx *Context) SetCookie(name string, value string, others ...interface{}) { + cookie := http.Cookie{} + cookie.Name = name + cookie.Value = url.QueryEscape(value) + + if len(others) > 0 { + switch v := others[0].(type) { + case int: + cookie.MaxAge = v + case int64: + cookie.MaxAge = int(v) + case int32: + cookie.MaxAge = int(v) + } + } + + cookie.Path = "/" + if len(others) > 1 { + if v, ok := others[1].(string); ok && len(v) > 0 { + cookie.Path = v + } + } + + if len(others) > 2 { + if v, ok := others[2].(string); ok && len(v) > 0 { + cookie.Domain = v + } + } + + if len(others) > 3 { + switch v := others[3].(type) { + case bool: + cookie.Secure = v + default: + if others[3] != nil { + cookie.Secure = true + } + } + } + + if len(others) > 4 { + if v, ok := others[4].(bool); ok && v { + cookie.HttpOnly = true + } + } + + ctx.Resp.Header().Add("Set-Cookie", cookie.String()) +} + +// GetCookie returns given cookie value from request header. +func (ctx *Context) GetCookie(name string) string { + cookie, err := ctx.Req.Cookie(name) + if err != nil { + return "" + } + val, _ := url.QueryUnescape(cookie.Value) + return val +} + +// GetCookieInt returns cookie result in int type. +func (ctx *Context) GetCookieInt(name string) int { + return com.StrTo(ctx.GetCookie(name)).MustInt() +} + +// GetCookieInt64 returns cookie result in int64 type. +func (ctx *Context) GetCookieInt64(name string) int64 { + return com.StrTo(ctx.GetCookie(name)).MustInt64() +} + +// GetCookieFloat64 returns cookie result in float64 type. +func (ctx *Context) GetCookieFloat64(name string) float64 { + v, _ := strconv.ParseFloat(ctx.GetCookie(name), 64) + return v +} + +var defaultCookieSecret string + +// SetDefaultCookieSecret sets global default secure cookie secret. +func (m *Macaron) SetDefaultCookieSecret(secret string) { + defaultCookieSecret = secret +} + +// SetSecureCookie sets given cookie value to response header with default secret string. +func (ctx *Context) SetSecureCookie(name, value string, others ...interface{}) { + ctx.SetSuperSecureCookie(defaultCookieSecret, name, value, others...) +} + +// GetSecureCookie returns given cookie value from request header with default secret string. +func (ctx *Context) GetSecureCookie(key string) (string, bool) { + return ctx.GetSuperSecureCookie(defaultCookieSecret, key) +} + +// SetSuperSecureCookie sets given cookie value to response header with secret string. +func (ctx *Context) SetSuperSecureCookie(secret, name, value string, others ...interface{}) { + m := md5.Sum([]byte(secret)) + secret = hex.EncodeToString(m[:]) + text, err := com.AESEncrypt([]byte(secret), []byte(value)) + if err != nil { + panic("error encrypting cookie: " + err.Error()) + } + ctx.SetCookie(name, hex.EncodeToString(text), others...) +} + +// GetSuperSecureCookie returns given cookie value from request header with secret string. +func (ctx *Context) GetSuperSecureCookie(secret, key string) (string, bool) { + val := ctx.GetCookie(key) + if val == "" { + return "", false + } + + data, err := hex.DecodeString(val) + if err != nil { + return "", false + } + + m := md5.Sum([]byte(secret)) + secret = hex.EncodeToString(m[:]) + text, err := com.AESDecrypt([]byte(secret), data) + return string(text), err == nil +} + +func (ctx *Context) setRawContentHeader() { + ctx.Resp.Header().Set("Content-Description", "Raw content") + ctx.Resp.Header().Set("Content-Type", "text/plain") + ctx.Resp.Header().Set("Expires", "0") + ctx.Resp.Header().Set("Cache-Control", "must-revalidate") + ctx.Resp.Header().Set("Pragma", "public") +} + +// ServeContent serves given content to response. +func (ctx *Context) ServeContent(name string, r io.ReadSeeker, params ...interface{}) { + modtime := time.Now() + for _, p := range params { + switch v := p.(type) { + case time.Time: + modtime = v + } + } + + ctx.setRawContentHeader() + http.ServeContent(ctx.Resp, ctx.Req.Request, name, modtime, r) +} + +// ServeFileContent serves given file as content to response. +func (ctx *Context) ServeFileContent(file string, names ...string) { + var name string + if len(names) > 0 { + name = names[0] + } else { + name = path.Base(file) + } + + f, err := os.Open(file) + if err != nil { + if Env == PROD { + http.Error(ctx.Resp, "Internal Server Error", 500) + } else { + http.Error(ctx.Resp, err.Error(), 500) + } + return + } + defer f.Close() + + ctx.setRawContentHeader() + http.ServeContent(ctx.Resp, ctx.Req.Request, name, time.Now(), f) +} + +// ServeFile serves given file to response. +func (ctx *Context) ServeFile(file string, names ...string) { + var name string + if len(names) > 0 { + name = names[0] + } else { + name = path.Base(file) + } + ctx.Resp.Header().Set("Content-Description", "File Transfer") + ctx.Resp.Header().Set("Content-Type", "application/octet-stream") + ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+name) + ctx.Resp.Header().Set("Content-Transfer-Encoding", "binary") + ctx.Resp.Header().Set("Expires", "0") + ctx.Resp.Header().Set("Cache-Control", "must-revalidate") + ctx.Resp.Header().Set("Pragma", "public") + http.ServeFile(ctx.Resp, ctx.Req.Request, file) +} + +// ChangeStaticPath changes static path from old to new one. +func (ctx *Context) ChangeStaticPath(oldPath, newPath string) { + if !filepath.IsAbs(oldPath) { + oldPath = filepath.Join(Root, oldPath) + } + dir := statics.Get(oldPath) + if dir != nil { + statics.Delete(oldPath) + + if !filepath.IsAbs(newPath) { + newPath = filepath.Join(Root, newPath) + } + *dir = http.Dir(newPath) + statics.Set(dir) + } +} diff --git a/vendor/github.com/Unknwon/macaron/gzip.go b/vendor/github.com/Unknwon/macaron/gzip.go new file mode 100644 index 000000000000..44bafd08e3e1 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/gzip.go @@ -0,0 +1,113 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "bufio" + "compress/gzip" + "fmt" + "net" + "net/http" + "strings" +) + +const ( + HeaderAcceptEncoding = "Accept-Encoding" + HeaderContentEncoding = "Content-Encoding" + HeaderContentLength = "Content-Length" + HeaderContentType = "Content-Type" + HeaderVary = "Vary" +) + +// GzipOptions represents a struct for specifying configuration options for the GZip middleware. +type GzipOptions struct { + // Compression level. Can be DefaultCompression(-1) or any integer value between BestSpeed(1) and BestCompression(9) inclusive. + CompressionLevel int +} + +func isCompressionLevelValid(level int) bool { + return level == gzip.DefaultCompression || + (level >= gzip.BestSpeed && level <= gzip.BestCompression) +} + +func prepareGzipOptions(options []GzipOptions) GzipOptions { + var opt GzipOptions + if len(options) > 0 { + opt = options[0] + } + + if !isCompressionLevelValid(opt.CompressionLevel) { + opt.CompressionLevel = gzip.DefaultCompression + } + return opt +} + +// Gziper returns a Handler that adds gzip compression to all requests. +// Make sure to include the Gzip middleware above other middleware +// that alter the response body (like the render middleware). +func Gziper(options ...GzipOptions) Handler { + opt := prepareGzipOptions(options) + + return func(ctx *Context) { + if !strings.Contains(ctx.Req.Header.Get(HeaderAcceptEncoding), "gzip") { + return + } + + headers := ctx.Resp.Header() + headers.Set(HeaderContentEncoding, "gzip") + headers.Set(HeaderVary, HeaderAcceptEncoding) + + // We've made sure compression level is valid in prepareGzipOptions, + // no need to check same error again. + gz, err := gzip.NewWriterLevel(ctx.Resp, opt.CompressionLevel) + if err != nil { + panic(err.Error()) + } + defer gz.Close() + + gzw := gzipResponseWriter{gz, ctx.Resp} + ctx.Resp = gzw + ctx.MapTo(gzw, (*http.ResponseWriter)(nil)) + if ctx.Render != nil { + ctx.Render.SetResponseWriter(gzw) + } + + ctx.Next() + + // delete content length after we know we have been written to + gzw.Header().Del("Content-Length") + } +} + +type gzipResponseWriter struct { + w *gzip.Writer + ResponseWriter +} + +func (grw gzipResponseWriter) Write(p []byte) (int, error) { + if len(grw.Header().Get(HeaderContentType)) == 0 { + grw.Header().Set(HeaderContentType, http.DetectContentType(p)) + } + return grw.w.Write(p) +} + +func (grw gzipResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { + hijacker, ok := grw.ResponseWriter.(http.Hijacker) + if !ok { + return nil, nil, fmt.Errorf("the ResponseWriter doesn't support the Hijacker interface") + } + return hijacker.Hijack() +} diff --git a/vendor/github.com/Unknwon/macaron/inject/README.md b/vendor/github.com/Unknwon/macaron/inject/README.md new file mode 100644 index 000000000000..1721ab4a8922 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/inject/README.md @@ -0,0 +1,4 @@ +inject +====== + +Dependency injection for go diff --git a/vendor/github.com/Unknwon/macaron/inject/inject.go b/vendor/github.com/Unknwon/macaron/inject/inject.go new file mode 100644 index 000000000000..f1c47fa1da6a --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/inject/inject.go @@ -0,0 +1,202 @@ +// Copyright 2013 Jeremy Saenz +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package inject provides utilities for mapping and injecting dependencies in various ways. +package inject + +import ( + "fmt" + "reflect" +) + +// Injector represents an interface for mapping and injecting dependencies into structs +// and function arguments. +type Injector interface { + Applicator + Invoker + TypeMapper + // SetParent sets the parent of the injector. If the injector cannot find a + // dependency in its Type map it will check its parent before returning an + // error. + SetParent(Injector) +} + +// Applicator represents an interface for mapping dependencies to a struct. +type Applicator interface { + // Maps dependencies in the Type map to each field in the struct + // that is tagged with 'inject'. Returns an error if the injection + // fails. + Apply(interface{}) error +} + +// Invoker represents an interface for calling functions via reflection. +type Invoker interface { + // Invoke attempts to call the interface{} provided as a function, + // providing dependencies for function arguments based on Type. Returns + // a slice of reflect.Value representing the returned values of the function. + // Returns an error if the injection fails. + Invoke(interface{}) ([]reflect.Value, error) +} + +// TypeMapper represents an interface for mapping interface{} values based on type. +type TypeMapper interface { + // Maps the interface{} value based on its immediate type from reflect.TypeOf. + Map(interface{}) TypeMapper + // Maps the interface{} value based on the pointer of an Interface provided. + // This is really only useful for mapping a value as an interface, as interfaces + // cannot at this time be referenced directly without a pointer. + MapTo(interface{}, interface{}) TypeMapper + // Provides a possibility to directly insert a mapping based on type and value. + // This makes it possible to directly map type arguments not possible to instantiate + // with reflect like unidirectional channels. + Set(reflect.Type, reflect.Value) TypeMapper + // Returns the Value that is mapped to the current type. Returns a zeroed Value if + // the Type has not been mapped. + GetVal(reflect.Type) reflect.Value +} + +type injector struct { + values map[reflect.Type]reflect.Value + parent Injector +} + +// InterfaceOf dereferences a pointer to an Interface type. +// It panics if value is not an pointer to an interface. +func InterfaceOf(value interface{}) reflect.Type { + t := reflect.TypeOf(value) + + for t.Kind() == reflect.Ptr { + t = t.Elem() + } + + if t.Kind() != reflect.Interface { + panic("Called inject.InterfaceOf with a value that is not a pointer to an interface. (*MyInterface)(nil)") + } + + return t +} + +// New returns a new Injector. +func New() Injector { + return &injector{ + values: make(map[reflect.Type]reflect.Value), + } +} + +// Invoke attempts to call the interface{} provided as a function, +// providing dependencies for function arguments based on Type. +// Returns a slice of reflect.Value representing the returned values of the function. +// Returns an error if the injection fails. +// It panics if f is not a function +func (inj *injector) Invoke(f interface{}) ([]reflect.Value, error) { + t := reflect.TypeOf(f) + + var in = make([]reflect.Value, t.NumIn()) //Panic if t is not kind of Func + for i := 0; i < t.NumIn(); i++ { + argType := t.In(i) + val := inj.GetVal(argType) + if !val.IsValid() { + return nil, fmt.Errorf("Value not found for type %v", argType) + } + + in[i] = val + } + + return reflect.ValueOf(f).Call(in), nil +} + +// Maps dependencies in the Type map to each field in the struct +// that is tagged with 'inject'. +// Returns an error if the injection fails. +func (inj *injector) Apply(val interface{}) error { + v := reflect.ValueOf(val) + + for v.Kind() == reflect.Ptr { + v = v.Elem() + } + + if v.Kind() != reflect.Struct { + return nil // Should not panic here ? + } + + t := v.Type() + + for i := 0; i < v.NumField(); i++ { + f := v.Field(i) + structField := t.Field(i) + if f.CanSet() && (structField.Tag == "inject" || structField.Tag.Get("inject") != "") { + ft := f.Type() + v := inj.GetVal(ft) + if !v.IsValid() { + return fmt.Errorf("Value not found for type %v", ft) + } + + f.Set(v) + } + + } + + return nil +} + +// Maps the concrete value of val to its dynamic type using reflect.TypeOf, +// It returns the TypeMapper registered in. +func (i *injector) Map(val interface{}) TypeMapper { + i.values[reflect.TypeOf(val)] = reflect.ValueOf(val) + return i +} + +func (i *injector) MapTo(val interface{}, ifacePtr interface{}) TypeMapper { + i.values[InterfaceOf(ifacePtr)] = reflect.ValueOf(val) + return i +} + +// Maps the given reflect.Type to the given reflect.Value and returns +// the Typemapper the mapping has been registered in. +func (i *injector) Set(typ reflect.Type, val reflect.Value) TypeMapper { + i.values[typ] = val + return i +} + +func (i *injector) GetVal(t reflect.Type) reflect.Value { + val := i.values[t] + + if val.IsValid() { + return val + } + + // no concrete types found, try to find implementors + // if t is an interface + if t.Kind() == reflect.Interface { + for k, v := range i.values { + if k.Implements(t) { + val = v + break + } + } + } + + // Still no type found, try to look it up on the parent + if !val.IsValid() && i.parent != nil { + val = i.parent.GetVal(t) + } + + return val + +} + +func (i *injector) SetParent(parent Injector) { + i.parent = parent +} diff --git a/vendor/github.com/Unknwon/macaron/inject/inject.goconvey b/vendor/github.com/Unknwon/macaron/inject/inject.goconvey new file mode 100644 index 000000000000..8485e986e458 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/inject/inject.goconvey @@ -0,0 +1 @@ +ignore \ No newline at end of file diff --git a/vendor/github.com/Unknwon/macaron/logger.go b/vendor/github.com/Unknwon/macaron/logger.go new file mode 100644 index 000000000000..6e0b25c9b1fe --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/logger.go @@ -0,0 +1,61 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "fmt" + "log" + "net/http" + "runtime" + "time" +) + +var ColorLog = true + +func init() { + ColorLog = runtime.GOOS != "windows" +} + +// Logger returns a middleware handler that logs the request as it goes in and the response as it goes out. +func Logger() Handler { + return func(ctx *Context, log *log.Logger) { + start := time.Now() + + log.Printf("Started %s %s for %s", ctx.Req.Method, ctx.Req.RequestURI, ctx.RemoteAddr()) + + rw := ctx.Resp.(ResponseWriter) + ctx.Next() + + content := fmt.Sprintf("Completed %s %v %s in %v", ctx.Req.RequestURI, rw.Status(), http.StatusText(rw.Status()), time.Since(start)) + if ColorLog { + switch rw.Status() { + case 200, 201, 202: + content = fmt.Sprintf("\033[1;32m%s\033[0m", content) + case 301, 302: + content = fmt.Sprintf("\033[1;37m%s\033[0m", content) + case 304: + content = fmt.Sprintf("\033[1;33m%s\033[0m", content) + case 401, 403: + content = fmt.Sprintf("\033[4;31m%s\033[0m", content) + case 404: + content = fmt.Sprintf("\033[1;31m%s\033[0m", content) + case 500: + content = fmt.Sprintf("\033[1;36m%s\033[0m", content) + } + } + log.Println(content) + } +} diff --git a/vendor/github.com/Unknwon/macaron/macaron.go b/vendor/github.com/Unknwon/macaron/macaron.go new file mode 100644 index 000000000000..d95ae708beb4 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/macaron.go @@ -0,0 +1,278 @@ +// +build go1.3 + +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package macaron is a high productive and modular web framework in Go. +package macaron + +import ( + "io" + "log" + "net/http" + "os" + "reflect" + "strings" + + "github.com/Unknwon/com" + "gopkg.in/ini.v1" + + "github.com/Unknwon/macaron/inject" +) + +const _VERSION = "0.6.8.1010" + +func Version() string { + return _VERSION +} + +// Handler can be any callable function. +// Macaron attempts to inject services into the handler's argument list, +// and panics if an argument could not be fullfilled via dependency injection. +type Handler interface{} + +// validateHandler makes sure a handler is a callable function, +// and panics if it is not. +func validateHandler(h Handler) { + if reflect.TypeOf(h).Kind() != reflect.Func { + panic("Macaron handler must be a callable function") + } +} + +// validateHandlers makes sure handlers are callable functions, +// and panics if any of them is not. +func validateHandlers(handlers []Handler) { + for _, h := range handlers { + validateHandler(h) + } +} + +// Macaron represents the top level web application. +// inject.Injector methods can be invoked to map services on a global level. +type Macaron struct { + inject.Injector + befores []BeforeHandler + handlers []Handler + action Handler + + hasURLPrefix bool + urlPrefix string // For suburl support. + *Router + + logger *log.Logger +} + +// NewWithLogger creates a bare bones Macaron instance. +// Use this method if you want to have full control over the middleware that is used. +// You can specify logger output writer with this function. +func NewWithLogger(out io.Writer) *Macaron { + m := &Macaron{ + Injector: inject.New(), + action: func() {}, + Router: NewRouter(), + logger: log.New(out, "[Macaron] ", 0), + } + m.Router.m = m + m.Map(m.logger) + m.Map(defaultReturnHandler()) + m.NotFound(http.NotFound) + m.InternalServerError(func(rw http.ResponseWriter, err error) { + http.Error(rw, err.Error(), 500) + }) + return m +} + +// New creates a bare bones Macaron instance. +// Use this method if you want to have full control over the middleware that is used. +func New() *Macaron { + return NewWithLogger(os.Stdout) +} + +// Classic creates a classic Macaron with some basic default middleware: +// mocaron.Logger, mocaron.Recovery and mocaron.Static. +func Classic() *Macaron { + m := New() + m.Use(Logger()) + m.Use(Recovery()) + m.Use(Static("public")) + return m +} + +// Handlers sets the entire middleware stack with the given Handlers. +// This will clear any current middleware handlers, +// and panics if any of the handlers is not a callable function +func (m *Macaron) Handlers(handlers ...Handler) { + m.handlers = make([]Handler, 0) + for _, handler := range handlers { + m.Use(handler) + } +} + +// Action sets the handler that will be called after all the middleware has been invoked. +// This is set to macaron.Router in a macaron.Classic(). +func (m *Macaron) Action(handler Handler) { + validateHandler(handler) + m.action = handler +} + +// BeforeHandler represents a handler executes at beginning of every request. +// Macaron stops future process when it returns true. +type BeforeHandler func(rw http.ResponseWriter, req *http.Request) bool + +func (m *Macaron) Before(handler BeforeHandler) { + m.befores = append(m.befores, handler) +} + +// Use adds a middleware Handler to the stack, +// and panics if the handler is not a callable func. +// Middleware Handlers are invoked in the order that they are added. +func (m *Macaron) Use(handler Handler) { + validateHandler(handler) + m.handlers = append(m.handlers, handler) +} + +func (m *Macaron) createContext(rw http.ResponseWriter, req *http.Request) *Context { + c := &Context{ + Injector: inject.New(), + handlers: m.handlers, + action: m.action, + index: 0, + Router: m.Router, + Req: Request{req}, + Resp: NewResponseWriter(rw), + Data: make(map[string]interface{}), + } + c.SetParent(m) + c.Map(c) + c.MapTo(c.Resp, (*http.ResponseWriter)(nil)) + c.Map(req) + return c +} + +// ServeHTTP is the HTTP Entry point for a Macaron instance. +// Useful if you want to control your own HTTP server. +// Be aware that none of middleware will run without registering any router. +func (m *Macaron) ServeHTTP(rw http.ResponseWriter, req *http.Request) { + if m.hasURLPrefix { + req.URL.Path = strings.TrimPrefix(req.URL.Path, m.urlPrefix) + } + for _, h := range m.befores { + if h(rw, req) { + return + } + } + m.Router.ServeHTTP(rw, req) +} + +func GetDefaultListenInfo() (string, int) { + host := os.Getenv("HOST") + if len(host) == 0 { + host = "0.0.0.0" + } + port := com.StrTo(os.Getenv("PORT")).MustInt() + if port == 0 { + port = 4000 + } + return host, port +} + +// Run the http server. Listening on os.GetEnv("PORT") or 4000 by default. +func (m *Macaron) Run(args ...interface{}) { + host, port := GetDefaultListenInfo() + if len(args) == 1 { + switch arg := args[0].(type) { + case string: + host = arg + case int: + port = arg + } + } else if len(args) >= 2 { + if arg, ok := args[0].(string); ok { + host = arg + } + if arg, ok := args[1].(int); ok { + port = arg + } + } + + addr := host + ":" + com.ToStr(port) + logger := m.Injector.GetVal(reflect.TypeOf(m.logger)).Interface().(*log.Logger) + logger.Printf("listening on %s (%s)\n", addr, Env) + logger.Fatalln(http.ListenAndServe(addr, m)) +} + +// SetURLPrefix sets URL prefix of router layer, so that it support suburl. +func (m *Macaron) SetURLPrefix(prefix string) { + m.urlPrefix = prefix + m.hasURLPrefix = len(m.urlPrefix) > 0 +} + +// ____ ____ .__ ___. .__ +// \ \ / /____ _______|__|____ \_ |__ | | ____ ______ +// \ Y /\__ \\_ __ \ \__ \ | __ \| | _/ __ \ / ___/ +// \ / / __ \| | \/ |/ __ \| \_\ \ |_\ ___/ \___ \ +// \___/ (____ /__| |__(____ /___ /____/\___ >____ > +// \/ \/ \/ \/ \/ + +const ( + DEV = "development" + PROD = "production" + TEST = "test" +) + +var ( + // Env is the environment that Macaron is executing in. + // The MACARON_ENV is read on initialization to set this variable. + Env = DEV + + // Path of work directory. + Root string + + // Flash applies to current request. + FlashNow bool + + // Configuration convention object. + cfg *ini.File +) + +func setENV(e string) { + if len(e) > 0 { + Env = e + } +} + +func init() { + setENV(os.Getenv("MACARON_ENV")) + + var err error + Root, err = os.Getwd() + if err != nil { + panic("error getting work directory: " + err.Error()) + } +} + +// SetConfig sets data sources for configuration. +func SetConfig(source interface{}, others ...interface{}) (_ *ini.File, err error) { + cfg, err = ini.Load(source, others...) + return Config(), err +} + +// Config returns configuration convention object. +// It returns an empty object if there is no one available. +func Config() *ini.File { + if cfg == nil { + return ini.Empty() + } + return cfg +} diff --git a/vendor/github.com/Unknwon/macaron/macaronlogo.png b/vendor/github.com/Unknwon/macaron/macaronlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..399759769a8d7f5549d550baccdd2ea5716e2bac GIT binary patch literal 88924 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

QJx8u(c;{O@hHqa*uT;M%@1 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/Unknwon/macaron/recovery.go b/vendor/github.com/Unknwon/macaron/recovery.go new file mode 100644 index 000000000000..6ff1659e8add --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/recovery.go @@ -0,0 +1,163 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net/http" + "runtime" + + "github.com/Unknwon/macaron/inject" +) + +const ( + panicHtml = ` +PANIC: %s + + + +

PANIC

+
%s
+
%s
+ +` +) + +var ( + dunno = []byte("???") + centerDot = []byte("·") + dot = []byte(".") + slash = []byte("/") +) + +// stack returns a nicely formated stack frame, skipping skip frames +func stack(skip int) []byte { + buf := new(bytes.Buffer) // the returned data + // As we loop, we open files and read them. These variables record the currently + // loaded file. + var lines [][]byte + var lastFile string + for i := skip; ; i++ { // Skip the expected number of frames + pc, file, line, ok := runtime.Caller(i) + if !ok { + break + } + // Print this much at least. If we can't find the source, it won't show. + fmt.Fprintf(buf, "%s:%d (0x%x)\n", file, line, pc) + if file != lastFile { + data, err := ioutil.ReadFile(file) + if err != nil { + continue + } + lines = bytes.Split(data, []byte{'\n'}) + lastFile = file + } + fmt.Fprintf(buf, "\t%s: %s\n", function(pc), source(lines, line)) + } + return buf.Bytes() +} + +// source returns a space-trimmed slice of the n'th line. +func source(lines [][]byte, n int) []byte { + n-- // in stack trace, lines are 1-indexed but our array is 0-indexed + if n < 0 || n >= len(lines) { + return dunno + } + return bytes.TrimSpace(lines[n]) +} + +// function returns, if possible, the name of the function containing the PC. +func function(pc uintptr) []byte { + fn := runtime.FuncForPC(pc) + if fn == nil { + return dunno + } + name := []byte(fn.Name()) + // The name includes the path name to the package, which is unnecessary + // since the file name is already included. Plus, it has center dots. + // That is, we see + // runtime/debug.*T·ptrmethod + // and want + // *T.ptrmethod + // Also the package path might contains dot (e.g. code.google.com/...), + // so first eliminate the path prefix + if lastslash := bytes.LastIndex(name, slash); lastslash >= 0 { + name = name[lastslash+1:] + } + if period := bytes.Index(name, dot); period >= 0 { + name = name[period+1:] + } + name = bytes.Replace(name, centerDot, dot, -1) + return name +} + +// Recovery returns a middleware that recovers from any panics and writes a 500 if there was one. +// While Martini is in development mode, Recovery will also output the panic as HTML. +func Recovery() Handler { + return func(c *Context, log *log.Logger) { + defer func() { + if err := recover(); err != nil { + stack := stack(3) + log.Printf("PANIC: %s\n%s", err, stack) + + // Lookup the current responsewriter + val := c.GetVal(inject.InterfaceOf((*http.ResponseWriter)(nil))) + res := val.Interface().(http.ResponseWriter) + + // respond with panic message while in development mode + var body []byte + if Env == DEV { + res.Header().Set("Content-Type", "text/html") + body = []byte(fmt.Sprintf(panicHtml, err, err, stack)) + } + + res.WriteHeader(http.StatusInternalServerError) + if nil != body { + res.Write(body) + } + } + }() + + c.Next() + } +} diff --git a/vendor/github.com/Unknwon/macaron/render.go b/vendor/github.com/Unknwon/macaron/render.go new file mode 100644 index 000000000000..9e5365f5407f --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/render.go @@ -0,0 +1,598 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "bytes" + "encoding/json" + "encoding/xml" + "fmt" + "html/template" + "io/ioutil" + "net/http" + "os" + "path" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/Unknwon/com" +) + +const ( + ContentType = "Content-Type" + ContentLength = "Content-Length" + ContentBinary = "application/octet-stream" + ContentJSON = "application/json" + ContentHTML = "text/html" + CONTENT_PLAIN = "text/plain" + ContentXHTML = "application/xhtml+xml" + ContentXML = "text/xml" + defaultCharset = "UTF-8" +) + +var ( + // Provides a temporary buffer to execute templates into and catch errors. + bufpool = sync.Pool{ + New: func() interface{} { return new(bytes.Buffer) }, + } + + // Included helper functions for use when rendering html + helperFuncs = template.FuncMap{ + "yield": func() (string, error) { + return "", fmt.Errorf("yield called with no layout defined") + }, + "current": func() (string, error) { + return "", nil + }, + } +) + +type ( + // TemplateFile represents a interface of template file that has name and can be read. + TemplateFile interface { + Name() string + Data() []byte + Ext() string + } + // TemplateFileSystem represents a interface of template file system that able to list all files. + TemplateFileSystem interface { + ListFiles() []TemplateFile + } + + // Delims represents a set of Left and Right delimiters for HTML template rendering + Delims struct { + // Left delimiter, defaults to {{ + Left string + // Right delimiter, defaults to }} + Right string + } + + // RenderOptions represents a struct for specifying configuration options for the Render middleware. + RenderOptions struct { + // Directory to load templates. Default is "templates". + Directory string + // Layout template name. Will not render a layout if "". Default is to "". + Layout string + // Extensions to parse template files from. Defaults are [".tmpl", ".html"]. + Extensions []string + // Funcs is a slice of FuncMaps to apply to the template upon compilation. This is useful for helper functions. Default is []. + Funcs []template.FuncMap + // Delims sets the action delimiters to the specified strings in the Delims struct. + Delims Delims + // Appends the given charset to the Content-Type header. Default is "UTF-8". + Charset string + // Outputs human readable JSON. + IndentJSON bool + // Outputs human readable XML. + IndentXML bool + // Prefixes the JSON output with the given bytes. + PrefixJSON []byte + // Prefixes the XML output with the given bytes. + PrefixXML []byte + // Allows changing of output to XHTML instead of HTML. Default is "text/html" + HTMLContentType string + // TemplateFileSystem is the interface for supporting any implmentation of template file system. + TemplateFileSystem + } + + // HTMLOptions is a struct for overriding some rendering Options for specific HTML call + HTMLOptions struct { + // Layout template name. Overrides Options.Layout. + Layout string + } + + Render interface { + http.ResponseWriter + SetResponseWriter(http.ResponseWriter) + RW() http.ResponseWriter + + JSON(int, interface{}) + JSONString(interface{}) (string, error) + RawData(int, []byte) + RenderData(int, []byte) + HTML(int, string, interface{}, ...HTMLOptions) + HTMLSet(int, string, string, interface{}, ...HTMLOptions) + HTMLSetString(string, string, interface{}, ...HTMLOptions) (string, error) + HTMLString(string, interface{}, ...HTMLOptions) (string, error) + HTMLSetBytes(string, string, interface{}, ...HTMLOptions) ([]byte, error) + HTMLBytes(string, interface{}, ...HTMLOptions) ([]byte, error) + XML(int, interface{}) + Error(int, ...string) + Status(int) + SetTemplatePath(string, string) + HasTemplateSet(string) bool + } +) + +// TplFile implements TemplateFile interface. +type TplFile struct { + name string + data []byte + ext string +} + +// NewTplFile cerates new template file with given name and data. +func NewTplFile(name string, data []byte, ext string) *TplFile { + return &TplFile{name, data, ext} +} + +func (f *TplFile) Name() string { + return f.name +} + +func (f *TplFile) Data() []byte { + return f.data +} + +func (f *TplFile) Ext() string { + return f.ext +} + +// TplFileSystem implements TemplateFileSystem interface. +type TplFileSystem struct { + files []TemplateFile +} + +// NewTemplateFileSystem creates new template file system with given options. +func NewTemplateFileSystem(opt RenderOptions, omitData bool) TplFileSystem { + fs := TplFileSystem{} + fs.files = make([]TemplateFile, 0, 10) + + if err := filepath.Walk(opt.Directory, func(path string, info os.FileInfo, err error) error { + r, err := filepath.Rel(opt.Directory, path) + if err != nil { + return err + } + + ext := GetExt(r) + + for _, extension := range opt.Extensions { + if ext == extension { + var data []byte + if !omitData { + data, err = ioutil.ReadFile(path) + if err != nil { + return err + } + } + + name := filepath.ToSlash((r[0 : len(r)-len(ext)])) + fs.files = append(fs.files, NewTplFile(name, data, ext)) + break + } + } + + return nil + }); err != nil { + panic("NewTemplateFileSystem: " + err.Error()) + } + + return fs +} + +func (fs TplFileSystem) ListFiles() []TemplateFile { + return fs.files +} + +func PrepareCharset(charset string) string { + if len(charset) != 0 { + return "; charset=" + charset + } + + return "; charset=" + defaultCharset +} + +func GetExt(s string) string { + index := strings.Index(s, ".") + if index == -1 { + return "" + } + return s[index:] +} + +func compile(opt RenderOptions) *template.Template { + dir := opt.Directory + t := template.New(dir) + t.Delims(opt.Delims.Left, opt.Delims.Right) + // Parse an initial template in case we don't have any. + template.Must(t.Parse("Macaron")) + + if opt.TemplateFileSystem == nil { + opt.TemplateFileSystem = NewTemplateFileSystem(opt, false) + } + + for _, f := range opt.TemplateFileSystem.ListFiles() { + tmpl := t.New(f.Name()) + for _, funcs := range opt.Funcs { + tmpl.Funcs(funcs) + } + // Bomb out if parse fails. We don't want any silent server starts. + template.Must(tmpl.Funcs(helperFuncs).Parse(string(f.Data()))) + } + + return t +} + +const ( + _DEFAULT_TPL_SET_NAME = "DEFAULT" +) + +// templateSet represents a template set of type *template.Template. +type templateSet struct { + lock sync.RWMutex + sets map[string]*template.Template + dirs map[string]string +} + +func newTemplateSet() *templateSet { + return &templateSet{ + sets: make(map[string]*template.Template), + dirs: make(map[string]string), + } +} + +func (ts *templateSet) Set(name string, opt *RenderOptions) *template.Template { + t := compile(*opt) + + ts.lock.Lock() + defer ts.lock.Unlock() + + ts.sets[name] = t + ts.dirs[name] = opt.Directory + return t +} + +func (ts *templateSet) Get(name string) *template.Template { + ts.lock.RLock() + defer ts.lock.RUnlock() + + return ts.sets[name] +} + +func (ts *templateSet) GetDir(name string) string { + ts.lock.RLock() + defer ts.lock.RUnlock() + + return ts.dirs[name] +} + +func prepareRenderOptions(options []RenderOptions) RenderOptions { + var opt RenderOptions + if len(options) > 0 { + opt = options[0] + } + + // Defaults. + if len(opt.Directory) == 0 { + opt.Directory = "templates" + } + if len(opt.Extensions) == 0 { + opt.Extensions = []string{".tmpl", ".html"} + } + if len(opt.HTMLContentType) == 0 { + opt.HTMLContentType = ContentHTML + } + + return opt +} + +func ParseTplSet(tplSet string) (tplName string, tplDir string) { + tplSet = strings.TrimSpace(tplSet) + if len(tplSet) == 0 { + panic("empty template set argument") + } + infos := strings.Split(tplSet, ":") + if len(infos) == 1 { + tplDir = infos[0] + tplName = path.Base(tplDir) + } else { + tplName = infos[0] + tplDir = infos[1] + } + + if !com.IsDir(tplDir) { + panic("template set path does not exist or is not a directory") + } + return tplName, tplDir +} + +func renderHandler(opt RenderOptions, tplSets []string) Handler { + cs := PrepareCharset(opt.Charset) + ts := newTemplateSet() + ts.Set(_DEFAULT_TPL_SET_NAME, &opt) + + var tmpOpt RenderOptions + for _, tplSet := range tplSets { + tplName, tplDir := ParseTplSet(tplSet) + tmpOpt = opt + tmpOpt.Directory = tplDir + ts.Set(tplName, &tmpOpt) + } + + return func(ctx *Context) { + r := &TplRender{ + ResponseWriter: ctx.Resp, + templateSet: ts, + Opt: &opt, + CompiledCharset: cs, + } + ctx.Data["TmplLoadTimes"] = func() string { + if r.startTime.IsZero() { + return "" + } + return fmt.Sprint(time.Since(r.startTime).Nanoseconds()/1e6) + "ms" + } + + ctx.Render = r + ctx.MapTo(r, (*Render)(nil)) + } +} + +// Renderer is a Middleware that maps a macaron.Render service into the Macaron handler chain. +// An single variadic macaron.RenderOptions struct can be optionally provided to configure +// HTML rendering. The default directory for templates is "templates" and the default +// file extension is ".tmpl" and ".html". +// +// If MACARON_ENV is set to "" or "development" then templates will be recompiled on every request. For more performance, set the +// MACARON_ENV environment variable to "production". +func Renderer(options ...RenderOptions) Handler { + return renderHandler(prepareRenderOptions(options), []string{}) +} + +func Renderers(options RenderOptions, tplSets ...string) Handler { + return renderHandler(prepareRenderOptions([]RenderOptions{options}), tplSets) +} + +type TplRender struct { + http.ResponseWriter + *templateSet + Opt *RenderOptions + CompiledCharset string + + startTime time.Time +} + +func (r *TplRender) SetResponseWriter(rw http.ResponseWriter) { + r.ResponseWriter = rw +} + +func (r *TplRender) RW() http.ResponseWriter { + return r.ResponseWriter +} + +func (r *TplRender) JSON(status int, v interface{}) { + var ( + result []byte + err error + ) + if r.Opt.IndentJSON { + result, err = json.MarshalIndent(v, "", " ") + } else { + result, err = json.Marshal(v) + } + if err != nil { + http.Error(r, err.Error(), 500) + return + } + + // json rendered fine, write out the result + r.Header().Set(ContentType, ContentJSON+r.CompiledCharset) + r.WriteHeader(status) + if len(r.Opt.PrefixJSON) > 0 { + r.Write(r.Opt.PrefixJSON) + } + r.Write(result) +} + +func (r *TplRender) JSONString(v interface{}) (string, error) { + var result []byte + var err error + if r.Opt.IndentJSON { + result, err = json.MarshalIndent(v, "", " ") + } else { + result, err = json.Marshal(v) + } + if err != nil { + return "", err + } + return string(result), nil +} + +func (r *TplRender) XML(status int, v interface{}) { + var result []byte + var err error + if r.Opt.IndentXML { + result, err = xml.MarshalIndent(v, "", " ") + } else { + result, err = xml.Marshal(v) + } + if err != nil { + http.Error(r, err.Error(), 500) + return + } + + // XML rendered fine, write out the result + r.Header().Set(ContentType, ContentXML+r.CompiledCharset) + r.WriteHeader(status) + if len(r.Opt.PrefixXML) > 0 { + r.Write(r.Opt.PrefixXML) + } + r.Write(result) +} + +func (r *TplRender) data(status int, contentType string, v []byte) { + if r.Header().Get(ContentType) == "" { + r.Header().Set(ContentType, contentType) + } + r.WriteHeader(status) + r.Write(v) +} + +func (r *TplRender) RawData(status int, v []byte) { + r.data(status, ContentBinary, v) +} + +func (r *TplRender) RenderData(status int, v []byte) { + r.data(status, CONTENT_PLAIN, v) +} + +func (r *TplRender) execute(t *template.Template, name string, data interface{}) (*bytes.Buffer, error) { + buf := bufpool.Get().(*bytes.Buffer) + return buf, t.ExecuteTemplate(buf, name, data) +} + +func (r *TplRender) addYield(t *template.Template, tplName string, data interface{}) { + funcs := template.FuncMap{ + "yield": func() (template.HTML, error) { + buf, err := r.execute(t, tplName, data) + // return safe html here since we are rendering our own template + return template.HTML(buf.String()), err + }, + "current": func() (string, error) { + return tplName, nil + }, + } + t.Funcs(funcs) +} + +func (r *TplRender) renderBytes(setName, tplName string, data interface{}, htmlOpt ...HTMLOptions) (*bytes.Buffer, error) { + t := r.templateSet.Get(setName) + if Env == DEV { + opt := *r.Opt + opt.Directory = r.templateSet.GetDir(setName) + t = r.templateSet.Set(setName, &opt) + } + if t == nil { + return nil, fmt.Errorf("html/template: template \"%s\" is undefined", tplName) + } + + opt := r.prepareHTMLOptions(htmlOpt) + + if len(opt.Layout) > 0 { + r.addYield(t, tplName, data) + tplName = opt.Layout + } + + out, err := r.execute(t, tplName, data) + if err != nil { + return nil, err + } + + return out, nil +} + +func (r *TplRender) renderHTML(status int, setName, tplName string, data interface{}, htmlOpt ...HTMLOptions) { + r.startTime = time.Now() + + out, err := r.renderBytes(setName, tplName, data, htmlOpt...) + if err != nil { + http.Error(r, err.Error(), http.StatusInternalServerError) + return + } + + r.Header().Set(ContentType, r.Opt.HTMLContentType+r.CompiledCharset) + r.WriteHeader(status) + + out.WriteTo(r) + bufpool.Put(out) +} + +func (r *TplRender) HTML(status int, name string, data interface{}, htmlOpt ...HTMLOptions) { + r.renderHTML(status, _DEFAULT_TPL_SET_NAME, name, data, htmlOpt...) +} + +func (r *TplRender) HTMLSet(status int, setName, tplName string, data interface{}, htmlOpt ...HTMLOptions) { + r.renderHTML(status, setName, tplName, data, htmlOpt...) +} + +func (r *TplRender) HTMLSetBytes(setName, tplName string, data interface{}, htmlOpt ...HTMLOptions) ([]byte, error) { + out, err := r.renderBytes(setName, tplName, data, htmlOpt...) + if err != nil { + return []byte(""), err + } + return out.Bytes(), nil +} + +func (r *TplRender) HTMLBytes(name string, data interface{}, htmlOpt ...HTMLOptions) ([]byte, error) { + return r.HTMLSetBytes(_DEFAULT_TPL_SET_NAME, name, data, htmlOpt...) +} + +func (r *TplRender) HTMLSetString(setName, tplName string, data interface{}, htmlOpt ...HTMLOptions) (string, error) { + p, err := r.HTMLSetBytes(setName, tplName, data, htmlOpt...) + return string(p), err +} + +func (r *TplRender) HTMLString(name string, data interface{}, htmlOpt ...HTMLOptions) (string, error) { + p, err := r.HTMLBytes(name, data, htmlOpt...) + return string(p), err +} + +// Error writes the given HTTP status to the current ResponseWriter +func (r *TplRender) Error(status int, message ...string) { + r.WriteHeader(status) + if len(message) > 0 { + r.Write([]byte(message[0])) + } +} + +func (r *TplRender) Status(status int) { + r.WriteHeader(status) +} + +func (r *TplRender) prepareHTMLOptions(htmlOpt []HTMLOptions) HTMLOptions { + if len(htmlOpt) > 0 { + return htmlOpt[0] + } + + return HTMLOptions{ + Layout: r.Opt.Layout, + } +} + +func (r *TplRender) SetTemplatePath(setName, dir string) { + if len(setName) == 0 { + setName = _DEFAULT_TPL_SET_NAME + } + opt := *r.Opt + opt.Directory = dir + r.templateSet.Set(setName, &opt) +} + +func (r *TplRender) HasTemplateSet(name string) bool { + return r.templateSet.Get(name) != nil +} diff --git a/vendor/github.com/Unknwon/macaron/response_writer.go b/vendor/github.com/Unknwon/macaron/response_writer.go new file mode 100644 index 000000000000..ab54f56c0311 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/response_writer.go @@ -0,0 +1,111 @@ +// Copyright 2013 Martini Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "bufio" + "fmt" + "net" + "net/http" +) + +// ResponseWriter is a wrapper around http.ResponseWriter that provides extra information about +// the response. It is recommended that middleware handlers use this construct to wrap a responsewriter +// if the functionality calls for it. +type ResponseWriter interface { + http.ResponseWriter + http.Flusher + // Status returns the status code of the response or 0 if the response has not been written. + Status() int + // Written returns whether or not the ResponseWriter has been written. + Written() bool + // Size returns the size of the response body. + Size() int + // Before allows for a function to be called before the ResponseWriter has been written to. This is + // useful for setting headers or any other operations that must happen before a response has been written. + Before(BeforeFunc) +} + +// BeforeFunc is a function that is called before the ResponseWriter has been written to. +type BeforeFunc func(ResponseWriter) + +// NewResponseWriter creates a ResponseWriter that wraps an http.ResponseWriter +func NewResponseWriter(rw http.ResponseWriter) ResponseWriter { + return &responseWriter{rw, 0, 0, nil} +} + +type responseWriter struct { + http.ResponseWriter + status int + size int + beforeFuncs []BeforeFunc +} + +func (rw *responseWriter) WriteHeader(s int) { + rw.callBefore() + rw.ResponseWriter.WriteHeader(s) + rw.status = s +} + +func (rw *responseWriter) Write(b []byte) (int, error) { + if !rw.Written() { + // The status will be StatusOK if WriteHeader has not been called yet + rw.WriteHeader(http.StatusOK) + } + size, err := rw.ResponseWriter.Write(b) + rw.size += size + return size, err +} + +func (rw *responseWriter) Status() int { + return rw.status +} + +func (rw *responseWriter) Size() int { + return rw.size +} + +func (rw *responseWriter) Written() bool { + return rw.status != 0 +} + +func (rw *responseWriter) Before(before BeforeFunc) { + rw.beforeFuncs = append(rw.beforeFuncs, before) +} + +func (rw *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { + hijacker, ok := rw.ResponseWriter.(http.Hijacker) + if !ok { + return nil, nil, fmt.Errorf("the ResponseWriter doesn't support the Hijacker interface") + } + return hijacker.Hijack() +} + +func (rw *responseWriter) CloseNotify() <-chan bool { + return rw.ResponseWriter.(http.CloseNotifier).CloseNotify() +} + +func (rw *responseWriter) callBefore() { + for i := len(rw.beforeFuncs) - 1; i >= 0; i-- { + rw.beforeFuncs[i](rw) + } +} + +func (rw *responseWriter) Flush() { + flusher, ok := rw.ResponseWriter.(http.Flusher) + if ok { + flusher.Flush() + } +} diff --git a/vendor/github.com/Unknwon/macaron/return_handler.go b/vendor/github.com/Unknwon/macaron/return_handler.go new file mode 100644 index 000000000000..91e90350bb44 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/return_handler.go @@ -0,0 +1,76 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "net/http" + "reflect" + + "github.com/Unknwon/macaron/inject" +) + +// ReturnHandler is a service that Martini provides that is called +// when a route handler returns something. The ReturnHandler is +// responsible for writing to the ResponseWriter based on the values +// that are passed into this function. +type ReturnHandler func(*Context, []reflect.Value) + +func canDeref(val reflect.Value) bool { + return val.Kind() == reflect.Interface || val.Kind() == reflect.Ptr +} + +func isError(val reflect.Value) bool { + _, ok := val.Interface().(error) + return ok +} + +func isByteSlice(val reflect.Value) bool { + return val.Kind() == reflect.Slice && val.Type().Elem().Kind() == reflect.Uint8 +} + +func defaultReturnHandler() ReturnHandler { + return func(ctx *Context, vals []reflect.Value) { + rv := ctx.GetVal(inject.InterfaceOf((*http.ResponseWriter)(nil))) + resp := rv.Interface().(http.ResponseWriter) + var respVal reflect.Value + if len(vals) > 1 && vals[0].Kind() == reflect.Int { + resp.WriteHeader(int(vals[0].Int())) + respVal = vals[1] + } else if len(vals) > 0 { + respVal = vals[0] + + if isError(respVal) { + err := respVal.Interface().(error) + if err != nil { + ctx.internalServerError(ctx, err) + } + return + } else if canDeref(respVal) { + if respVal.IsNil() { + return // Ignore nil error + } + } + } + if canDeref(respVal) { + respVal = respVal.Elem() + } + if isByteSlice(respVal) { + resp.Write(respVal.Bytes()) + } else { + resp.Write([]byte(respVal.String())) + } + } +} diff --git a/vendor/github.com/Unknwon/macaron/router.go b/vendor/github.com/Unknwon/macaron/router.go new file mode 100644 index 000000000000..2d05669cbd54 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/router.go @@ -0,0 +1,360 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "net/http" + "strings" + "sync" +) + +var ( + // Known HTTP methods. + _HTTP_METHODS = map[string]bool{ + "GET": true, + "POST": true, + "PUT": true, + "DELETE": true, + "PATCH": true, + "OPTIONS": true, + "HEAD": true, + } +) + +// routeMap represents a thread-safe map for route tree. +type routeMap struct { + lock sync.RWMutex + routes map[string]map[string]*Leaf +} + +// NewRouteMap initializes and returns a new routeMap. +func NewRouteMap() *routeMap { + rm := &routeMap{ + routes: make(map[string]map[string]*Leaf), + } + for m := range _HTTP_METHODS { + rm.routes[m] = make(map[string]*Leaf) + } + return rm +} + +// getLeaf returns Leaf object if a route has been registered. +func (rm *routeMap) getLeaf(method, pattern string) *Leaf { + rm.lock.RLock() + defer rm.lock.RUnlock() + + return rm.routes[method][pattern] +} + +// add adds new route to route tree map. +func (rm *routeMap) add(method, pattern string, leaf *Leaf) { + rm.lock.Lock() + defer rm.lock.Unlock() + + rm.routes[method][pattern] = leaf +} + +type group struct { + pattern string + handlers []Handler +} + +// Router represents a Macaron router layer. +type Router struct { + m *Macaron + autoHead bool + routers map[string]*Tree + *routeMap + namedRoutes map[string]*Leaf + + groups []group + notFound http.HandlerFunc + internalServerError func(*Context, error) +} + +func NewRouter() *Router { + return &Router{ + routers: make(map[string]*Tree), + routeMap: NewRouteMap(), + namedRoutes: make(map[string]*Leaf), + } +} + +// SetAutoHead sets the value who determines whether add HEAD method automatically +// when GET method is added. Combo router will not be affected by this value. +func (r *Router) SetAutoHead(v bool) { + r.autoHead = v +} + +type Params map[string]string + +// Handle is a function that can be registered to a route to handle HTTP requests. +// Like http.HandlerFunc, but has a third parameter for the values of wildcards (variables). +type Handle func(http.ResponseWriter, *http.Request, Params) + +// Route represents a wrapper of leaf route and upper level router. +type Route struct { + router *Router + leaf *Leaf +} + +// Name sets name of route. +func (r *Route) Name(name string) { + if len(name) == 0 { + panic("route name cannot be empty") + } else if r.router.namedRoutes[name] != nil { + panic("route with given name already exists") + } + r.router.namedRoutes[name] = r.leaf +} + +// handle adds new route to the router tree. +func (r *Router) handle(method, pattern string, handle Handle) *Route { + method = strings.ToUpper(method) + + var leaf *Leaf + // Prevent duplicate routes. + if leaf = r.getLeaf(method, pattern); leaf != nil { + return &Route{r, leaf} + } + + // Validate HTTP methods. + if !_HTTP_METHODS[method] && method != "*" { + panic("unknown HTTP method: " + method) + } + + // Generate methods need register. + methods := make(map[string]bool) + if method == "*" { + for m := range _HTTP_METHODS { + methods[m] = true + } + } else { + methods[method] = true + } + + // Add to router tree. + for m := range methods { + if t, ok := r.routers[m]; ok { + leaf = t.Add(pattern, handle) + } else { + t := NewTree() + leaf = t.Add(pattern, handle) + r.routers[m] = t + } + r.add(m, pattern, leaf) + } + return &Route{r, leaf} +} + +// Handle registers a new request handle with the given pattern, method and handlers. +func (r *Router) Handle(method string, pattern string, handlers []Handler) *Route { + if len(r.groups) > 0 { + groupPattern := "" + h := make([]Handler, 0) + for _, g := range r.groups { + groupPattern += g.pattern + h = append(h, g.handlers...) + } + + pattern = groupPattern + pattern + h = append(h, handlers...) + handlers = h + } + validateHandlers(handlers) + + return r.handle(method, pattern, func(resp http.ResponseWriter, req *http.Request, params Params) { + c := r.m.createContext(resp, req) + c.params = params + c.handlers = make([]Handler, 0, len(r.m.handlers)+len(handlers)) + c.handlers = append(c.handlers, r.m.handlers...) + c.handlers = append(c.handlers, handlers...) + c.run() + }) +} + +func (r *Router) Group(pattern string, fn func(), h ...Handler) { + r.groups = append(r.groups, group{pattern, h}) + fn() + r.groups = r.groups[:len(r.groups)-1] +} + +// Get is a shortcut for r.Handle("GET", pattern, handlers) +func (r *Router) Get(pattern string, h ...Handler) (leaf *Route) { + leaf = r.Handle("GET", pattern, h) + if r.autoHead { + r.Head(pattern, h...) + } + return leaf +} + +// Patch is a shortcut for r.Handle("PATCH", pattern, handlers) +func (r *Router) Patch(pattern string, h ...Handler) *Route { + return r.Handle("PATCH", pattern, h) +} + +// Post is a shortcut for r.Handle("POST", pattern, handlers) +func (r *Router) Post(pattern string, h ...Handler) *Route { + return r.Handle("POST", pattern, h) +} + +// Put is a shortcut for r.Handle("PUT", pattern, handlers) +func (r *Router) Put(pattern string, h ...Handler) *Route { + return r.Handle("PUT", pattern, h) +} + +// Delete is a shortcut for r.Handle("DELETE", pattern, handlers) +func (r *Router) Delete(pattern string, h ...Handler) *Route { + return r.Handle("DELETE", pattern, h) +} + +// Options is a shortcut for r.Handle("OPTIONS", pattern, handlers) +func (r *Router) Options(pattern string, h ...Handler) *Route { + return r.Handle("OPTIONS", pattern, h) +} + +// Head is a shortcut for r.Handle("HEAD", pattern, handlers) +func (r *Router) Head(pattern string, h ...Handler) *Route { + return r.Handle("HEAD", pattern, h) +} + +// Any is a shortcut for r.Handle("*", pattern, handlers) +func (r *Router) Any(pattern string, h ...Handler) *Route { + return r.Handle("*", pattern, h) +} + +// Route is a shortcut for same handlers but different HTTP methods. +// +// Example: +// m.Route("/", "GET,POST", h) +func (r *Router) Route(pattern, methods string, h ...Handler) (route *Route) { + for _, m := range strings.Split(methods, ",") { + route = r.Handle(strings.TrimSpace(m), pattern, h) + } + return route +} + +// Combo returns a combo router. +func (r *Router) Combo(pattern string, h ...Handler) *ComboRouter { + return &ComboRouter{r, pattern, h, map[string]bool{}, nil} +} + +// Configurable http.HandlerFunc which is called when no matching route is +// found. If it is not set, http.NotFound is used. +// Be sure to set 404 response code in your handler. +func (r *Router) NotFound(handlers ...Handler) { + validateHandlers(handlers) + r.notFound = func(rw http.ResponseWriter, req *http.Request) { + c := r.m.createContext(rw, req) + c.handlers = append(r.m.handlers, handlers...) + c.run() + } +} + +// Configurable handler which is called when route handler returns +// error. If it is not set, default handler is used. +// Be sure to set 500 response code in your handler. +func (r *Router) InternalServerError(handlers ...Handler) { + validateHandlers(handlers) + r.internalServerError = func(c *Context, err error) { + c.index = 0 + c.handlers = handlers + c.Map(err) + c.run() + } +} + +func (r *Router) ServeHTTP(rw http.ResponseWriter, req *http.Request) { + if t, ok := r.routers[req.Method]; ok { + h, p, ok := t.Match(req.URL.Path) + if ok { + if splat, ok := p["*0"]; ok { + p["*"] = splat // Easy name. + } + h(rw, req, p) + return + } + } + + r.notFound(rw, req) +} + +// URLFor builds path part of URL by given pair values. +func (r *Router) URLFor(name string, pairs ...string) string { + leaf, ok := r.namedRoutes[name] + if !ok { + panic("route with given name does not exists: " + name) + } + return leaf.URLPath(pairs...) +} + +// ComboRouter represents a combo router. +type ComboRouter struct { + router *Router + pattern string + handlers []Handler + methods map[string]bool // Registered methods. + + lastRoute *Route +} + +func (cr *ComboRouter) checkMethod(name string) { + if cr.methods[name] { + panic("method '" + name + "' has already been registered") + } + cr.methods[name] = true +} + +func (cr *ComboRouter) route(fn func(string, ...Handler) *Route, method string, h ...Handler) *ComboRouter { + cr.checkMethod(method) + cr.lastRoute = fn(cr.pattern, append(cr.handlers, h...)...) + return cr +} + +func (cr *ComboRouter) Get(h ...Handler) *ComboRouter { + return cr.route(cr.router.Get, "GET", h...) +} + +func (cr *ComboRouter) Patch(h ...Handler) *ComboRouter { + return cr.route(cr.router.Patch, "PATCH", h...) +} + +func (cr *ComboRouter) Post(h ...Handler) *ComboRouter { + return cr.route(cr.router.Post, "POST", h...) +} + +func (cr *ComboRouter) Put(h ...Handler) *ComboRouter { + return cr.route(cr.router.Put, "PUT", h...) +} + +func (cr *ComboRouter) Delete(h ...Handler) *ComboRouter { + return cr.route(cr.router.Delete, "DELETE", h...) +} + +func (cr *ComboRouter) Options(h ...Handler) *ComboRouter { + return cr.route(cr.router.Options, "OPTIONS", h...) +} + +func (cr *ComboRouter) Head(h ...Handler) *ComboRouter { + return cr.route(cr.router.Head, "HEAD", h...) +} + +// Name sets name of ComboRouter route. +func (cr *ComboRouter) Name(name string) { + if cr.lastRoute == nil { + panic("no corresponding route to be named") + } + cr.lastRoute.Name(name) +} diff --git a/vendor/github.com/Unknwon/macaron/static.go b/vendor/github.com/Unknwon/macaron/static.go new file mode 100644 index 000000000000..69d523d62037 --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/static.go @@ -0,0 +1,205 @@ +// Copyright 2013 Martini Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "log" + "net/http" + "path" + "path/filepath" + "strings" + "sync" +) + +// StaticOptions is a struct for specifying configuration options for the macaron.Static middleware. +type StaticOptions struct { + // Prefix is the optional prefix used to serve the static directory content + Prefix string + // SkipLogging will disable [Static] log messages when a static file is served. + SkipLogging bool + // IndexFile defines which file to serve as index if it exists. + IndexFile string + // Expires defines which user-defined function to use for producing a HTTP Expires Header + // https://developers.google.com/speed/docs/insights/LeverageBrowserCaching + Expires func() string + // FileSystem is the interface for supporting any implmentation of file system. + FileSystem http.FileSystem +} + +// FIXME: to be deleted. +type staticMap struct { + lock sync.RWMutex + data map[string]*http.Dir +} + +func (sm *staticMap) Set(dir *http.Dir) { + sm.lock.Lock() + defer sm.lock.Unlock() + + sm.data[string(*dir)] = dir +} + +func (sm *staticMap) Get(name string) *http.Dir { + sm.lock.RLock() + defer sm.lock.RUnlock() + + return sm.data[name] +} + +func (sm *staticMap) Delete(name string) { + sm.lock.Lock() + defer sm.lock.Unlock() + + delete(sm.data, name) +} + +var statics = staticMap{sync.RWMutex{}, map[string]*http.Dir{}} + +// staticFileSystem implements http.FileSystem interface. +type staticFileSystem struct { + dir *http.Dir +} + +func newStaticFileSystem(directory string) staticFileSystem { + if !filepath.IsAbs(directory) { + directory = filepath.Join(Root, directory) + } + dir := http.Dir(directory) + statics.Set(&dir) + return staticFileSystem{&dir} +} + +func (fs staticFileSystem) Open(name string) (http.File, error) { + return fs.dir.Open(name) +} + +func prepareStaticOption(dir string, opt StaticOptions) StaticOptions { + // Defaults + if len(opt.IndexFile) == 0 { + opt.IndexFile = "index.html" + } + // Normalize the prefix if provided + if opt.Prefix != "" { + // Ensure we have a leading '/' + if opt.Prefix[0] != '/' { + opt.Prefix = "/" + opt.Prefix + } + // Remove any trailing '/' + opt.Prefix = strings.TrimRight(opt.Prefix, "/") + } + if opt.FileSystem == nil { + opt.FileSystem = newStaticFileSystem(dir) + } + return opt +} + +func prepareStaticOptions(dir string, options []StaticOptions) StaticOptions { + var opt StaticOptions + if len(options) > 0 { + opt = options[0] + } + return prepareStaticOption(dir, opt) +} + +func staticHandler(ctx *Context, log *log.Logger, opt StaticOptions) bool { + if ctx.Req.Method != "GET" && ctx.Req.Method != "HEAD" { + return false + } + + file := ctx.Req.URL.Path + // if we have a prefix, filter requests by stripping the prefix + if opt.Prefix != "" { + if !strings.HasPrefix(file, opt.Prefix) { + return false + } + file = file[len(opt.Prefix):] + if file != "" && file[0] != '/' { + return false + } + } + + f, err := opt.FileSystem.Open(file) + if err != nil { + return false + } + defer f.Close() + + fi, err := f.Stat() + if err != nil { + return true // File exists but fail to open. + } + + // Try to serve index file + if fi.IsDir() { + // Redirect if missing trailing slash. + if !strings.HasSuffix(ctx.Req.URL.Path, "/") { + http.Redirect(ctx.Resp, ctx.Req.Request, ctx.Req.URL.Path+"/", http.StatusFound) + return true + } + + file = path.Join(file, opt.IndexFile) + f, err = opt.FileSystem.Open(file) + if err != nil { + return false // Discard error. + } + defer f.Close() + + fi, err = f.Stat() + if err != nil || fi.IsDir() { + return true + } + } + + if !opt.SkipLogging { + log.Println("[Static] Serving " + file) + } + + // Add an Expires header to the static content + if opt.Expires != nil { + ctx.Resp.Header().Set("Expires", opt.Expires()) + } + + http.ServeContent(ctx.Resp, ctx.Req.Request, file, fi.ModTime(), f) + return true +} + +// Static returns a middleware handler that serves static files in the given directory. +func Static(directory string, staticOpt ...StaticOptions) Handler { + opt := prepareStaticOptions(directory, staticOpt) + + return func(ctx *Context, log *log.Logger) { + staticHandler(ctx, log, opt) + } +} + +// Statics registers multiple static middleware handlers all at once. +func Statics(opt StaticOptions, dirs ...string) Handler { + if len(dirs) == 0 { + panic("no static directory is given") + } + opts := make([]StaticOptions, len(dirs)) + for i := range dirs { + opts[i] = prepareStaticOption(dirs[i], opt) + } + + return func(ctx *Context, log *log.Logger) { + for i := range opts { + if staticHandler(ctx, log, opts[i]) { + return + } + } + } +} diff --git a/vendor/github.com/Unknwon/macaron/tree.go b/vendor/github.com/Unknwon/macaron/tree.go new file mode 100644 index 000000000000..82b21d22eafb --- /dev/null +++ b/vendor/github.com/Unknwon/macaron/tree.go @@ -0,0 +1,379 @@ +// Copyright 2015 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package macaron + +import ( + "regexp" + "strings" + + "github.com/Unknwon/com" +) + +type patternType int8 + +const ( + _PATTERN_STATIC patternType = iota // /home + _PATTERN_REGEXP // /:id([0-9]+) + _PATTERN_PATH_EXT // /*.* + _PATTERN_HOLDER // /:user + _PATTERN_MATCH_ALL // /* +) + +// Leaf represents a leaf route information. +type Leaf struct { + parent *Tree + + typ patternType + pattern string + rawPattern string // Contains wildcard instead of regexp + wildcards []string + reg *regexp.Regexp + optional bool + + handle Handle +} + +var wildcardPattern = regexp.MustCompile(`:[a-zA-Z0-9]+`) + +func isSpecialRegexp(pattern, regStr string, pos []int) bool { + return len(pattern) >= pos[1]+len(regStr) && pattern[pos[1]:pos[1]+len(regStr)] == regStr +} + +// getNextWildcard tries to find next wildcard and update pattern with corresponding regexp. +func getNextWildcard(pattern string) (wildcard, _ string) { + pos := wildcardPattern.FindStringIndex(pattern) + if pos == nil { + return "", pattern + } + wildcard = pattern[pos[0]:pos[1]] + + // Reach last character or no regexp is given. + if len(pattern) == pos[1] { + return wildcard, strings.Replace(pattern, wildcard, `(.+)`, 1) + } else if pattern[pos[1]] != '(' { + switch { + case isSpecialRegexp(pattern, ":int", pos): + pattern = strings.Replace(pattern, ":int", "([0-9]+)", 1) + case isSpecialRegexp(pattern, ":string", pos): + pattern = strings.Replace(pattern, ":string", "([\\w]+)", 1) + default: + return wildcard, strings.Replace(pattern, wildcard, `(.+)`, 1) + } + } + + // Cut out placeholder directly. + return wildcard, pattern[:pos[0]] + pattern[pos[1]:] +} + +func getWildcards(pattern string) (string, []string) { + wildcards := make([]string, 0, 2) + + // Keep getting next wildcard until nothing is left. + var wildcard string + for { + wildcard, pattern = getNextWildcard(pattern) + if len(wildcard) > 0 { + wildcards = append(wildcards, wildcard) + } else { + break + } + } + + return pattern, wildcards +} + +// getRawPattern removes all regexp but keeps wildcards for building URL path. +func getRawPattern(rawPattern string) string { + rawPattern = strings.Replace(rawPattern, ":int", "", -1) + rawPattern = strings.Replace(rawPattern, ":string", "", -1) + + for { + startIdx := strings.Index(rawPattern, "(") + if startIdx == -1 { + break + } + + closeIdx := strings.Index(rawPattern, ")") + if closeIdx > -1 { + rawPattern = rawPattern[:startIdx] + rawPattern[closeIdx+1:] + } + } + return rawPattern +} + +func checkPattern(pattern string) (typ patternType, rawPattern string, wildcards []string, reg *regexp.Regexp) { + pattern = strings.TrimLeft(pattern, "?") + rawPattern = getRawPattern(pattern) + + if pattern == "*" { + typ = _PATTERN_MATCH_ALL + } else if pattern == "*.*" { + typ = _PATTERN_PATH_EXT + } else if strings.Contains(pattern, ":") { + typ = _PATTERN_REGEXP + pattern, wildcards = getWildcards(pattern) + if pattern == "(.+)" { + typ = _PATTERN_HOLDER + } else { + reg = regexp.MustCompile(pattern) + } + } + return typ, rawPattern, wildcards, reg +} + +func NewLeaf(parent *Tree, pattern string, handle Handle) *Leaf { + typ, rawPattern, wildcards, reg := checkPattern(pattern) + optional := false + if len(pattern) > 0 && pattern[0] == '?' { + optional = true + } + return &Leaf{parent, typ, pattern, rawPattern, wildcards, reg, optional, handle} +} + +// URLPath build path part of URL by given pair values. +func (l *Leaf) URLPath(pairs ...string) string { + if len(pairs)%2 != 0 { + panic("number of pairs does not match") + } + + urlPath := l.rawPattern + parent := l.parent + for parent != nil { + urlPath = parent.rawPattern + "/" + urlPath + parent = parent.parent + } + for i := 0; i < len(pairs); i += 2 { + if len(pairs[i]) == 0 { + panic("pair value cannot be empty: " + com.ToStr(i)) + } else if pairs[i][0] != ':' && pairs[i] != "*" && pairs[i] != "*.*" { + pairs[i] = ":" + pairs[i] + } + urlPath = strings.Replace(urlPath, pairs[i], pairs[i+1], 1) + } + return urlPath +} + +// Tree represents a router tree in Macaron. +type Tree struct { + parent *Tree + + typ patternType + pattern string + rawPattern string + wildcards []string + reg *regexp.Regexp + + subtrees []*Tree + leaves []*Leaf +} + +func NewSubtree(parent *Tree, pattern string) *Tree { + typ, rawPattern, wildcards, reg := checkPattern(pattern) + return &Tree{parent, typ, pattern, rawPattern, wildcards, reg, make([]*Tree, 0, 5), make([]*Leaf, 0, 5)} +} + +func NewTree() *Tree { + return NewSubtree(nil, "") +} + +func (t *Tree) addLeaf(pattern string, handle Handle) *Leaf { + for i := 0; i < len(t.leaves); i++ { + if t.leaves[i].pattern == pattern { + return t.leaves[i] + } + } + + leaf := NewLeaf(t, pattern, handle) + + // Add exact same leaf to grandparent/parent level without optional. + if leaf.optional { + parent := leaf.parent + if parent.parent != nil { + parent.parent.addLeaf(parent.pattern, handle) + } else { + parent.addLeaf("", handle) // Root tree can add as empty pattern. + } + } + + i := 0 + for ; i < len(t.leaves); i++ { + if leaf.typ < t.leaves[i].typ { + break + } + } + + if i == len(t.leaves) { + t.leaves = append(t.leaves, leaf) + } else { + t.leaves = append(t.leaves[:i], append([]*Leaf{leaf}, t.leaves[i:]...)...) + } + return leaf +} + +func (t *Tree) addSubtree(segment, pattern string, handle Handle) *Leaf { + for i := 0; i < len(t.subtrees); i++ { + if t.subtrees[i].pattern == segment { + return t.subtrees[i].addNextSegment(pattern, handle) + } + } + + subtree := NewSubtree(t, segment) + i := 0 + for ; i < len(t.subtrees); i++ { + if subtree.typ < t.subtrees[i].typ { + break + } + } + + if i == len(t.subtrees) { + t.subtrees = append(t.subtrees, subtree) + } else { + t.subtrees = append(t.subtrees[:i], append([]*Tree{subtree}, t.subtrees[i:]...)...) + } + return subtree.addNextSegment(pattern, handle) +} + +func (t *Tree) addNextSegment(pattern string, handle Handle) *Leaf { + pattern = strings.TrimPrefix(pattern, "/") + + i := strings.Index(pattern, "/") + if i == -1 { + return t.addLeaf(pattern, handle) + } + return t.addSubtree(pattern[:i], pattern[i+1:], handle) +} + +func (t *Tree) Add(pattern string, handle Handle) *Leaf { + pattern = strings.TrimSuffix(pattern, "/") + return t.addNextSegment(pattern, handle) +} + +func (t *Tree) matchLeaf(globLevel int, url string, params Params) (Handle, bool) { + for i := 0; i < len(t.leaves); i++ { + switch t.leaves[i].typ { + case _PATTERN_STATIC: + if t.leaves[i].pattern == url { + return t.leaves[i].handle, true + } + case _PATTERN_REGEXP: + results := t.leaves[i].reg.FindStringSubmatch(url) + // Number of results and wildcasrd should be exact same. + if len(results)-1 != len(t.leaves[i].wildcards) { + break + } + + for j := 0; j < len(t.leaves[i].wildcards); j++ { + params[t.leaves[i].wildcards[j]] = results[j+1] + } + return t.leaves[i].handle, true + case _PATTERN_PATH_EXT: + j := strings.LastIndex(url, ".") + if j > -1 { + params[":path"] = url[:j] + params[":ext"] = url[j+1:] + } else { + params[":path"] = url + } + return t.leaves[i].handle, true + case _PATTERN_HOLDER: + params[t.leaves[i].wildcards[0]] = url + return t.leaves[i].handle, true + case _PATTERN_MATCH_ALL: + params["*"] = url + params["*"+com.ToStr(globLevel)] = url + return t.leaves[i].handle, true + } + } + return nil, false +} + +func (t *Tree) matchSubtree(globLevel int, segment, url string, params Params) (Handle, bool) { + for i := 0; i < len(t.subtrees); i++ { + switch t.subtrees[i].typ { + case _PATTERN_STATIC: + if t.subtrees[i].pattern == segment { + if handle, ok := t.subtrees[i].matchNextSegment(globLevel, url, params); ok { + return handle, true + } + } + case _PATTERN_REGEXP: + results := t.subtrees[i].reg.FindStringSubmatch(segment) + if len(results)-1 != len(t.subtrees[i].wildcards) { + break + } + + for j := 0; j < len(t.subtrees[i].wildcards); j++ { + params[t.subtrees[i].wildcards[j]] = results[j+1] + } + if handle, ok := t.subtrees[i].matchNextSegment(globLevel, url, params); ok { + return handle, true + } + case _PATTERN_HOLDER: + if handle, ok := t.subtrees[i].matchNextSegment(globLevel+1, url, params); ok { + params[t.subtrees[i].wildcards[0]] = segment + return handle, true + } + case _PATTERN_MATCH_ALL: + if handle, ok := t.subtrees[i].matchNextSegment(globLevel+1, url, params); ok { + params["*"+com.ToStr(globLevel)] = segment + return handle, true + } + } + } + + if len(t.leaves) > 0 { + leaf := t.leaves[len(t.leaves)-1] + if leaf.typ == _PATTERN_PATH_EXT { + url = segment + "/" + url + j := strings.LastIndex(url, ".") + if j > -1 { + params[":path"] = url[:j] + params[":ext"] = url[j+1:] + } else { + params[":path"] = url + } + return leaf.handle, true + } else if leaf.typ == _PATTERN_MATCH_ALL { + params["*"] = segment + "/" + url + params["*"+com.ToStr(globLevel)] = segment + "/" + url + return leaf.handle, true + } + } + return nil, false +} + +func (t *Tree) matchNextSegment(globLevel int, url string, params Params) (Handle, bool) { + i := strings.Index(url, "/") + if i == -1 { + return t.matchLeaf(globLevel, url, params) + } + return t.matchSubtree(globLevel, url[:i], url[i+1:], params) +} + +func (t *Tree) Match(url string) (Handle, Params, bool) { + url = strings.TrimPrefix(url, "/") + url = strings.TrimSuffix(url, "/") + params := make(Params) + handle, ok := t.matchNextSegment(0, url, params) + return handle, params, ok +} + +// MatchTest returns true if given URL is matched by given pattern. +func MatchTest(pattern, url string) bool { + t := NewTree() + t.Add(pattern, nil) + _, _, ok := t.Match(url) + return ok +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/.gitignore b/vendor/github.com/apparentlymart/go-grafana-api/.gitignore new file mode 100644 index 000000000000..daf913b1b347 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/apparentlymart/go-grafana-api/LICENSE b/vendor/github.com/apparentlymart/go-grafana-api/LICENSE new file mode 100644 index 000000000000..8f71f43fee3f --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/vendor/github.com/apparentlymart/go-grafana-api/README.md b/vendor/github.com/apparentlymart/go-grafana-api/README.md new file mode 100644 index 000000000000..859bd902a8f8 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/README.md @@ -0,0 +1,2 @@ +# grafana-api-golang-client +Grafana HTTP API Client for Go diff --git a/vendor/github.com/apparentlymart/go-grafana-api/admin.go b/vendor/github.com/apparentlymart/go-grafana-api/admin.go new file mode 100644 index 000000000000..3da1ae922934 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/admin.go @@ -0,0 +1,46 @@ +package gapi + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io/ioutil" + + "github.com/grafana/grafana/pkg/api/dtos" +) + +func (c *Client) CreateUserForm(settings dtos.AdminCreateUserForm) error { + data, err := json.Marshal(settings) + req, err := c.newRequest("POST", "/api/admin/users", bytes.NewBuffer(data)) + if err != nil { + return err + } + resp, err := c.Do(req) + if err != nil { + return err + } + data, err = ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + return err +} + +func (c *Client) DeleteUser(id int64) error { + req, err := c.newRequest("DELETE", fmt.Sprintf("/api/admin/users/%d", id), nil) + if err != nil { + return err + } + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + return err +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/client.go b/vendor/github.com/apparentlymart/go-grafana-api/client.go new file mode 100644 index 000000000000..1e4846cc47eb --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/client.go @@ -0,0 +1,56 @@ +package gapi + +import ( + "bytes" + "fmt" + "io" + "net/http" + "net/url" + "strings" +) + +type Client struct { + key string + baseURL url.URL + *http.Client +} + +//New creates a new grafana client +//auth can be in user:pass format, or it can be an api key +func New(auth, baseURL string) (*Client, error) { + u, err := url.Parse(baseURL) + if err != nil { + return nil, err + } + key := "" + if strings.Contains(auth, ":") { + split := strings.Split(auth, ":") + u.User = url.UserPassword(split[0], split[1]) + } else { + key = fmt.Sprintf("Bearer %s", auth) + } + return &Client{ + key, + *u, + &http.Client{}, + }, nil +} + +func (c *Client) newRequest(method, path string, body io.Reader) (*http.Request, error) { + url := c.baseURL + url.Path = path + req, err := http.NewRequest(method, url.String(), body) + if err != nil { + return req, err + } + if c.key != "" { + req.Header.Add("Authorization", c.key) + } + if body == nil { + fmt.Println("request to ", url.String(), "with no body data") + } else { + fmt.Println("request to ", url.String(), "with body data", body.(*bytes.Buffer).String()) + } + req.Header.Add("Content-Type", "application/json") + return req, err +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/dashboard.go b/vendor/github.com/apparentlymart/go-grafana-api/dashboard.go new file mode 100644 index 000000000000..ca45dc9a0726 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/dashboard.go @@ -0,0 +1,100 @@ +package gapi + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io/ioutil" +) + +type DashboardMeta struct { + IsStarred bool `json:"isStarred"` + Slug string `json:"slug"` +} + +type DashboardSaveResponse struct { + Slug string `json:"slug"` + Status string `json:"status"` + Version int64 `json:"version"` +} + +type Dashboard struct { + Meta DashboardMeta `json:"meta"` + Model map[string]interface{} `json:"dashboard"` +} + +func (c *Client) SaveDashboard(model map[string]interface{}, overwrite bool) (*DashboardSaveResponse, error) { + wrapper := map[string]interface{}{ + "dashboard": model, + "overwrite": overwrite, + } + data, err := json.Marshal(wrapper) + if err != nil { + return nil, err + } + req, err := c.newRequest("POST", "/api/dashboards/db", bytes.NewBuffer(data)) + if err != nil { + return nil, err + } + + resp, err := c.Do(req) + if err != nil { + return nil, err + } + if resp.StatusCode != 200 { + return nil, errors.New(resp.Status) + } + + data, err = ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + result := &DashboardSaveResponse{} + err = json.Unmarshal(data, &result) + return result, err +} + +func (c *Client) Dashboard(slug string) (*Dashboard, error) { + path := fmt.Sprintf("/api/dashboards/db/%s", slug) + req, err := c.newRequest("GET", path, nil) + if err != nil { + return nil, err + } + + resp, err := c.Do(req) + if err != nil { + return nil, err + } + if resp.StatusCode != 200 { + return nil, errors.New(resp.Status) + } + + data, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + result := &Dashboard{} + err = json.Unmarshal(data, &result) + return result, err +} + +func (c *Client) DeleteDashboard(slug string) error { + path := fmt.Sprintf("/api/dashboards/db/%s", slug) + req, err := c.newRequest("DELETE", path, nil) + if err != nil { + return err + } + + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + + return nil +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/datasource.go b/vendor/github.com/apparentlymart/go-grafana-api/datasource.go new file mode 100644 index 000000000000..bb92698171d6 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/datasource.go @@ -0,0 +1,123 @@ +package gapi + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io/ioutil" +) + +type DataSource struct { + Id int64 `json:"id,omitempty"` + Name string `json:"name"` + Type string `json:"type"` + URL string `json:"url"` + Access string `json:"access"` + + Database string `json:"database,omitempty"` + User string `json:"user,omitempty"` + Password string `json:"password,omitempty"` + + OrgId int64 `json:"orgId,omitempty"` + IsDefault bool `json:"isDefault"` + + BasicAuth bool `json:"basicAuth"` + BasicAuthUser string `json:"basicAuthUser,omitempty"` + BasicAuthPassword string `json:"basicAuthPassword,omitempty"` +} + +func (c *Client) NewDataSource(s *DataSource) (int64, error) { + data, err := json.Marshal(s) + if err != nil { + return 0, err + } + req, err := c.newRequest("POST", "/api/datasources", bytes.NewBuffer(data)) + if err != nil { + return 0, err + } + + resp, err := c.Do(req) + if err != nil { + return 0, err + } + if resp.StatusCode != 200 { + return 0, errors.New(resp.Status) + } + + data, err = ioutil.ReadAll(resp.Body) + if err != nil { + return 0, err + } + + result := struct { + Id int64 `json:"id"` + }{} + err = json.Unmarshal(data, &result) + return result.Id, err +} + +func (c *Client) UpdateDataSource(s *DataSource) error { + path := fmt.Sprintf("/api/datasources/%d", s.Id) + data, err := json.Marshal(s) + if err != nil { + return err + } + req, err := c.newRequest("PUT", path, bytes.NewBuffer(data)) + if err != nil { + return err + } + + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + + return nil +} + +func (c *Client) DataSource(id int64) (*DataSource, error) { + path := fmt.Sprintf("/api/datasources/%d", id) + req, err := c.newRequest("GET", path, nil) + if err != nil { + return nil, err + } + + resp, err := c.Do(req) + if err != nil { + return nil, err + } + if resp.StatusCode != 200 { + return nil, errors.New(resp.Status) + } + + data, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + result := &DataSource{} + err = json.Unmarshal(data, &result) + return result, err +} + +func (c *Client) DeleteDataSource(id int64) error { + path := fmt.Sprintf("/api/datasources/%d", id) + req, err := c.newRequest("DELETE", path, nil) + if err != nil { + return err + } + + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + + return nil +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/orgs.go b/vendor/github.com/apparentlymart/go-grafana-api/orgs.go new file mode 100644 index 000000000000..5a38732c7093 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/orgs.go @@ -0,0 +1,70 @@ +package gapi + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io/ioutil" +) + +type Org struct { + Id int64 + Name string +} + +func (c *Client) Orgs() ([]Org, error) { + orgs := make([]Org, 0) + + req, err := c.newRequest("GET", "/api/orgs/", nil) + if err != nil { + return orgs, err + } + resp, err := c.Do(req) + if err != nil { + return orgs, err + } + if resp.StatusCode != 200 { + return orgs, errors.New(resp.Status) + } + data, err := ioutil.ReadAll(resp.Body) + if err != nil { + return orgs, err + } + err = json.Unmarshal(data, &orgs) + return orgs, err +} + +func (c *Client) NewOrg(name string) error { + settings := map[string]string{ + "name": name, + } + data, err := json.Marshal(settings) + req, err := c.newRequest("POST", "/api/orgs", bytes.NewBuffer(data)) + if err != nil { + return err + } + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + return err +} + +func (c *Client) DeleteOrg(id int64) error { + req, err := c.newRequest("DELETE", fmt.Sprintf("/api/orgs/%d", id), nil) + if err != nil { + return err + } + resp, err := c.Do(req) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return errors.New(resp.Status) + } + return err +} diff --git a/vendor/github.com/apparentlymart/go-grafana-api/user.go b/vendor/github.com/apparentlymart/go-grafana-api/user.go new file mode 100644 index 000000000000..13a6e6ff4fb4 --- /dev/null +++ b/vendor/github.com/apparentlymart/go-grafana-api/user.go @@ -0,0 +1,39 @@ +package gapi + +import ( + "encoding/json" + "errors" + "io/ioutil" +) + +type User struct { + Id int64 + Email string + Name string + Login string + IsAdmin bool +} + +func (c *Client) Users() ([]User, error) { + users := make([]User, 0) + req, err := c.newRequest("GET", "/api/users", nil) + if err != nil { + return users, err + } + resp, err := c.Do(req) + if err != nil { + return users, err + } + if resp.StatusCode != 200 { + return users, errors.New(resp.Status) + } + data, err := ioutil.ReadAll(resp.Body) + if err != nil { + return users, err + } + err = json.Unmarshal(data, &users) + if err != nil { + return users, err + } + return users, err +} diff --git a/vendor/github.com/gosimple/slug/.gitignore b/vendor/github.com/gosimple/slug/.gitignore new file mode 100644 index 000000000000..25d190e2bc7f --- /dev/null +++ b/vendor/github.com/gosimple/slug/.gitignore @@ -0,0 +1,2 @@ +_* +cover*.out diff --git a/vendor/github.com/gosimple/slug/README.md b/vendor/github.com/gosimple/slug/README.md new file mode 100644 index 000000000000..04179f21f7b0 --- /dev/null +++ b/vendor/github.com/gosimple/slug/README.md @@ -0,0 +1,54 @@ +slug +==== + +Package `slug` generate slug from unicode string, URL-friendly slugify with +multiple languages support. + +[![GoDoc](https://godoc.org/github.com/gosimple/slug?status.png)](https://godoc.org/github.com/gosimple/slug) +[![Build Status](https://drone.io/github.com/gosimple/slug/status.png)](https://drone.io/github.com/gosimple/slug/latest) + +[Documentation online](http://godoc.org/github.com/gosimple/slug) + +## Example + + package main + + import( + "github.com/gosimple/slug" + "fmt" + ) + + func main () { + text := slug.Make("Hellö Wörld хелло ворлд") + fmt.Println(text) // Will print hello-world-khello-vorld + + someText := slug.Make("影師") + fmt.Println(someText) // Will print: ying-shi + + enText := slug.MakeLang("This & that", "en") + fmt.Println(enText) // Will print 'this-and-that' + + deText := slug.MakeLang("Diese & Dass", "de") + fmt.Println(deText) // Will print 'diese-und-dass' + + slug.CustomSub = map[string]string{ + "water": "sand", + } + textSub := slug.Make("water is hot") + fmt.Println(textSub) // Will print 'sand-is-hot' + } + +### Requests or bugs? + + +## Installation + + go get -u github.com/gosimple/slug + +## License + +The source files are distributed under the +[Mozilla Public License, version 2.0](http://mozilla.org/MPL/2.0/), +unless otherwise noted. +Please read the [FAQ](http://www.mozilla.org/MPL/2.0/FAQ.html) +if you have further questions regarding the license. diff --git a/vendor/github.com/gosimple/slug/doc.go b/vendor/github.com/gosimple/slug/doc.go new file mode 100644 index 000000000000..ffbe2c223f5e --- /dev/null +++ b/vendor/github.com/gosimple/slug/doc.go @@ -0,0 +1,43 @@ +// Copyright 2013 by Dobrosław Żybort. All rights reserved. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +/* +Package slug generate slug from unicode string, URL-friendly slugify with +multiple languages support. + +Example: + + package main + + import( + "github.com/gosimple/slug" + "fmt" + ) + + func main () { + text := slug.Make("Hellö Wörld хелло ворлд") + fmt.Println(text) // Will print hello-world-khello-vorld + + someText := slug.Make("影師") + fmt.Println(someText) // Will print: ying-shi + + enText := slug.MakeLang("This & that", "en") + fmt.Println(enText) // Will print 'this-and-that' + + deText := slug.MakeLang("Diese & Dass", "de") + fmt.Println(deText) // Will print 'diese-und-dass' + + slug.CustomSub = map[string]string{ + "water": "sand", + } + textSub := slug.Make("water is hot") + fmt.Println(textSub) // Will print 'sand-is-hot' + } + +Requests or bugs? + +https://github.com/gosimple/slug/issues +*/ +package slug diff --git a/vendor/github.com/gosimple/slug/languages_substitution.go b/vendor/github.com/gosimple/slug/languages_substitution.go new file mode 100644 index 000000000000..dd5eb6779106 --- /dev/null +++ b/vendor/github.com/gosimple/slug/languages_substitution.go @@ -0,0 +1,45 @@ +// Copyright 2013 by Dobrosław Żybort. All rights reserved. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package slug + +func init() { + // Merge language subs with the default one + for _, sub := range []*map[rune]string{&deSub, &enSub, &plSub, &esSub} { + for key, value := range defaultSub { + (*sub)[key] = value + } + } +} + +var defaultSub = map[rune]string{ + '"': "", + '\'': "", + '’': "", + '‒': "-", // figure dash + '–': "-", // en dash + '—': "-", // em dash + '―': "-", // horizontal bar +} + +var deSub = map[rune]string{ + '&': "und", + '@': "an", +} + +var enSub = map[rune]string{ + '&': "and", + '@': "at", +} + +var plSub = map[rune]string{ + '&': "i", + '@': "na", +} + +var esSub = map[rune]string{ + '&': "y", + '@': "en", +} diff --git a/vendor/github.com/gosimple/slug/slug.go b/vendor/github.com/gosimple/slug/slug.go new file mode 100644 index 000000000000..b4d6b9f9876c --- /dev/null +++ b/vendor/github.com/gosimple/slug/slug.go @@ -0,0 +1,126 @@ +// Copyright 2013 by Dobrosław Żybort. All rights reserved. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package slug + +import ( + "bytes" + "regexp" + "strings" + + "github.com/rainycape/unidecode" +) + +var ( + // Custom substitution map + CustomSub map[string]string + // Custom rune substitution map + CustomRuneSub map[rune]string + + // Maximum slug length. It's smart so it will cat slug after full word. + // By default slugs aren't shortened. + // If MaxLength is smaller than length of the first word, then returned + // slug will contain only substring from the first word truncated + // after MaxLength. + MaxLength int + + regexpNonAuthorizedChars = regexp.MustCompile("[^a-z0-9-_]") + regexpMultipleDashes = regexp.MustCompile("-+") +) + +//============================================================================= + +// Make returns slug generated from provided string. Will use "en" as language +// substitution. +func Make(s string) (slug string) { + return MakeLang(s, "en") +} + +// MakeLang returns slug generated from provided string and will use provided +// language for chars substitution. +func MakeLang(s string, lang string) (slug string) { + slug = strings.TrimSpace(s) + + // Custom substitutions + // Always substitute runes first + slug = SubstituteRune(slug, CustomRuneSub) + slug = Substitute(slug, CustomSub) + + // Process string with selected substitution language + switch lang { + case "de": + slug = SubstituteRune(slug, deSub) + case "en": + slug = SubstituteRune(slug, enSub) + case "pl": + slug = SubstituteRune(slug, plSub) + case "es": + slug = SubstituteRune(slug, esSub) + default: // fallback to "en" if lang not found + slug = SubstituteRune(slug, enSub) + } + + // Process all non ASCII symbols + slug = unidecode.Unidecode(slug) + + slug = strings.ToLower(slug) + + // Process all remaining symbols + slug = regexpNonAuthorizedChars.ReplaceAllString(slug, "-") + slug = regexpMultipleDashes.ReplaceAllString(slug, "-") + slug = strings.Trim(slug, "-") + + if MaxLength > 0 { + slug = smartTruncate(slug) + } + + return slug +} + +// Substitute returns string with superseded all substrings from +// provided substitution map. +func Substitute(s string, sub map[string]string) (buf string) { + buf = s + for key, val := range sub { + buf = strings.Replace(buf, key, val, -1) + } + return +} + +// SubstituteRune substitutes string chars with provided rune +// substitution map. +func SubstituteRune(s string, sub map[rune]string) string { + var buf bytes.Buffer + for _, c := range s { + if d, ok := sub[c]; ok { + buf.WriteString(d) + } else { + buf.WriteRune(c) + } + } + return buf.String() +} + +func smartTruncate(text string) string { + if len(text) < MaxLength { + return text + } + + var truncated string + words := strings.SplitAfter(text, "-") + // If MaxLength is smaller than length of the first word return word + // truncated after MaxLength. + if len(words[0]) > MaxLength { + return words[0][:MaxLength] + } + for _, word := range words { + if len(truncated)+len(word)-1 <= MaxLength { + truncated = truncated + word + } else { + break + } + } + return strings.Trim(truncated, "-") +} diff --git a/vendor/github.com/grafana/grafana/LICENSE.md b/vendor/github.com/grafana/grafana/LICENSE.md new file mode 100644 index 000000000000..db0c6ac0cb6e --- /dev/null +++ b/vendor/github.com/grafana/grafana/LICENSE.md @@ -0,0 +1,14 @@ +Copyright 2014-2015 Torkel Ödegaard, Raintank Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); you +may not use this file except in compliance with the License. You may +obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the License for the specific language governing +permissions and limitations under the License. + diff --git a/vendor/github.com/grafana/grafana/NOTICE.md b/vendor/github.com/grafana/grafana/NOTICE.md new file mode 100644 index 000000000000..171332f00d4d --- /dev/null +++ b/vendor/github.com/grafana/grafana/NOTICE.md @@ -0,0 +1,16 @@ + +This software is based on Kibana: +======================================== +Copyright 2012-2013 Elasticsearch BV + +Licensed under the Apache License, Version 2.0 (the "License"); you +may not use this file except in compliance with the License. You may +obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the License for the specific language governing +permissions and limitations under the License. diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/apikey.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/apikey.go new file mode 100644 index 000000000000..5b929917f1fb --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/apikey.go @@ -0,0 +1,6 @@ +package dtos + +type NewApiKeyResult struct { + Name string `json:"name"` + Key string `json:"key"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/index.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/index.go new file mode 100644 index 000000000000..1314d2d94ac1 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/index.go @@ -0,0 +1,25 @@ +package dtos + +type IndexViewData struct { + User *CurrentUser + Settings map[string]interface{} + AppUrl string + AppSubUrl string + GoogleAnalyticsId string + GoogleTagManagerId string + + PluginCss []*PluginCss + PluginJs []string + MainNavLinks []*NavLink +} + +type PluginCss struct { + Light string `json:"light"` + Dark string `json:"dark"` +} + +type NavLink struct { + Text string `json:"text"` + Icon string `json:"icon"` + Href string `json:"href"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/invite.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/invite.go new file mode 100644 index 000000000000..3f002a8b157e --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/invite.go @@ -0,0 +1,26 @@ +package dtos + +import m "github.com/grafana/grafana/pkg/models" + +type AddInviteForm struct { + LoginOrEmail string `json:"loginOrEmail" binding:"Required"` + Name string `json:"name"` + Role m.RoleType `json:"role" binding:"Required"` + SkipEmails bool `json:"skipEmails"` +} + +type InviteInfo struct { + Email string `json:"email"` + Name string `json:"name"` + Username string `json:"username"` + InvitedBy string `json:"invitedBy"` +} + +type CompleteInviteForm struct { + InviteCode string `json:"inviteCode"` + Email string `json:"email" binding:"Required"` + Name string `json:"name"` + Username string `json:"username"` + Password string `json:"password"` + ConfirmPassword string `json:"confirmPassword"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/models.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/models.go new file mode 100644 index 000000000000..a7ff9353fa94 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/models.go @@ -0,0 +1,91 @@ +package dtos + +import ( + "crypto/md5" + "fmt" + "strings" + "time" + + m "github.com/grafana/grafana/pkg/models" +) + +type LoginCommand struct { + User string `json:"user" binding:"Required"` + Password string `json:"password" binding:"Required"` + Remember bool `json:"remember"` +} + +type CurrentUser struct { + IsSignedIn bool `json:"isSignedIn"` + Id int64 `json:"id"` + Login string `json:"login"` + Email string `json:"email"` + Name string `json:"name"` + LightTheme bool `json:"lightTheme"` + OrgId int64 `json:"orgId"` + OrgName string `json:"orgName"` + OrgRole m.RoleType `json:"orgRole"` + IsGrafanaAdmin bool `json:"isGrafanaAdmin"` + GravatarUrl string `json:"gravatarUrl"` +} + +type DashboardMeta struct { + IsStarred bool `json:"isStarred,omitempty"` + IsHome bool `json:"isHome,omitempty"` + IsSnapshot bool `json:"isSnapshot,omitempty"` + Type string `json:"type,omitempty"` + CanSave bool `json:"canSave"` + CanEdit bool `json:"canEdit"` + CanStar bool `json:"canStar"` + Slug string `json:"slug"` + Expires time.Time `json:"expires"` + Created time.Time `json:"created"` + Updated time.Time `json:"updated"` + UpdatedBy string `json:"updatedBy"` +} + +type DashboardFullWithMeta struct { + Meta DashboardMeta `json:"meta"` + Dashboard map[string]interface{} `json:"dashboard"` +} + +type DataSource struct { + Id int64 `json:"id"` + OrgId int64 `json:"orgId"` + Name string `json:"name"` + Type string `json:"type"` + Access m.DsAccess `json:"access"` + Url string `json:"url"` + Password string `json:"password"` + User string `json:"user"` + Database string `json:"database"` + BasicAuth bool `json:"basicAuth"` + BasicAuthUser string `json:"basicAuthUser"` + BasicAuthPassword string `json:"basicAuthPassword"` + WithCredentials bool `json:"withCredentials"` + IsDefault bool `json:"isDefault"` + JsonData map[string]interface{} `json:"jsonData"` +} + +type MetricQueryResultDto struct { + Data []MetricQueryResultDataDto `json:"data"` +} + +type MetricQueryResultDataDto struct { + Target string `json:"target"` + DataPoints [][2]float64 `json:"datapoints"` +} + +type UserStars struct { + DashboardIds map[string]bool `json:"dashboardIds"` +} + +func GetGravatarUrl(text string) string { + if text == "" { + return "" + } + + hasher := md5.New() + hasher.Write([]byte(strings.ToLower(text))) + return fmt.Sprintf("https://secure.gravatar.com/avatar/%x?s=90&default=mm", hasher.Sum(nil)) +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/org.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/org.go new file mode 100644 index 000000000000..b4bb26ca78a3 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/org.go @@ -0,0 +1,14 @@ +package dtos + +type UpdateOrgForm struct { + Name string `json:"name" binding:"Required"` +} + +type UpdateOrgAddressForm struct { + Address1 string `json:"address1"` + Address2 string `json:"address2"` + City string `json:"city"` + ZipCode string `json:"zipcode"` + State string `json:"state"` + Country string `json:"country"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/plugin_bundle.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/plugin_bundle.go new file mode 100644 index 000000000000..f043da399044 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/plugin_bundle.go @@ -0,0 +1,8 @@ +package dtos + +type PluginBundle struct { + Type string `json:"type"` + Enabled bool `json:"enabled"` + Module string `json:"module"` + JsonData map[string]interface{} `json:"jsonData"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/api/dtos/user.go b/vendor/github.com/grafana/grafana/pkg/api/dtos/user.go new file mode 100644 index 000000000000..dbbe24a159bf --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/api/dtos/user.go @@ -0,0 +1,52 @@ +package dtos + +type SignUpForm struct { + Email string `json:"email" binding:"Required"` +} + +type SignUpStep2Form struct { + Email string `json:"email"` + Name string `json:"name"` + Username string `json:"username"` + Password string `json:"password"` + Code string `json:"code"` + OrgName string `json:"orgName"` +} + +type AdminCreateUserForm struct { + Email string `json:"email"` + Login string `json:"login"` + Name string `json:"name"` + Password string `json:"password" binding:"Required"` +} + +type AdminUpdateUserForm struct { + Email string `json:"email"` + Login string `json:"login"` + Name string `json:"name"` +} + +type AdminUpdateUserPasswordForm struct { + Password string `json:"password" binding:"Required"` +} + +type AdminUpdateUserPermissionsForm struct { + IsGrafanaAdmin bool `json:"IsGrafanaAdmin"` +} + +type AdminUserListItem struct { + Email string `json:"email"` + Name string `json:"name"` + Login string `json:"login"` + IsGrafanaAdmin bool `json:"isGrafanaAdmin"` +} + +type SendResetPasswordEmailForm struct { + UserOrEmail string `json:"userOrEmail" binding:"Required"` +} + +type ResetUserPasswordForm struct { + Code string `json:"code"` + NewPassword string `json:"newPassword"` + ConfirmPassword string `json:"confirmPassword"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/log/console.go b/vendor/github.com/grafana/grafana/pkg/log/console.go new file mode 100644 index 000000000000..c290cdf45f40 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/log/console.go @@ -0,0 +1,157 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package log + +import ( + "encoding/json" + "fmt" + "log" + "os" + "runtime" +) + +type Brush func(string) string + +func NewBrush(color string) Brush { + pre := "\033[" + reset := "\033[0m" + return func(text string) string { + return pre + color + "m" + text + reset + } +} + +var ( + Red = NewBrush("1;31") + Purple = NewBrush("1;35") + Yellow = NewBrush("1;33") + Green = NewBrush("1;32") + Blue = NewBrush("1;34") + Cyan = NewBrush("1;36") + + colors = []Brush{ + Cyan, // Trace cyan + Blue, // Debug blue + Green, // Info green + Yellow, // Warn yellow + Red, // Error red + Purple, // Critical purple + Red, // Fatal red + } + consoleWriter = &ConsoleWriter{lg: log.New(os.Stdout, "", 0), + Level: TRACE} +) + +// ConsoleWriter implements LoggerInterface and writes messages to terminal. +type ConsoleWriter struct { + lg *log.Logger + Level int `json:"level"` + Formatting bool `json:"formatting"` +} + +// create ConsoleWriter returning as LoggerInterface. +func NewConsole() LoggerInterface { + return &ConsoleWriter{ + lg: log.New(os.Stderr, "", log.Ldate|log.Ltime), + Level: TRACE, + Formatting: true, + } +} + +func (cw *ConsoleWriter) Init(config string) error { + return json.Unmarshal([]byte(config), cw) +} + +func (cw *ConsoleWriter) WriteMsg(msg string, skip, level int) error { + if cw.Level > level { + return nil + } + if runtime.GOOS == "windows" || !cw.Formatting { + cw.lg.Println(msg) + } else { + cw.lg.Println(colors[level](msg)) + } + return nil +} + +func (_ *ConsoleWriter) Flush() { + +} + +func (_ *ConsoleWriter) Destroy() { +} + +func printConsole(level int, msg string) { + consoleWriter.WriteMsg(msg, 0, level) +} + +func printfConsole(level int, format string, v ...interface{}) { + consoleWriter.WriteMsg(fmt.Sprintf(format, v...), 0, level) +} + +// ConsoleTrace prints to stdout using TRACE colors +func ConsoleTrace(s string) { + printConsole(TRACE, s) +} + +// ConsoleTracef prints a formatted string to stdout using TRACE colors +func ConsoleTracef(format string, v ...interface{}) { + printfConsole(TRACE, format, v...) +} + +// ConsoleDebug prints to stdout using DEBUG colors +func ConsoleDebug(s string) { + printConsole(DEBUG, s) +} + +// ConsoleDebugf prints a formatted string to stdout using DEBUG colors +func ConsoleDebugf(format string, v ...interface{}) { + printfConsole(DEBUG, format, v...) +} + +// ConsoleInfo prints to stdout using INFO colors +func ConsoleInfo(s string) { + printConsole(INFO, s) +} + +// ConsoleInfof prints a formatted string to stdout using INFO colors +func ConsoleInfof(format string, v ...interface{}) { + printfConsole(INFO, format, v...) +} + +// ConsoleWarn prints to stdout using WARN colors +func ConsoleWarn(s string) { + printConsole(WARN, s) +} + +// ConsoleWarnf prints a formatted string to stdout using WARN colors +func ConsoleWarnf(format string, v ...interface{}) { + printfConsole(WARN, format, v...) +} + +// ConsoleError prints to stdout using ERROR colors +func ConsoleError(s string) { + printConsole(ERROR, s) +} + +// ConsoleErrorf prints a formatted string to stdout using ERROR colors +func ConsoleErrorf(format string, v ...interface{}) { + printfConsole(ERROR, format, v...) +} + +// ConsoleFatal prints to stdout using FATAL colors +func ConsoleFatal(s string) { + printConsole(FATAL, s) + os.Exit(1) +} + +// ConsoleFatalf prints a formatted string to stdout using FATAL colors +func ConsoleFatalf(format string, v ...interface{}) { + printfConsole(FATAL, format, v...) + os.Exit(1) +} + +func init() { + Register("console", NewConsole) +} diff --git a/vendor/github.com/grafana/grafana/pkg/log/file.go b/vendor/github.com/grafana/grafana/pkg/log/file.go new file mode 100644 index 000000000000..8f005d9723b9 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/log/file.go @@ -0,0 +1,243 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package log + +import ( + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "log" + "os" + "path/filepath" + "strings" + "sync" + "time" +) + +// FileLogWriter implements LoggerInterface. +// It writes messages by lines limit, file size limit, or time frequency. +type FileLogWriter struct { + *log.Logger + mw *MuxWriter + // The opened file + Filename string `json:"filename"` + + Maxlines int `json:"maxlines"` + maxlines_curlines int + + // Rotate at size + Maxsize int `json:"maxsize"` + maxsize_cursize int + + // Rotate daily + Daily bool `json:"daily"` + Maxdays int64 `json:"maxdays"` + daily_opendate int + + Rotate bool `json:"rotate"` + + startLock sync.Mutex // Only one log can write to the file + + Level int `json:"level"` +} + +// an *os.File writer with locker. +type MuxWriter struct { + sync.Mutex + fd *os.File +} + +// write to os.File. +func (l *MuxWriter) Write(b []byte) (int, error) { + l.Lock() + defer l.Unlock() + return l.fd.Write(b) +} + +// set os.File in writer. +func (l *MuxWriter) SetFd(fd *os.File) { + if l.fd != nil { + l.fd.Close() + } + l.fd = fd +} + +// create a FileLogWriter returning as LoggerInterface. +func NewFileWriter() LoggerInterface { + w := &FileLogWriter{ + Filename: "", + Maxlines: 1000000, + Maxsize: 1 << 28, //256 MB + Daily: true, + Maxdays: 7, + Rotate: true, + Level: TRACE, + } + // use MuxWriter instead direct use os.File for lock write when rotate + w.mw = new(MuxWriter) + // set MuxWriter as Logger's io.Writer + w.Logger = log.New(w.mw, "", log.Ldate|log.Ltime) + return w +} + +// Init file logger with json config. +// config like: +// { +// "filename":"log/gogs.log", +// "maxlines":10000, +// "maxsize":1<<30, +// "daily":true, +// "maxdays":15, +// "rotate":true +// } +func (w *FileLogWriter) Init(config string) error { + if err := json.Unmarshal([]byte(config), w); err != nil { + return err + } + if len(w.Filename) == 0 { + return errors.New("config must have filename") + } + return w.StartLogger() +} + +// start file logger. create log file and set to locker-inside file writer. +func (w *FileLogWriter) StartLogger() error { + fd, err := w.createLogFile() + if err != nil { + return err + } + w.mw.SetFd(fd) + if err = w.initFd(); err != nil { + return err + } + return nil +} + +func (w *FileLogWriter) docheck(size int) { + w.startLock.Lock() + defer w.startLock.Unlock() + if w.Rotate && ((w.Maxlines > 0 && w.maxlines_curlines >= w.Maxlines) || + (w.Maxsize > 0 && w.maxsize_cursize >= w.Maxsize) || + (w.Daily && time.Now().Day() != w.daily_opendate)) { + if err := w.DoRotate(); err != nil { + fmt.Fprintf(os.Stderr, "FileLogWriter(%q): %s\n", w.Filename, err) + return + } + } + w.maxlines_curlines++ + w.maxsize_cursize += size +} + +// write logger message into file. +func (w *FileLogWriter) WriteMsg(msg string, skip, level int) error { + if level < w.Level { + return nil + } + n := 24 + len(msg) // 24 stand for the length "2013/06/23 21:00:22 [T] " + w.docheck(n) + w.Logger.Println(msg) + return nil +} + +func (w *FileLogWriter) createLogFile() (*os.File, error) { + // Open the log file + return os.OpenFile(w.Filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644) +} + +func (w *FileLogWriter) initFd() error { + fd := w.mw.fd + finfo, err := fd.Stat() + if err != nil { + return fmt.Errorf("get stat: %s\n", err) + } + w.maxsize_cursize = int(finfo.Size()) + w.daily_opendate = time.Now().Day() + if finfo.Size() > 0 { + content, err := ioutil.ReadFile(w.Filename) + if err != nil { + return err + } + w.maxlines_curlines = len(strings.Split(string(content), "\n")) + } else { + w.maxlines_curlines = 0 + } + return nil +} + +// DoRotate means it need to write file in new file. +// new file name like xx.log.2013-01-01.2 +func (w *FileLogWriter) DoRotate() error { + _, err := os.Lstat(w.Filename) + if err == nil { // file exists + // Find the next available number + num := 1 + fname := "" + for ; err == nil && num <= 999; num++ { + fname = w.Filename + fmt.Sprintf(".%s.%03d", time.Now().Format("2006-01-02"), num) + _, err = os.Lstat(fname) + } + // return error if the last file checked still existed + if err == nil { + return fmt.Errorf("rotate: cannot find free log number to rename %s\n", w.Filename) + } + + // block Logger's io.Writer + w.mw.Lock() + defer w.mw.Unlock() + + fd := w.mw.fd + fd.Close() + + // close fd before rename + // Rename the file to its newfound home + if err = os.Rename(w.Filename, fname); err != nil { + return fmt.Errorf("Rotate: %s\n", err) + } + + // re-start logger + if err = w.StartLogger(); err != nil { + return fmt.Errorf("Rotate StartLogger: %s\n", err) + } + + go w.deleteOldLog() + } + + return nil +} + +func (w *FileLogWriter) deleteOldLog() { + dir := filepath.Dir(w.Filename) + filepath.Walk(dir, func(path string, info os.FileInfo, err error) (returnErr error) { + defer func() { + if r := recover(); r != nil { + returnErr = fmt.Errorf("Unable to delete old log '%s', error: %+v", path, r) + } + }() + + if !info.IsDir() && info.ModTime().Unix() < (time.Now().Unix()-60*60*24*w.Maxdays) { + if strings.HasPrefix(filepath.Base(path), filepath.Base(w.Filename)) { + os.Remove(path) + } + } + return returnErr + }) +} + +// destroy file logger, close file writer. +func (w *FileLogWriter) Destroy() { + w.mw.fd.Close() +} + +// flush file logger. +// there are no buffering messages in file logger in memory. +// flush file means sync file from disk. +func (w *FileLogWriter) Flush() { + w.mw.fd.Sync() +} + +func init() { + Register("file", NewFileWriter) +} diff --git a/vendor/github.com/grafana/grafana/pkg/log/log.go b/vendor/github.com/grafana/grafana/pkg/log/log.go new file mode 100644 index 000000000000..a7d26ce7913e --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/log/log.go @@ -0,0 +1,303 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package log + +import ( + "fmt" + "os" + "path/filepath" + "runtime" + "strings" + "sync" +) + +var ( + loggers []*Logger +) + +func NewLogger(bufLen int64, mode, config string) { + logger := newLogger(bufLen) + + isExist := false + for _, l := range loggers { + if l.adapter == mode { + isExist = true + l = logger + } + } + if !isExist { + loggers = append(loggers, logger) + } + if err := logger.SetLogger(mode, config); err != nil { + Fatal(1, "Fail to set logger(%s): %v", mode, err) + } +} + +func Trace(format string, v ...interface{}) { + for _, logger := range loggers { + logger.Trace(format, v...) + } +} + +func Debug(format string, v ...interface{}) { + for _, logger := range loggers { + logger.Debug(format, v...) + } +} + +func Info(format string, v ...interface{}) { + for _, logger := range loggers { + logger.Info(format, v...) + } +} + +func Warn(format string, v ...interface{}) { + for _, logger := range loggers { + logger.Warn(format, v...) + } +} + +func Error(skip int, format string, v ...interface{}) { + for _, logger := range loggers { + logger.Error(skip, format, v...) + } +} + +func Critical(skip int, format string, v ...interface{}) { + for _, logger := range loggers { + logger.Critical(skip, format, v...) + } +} + +func Fatal(skip int, format string, v ...interface{}) { + Error(skip, format, v...) + for _, l := range loggers { + l.Close() + } + os.Exit(1) +} + +func Close() { + for _, l := range loggers { + l.Close() + // delete the logger. + l = nil + } + // clear the loggers slice. + loggers = nil +} + +// .___ __ _____ +// | | _____/ |_ ____________/ ____\____ ____ ____ +// | |/ \ __\/ __ \_ __ \ __\\__ \ _/ ___\/ __ \ +// | | | \ | \ ___/| | \/| | / __ \\ \__\ ___/ +// |___|___| /__| \___ >__| |__| (____ /\___ >___ > +// \/ \/ \/ \/ \/ + +type LogLevel int + +const ( + TRACE = iota + DEBUG + INFO + WARN + ERROR + CRITICAL + FATAL +) + +// LoggerInterface represents behaviors of a logger provider. +type LoggerInterface interface { + Init(config string) error + WriteMsg(msg string, skip, level int) error + Destroy() + Flush() +} + +type loggerType func() LoggerInterface + +var adapters = make(map[string]loggerType) + +// Register registers given logger provider to adapters. +func Register(name string, log loggerType) { + if log == nil { + panic("log: register provider is nil") + } + if _, dup := adapters[name]; dup { + panic("log: register called twice for provider \"" + name + "\"") + } + adapters[name] = log +} + +type logMsg struct { + skip, level int + msg string +} + +// Logger is default logger in beego application. +// it can contain several providers and log message into all providers. +type Logger struct { + adapter string + lock sync.Mutex + level int + msg chan *logMsg + outputs map[string]LoggerInterface + quit chan bool +} + +// newLogger initializes and returns a new logger. +func newLogger(buffer int64) *Logger { + l := &Logger{ + msg: make(chan *logMsg, buffer), + outputs: make(map[string]LoggerInterface), + quit: make(chan bool), + } + go l.StartLogger() + return l +} + +// SetLogger sets new logger instanse with given logger adapter and config. +func (l *Logger) SetLogger(adapter string, config string) error { + l.lock.Lock() + defer l.lock.Unlock() + if log, ok := adapters[adapter]; ok { + lg := log() + if err := lg.Init(config); err != nil { + return err + } + l.outputs[adapter] = lg + l.adapter = adapter + } else { + panic("log: unknown adapter \"" + adapter + "\" (forgotten register?)") + } + return nil +} + +// DelLogger removes a logger adapter instance. +func (l *Logger) DelLogger(adapter string) error { + l.lock.Lock() + defer l.lock.Unlock() + if lg, ok := l.outputs[adapter]; ok { + lg.Destroy() + delete(l.outputs, adapter) + } else { + panic("log: unknown adapter \"" + adapter + "\" (forgotten register?)") + } + return nil +} + +func (l *Logger) writerMsg(skip, level int, msg string) error { + if l.level > level { + return nil + } + lm := &logMsg{ + skip: skip, + level: level, + } + + // Only error information needs locate position for debugging. + if lm.level >= ERROR { + pc, file, line, ok := runtime.Caller(skip) + if ok { + // Get caller function name. + fn := runtime.FuncForPC(pc) + var fnName string + if fn == nil { + fnName = "?()" + } else { + fnName = strings.TrimLeft(filepath.Ext(fn.Name()), ".") + "()" + } + + lm.msg = fmt.Sprintf("[%s:%d %s] %s", filepath.Base(file), line, fnName, msg) + } else { + lm.msg = msg + } + } else { + lm.msg = msg + } + l.msg <- lm + return nil +} + +// StartLogger starts logger chan reading. +func (l *Logger) StartLogger() { + for { + select { + case bm := <-l.msg: + for _, l := range l.outputs { + if err := l.WriteMsg(bm.msg, bm.skip, bm.level); err != nil { + fmt.Println("ERROR, unable to WriteMsg:", err) + } + } + case <-l.quit: + return + } + } +} + +// Flush flushs all chan data. +func (l *Logger) Flush() { + for _, l := range l.outputs { + l.Flush() + } +} + +// Close closes logger, flush all chan data and destroy all adapter instances. +func (l *Logger) Close() { + l.quit <- true + for { + if len(l.msg) > 0 { + bm := <-l.msg + for _, l := range l.outputs { + if err := l.WriteMsg(bm.msg, bm.skip, bm.level); err != nil { + fmt.Println("ERROR, unable to WriteMsg:", err) + } + } + } else { + break + } + } + for _, l := range l.outputs { + l.Flush() + l.Destroy() + } +} + +func (l *Logger) Trace(format string, v ...interface{}) { + msg := fmt.Sprintf("[T] "+format, v...) + l.writerMsg(0, TRACE, msg) +} + +func (l *Logger) Debug(format string, v ...interface{}) { + msg := fmt.Sprintf("[D] "+format, v...) + l.writerMsg(0, DEBUG, msg) +} + +func (l *Logger) Info(format string, v ...interface{}) { + msg := fmt.Sprintf("[I] "+format, v...) + l.writerMsg(0, INFO, msg) +} + +func (l *Logger) Warn(format string, v ...interface{}) { + msg := fmt.Sprintf("[W] "+format, v...) + l.writerMsg(0, WARN, msg) +} + +func (l *Logger) Error(skip int, format string, v ...interface{}) { + msg := fmt.Sprintf("[E] "+format, v...) + l.writerMsg(skip, ERROR, msg) +} + +func (l *Logger) Critical(skip int, format string, v ...interface{}) { + msg := fmt.Sprintf("[C] "+format, v...) + l.writerMsg(skip, CRITICAL, msg) +} + +func (l *Logger) Fatal(skip int, format string, v ...interface{}) { + msg := fmt.Sprintf("[F] "+format, v...) + l.writerMsg(skip, FATAL, msg) + l.Close() + os.Exit(1) +} diff --git a/vendor/github.com/grafana/grafana/pkg/log/syslog.go b/vendor/github.com/grafana/grafana/pkg/log/syslog.go new file mode 100644 index 000000000000..bc1780056e87 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/log/syslog.go @@ -0,0 +1,95 @@ +//+build !windows,!nacl,!plan9 + +package log + +import ( + "encoding/json" + "errors" + "log/syslog" +) + +type SyslogWriter struct { + syslog *syslog.Writer + Network string `json:"network"` + Address string `json:"address"` + Facility string `json:"facility"` + Tag string `json:"tag"` +} + +func NewSyslog() LoggerInterface { + return new(SyslogWriter) +} + +func (sw *SyslogWriter) Init(config string) error { + if err := json.Unmarshal([]byte(config), sw); err != nil { + return err + } + + prio, err := parseFacility(sw.Facility) + if err != nil { + return err + } + + w, err := syslog.Dial(sw.Network, sw.Address, prio, sw.Tag) + if err != nil { + return err + } + + sw.syslog = w + return nil +} + +func (sw *SyslogWriter) WriteMsg(msg string, skip, level int) error { + var err error + + switch level { + case TRACE, DEBUG: + err = sw.syslog.Debug(msg) + case INFO: + err = sw.syslog.Info(msg) + case WARN: + err = sw.syslog.Warning(msg) + case ERROR: + err = sw.syslog.Err(msg) + case CRITICAL: + err = sw.syslog.Crit(msg) + case FATAL: + err = sw.syslog.Alert(msg) + default: + err = errors.New("invalid syslog level") + } + + return err +} + +func (sw *SyslogWriter) Destroy() { + sw.syslog.Close() +} + +func (sw *SyslogWriter) Flush() {} + +var facilities = map[string]syslog.Priority{ + "user": syslog.LOG_USER, + "daemon": syslog.LOG_DAEMON, + "local0": syslog.LOG_LOCAL0, + "local1": syslog.LOG_LOCAL1, + "local2": syslog.LOG_LOCAL2, + "local3": syslog.LOG_LOCAL3, + "local4": syslog.LOG_LOCAL4, + "local5": syslog.LOG_LOCAL5, + "local6": syslog.LOG_LOCAL6, + "local7": syslog.LOG_LOCAL7, +} + +func parseFacility(facility string) (syslog.Priority, error) { + prio, ok := facilities[facility] + if !ok { + return syslog.LOG_LOCAL0, errors.New("invalid syslog facility") + } + + return prio, nil +} + +func init() { + Register("syslog", NewSyslog) +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/address.go b/vendor/github.com/grafana/grafana/pkg/models/address.go new file mode 100644 index 000000000000..0cf8aaf7ddb9 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/address.go @@ -0,0 +1,10 @@ +package models + +type Address struct { + Address1 string `json:"address1"` + Address2 string `json:"address2"` + City string `json:"city"` + ZipCode string `json:"zipCode"` + State string `json:"state"` + Country string `json:"country"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/apikey.go b/vendor/github.com/grafana/grafana/pkg/models/apikey.go new file mode 100644 index 000000000000..a666cb30c614 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/apikey.go @@ -0,0 +1,70 @@ +package models + +import ( + "errors" + "time" +) + +var ErrInvalidApiKey = errors.New("Invalid API Key") + +type ApiKey struct { + Id int64 + OrgId int64 + Name string + Key string + Role RoleType + Created time.Time + Updated time.Time +} + +// --------------------- +// COMMANDS +type AddApiKeyCommand struct { + Name string `json:"name" binding:"Required"` + Role RoleType `json:"role" binding:"Required"` + OrgId int64 `json:"-"` + Key string `json:"-"` + + Result *ApiKey `json:"-"` +} + +type UpdateApiKeyCommand struct { + Id int64 `json:"id"` + Name string `json:"name"` + Role RoleType `json:"role"` + + OrgId int64 `json:"-"` +} + +type DeleteApiKeyCommand struct { + Id int64 `json:"id"` + OrgId int64 `json:"-"` +} + +// ---------------------- +// QUERIES + +type GetApiKeysQuery struct { + OrgId int64 + Result []*ApiKey +} + +type GetApiKeyByNameQuery struct { + KeyName string + OrgId int64 + Result *ApiKey +} + +type GetApiKeyByIdQuery struct { + ApiKeyId int64 + Result *ApiKey +} + +// ------------------------ +// DTO & Projections + +type ApiKeyDTO struct { + Id int64 `json:"id"` + Name string `json:"name"` + Role RoleType `json:"role"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/dashboard_snapshot.go b/vendor/github.com/grafana/grafana/pkg/models/dashboard_snapshot.go new file mode 100644 index 000000000000..e8f37e2a236c --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/dashboard_snapshot.go @@ -0,0 +1,49 @@ +package models + +import "time" + +// DashboardSnapshot model +type DashboardSnapshot struct { + Id int64 + Name string + Key string + DeleteKey string + OrgId int64 + UserId int64 + External bool + ExternalUrl string + + Expires time.Time + Created time.Time + Updated time.Time + + Dashboard map[string]interface{} +} + +// ----------------- +// COMMANDS + +type CreateDashboardSnapshotCommand struct { + Dashboard map[string]interface{} `json:"dashboard" binding:"Required"` + Expires int64 `json:"expires"` + + // these are passed when storing an external snapshot ref + External bool `json:"external"` + Key string `json:"key"` + DeleteKey string `json:"deleteKey"` + + OrgId int64 `json:"-"` + UserId int64 `json:"-"` + + Result *DashboardSnapshot +} + +type DeleteDashboardSnapshotCommand struct { + DeleteKey string `json:"-"` +} + +type GetDashboardSnapshotQuery struct { + Key string + + Result *DashboardSnapshot +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/dashboards.go b/vendor/github.com/grafana/grafana/pkg/models/dashboards.go new file mode 100644 index 000000000000..ddf5dd244f5d --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/dashboards.go @@ -0,0 +1,148 @@ +package models + +import ( + "errors" + "strings" + "time" + + "github.com/gosimple/slug" +) + +// Typed errors +var ( + ErrDashboardNotFound = errors.New("Dashboard not found") + ErrDashboardSnapshotNotFound = errors.New("Dashboard snapshot not found") + ErrDashboardWithSameNameExists = errors.New("A dashboard with the same name already exists") + ErrDashboardVersionMismatch = errors.New("The dashboard has been changed by someone else") +) + +var ( + DashTypeJson = "file" + DashTypeDB = "db" + DashTypeScript = "script" + DashTypeSnapshot = "snapshot" +) + +// Dashboard model +type Dashboard struct { + Id int64 + Slug string + OrgId int64 + Version int + + Created time.Time + Updated time.Time + + UpdatedBy int64 + + Title string + Data map[string]interface{} +} + +// NewDashboard creates a new dashboard +func NewDashboard(title string) *Dashboard { + dash := &Dashboard{} + dash.Data = make(map[string]interface{}) + dash.Data["title"] = title + dash.Title = title + dash.Created = time.Now() + dash.Updated = time.Now() + dash.UpdateSlug() + return dash +} + +// GetTags turns the tags in data json into go string array +func (dash *Dashboard) GetTags() []string { + jsonTags := dash.Data["tags"] + if jsonTags == nil || jsonTags == "" { + return []string{} + } + + arr := jsonTags.([]interface{}) + b := make([]string, len(arr)) + for i := range arr { + b[i] = arr[i].(string) + } + return b +} + +func NewDashboardFromJson(data map[string]interface{}) *Dashboard { + dash := &Dashboard{} + dash.Data = data + dash.Title = dash.Data["title"].(string) + dash.UpdateSlug() + + if dash.Data["id"] != nil { + dash.Id = int64(dash.Data["id"].(float64)) + + if dash.Data["version"] != nil { + dash.Version = int(dash.Data["version"].(float64)) + dash.Updated = time.Now() + } + } else { + dash.Data["version"] = 0 + dash.Created = time.Now() + dash.Updated = time.Now() + } + + return dash +} + +// GetDashboardModel turns the command into the savable model +func (cmd *SaveDashboardCommand) GetDashboardModel() *Dashboard { + dash := NewDashboardFromJson(cmd.Dashboard) + dash.OrgId = cmd.OrgId + dash.UpdatedBy = cmd.UpdatedBy + dash.UpdateSlug() + return dash +} + +// GetString a +func (dash *Dashboard) GetString(prop string) string { + return dash.Data[prop].(string) +} + +// UpdateSlug updates the slug +func (dash *Dashboard) UpdateSlug() { + title := strings.ToLower(dash.Data["title"].(string)) + dash.Slug = slug.Make(title) +} + +// +// COMMANDS +// + +type SaveDashboardCommand struct { + Dashboard map[string]interface{} `json:"dashboard" binding:"Required"` + Overwrite bool `json:"overwrite"` + OrgId int64 `json:"-"` + UpdatedBy int64 `json:"-"` + + Result *Dashboard +} + +type DeleteDashboardCommand struct { + Slug string + OrgId int64 +} + +// +// QUERIES +// + +type GetDashboardQuery struct { + Slug string + OrgId int64 + + Result *Dashboard +} + +type DashboardTagCloudItem struct { + Term string `json:"term"` + Count int `json:"count"` +} + +type GetDashboardTagsQuery struct { + OrgId int64 + Result []*DashboardTagCloudItem +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/datasource.go b/vendor/github.com/grafana/grafana/pkg/models/datasource.go new file mode 100644 index 000000000000..88abd03c3191 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/datasource.go @@ -0,0 +1,144 @@ +package models + +import ( + "errors" + "time" +) + +const ( + DS_GRAPHITE = "graphite" + DS_INFLUXDB = "influxdb" + DS_INFLUXDB_08 = "influxdb_08" + DS_ES = "elasticsearch" + DS_OPENTSDB = "opentsdb" + DS_CLOUDWATCH = "cloudwatch" + DS_KAIROSDB = "kairosdb" + DS_PROMETHEUS = "prometheus" + DS_ACCESS_DIRECT = "direct" + DS_ACCESS_PROXY = "proxy" +) + +// Typed errors +var ( + ErrDataSourceNotFound = errors.New("Data source not found") +) + +type DsAccess string + +type DataSource struct { + Id int64 + OrgId int64 + Version int + + Name string + Type string + Access DsAccess + Url string + Password string + User string + Database string + BasicAuth bool + BasicAuthUser string + BasicAuthPassword string + WithCredentials bool + IsDefault bool + JsonData map[string]interface{} + + Created time.Time + Updated time.Time +} + +var knownDatasourcePlugins map[string]bool = map[string]bool{ + DS_ES: true, + DS_GRAPHITE: true, + DS_INFLUXDB: true, + DS_INFLUXDB_08: true, + DS_KAIROSDB: true, + DS_CLOUDWATCH: true, + DS_PROMETHEUS: true, + DS_OPENTSDB: true, + "opennms": true, + "druid": true, + "dalmatinerdb": true, + "gnocci": true, + "zabbix": true, +} + +func IsKnownDataSourcePlugin(dsType string) bool { + _, exists := knownDatasourcePlugins[dsType] + return exists +} + +// ---------------------- +// COMMANDS + +// Also acts as api DTO +type AddDataSourceCommand struct { + Name string `json:"name" binding:"Required"` + Type string `json:"type" binding:"Required"` + Access DsAccess `json:"access" binding:"Required"` + Url string `json:"url"` + Password string `json:"password"` + Database string `json:"database"` + User string `json:"user"` + BasicAuth bool `json:"basicAuth"` + BasicAuthUser string `json:"basicAuthUser"` + BasicAuthPassword string `json:"basicAuthPassword"` + WithCredentials bool `json:"withCredentials"` + IsDefault bool `json:"isDefault"` + JsonData map[string]interface{} `json:"jsonData"` + + OrgId int64 `json:"-"` + + Result *DataSource +} + +// Also acts as api DTO +type UpdateDataSourceCommand struct { + Name string `json:"name" binding:"Required"` + Type string `json:"type" binding:"Required"` + Access DsAccess `json:"access" binding:"Required"` + Url string `json:"url"` + Password string `json:"password"` + User string `json:"user"` + Database string `json:"database"` + BasicAuth bool `json:"basicAuth"` + BasicAuthUser string `json:"basicAuthUser"` + BasicAuthPassword string `json:"basicAuthPassword"` + WithCredentials bool `json:"withCredentials"` + IsDefault bool `json:"isDefault"` + JsonData map[string]interface{} `json:"jsonData"` + + OrgId int64 `json:"-"` + Id int64 `json:"-"` +} + +type DeleteDataSourceCommand struct { + Id int64 + OrgId int64 +} + +// --------------------- +// QUERIES + +type GetDataSourcesQuery struct { + OrgId int64 + Result []*DataSource +} + +type GetDataSourceByIdQuery struct { + Id int64 + OrgId int64 + Result DataSource +} + +type GetDataSourceByNameQuery struct { + Name string + OrgId int64 + Result DataSource +} + +// --------------------- +// EVENTS +type DataSourceCreatedEvent struct { +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/emails.go b/vendor/github.com/grafana/grafana/pkg/models/emails.go new file mode 100644 index 000000000000..74da180f7d84 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/emails.go @@ -0,0 +1,22 @@ +package models + +import "errors" + +var ErrInvalidEmailCode = errors.New("Invalid or expired email code") + +type SendEmailCommand struct { + To []string + Template string + Data map[string]interface{} + Massive bool + Info string +} + +type SendResetPasswordEmailCommand struct { + User *User +} + +type ValidateResetPasswordCodeQuery struct { + Code string + Result *User +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/home_dashboard.go b/vendor/github.com/grafana/grafana/pkg/models/home_dashboard.go new file mode 100644 index 000000000000..3428f1ad5e41 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/home_dashboard.go @@ -0,0 +1,14 @@ +package models + +import "time" + +type HomeDashboard struct { + Id int64 + UserId int64 + AccountId int64 + + Created time.Time + Updated time.Time + + Data map[string]interface{} +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/models.go b/vendor/github.com/grafana/grafana/pkg/models/models.go new file mode 100644 index 000000000000..189e594576b5 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/models.go @@ -0,0 +1,9 @@ +package models + +type OAuthType int + +const ( + GITHUB OAuthType = iota + 1 + GOOGLE + TWITTER +) diff --git a/vendor/github.com/grafana/grafana/pkg/models/org.go b/vendor/github.com/grafana/grafana/pkg/models/org.go new file mode 100644 index 000000000000..2a9fa8efa04a --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/org.go @@ -0,0 +1,89 @@ +package models + +import ( + "errors" + "time" +) + +// Typed errors +var ( + ErrOrgNotFound = errors.New("Organization not found") + ErrOrgNameTaken = errors.New("Organization name is taken") +) + +type Org struct { + Id int64 + Version int + Name string + + Address1 string + Address2 string + City string + ZipCode string + State string + Country string + + Created time.Time + Updated time.Time +} + +// --------------------- +// COMMANDS + +type CreateOrgCommand struct { + Name string `json:"name" binding:"Required"` + + // initial admin user for account + UserId int64 `json:"-"` + Result Org `json:"-"` +} + +type DeleteOrgCommand struct { + Id int64 +} + +type UpdateOrgCommand struct { + Name string + OrgId int64 +} + +type UpdateOrgAddressCommand struct { + OrgId int64 + Address +} + +type GetOrgByIdQuery struct { + Id int64 + Result *Org +} + +type GetOrgByNameQuery struct { + Name string + Result *Org +} + +type SearchOrgsQuery struct { + Query string + Name string + Limit int + Page int + + Result []*OrgDTO +} + +type OrgDTO struct { + Id int64 `json:"id"` + Name string `json:"name"` +} + +type OrgDetailsDTO struct { + Id int64 `json:"id"` + Name string `json:"name"` + Address Address `json:"address"` +} + +type UserOrgDTO struct { + OrgId int64 `json:"orgId"` + Name string `json:"name"` + Role RoleType `json:"role"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/org_user.go b/vendor/github.com/grafana/grafana/pkg/models/org_user.go new file mode 100644 index 000000000000..f456fa953737 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/org_user.go @@ -0,0 +1,78 @@ +package models + +import ( + "errors" + "time" +) + +// Typed errors +var ( + ErrInvalidRoleType = errors.New("Invalid role type") + ErrLastOrgAdmin = errors.New("Cannot remove last organization admin") + ErrOrgUserNotFound = errors.New("Cannot find the organization user") + ErrOrgUserAlreadyAdded = errors.New("User is already added to organization") +) + +type RoleType string + +const ( + ROLE_VIEWER RoleType = "Viewer" + ROLE_EDITOR RoleType = "Editor" + ROLE_READ_ONLY_EDITOR RoleType = "Read Only Editor" + ROLE_ADMIN RoleType = "Admin" +) + +func (r RoleType) IsValid() bool { + return r == ROLE_VIEWER || r == ROLE_ADMIN || r == ROLE_EDITOR || r == ROLE_READ_ONLY_EDITOR +} + +type OrgUser struct { + Id int64 + OrgId int64 + UserId int64 + Role RoleType + Created time.Time + Updated time.Time +} + +// --------------------- +// COMMANDS + +type RemoveOrgUserCommand struct { + UserId int64 + OrgId int64 +} + +type AddOrgUserCommand struct { + LoginOrEmail string `json:"loginOrEmail" binding:"Required"` + Role RoleType `json:"role" binding:"Required"` + + OrgId int64 `json:"-"` + UserId int64 `json:"-"` +} + +type UpdateOrgUserCommand struct { + Role RoleType `json:"role" binding:"Required"` + + OrgId int64 `json:"-"` + UserId int64 `json:"-"` +} + +// ---------------------- +// QUERIES + +type GetOrgUsersQuery struct { + OrgId int64 + Result []*OrgUserDTO +} + +// ---------------------- +// Projections and DTOs + +type OrgUserDTO struct { + OrgId int64 `json:"orgId"` + UserId int64 `json:"userId"` + Email string `json:"email"` + Login string `json:"login"` + Role string `json:"role"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/plugin_bundle.go b/vendor/github.com/grafana/grafana/pkg/models/plugin_bundle.go new file mode 100644 index 000000000000..5f4e508b9b2e --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/plugin_bundle.go @@ -0,0 +1,34 @@ +package models + +import "time" + +type PluginBundle struct { + Id int64 + Type string + OrgId int64 + Enabled bool + JsonData map[string]interface{} + + Created time.Time + Updated time.Time +} + +// ---------------------- +// COMMANDS + +// Also acts as api DTO +type UpdatePluginBundleCmd struct { + Type string `json:"type" binding:"Required"` + Enabled bool `json:"enabled"` + JsonData map[string]interface{} `json:"jsonData"` + + Id int64 `json:"-"` + OrgId int64 `json:"-"` +} + +// --------------------- +// QUERIES +type GetPluginBundlesQuery struct { + OrgId int64 + Result []*PluginBundle +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/quotas.go b/vendor/github.com/grafana/grafana/pkg/models/quotas.go new file mode 100644 index 000000000000..85159d830d1d --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/quotas.go @@ -0,0 +1,130 @@ +package models + +import ( + "errors" + "github.com/grafana/grafana/pkg/setting" + "time" +) + +var ErrInvalidQuotaTarget = errors.New("Invalid quota target") + +type Quota struct { + Id int64 + OrgId int64 + UserId int64 + Target string + Limit int64 + Created time.Time + Updated time.Time +} + +type QuotaScope struct { + Name string + Target string + DefaultLimit int64 +} + +type OrgQuotaDTO struct { + OrgId int64 `json:"org_id"` + Target string `json:"target"` + Limit int64 `json:"limit"` + Used int64 `json:"used"` +} + +type UserQuotaDTO struct { + UserId int64 `json:"user_id"` + Target string `json:"target"` + Limit int64 `json:"limit"` + Used int64 `json:"used"` +} + +type GlobalQuotaDTO struct { + Target string `json:"target"` + Limit int64 `json:"limit"` + Used int64 `json:"used"` +} + +type GetOrgQuotaByTargetQuery struct { + Target string + OrgId int64 + Default int64 + Result *OrgQuotaDTO +} + +type GetOrgQuotasQuery struct { + OrgId int64 + Result []*OrgQuotaDTO +} + +type GetUserQuotaByTargetQuery struct { + Target string + UserId int64 + Default int64 + Result *UserQuotaDTO +} + +type GetUserQuotasQuery struct { + UserId int64 + Result []*UserQuotaDTO +} + +type GetGlobalQuotaByTargetQuery struct { + Target string + Default int64 + Result *GlobalQuotaDTO +} + +type UpdateOrgQuotaCmd struct { + Target string `json:"target"` + Limit int64 `json:"limit"` + OrgId int64 `json:"-"` +} + +type UpdateUserQuotaCmd struct { + Target string `json:"target"` + Limit int64 `json:"limit"` + UserId int64 `json:"-"` +} + +func GetQuotaScopes(target string) ([]QuotaScope, error) { + scopes := make([]QuotaScope, 0) + switch target { + case "user": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.User}, + QuotaScope{Name: "org", Target: "org_user", DefaultLimit: setting.Quota.Org.User}, + ) + return scopes, nil + case "org": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Org}, + QuotaScope{Name: "user", Target: "org_user", DefaultLimit: setting.Quota.User.Org}, + ) + return scopes, nil + case "dashboard": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Dashboard}, + QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.Dashboard}, + ) + return scopes, nil + case "data_source": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.DataSource}, + QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.DataSource}, + ) + return scopes, nil + case "api_key": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.ApiKey}, + QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.ApiKey}, + ) + return scopes, nil + case "session": + scopes = append(scopes, + QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Session}, + ) + return scopes, nil + default: + return scopes, ErrInvalidQuotaTarget + } +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/search.go b/vendor/github.com/grafana/grafana/pkg/models/search.go new file mode 100644 index 000000000000..8bd4744f07bd --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/search.go @@ -0,0 +1,10 @@ +package models + +type SearchHit struct { + Id int64 `json:"id"` + Title string `json:"title"` + Uri string `json:"uri"` + Type string `json:"type"` + Tags []string `json:"tags"` + IsStarred bool `json:"isStarred"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/star.go b/vendor/github.com/grafana/grafana/pkg/models/star.go new file mode 100644 index 000000000000..5d1a503cb1c6 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/star.go @@ -0,0 +1,40 @@ +package models + +import "errors" + +var ErrCommandValidationFailed = errors.New("Command missing required fields") + +type Star struct { + Id int64 + UserId int64 + DashboardId int64 +} + +// ---------------------- +// COMMANDS + +type StarDashboardCommand struct { + UserId int64 + DashboardId int64 +} + +type UnstarDashboardCommand struct { + UserId int64 + DashboardId int64 +} + +// --------------------- +// QUERIES + +type GetUserStarsQuery struct { + UserId int64 + + Result map[int64]bool // dashboard ids +} + +type IsStarredByUserQuery struct { + UserId int64 + DashboardId int64 + + Result bool +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/stats.go b/vendor/github.com/grafana/grafana/pkg/models/stats.go new file mode 100644 index 000000000000..6a060137ac7e --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/stats.go @@ -0,0 +1,20 @@ +package models + +type SystemStats struct { + DashboardCount int + UserCount int + OrgCount int +} + +type DataSourceStats struct { + Count int + Type string +} + +type GetSystemStatsQuery struct { + Result *SystemStats +} + +type GetDataSourceStatsQuery struct { + Result []*DataSourceStats +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/temp_user.go b/vendor/github.com/grafana/grafana/pkg/models/temp_user.go new file mode 100644 index 000000000000..00c496c48445 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/temp_user.go @@ -0,0 +1,92 @@ +package models + +import ( + "errors" + "time" +) + +// Typed errors +var ( + ErrTempUserNotFound = errors.New("User not found") +) + +type TempUserStatus string + +const ( + TmpUserSignUpStarted TempUserStatus = "SignUpStarted" + TmpUserInvitePending TempUserStatus = "InvitePending" + TmpUserCompleted TempUserStatus = "Completed" + TmpUserRevoked TempUserStatus = "Revoked" +) + +// TempUser holds data for org invites and unconfirmed sign ups +type TempUser struct { + Id int64 + OrgId int64 + Version int + Email string + Name string + Role RoleType + InvitedByUserId int64 + Status TempUserStatus + + EmailSent bool + EmailSentOn time.Time + Code string + RemoteAddr string + + Created time.Time + Updated time.Time +} + +// --------------------- +// COMMANDS + +type CreateTempUserCommand struct { + Email string + Name string + OrgId int64 + InvitedByUserId int64 + Status TempUserStatus + Code string + Role RoleType + RemoteAddr string + + Result *TempUser +} + +type UpdateTempUserStatusCommand struct { + Code string + Status TempUserStatus +} + +type GetTempUsersQuery struct { + OrgId int64 + Email string + Status TempUserStatus + + Result []*TempUserDTO +} + +type GetTempUserByCodeQuery struct { + Code string + + Result *TempUserDTO +} + +type TempUserDTO struct { + Id int64 `json:"id"` + OrgId int64 `json:"orgId"` + Name string `json:"name"` + Email string `json:"email"` + Role RoleType `json:"role"` + InvitedByLogin string `json:"invitedByLogin"` + InvitedByEmail string `json:"invitedByEmail"` + InvitedByName string `json:"invitedByName"` + Code string `json:"code"` + Status TempUserStatus `json:"status"` + Url string `json:"url"` + EmailSent bool `json:"emailSent"` + EmailSentOn time.Time `json:"emailSentOn"` + Created time.Time `json:"createdOn"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/models/user.go b/vendor/github.com/grafana/grafana/pkg/models/user.go new file mode 100644 index 000000000000..2842bad490da --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/models/user.go @@ -0,0 +1,164 @@ +package models + +import ( + "errors" + "time" +) + +// Typed errors +var ( + ErrUserNotFound = errors.New("User not found") +) + +type User struct { + Id int64 + Version int + Email string + Name string + Login string + Password string + Salt string + Rands string + Company string + EmailVerified bool + Theme string + + IsAdmin bool + OrgId int64 + + Created time.Time + Updated time.Time +} + +func (u *User) NameOrFallback() string { + if u.Name != "" { + return u.Name + } else if u.Login != "" { + return u.Login + } else { + return u.Email + } +} + +// --------------------- +// COMMANDS + +type CreateUserCommand struct { + Email string + Login string + Name string + Company string + OrgName string + Password string + EmailVerified bool + IsAdmin bool + SkipOrgSetup bool + + Result User +} + +type UpdateUserCommand struct { + Name string `json:"name"` + Email string `json:"email"` + Login string `json:"login"` + Theme string `json:"theme"` + + UserId int64 `json:"-"` +} + +type ChangeUserPasswordCommand struct { + OldPassword string `json:"oldPassword"` + NewPassword string `json:"newPassword"` + + UserId int64 `json:"-"` +} + +type UpdateUserPermissionsCommand struct { + IsGrafanaAdmin bool + UserId int64 `json:"-"` +} + +type DeleteUserCommand struct { + UserId int64 +} + +type SetUsingOrgCommand struct { + UserId int64 + OrgId int64 +} + +// ---------------------- +// QUERIES + +type GetUserByLoginQuery struct { + LoginOrEmail string + Result *User +} + +type GetUserByIdQuery struct { + Id int64 + Result *User +} + +type GetSignedInUserQuery struct { + UserId int64 + Login string + Email string + Result *SignedInUser +} + +type GetUserProfileQuery struct { + UserId int64 + Result UserProfileDTO +} + +type SearchUsersQuery struct { + Query string + Page int + Limit int + + Result []*UserSearchHitDTO +} + +type GetUserOrgListQuery struct { + UserId int64 + Result []*UserOrgDTO +} + +// ------------------------ +// DTO & Projections + +type SignedInUser struct { + UserId int64 + OrgId int64 + OrgName string + OrgRole RoleType + Login string + Name string + Email string + Theme string + ApiKeyId int64 + IsGrafanaAdmin bool +} + +type UserProfileDTO struct { + Email string `json:"email"` + Name string `json:"name"` + Login string `json:"login"` + Theme string `json:"theme"` + OrgId int64 `json:"orgId"` + IsGrafanaAdmin bool `json:"isGrafanaAdmin"` +} + +type UserSearchHitDTO struct { + Id int64 `json:"id"` + Name string `json:"name"` + Login string `json:"login"` + Email string `json:"email"` + IsAdmin bool `json:"isAdmin"` +} + +type UserIdDTO struct { + Id int64 `json:"id"` + Message string `json:"message"` +} diff --git a/vendor/github.com/grafana/grafana/pkg/setting/setting.go b/vendor/github.com/grafana/grafana/pkg/setting/setting.go new file mode 100644 index 000000000000..420e06aa6b37 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/setting/setting.go @@ -0,0 +1,634 @@ +// Copyright 2014 Unknwon +// Copyright 2014 Torkel Ödegaard + +package setting + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "net/url" + "os" + "path" + "path/filepath" + "regexp" + "runtime" + "strings" + + "github.com/macaron-contrib/session" + "gopkg.in/ini.v1" + + "github.com/grafana/grafana/pkg/log" + "github.com/grafana/grafana/pkg/util" +) + +type Scheme string + +const ( + HTTP Scheme = "http" + HTTPS Scheme = "https" +) + +const ( + DEV string = "development" + PROD string = "production" + TEST string = "test" +) + +var ( + // App settings. + Env string = DEV + AppUrl string + AppSubUrl string + + // build + BuildVersion string + BuildCommit string + BuildStamp int64 + + // Paths + LogsPath string + HomePath string + DataPath string + PluginsPath string + + // Log settings. + LogModes []string + LogConfigs []util.DynMap + + // Http server options + Protocol Scheme + Domain string + HttpAddr, HttpPort string + SshPort int + CertFile, KeyFile string + RouterLogging bool + StaticRootPath string + EnableGzip bool + EnforceDomain bool + + // Security settings. + SecretKey string + LogInRememberDays int + CookieUserName string + CookieRememberName string + DisableGravatar bool + EmailCodeValidMinutes int + DataProxyWhiteList map[string]bool + + // Snapshots + ExternalSnapshotUrl string + ExternalSnapshotName string + ExternalEnabled bool + + // User settings + AllowUserSignUp bool + AllowUserOrgCreate bool + AutoAssignOrg bool + AutoAssignOrgRole string + VerifyEmailEnabled bool + LoginHint string + + // Http auth + AdminUser string + AdminPassword string + + AnonymousEnabled bool + AnonymousOrgName string + AnonymousOrgRole string + + // Auth proxy settings + AuthProxyEnabled bool + AuthProxyHeaderName string + AuthProxyHeaderProperty string + AuthProxyAutoSignUp bool + + // Basic Auth + BasicAuthEnabled bool + + // Session settings. + SessionOptions session.Options + + // Global setting objects. + Cfg *ini.File + ConfRootPath string + IsWindows bool + + // PhantomJs Rendering + ImagesDir string + PhantomDir string + + // for logging purposes + configFiles []string + appliedCommandLineProperties []string + appliedEnvOverrides []string + + ReportingEnabled bool + GoogleAnalyticsId string + GoogleTagManagerId string + + // LDAP + LdapEnabled bool + LdapConfigFile string + + // SMTP email settings + Smtp SmtpSettings + + // QUOTA + Quota QuotaSettings +) + +type CommandLineArgs struct { + Config string + HomePath string + Args []string +} + +func init() { + IsWindows = runtime.GOOS == "windows" + log.NewLogger(0, "console", `{"level": 0, "formatting":true}`) +} + +func parseAppUrlAndSubUrl(section *ini.Section) (string, string) { + appUrl := section.Key("root_url").MustString("http://localhost:3000/") + if appUrl[len(appUrl)-1] != '/' { + appUrl += "/" + } + + // Check if has app suburl. + url, err := url.Parse(appUrl) + if err != nil { + log.Fatal(4, "Invalid root_url(%s): %s", appUrl, err) + } + appSubUrl := strings.TrimSuffix(url.Path, "/") + + return appUrl, appSubUrl +} + +func ToAbsUrl(relativeUrl string) string { + return AppUrl + relativeUrl +} + +func applyEnvVariableOverrides() { + appliedEnvOverrides = make([]string, 0) + for _, section := range Cfg.Sections() { + for _, key := range section.Keys() { + sectionName := strings.ToUpper(strings.Replace(section.Name(), ".", "_", -1)) + keyName := strings.ToUpper(strings.Replace(key.Name(), ".", "_", -1)) + envKey := fmt.Sprintf("GF_%s_%s", sectionName, keyName) + envValue := os.Getenv(envKey) + + if len(envValue) > 0 { + key.SetValue(envValue) + if strings.Contains(envKey, "PASSWORD") { + envValue = "*********" + } + appliedEnvOverrides = append(appliedEnvOverrides, fmt.Sprintf("%s=%s", envKey, envValue)) + } + } + } +} + +func applyCommandLineDefaultProperties(props map[string]string) { + appliedCommandLineProperties = make([]string, 0) + for _, section := range Cfg.Sections() { + for _, key := range section.Keys() { + keyString := fmt.Sprintf("default.%s.%s", section.Name(), key.Name()) + value, exists := props[keyString] + if exists { + key.SetValue(value) + if strings.Contains(keyString, "password") { + value = "*********" + } + appliedCommandLineProperties = append(appliedCommandLineProperties, fmt.Sprintf("%s=%s", keyString, value)) + } + } + } +} + +func applyCommandLineProperties(props map[string]string) { + for _, section := range Cfg.Sections() { + for _, key := range section.Keys() { + keyString := fmt.Sprintf("%s.%s", section.Name(), key.Name()) + value, exists := props[keyString] + if exists { + key.SetValue(value) + appliedCommandLineProperties = append(appliedCommandLineProperties, fmt.Sprintf("%s=%s", keyString, value)) + } + } + } +} + +func getCommandLineProperties(args []string) map[string]string { + props := make(map[string]string) + + for _, arg := range args { + if !strings.HasPrefix(arg, "cfg:") { + continue + } + + trimmed := strings.TrimPrefix(arg, "cfg:") + parts := strings.Split(trimmed, "=") + if len(parts) != 2 { + log.Fatal(3, "Invalid command line argument", arg) + return nil + } + + props[parts[0]] = parts[1] + } + return props +} + +func makeAbsolute(path string, root string) string { + if filepath.IsAbs(path) { + return path + } + return filepath.Join(root, path) +} + +func evalEnvVarExpression(value string) string { + regex := regexp.MustCompile(`\${(\w+)}`) + return regex.ReplaceAllStringFunc(value, func(envVar string) string { + envVar = strings.TrimPrefix(envVar, "${") + envVar = strings.TrimSuffix(envVar, "}") + envValue := os.Getenv(envVar) + return envValue + }) +} + +func evalConfigValues() { + for _, section := range Cfg.Sections() { + for _, key := range section.Keys() { + key.SetValue(evalEnvVarExpression(key.Value())) + } + } +} + +func loadSpecifedConfigFile(configFile string) { + if configFile == "" { + configFile = filepath.Join(HomePath, "conf/custom.ini") + // return without error if custom file does not exist + if !pathExists(configFile) { + return + } + } + + userConfig, err := ini.Load(configFile) + userConfig.BlockMode = false + if err != nil { + log.Fatal(3, "Failed to parse %v, %v", configFile, err) + } + + for _, section := range userConfig.Sections() { + for _, key := range section.Keys() { + if key.Value() == "" { + continue + } + + defaultSec, err := Cfg.GetSection(section.Name()) + if err != nil { + defaultSec, _ = Cfg.NewSection(section.Name()) + } + defaultKey, err := defaultSec.GetKey(key.Name()) + if err != nil { + defaultKey, _ = defaultSec.NewKey(key.Name(), key.Value()) + } + defaultKey.SetValue(key.Value()) + } + } + + configFiles = append(configFiles, configFile) +} + +func loadConfiguration(args *CommandLineArgs) { + var err error + + // load config defaults + defaultConfigFile := path.Join(HomePath, "conf/defaults.ini") + configFiles = append(configFiles, defaultConfigFile) + + Cfg, err = ini.Load(defaultConfigFile) + Cfg.BlockMode = false + + if err != nil { + log.Fatal(3, "Failed to parse defaults.ini, %v", err) + } + + // command line props + commandLineProps := getCommandLineProperties(args.Args) + // load default overrides + applyCommandLineDefaultProperties(commandLineProps) + + // init logging before specific config so we can log errors from here on + DataPath = makeAbsolute(Cfg.Section("paths").Key("data").String(), HomePath) + initLogging(args) + + // load specified config file + loadSpecifedConfigFile(args.Config) + + // apply environment overrides + applyEnvVariableOverrides() + + // apply command line overrides + applyCommandLineProperties(commandLineProps) + + // evaluate config values containing environment variables + evalConfigValues() + + // update data path and logging config + DataPath = makeAbsolute(Cfg.Section("paths").Key("data").String(), HomePath) + initLogging(args) +} + +func pathExists(path string) bool { + _, err := os.Stat(path) + if err == nil { + return true + } + if os.IsNotExist(err) { + return false + } + return false +} + +func setHomePath(args *CommandLineArgs) { + if args.HomePath != "" { + HomePath = args.HomePath + return + } + + HomePath, _ = filepath.Abs(".") + // check if homepath is correct + if pathExists(filepath.Join(HomePath, "conf/defaults.ini")) { + return + } + + // try down one path + if pathExists(filepath.Join(HomePath, "../conf/defaults.ini")) { + HomePath = filepath.Join(HomePath, "../") + } +} + +var skipStaticRootValidation bool = false + +func validateStaticRootPath() error { + if skipStaticRootValidation { + return nil + } + + if _, err := os.Stat(path.Join(StaticRootPath, "css")); err == nil { + return nil + } + + if _, err := os.Stat(StaticRootPath + "_gen/css"); err == nil { + StaticRootPath = StaticRootPath + "_gen" + return nil + } + + return errors.New("Failed to detect generated css or javascript files in static root (%s), have you executed default grunt task?") +} + +func NewConfigContext(args *CommandLineArgs) error { + setHomePath(args) + loadConfiguration(args) + + Env = Cfg.Section("").Key("app_mode").MustString("development") + PluginsPath = Cfg.Section("paths").Key("plugins").String() + + server := Cfg.Section("server") + AppUrl, AppSubUrl = parseAppUrlAndSubUrl(server) + + Protocol = HTTP + if server.Key("protocol").MustString("http") == "https" { + Protocol = HTTPS + CertFile = server.Key("cert_file").String() + KeyFile = server.Key("cert_key").String() + } + + Domain = server.Key("domain").MustString("localhost") + HttpAddr = server.Key("http_addr").MustString("0.0.0.0") + HttpPort = server.Key("http_port").MustString("3000") + RouterLogging = server.Key("router_logging").MustBool(false) + EnableGzip = server.Key("enable_gzip").MustBool(false) + EnforceDomain = server.Key("enforce_domain").MustBool(false) + StaticRootPath = makeAbsolute(server.Key("static_root_path").String(), HomePath) + + if err := validateStaticRootPath(); err != nil { + return err + } + + // read security settings + security := Cfg.Section("security") + SecretKey = security.Key("secret_key").String() + LogInRememberDays = security.Key("login_remember_days").MustInt() + CookieUserName = security.Key("cookie_username").String() + CookieRememberName = security.Key("cookie_remember_name").String() + DisableGravatar = security.Key("disable_gravatar").MustBool(true) + + // read snapshots settings + snapshots := Cfg.Section("snapshots") + ExternalSnapshotUrl = snapshots.Key("external_snapshot_url").String() + ExternalSnapshotName = snapshots.Key("external_snapshot_name").String() + ExternalEnabled = snapshots.Key("external_enabled").MustBool(true) + + // read data source proxy white list + DataProxyWhiteList = make(map[string]bool) + for _, hostAndIp := range security.Key("data_source_proxy_whitelist").Strings(" ") { + DataProxyWhiteList[hostAndIp] = true + } + + // admin + AdminUser = security.Key("admin_user").String() + AdminPassword = security.Key("admin_password").String() + + users := Cfg.Section("users") + AllowUserSignUp = users.Key("allow_sign_up").MustBool(true) + AllowUserOrgCreate = users.Key("allow_org_create").MustBool(true) + AutoAssignOrg = users.Key("auto_assign_org").MustBool(true) + AutoAssignOrgRole = users.Key("auto_assign_org_role").In("Editor", []string{"Editor", "Admin", "Read Only Editor", "Viewer"}) + VerifyEmailEnabled = users.Key("verify_email_enabled").MustBool(false) + LoginHint = users.Key("login_hint").String() + + // anonymous access + AnonymousEnabled = Cfg.Section("auth.anonymous").Key("enabled").MustBool(false) + AnonymousOrgName = Cfg.Section("auth.anonymous").Key("org_name").String() + AnonymousOrgRole = Cfg.Section("auth.anonymous").Key("org_role").String() + + // auth proxy + authProxy := Cfg.Section("auth.proxy") + AuthProxyEnabled = authProxy.Key("enabled").MustBool(false) + AuthProxyHeaderName = authProxy.Key("header_name").String() + AuthProxyHeaderProperty = authProxy.Key("header_property").String() + AuthProxyAutoSignUp = authProxy.Key("auto_sign_up").MustBool(true) + + authBasic := Cfg.Section("auth.basic") + BasicAuthEnabled = authBasic.Key("enabled").MustBool(true) + + // PhantomJS rendering + ImagesDir = filepath.Join(DataPath, "png") + PhantomDir = filepath.Join(HomePath, "vendor/phantomjs") + + analytics := Cfg.Section("analytics") + ReportingEnabled = analytics.Key("reporting_enabled").MustBool(true) + GoogleAnalyticsId = analytics.Key("google_analytics_ua_id").String() + GoogleTagManagerId = analytics.Key("google_tag_manager_id").String() + + ldapSec := Cfg.Section("auth.ldap") + LdapEnabled = ldapSec.Key("enabled").MustBool(false) + LdapConfigFile = ldapSec.Key("config_file").String() + + readSessionConfig() + readSmtpSettings() + readQuotaSettings() + + if VerifyEmailEnabled && !Smtp.Enabled { + log.Warn("require_email_validation is enabled but smpt is disabled") + } + + return nil +} + +func readSessionConfig() { + sec := Cfg.Section("session") + SessionOptions = session.Options{} + SessionOptions.Provider = sec.Key("provider").In("memory", []string{"memory", "file", "redis", "mysql", "postgres", "memcache"}) + SessionOptions.ProviderConfig = strings.Trim(sec.Key("provider_config").String(), "\" ") + SessionOptions.CookieName = sec.Key("cookie_name").MustString("grafana_sess") + SessionOptions.CookiePath = AppSubUrl + SessionOptions.Secure = sec.Key("cookie_secure").MustBool() + SessionOptions.Gclifetime = Cfg.Section("session").Key("gc_interval_time").MustInt64(86400) + SessionOptions.Maxlifetime = Cfg.Section("session").Key("session_life_time").MustInt64(86400) + SessionOptions.IDLength = 16 + + if SessionOptions.Provider == "file" { + SessionOptions.ProviderConfig = makeAbsolute(SessionOptions.ProviderConfig, DataPath) + os.MkdirAll(path.Dir(SessionOptions.ProviderConfig), os.ModePerm) + } + + if SessionOptions.CookiePath == "" { + SessionOptions.CookiePath = "/" + } +} + +var logLevels = map[string]int{ + "Trace": 0, + "Debug": 1, + "Info": 2, + "Warn": 3, + "Error": 4, + "Critical": 5, +} + +func initLogging(args *CommandLineArgs) { + //close any existing log handlers. + log.Close() + // Get and check log mode. + LogModes = strings.Split(Cfg.Section("log").Key("mode").MustString("console"), ",") + LogsPath = makeAbsolute(Cfg.Section("paths").Key("logs").String(), HomePath) + + LogConfigs = make([]util.DynMap, len(LogModes)) + for i, mode := range LogModes { + mode = strings.TrimSpace(mode) + sec, err := Cfg.GetSection("log." + mode) + if err != nil { + log.Fatal(4, "Unknown log mode: %s", mode) + } + + // Log level. + levelName := Cfg.Section("log."+mode).Key("level").In("Trace", + []string{"Trace", "Debug", "Info", "Warn", "Error", "Critical"}) + level, ok := logLevels[levelName] + if !ok { + log.Fatal(4, "Unknown log level: %s", levelName) + } + + // Generate log configuration. + switch mode { + case "console": + formatting := sec.Key("formatting").MustBool(true) + LogConfigs[i] = util.DynMap{ + "level": level, + "formatting": formatting, + } + case "file": + logPath := sec.Key("file_name").MustString(filepath.Join(LogsPath, "grafana.log")) + os.MkdirAll(filepath.Dir(logPath), os.ModePerm) + LogConfigs[i] = util.DynMap{ + "level": level, + "filename": logPath, + "rotate": sec.Key("log_rotate").MustBool(true), + "maxlines": sec.Key("max_lines").MustInt(1000000), + "maxsize": 1 << uint(sec.Key("max_size_shift").MustInt(28)), + "daily": sec.Key("daily_rotate").MustBool(true), + "maxdays": sec.Key("max_days").MustInt(7), + } + case "conn": + LogConfigs[i] = util.DynMap{ + "level": level, + "reconnectOnMsg": sec.Key("reconnect_on_msg").MustBool(), + "reconnect": sec.Key("reconnect").MustBool(), + "net": sec.Key("protocol").In("tcp", []string{"tcp", "unix", "udp"}), + "addr": sec.Key("addr").MustString(":7020"), + } + case "smtp": + LogConfigs[i] = util.DynMap{ + "level": level, + "user": sec.Key("user").MustString("example@example.com"), + "passwd": sec.Key("passwd").MustString("******"), + "host": sec.Key("host").MustString("127.0.0.1:25"), + "receivers": sec.Key("receivers").MustString("[]"), + "subject": sec.Key("subject").MustString("Diagnostic message from serve"), + } + case "database": + LogConfigs[i] = util.DynMap{ + "level": level, + "driver": sec.Key("driver").String(), + "conn": sec.Key("conn").String(), + } + case "syslog": + LogConfigs[i] = util.DynMap{ + "level": level, + "network": sec.Key("network").MustString(""), + "address": sec.Key("address").MustString(""), + "facility": sec.Key("facility").MustString("local7"), + "tag": sec.Key("tag").MustString(""), + } + } + + cfgJsonBytes, _ := json.Marshal(LogConfigs[i]) + log.NewLogger(Cfg.Section("log").Key("buffer_len").MustInt64(10000), mode, string(cfgJsonBytes)) + } +} + +func LogConfigurationInfo() { + var text bytes.Buffer + text.WriteString("Configuration Info\n") + + text.WriteString("Config files:\n") + for i, file := range configFiles { + text.WriteString(fmt.Sprintf(" [%d]: %s\n", i, file)) + } + + if len(appliedCommandLineProperties) > 0 { + text.WriteString("Command lines overrides:\n") + for i, prop := range appliedCommandLineProperties { + text.WriteString(fmt.Sprintf(" [%d]: %s\n", i, prop)) + } + } + + if len(appliedEnvOverrides) > 0 { + text.WriteString("\tEnvironment variables used:\n") + for i, prop := range appliedEnvOverrides { + text.WriteString(fmt.Sprintf(" [%d]: %s\n", i, prop)) + } + } + + text.WriteString("Paths:\n") + text.WriteString(fmt.Sprintf(" home: %s\n", HomePath)) + text.WriteString(fmt.Sprintf(" data: %s\n", DataPath)) + text.WriteString(fmt.Sprintf(" logs: %s\n", LogsPath)) + text.WriteString(fmt.Sprintf(" plugins: %s\n", PluginsPath)) + + log.Info(text.String()) +} diff --git a/vendor/github.com/grafana/grafana/pkg/setting/setting_oauth.go b/vendor/github.com/grafana/grafana/pkg/setting/setting_oauth.go new file mode 100644 index 000000000000..db2f0fb38020 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/setting/setting_oauth.go @@ -0,0 +1,18 @@ +package setting + +type OAuthInfo struct { + ClientId, ClientSecret string + Scopes []string + AuthUrl, TokenUrl string + Enabled bool + AllowedDomains []string + ApiUrl string + AllowSignup bool +} + +type OAuther struct { + GitHub, Google, Twitter bool + OAuthInfos map[string]*OAuthInfo +} + +var OAuthService *OAuther diff --git a/vendor/github.com/grafana/grafana/pkg/setting/setting_quota.go b/vendor/github.com/grafana/grafana/pkg/setting/setting_quota.go new file mode 100644 index 000000000000..49769d9930fd --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/setting/setting_quota.go @@ -0,0 +1,94 @@ +package setting + +import ( + "reflect" +) + +type OrgQuota struct { + User int64 `target:"org_user"` + DataSource int64 `target:"data_source"` + Dashboard int64 `target:"dashboard"` + ApiKey int64 `target:"api_key"` +} + +type UserQuota struct { + Org int64 `target:"org_user"` +} + +type GlobalQuota struct { + Org int64 `target:"org"` + User int64 `target:"user"` + DataSource int64 `target:"data_source"` + Dashboard int64 `target:"dashboard"` + ApiKey int64 `target:"api_key"` + Session int64 `target:"-"` +} + +func (q *OrgQuota) ToMap() map[string]int64 { + return quotaToMap(*q) +} + +func (q *UserQuota) ToMap() map[string]int64 { + return quotaToMap(*q) +} + +func (q *GlobalQuota) ToMap() map[string]int64 { + return quotaToMap(*q) +} + +func quotaToMap(q interface{}) map[string]int64 { + qMap := make(map[string]int64) + typ := reflect.TypeOf(q) + val := reflect.ValueOf(q) + + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + name := field.Tag.Get("target") + if name == "" { + name = field.Name + } + if name == "-" { + continue + } + value := val.Field(i) + qMap[name] = value.Int() + } + return qMap +} + +type QuotaSettings struct { + Enabled bool + Org *OrgQuota + User *UserQuota + Global *GlobalQuota +} + +func readQuotaSettings() { + // set global defaults. + quota := Cfg.Section("quota") + Quota.Enabled = quota.Key("enabled").MustBool(false) + + // per ORG Limits + Quota.Org = &OrgQuota{ + User: quota.Key("org_user").MustInt64(10), + DataSource: quota.Key("org_data_source").MustInt64(10), + Dashboard: quota.Key("org_dashboard").MustInt64(10), + ApiKey: quota.Key("org_api_key").MustInt64(10), + } + + // per User limits + Quota.User = &UserQuota{ + Org: quota.Key("user_org").MustInt64(10), + } + + // Global Limits + Quota.Global = &GlobalQuota{ + User: quota.Key("global_user").MustInt64(-1), + Org: quota.Key("global_org").MustInt64(-1), + DataSource: quota.Key("global_data_source").MustInt64(-1), + Dashboard: quota.Key("global_dashboard").MustInt64(-1), + ApiKey: quota.Key("global_api_key").MustInt64(-1), + Session: quota.Key("global_session").MustInt64(-1), + } + +} diff --git a/vendor/github.com/grafana/grafana/pkg/setting/setting_smtp.go b/vendor/github.com/grafana/grafana/pkg/setting/setting_smtp.go new file mode 100644 index 000000000000..e84b61634cce --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/setting/setting_smtp.go @@ -0,0 +1,31 @@ +package setting + +type SmtpSettings struct { + Enabled bool + Host string + User string + Password string + CertFile string + KeyFile string + FromAddress string + SkipVerify bool + + SendWelcomeEmailOnSignUp bool + TemplatesPattern string +} + +func readSmtpSettings() { + sec := Cfg.Section("smtp") + Smtp.Enabled = sec.Key("enabled").MustBool(false) + Smtp.Host = sec.Key("host").String() + Smtp.User = sec.Key("user").String() + Smtp.Password = sec.Key("password").String() + Smtp.CertFile = sec.Key("cert_file").String() + Smtp.KeyFile = sec.Key("key_file").String() + Smtp.FromAddress = sec.Key("from_address").String() + Smtp.SkipVerify = sec.Key("skip_verify").MustBool(false) + + emails := Cfg.Section("emails") + Smtp.SendWelcomeEmailOnSignUp = emails.Key("welcome_email_on_sign_up").MustBool(false) + Smtp.TemplatesPattern = emails.Key("templates_pattern").MustString("emails/*.html") +} diff --git a/vendor/github.com/grafana/grafana/pkg/util/encoding.go b/vendor/github.com/grafana/grafana/pkg/util/encoding.go new file mode 100644 index 000000000000..e87da9d3d552 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/encoding.go @@ -0,0 +1,104 @@ +package util + +import ( + "crypto/hmac" + "crypto/md5" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "errors" + "fmt" + "hash" + "strings" +) + +// source: https://github.com/gogits/gogs/blob/9ee80e3e5426821f03a4e99fad34418f5c736413/modules/base/tool.go#L58 +func GetRandomString(n int, alphabets ...byte) string { + const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + var bytes = make([]byte, n) + rand.Read(bytes) + for i, b := range bytes { + if len(alphabets) == 0 { + bytes[i] = alphanum[b%byte(len(alphanum))] + } else { + bytes[i] = alphabets[b%byte(len(alphabets))] + } + } + return string(bytes) +} + +func EncodePassword(password string, salt string) string { + newPasswd := PBKDF2([]byte(password), []byte(salt), 10000, 50, sha256.New) + return fmt.Sprintf("%x", newPasswd) +} + +// Encode string to md5 hex value. +func EncodeMd5(str string) string { + m := md5.New() + m.Write([]byte(str)) + return hex.EncodeToString(m.Sum(nil)) +} + +// http://code.google.com/p/go/source/browse/pbkdf2/pbkdf2.go?repo=crypto +func PBKDF2(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { + prf := hmac.New(h, password) + hashLen := prf.Size() + numBlocks := (keyLen + hashLen - 1) / hashLen + + var buf [4]byte + dk := make([]byte, 0, numBlocks*hashLen) + U := make([]byte, hashLen) + for block := 1; block <= numBlocks; block++ { + // N.B.: || means concatenation, ^ means XOR + // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter + // U_1 = PRF(password, salt || uint(i)) + prf.Reset() + prf.Write(salt) + buf[0] = byte(block >> 24) + buf[1] = byte(block >> 16) + buf[2] = byte(block >> 8) + buf[3] = byte(block) + prf.Write(buf[:4]) + dk = prf.Sum(dk) + T := dk[len(dk)-hashLen:] + copy(U, T) + + // U_n = PRF(password, U_(n-1)) + for n := 2; n <= iter; n++ { + prf.Reset() + prf.Write(U) + U = U[:0] + U = prf.Sum(U) + for x := range U { + T[x] ^= U[x] + } + } + } + return dk[:keyLen] +} + +func GetBasicAuthHeader(user string, password string) string { + var userAndPass = user + ":" + password + return "Basic " + base64.StdEncoding.EncodeToString([]byte(userAndPass)) +} + +func DecodeBasicAuthHeader(header string) (string, string, error) { + var code string + parts := strings.SplitN(header, " ", 2) + if len(parts) == 2 && parts[0] == "Basic" { + code = parts[1] + } + + decoded, err := base64.StdEncoding.DecodeString(code) + if err != nil { + return "", "", err + } + + userAndPass := strings.SplitN(string(decoded), ":", 2) + if len(userAndPass) != 2 { + return "", "", errors.New("Invalid basic auth header") + } + + return userAndPass[0], userAndPass[1], nil +} diff --git a/vendor/github.com/grafana/grafana/pkg/util/filepath.go b/vendor/github.com/grafana/grafana/pkg/util/filepath.go new file mode 100644 index 000000000000..d0e279269562 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/filepath.go @@ -0,0 +1,98 @@ +package util + +import ( + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" +) + +//WalkSkipDir is the Error returned when we want to skip descending into a directory +var WalkSkipDir = errors.New("skip this directory") + +//WalkFunc is a callback function called for each path as a directory is walked +//If resolvedPath != "", then we are following symbolic links. +type WalkFunc func(resolvedPath string, info os.FileInfo, err error) error + +//Walk walks a path, optionally following symbolic links, and for each path, +//it calls the walkFn passed. +// +//It is similar to filepath.Walk, except that it supports symbolic links and +//can detect infinite loops while following sym links. +//It solves the issue where your WalkFunc needs a path relative to the symbolic link +//(resolving links within walkfunc loses the path to the symbolic link for each traversal). +func Walk(path string, followSymlinks bool, detectSymlinkInfiniteLoop bool, walkFn WalkFunc) error { + info, err := os.Lstat(path) + if err != nil { + return err + } + var symlinkPathsFollowed map[string]bool + var resolvedPath string + if followSymlinks { + resolvedPath = path + if detectSymlinkInfiniteLoop { + symlinkPathsFollowed = make(map[string]bool, 8) + } + } + return walk(path, info, resolvedPath, symlinkPathsFollowed, walkFn) +} + +//walk walks the path. It is a helper/sibling function to Walk. +//It takes a resolvedPath into consideration. This way, paths being walked are +//always relative to the path argument, even if symbolic links were resolved). +// +//If resolvedPath is "", then we are not following symbolic links. +//If symlinkPathsFollowed is not nil, then we need to detect infinite loop. +func walk(path string, info os.FileInfo, resolvedPath string, + symlinkPathsFollowed map[string]bool, walkFn WalkFunc) error { + if info == nil { + return errors.New("Walk: Nil FileInfo passed") + } + err := walkFn(resolvedPath, info, nil) + if err != nil { + if info.IsDir() && err == WalkSkipDir { + err = nil + } + return err + } + if resolvedPath != "" && info.Mode()&os.ModeSymlink == os.ModeSymlink { + path2, err := os.Readlink(resolvedPath) + if err != nil { + return err + } + //vout("SymLink Path: %v, links to: %v", resolvedPath, path2) + if symlinkPathsFollowed != nil { + if _, ok := symlinkPathsFollowed[path2]; ok { + errMsg := "Potential SymLink Infinite Loop. Path: %v, Link To: %v" + return fmt.Errorf(errMsg, resolvedPath, path2) + } else { + symlinkPathsFollowed[path2] = true + } + } + info2, err := os.Lstat(path2) + if err != nil { + return err + } + return walk(path, info2, path2, symlinkPathsFollowed, walkFn) + } + if info.IsDir() { + list, err := ioutil.ReadDir(path) + if err != nil { + return walkFn(resolvedPath, info, err) + } + for _, fileInfo := range list { + path2 := filepath.Join(path, fileInfo.Name()) + var resolvedPath2 string + if resolvedPath != "" { + resolvedPath2 = filepath.Join(resolvedPath, fileInfo.Name()) + } + err = walk(path2, fileInfo, resolvedPath2, symlinkPathsFollowed, walkFn) + if err != nil { + return err + } + } + return nil + } + return nil +} diff --git a/vendor/github.com/grafana/grafana/pkg/util/json.go b/vendor/github.com/grafana/grafana/pkg/util/json.go new file mode 100644 index 000000000000..a75a8490d936 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/json.go @@ -0,0 +1,3 @@ +package util + +type DynMap map[string]interface{} diff --git a/vendor/github.com/grafana/grafana/pkg/util/strings.go b/vendor/github.com/grafana/grafana/pkg/util/strings.go new file mode 100644 index 000000000000..7e503a99118a --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/strings.go @@ -0,0 +1,18 @@ +package util + +func StringsFallback2(val1 string, val2 string) string { + if val1 != "" { + return val1 + } + return val2 +} + +func StringsFallback3(val1 string, val2 string, val3 string) string { + if val1 != "" { + return val1 + } + if val2 != "" { + return val2 + } + return val3 +} diff --git a/vendor/github.com/grafana/grafana/pkg/util/url.go b/vendor/github.com/grafana/grafana/pkg/util/url.go new file mode 100644 index 000000000000..758e6864fe49 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/url.go @@ -0,0 +1,37 @@ +package util + +import ( + "net/url" + "strings" +) + +type UrlQueryReader struct { + values url.Values +} + +func NewUrlQueryReader(url *url.URL) *UrlQueryReader { + return &UrlQueryReader{ + values: url.Query(), + } +} + +func (r *UrlQueryReader) Get(name string, def string) string { + val := r.values[name] + if len(val) == 0 { + return def + } + + return val[0] +} + +func JoinUrlFragments(a, b string) string { + aslash := strings.HasSuffix(a, "/") + bslash := strings.HasPrefix(b, "/") + switch { + case aslash && bslash: + return a + b[1:] + case !aslash && !bslash: + return a + "/" + b + } + return a + b +} diff --git a/vendor/github.com/grafana/grafana/pkg/util/validation.go b/vendor/github.com/grafana/grafana/pkg/util/validation.go new file mode 100644 index 000000000000..dd7404e6de49 --- /dev/null +++ b/vendor/github.com/grafana/grafana/pkg/util/validation.go @@ -0,0 +1,18 @@ +package util + +import ( + "regexp" + "strings" +) + +const ( + emailRegexPattern string = "^(((([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+(\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.)+(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.?$" +) + +var ( + regexEmail = regexp.MustCompile(emailRegexPattern) +) + +func IsEmail(str string) bool { + return regexEmail.MatchString(strings.ToLower(str)) +} diff --git a/vendor/github.com/macaron-contrib/session/.gitignore b/vendor/github.com/macaron-contrib/session/.gitignore new file mode 100644 index 000000000000..9297dbcd7c49 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/.gitignore @@ -0,0 +1,2 @@ +ledis/tmp.db +nodb/tmp.db \ No newline at end of file diff --git a/vendor/github.com/macaron-contrib/session/LICENSE b/vendor/github.com/macaron-contrib/session/LICENSE new file mode 100644 index 000000000000..8405e89a0b12 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/vendor/github.com/macaron-contrib/session/README.md b/vendor/github.com/macaron-contrib/session/README.md new file mode 100644 index 000000000000..01de811eacc9 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/README.md @@ -0,0 +1,21 @@ +session [![Build Status](https://drone.io/github.com/macaron-contrib/session/status.png)](https://drone.io/github.com/macaron-contrib/session/latest) [![](http://gocover.io/_badge/github.com/macaron-contrib/session)](http://gocover.io/github.com/macaron-contrib/session) +======= + +Middleware session provides session management for [Macaron](https://github.com/Unknwon/macaron). It can use many session providers, including memory, file, Redis, Memcache, PostgreSQL, MySQL, Couchbase, Ledis and Nodb. + +### Installation + + go get github.com/macaron-contrib/session + +## Getting Help + +- [API Reference](https://gowalker.org/github.com/macaron-contrib/session) +- [Documentation](http://macaron.gogs.io/docs/middlewares/session) + +## Credits + +This package is forked from [beego/session](https://github.com/astaxie/beego/tree/master/session) with reconstruction(over 80%). + +## License + +This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. diff --git a/vendor/github.com/macaron-contrib/session/file.go b/vendor/github.com/macaron-contrib/session/file.go new file mode 100644 index 000000000000..67ebbb1eda14 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/file.go @@ -0,0 +1,259 @@ +// Copyright 2013 Beego Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package session + +import ( + "fmt" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "sync" + "time" + + "github.com/Unknwon/com" +) + +// FileStore represents a file session store implementation. +type FileStore struct { + p *FileProvider + sid string + lock sync.RWMutex + data map[interface{}]interface{} +} + +// NewFileStore creates and returns a file session store. +func NewFileStore(p *FileProvider, sid string, kv map[interface{}]interface{}) *FileStore { + return &FileStore{ + p: p, + sid: sid, + data: kv, + } +} + +// Set sets value to given key in session. +func (s *FileStore) Set(key, val interface{}) error { + s.lock.Lock() + defer s.lock.Unlock() + + s.data[key] = val + return nil +} + +// Get gets value by given key in session. +func (s *FileStore) Get(key interface{}) interface{} { + s.lock.RLock() + defer s.lock.RUnlock() + + return s.data[key] +} + +// Delete delete a key from session. +func (s *FileStore) Delete(key interface{}) error { + s.lock.Lock() + defer s.lock.Unlock() + + delete(s.data, key) + return nil +} + +// ID returns current session ID. +func (s *FileStore) ID() string { + return s.sid +} + +// Release releases resource and save data to provider. +func (s *FileStore) Release() error { + s.p.lock.Lock() + defer s.p.lock.Unlock() + + data, err := EncodeGob(s.data) + if err != nil { + return err + } + + return ioutil.WriteFile(s.p.filepath(s.sid), data, os.ModePerm) +} + +// Flush deletes all session data. +func (s *FileStore) Flush() error { + s.lock.Lock() + defer s.lock.Unlock() + + s.data = make(map[interface{}]interface{}) + return nil +} + +// FileProvider represents a file session provider implementation. +type FileProvider struct { + lock sync.RWMutex + maxlifetime int64 + rootPath string +} + +// Init initializes file session provider with given root path. +func (p *FileProvider) Init(maxlifetime int64, rootPath string) error { + p.maxlifetime = maxlifetime + p.rootPath = rootPath + return nil +} + +func (p *FileProvider) filepath(sid string) string { + return path.Join(p.rootPath, string(sid[0]), string(sid[1]), sid) +} + +// Read returns raw session store by session ID. +func (p *FileProvider) Read(sid string) (_ RawStore, err error) { + filename := p.filepath(sid) + if err = os.MkdirAll(path.Dir(filename), os.ModePerm); err != nil { + return nil, err + } + p.lock.RLock() + defer p.lock.RUnlock() + + var f *os.File + if com.IsFile(filename) { + f, err = os.OpenFile(filename, os.O_RDWR, os.ModePerm) + } else { + f, err = os.Create(filename) + } + if err != nil { + return nil, err + } + defer f.Close() + + if err = os.Chtimes(filename, time.Now(), time.Now()); err != nil { + return nil, err + } + + var kv map[interface{}]interface{} + data, err := ioutil.ReadAll(f) + if err != nil { + return nil, err + } + if len(data) == 0 { + kv = make(map[interface{}]interface{}) + } else { + kv, err = DecodeGob(data) + if err != nil { + return nil, err + } + } + return NewFileStore(p, sid, kv), nil +} + +// Exist returns true if session with given ID exists. +func (p *FileProvider) Exist(sid string) bool { + p.lock.RLock() + defer p.lock.RUnlock() + return com.IsFile(p.filepath(sid)) +} + +// Destory deletes a session by session ID. +func (p *FileProvider) Destory(sid string) error { + p.lock.Lock() + defer p.lock.Unlock() + return os.Remove(p.filepath(sid)) +} + +func (p *FileProvider) regenerate(oldsid, sid string) (err error) { + p.lock.Lock() + defer p.lock.Unlock() + + filename := p.filepath(sid) + if com.IsExist(filename) { + return fmt.Errorf("new sid '%s' already exists", sid) + } + + oldname := p.filepath(oldsid) + if !com.IsFile(oldname) { + data, err := EncodeGob(make(map[interface{}]interface{})) + if err != nil { + return err + } + if err = os.MkdirAll(path.Dir(oldname), os.ModePerm); err != nil { + return err + } + if err = ioutil.WriteFile(oldname, data, os.ModePerm); err != nil { + return err + } + } + + if err = os.MkdirAll(path.Dir(filename), os.ModePerm); err != nil { + return err + } + if err = os.Rename(oldname, filename); err != nil { + return err + } + return nil +} + +// Regenerate regenerates a session store from old session ID to new one. +func (p *FileProvider) Regenerate(oldsid, sid string) (_ RawStore, err error) { + if err := p.regenerate(oldsid, sid); err != nil { + return nil, err + } + + return p.Read(sid) +} + +// Count counts and returns number of sessions. +func (p *FileProvider) Count() int { + count := 0 + if err := filepath.Walk(p.rootPath, func(path string, fi os.FileInfo, err error) error { + if err != nil { + return err + } + + if !fi.IsDir() { + count++ + } + return nil + }); err != nil { + log.Printf("error counting session files: %v", err) + return 0 + } + return count +} + +// GC calls GC to clean expired sessions. +func (p *FileProvider) GC() { + if !com.IsExist(p.rootPath) { + return + } + + p.lock.Lock() + defer p.lock.Unlock() + + if err := filepath.Walk(p.rootPath, func(path string, fi os.FileInfo, err error) error { + if err != nil { + return err + } + + if !fi.IsDir() && + (fi.ModTime().Unix()+p.maxlifetime) < time.Now().Unix() { + return os.Remove(path) + } + return nil + }); err != nil { + log.Printf("error garbage collecting session files: %v", err) + } +} + +func init() { + Register("file", &FileProvider{}) +} diff --git a/vendor/github.com/macaron-contrib/session/memory.go b/vendor/github.com/macaron-contrib/session/memory.go new file mode 100644 index 000000000000..83ddd4459745 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/memory.go @@ -0,0 +1,212 @@ +// Copyright 2013 Beego Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package session + +import ( + "container/list" + "fmt" + "sync" + "time" +) + +// MemStore represents a in-memory session store implementation. +type MemStore struct { + sid string + lock sync.RWMutex + data map[interface{}]interface{} + lastAccess time.Time +} + +// NewMemStore creates and returns a memory session store. +func NewMemStore(sid string) *MemStore { + return &MemStore{ + sid: sid, + data: make(map[interface{}]interface{}), + lastAccess: time.Now(), + } +} + +// Set sets value to given key in session. +func (s *MemStore) Set(key, val interface{}) error { + s.lock.Lock() + defer s.lock.Unlock() + + s.data[key] = val + return nil +} + +// Get gets value by given key in session. +func (s *MemStore) Get(key interface{}) interface{} { + s.lock.RLock() + defer s.lock.RUnlock() + + return s.data[key] +} + +// Delete deletes a key from session. +func (s *MemStore) Delete(key interface{}) error { + s.lock.Lock() + defer s.lock.Unlock() + + delete(s.data, key) + return nil +} + +// ID returns current session ID. +func (s *MemStore) ID() string { + return s.sid +} + +// Release releases resource and save data to provider. +func (_ *MemStore) Release() error { + return nil +} + +// Flush deletes all session data. +func (s *MemStore) Flush() error { + s.lock.Lock() + defer s.lock.Unlock() + + s.data = make(map[interface{}]interface{}) + return nil +} + +// MemProvider represents a in-memory session provider implementation. +type MemProvider struct { + lock sync.RWMutex + maxLifetime int64 + data map[string]*list.Element + // A priority list whose lastAccess newer gets higer priority. + list *list.List +} + +// Init initializes memory session provider. +func (p *MemProvider) Init(maxLifetime int64, _ string) error { + p.maxLifetime = maxLifetime + return nil +} + +// update expands time of session store by given ID. +func (p *MemProvider) update(sid string) error { + p.lock.Lock() + defer p.lock.Unlock() + + if e, ok := p.data[sid]; ok { + e.Value.(*MemStore).lastAccess = time.Now() + p.list.MoveToFront(e) + return nil + } + return nil +} + +// Read returns raw session store by session ID. +func (p *MemProvider) Read(sid string) (_ RawStore, err error) { + p.lock.RLock() + e, ok := p.data[sid] + p.lock.RUnlock() + + if ok { + if err = p.update(sid); err != nil { + return nil, err + } + return e.Value.(*MemStore), nil + } + + // Create a new session. + p.lock.Lock() + defer p.lock.Unlock() + + s := NewMemStore(sid) + p.data[sid] = p.list.PushBack(s) + return s, nil +} + +// Exist returns true if session with given ID exists. +func (p *MemProvider) Exist(sid string) bool { + p.lock.RLock() + defer p.lock.RUnlock() + + _, ok := p.data[sid] + return ok +} + +// Destory deletes a session by session ID. +func (p *MemProvider) Destory(sid string) error { + p.lock.Lock() + defer p.lock.Unlock() + + e, ok := p.data[sid] + if !ok { + return nil + } + + p.list.Remove(e) + delete(p.data, sid) + return nil +} + +// Regenerate regenerates a session store from old session ID to new one. +func (p *MemProvider) Regenerate(oldsid, sid string) (RawStore, error) { + if p.Exist(sid) { + return nil, fmt.Errorf("new sid '%s' already exists", sid) + } + + s, err := p.Read(oldsid) + if err != nil { + return nil, err + } + + if err = p.Destory(oldsid); err != nil { + return nil, err + } + + s.(*MemStore).sid = sid + p.data[sid] = p.list.PushBack(s) + return s, nil +} + +// Count counts and returns number of sessions. +func (p *MemProvider) Count() int { + return p.list.Len() +} + +// GC calls GC to clean expired sessions. +func (p *MemProvider) GC() { + p.lock.RLock() + for { + // No session in the list. + e := p.list.Back() + if e == nil { + break + } + + if (e.Value.(*MemStore).lastAccess.Unix() + p.maxLifetime) < time.Now().Unix() { + p.lock.RUnlock() + p.lock.Lock() + p.list.Remove(e) + delete(p.data, e.Value.(*MemStore).sid) + p.lock.Unlock() + p.lock.RLock() + } else { + break + } + } + p.lock.RUnlock() +} + +func init() { + Register("memory", &MemProvider{list: list.New(), data: make(map[string]*list.Element)}) +} diff --git a/vendor/github.com/macaron-contrib/session/session.go b/vendor/github.com/macaron-contrib/session/session.go new file mode 100644 index 000000000000..57a03aa50a37 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/session.go @@ -0,0 +1,399 @@ +// Copyright 2013 Beego Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package session a middleware that provides the session management of Macaron. +package session + +import ( + "encoding/hex" + "fmt" + "net/http" + "net/url" + "time" + + "github.com/Unknwon/macaron" +) + +const _VERSION = "0.2.0" + +func Version() string { + return _VERSION +} + +// RawStore is the interface that operates the session data. +type RawStore interface { + // Set sets value to given key in session. + Set(interface{}, interface{}) error + // Get gets value by given key in session. + Get(interface{}) interface{} + // Delete deletes a key from session. + Delete(interface{}) error + // ID returns current session ID. + ID() string + // Release releases session resource and save data to provider. + Release() error + // Flush deletes all session data. + Flush() error +} + +// Store is the interface that contains all data for one session process with specific ID. +type Store interface { + RawStore + // Read returns raw session store by session ID. + Read(string) (RawStore, error) + // Destory deletes a session. + Destory(*macaron.Context) error + // RegenerateId regenerates a session store from old session ID to new one. + RegenerateId(*macaron.Context) (RawStore, error) + // Count counts and returns number of sessions. + Count() int + // GC calls GC to clean expired sessions. + GC() +} + +type store struct { + RawStore + *Manager +} + +var _ Store = &store{} + +// Options represents a struct for specifying configuration options for the session middleware. +type Options struct { + // Name of provider. Default is "memory". + Provider string + // Provider configuration, it's corresponding to provider. + ProviderConfig string + // Cookie name to save session ID. Default is "MacaronSession". + CookieName string + // Cookie path to store. Default is "/". + CookiePath string + // GC interval time in seconds. Default is 3600. + Gclifetime int64 + // Max life time in seconds. Default is whatever GC interval time is. + Maxlifetime int64 + // Use HTTPS only. Default is false. + Secure bool + // Cookie life time. Default is 0. + CookieLifeTime int + // Cookie domain name. Default is empty. + Domain string + // Session ID length. Default is 16. + IDLength int + // Configuration section name. Default is "session". + Section string +} + +func prepareOptions(options []Options) Options { + var opt Options + if len(options) > 0 { + opt = options[0] + } + if len(opt.Section) == 0 { + opt.Section = "session" + } + sec := macaron.Config().Section(opt.Section) + + if len(opt.Provider) == 0 { + opt.Provider = sec.Key("PROVIDER").MustString("memory") + } + if len(opt.ProviderConfig) == 0 { + opt.ProviderConfig = sec.Key("PROVIDER_CONFIG").MustString("data/sessions") + } + if len(opt.CookieName) == 0 { + opt.CookieName = sec.Key("COOKIE_NAME").MustString("MacaronSession") + } + if len(opt.CookiePath) == 0 { + opt.CookiePath = sec.Key("COOKIE_PATH").MustString("/") + } + if opt.Gclifetime == 0 { + opt.Gclifetime = sec.Key("GC_INTERVAL_TIME").MustInt64(3600) + } + if opt.Maxlifetime == 0 { + opt.Maxlifetime = sec.Key("MAX_LIFE_TIME").MustInt64(opt.Gclifetime) + } + if !opt.Secure { + opt.Secure = sec.Key("SECURE").MustBool() + } + if opt.CookieLifeTime == 0 { + opt.CookieLifeTime = sec.Key("COOKIE_LIFE_TIME").MustInt() + } + if len(opt.Domain) == 0 { + opt.Domain = sec.Key("DOMAIN").String() + } + if opt.IDLength == 0 { + opt.IDLength = sec.Key("ID_LENGTH").MustInt(16) + } + + return opt +} + +// Sessioner is a middleware that maps a session.SessionStore service into the Macaron handler chain. +// An single variadic session.Options struct can be optionally provided to configure. +func Sessioner(options ...Options) macaron.Handler { + opt := prepareOptions(options) + manager, err := NewManager(opt.Provider, opt) + if err != nil { + panic(err) + } + go manager.startGC() + + return func(ctx *macaron.Context) { + sess, err := manager.Start(ctx) + if err != nil { + panic("session(start): " + err.Error()) + } + + // Get flash. + vals, _ := url.ParseQuery(ctx.GetCookie("macaron_flash")) + if len(vals) > 0 { + f := &Flash{Values: vals} + f.ErrorMsg = f.Get("error") + f.SuccessMsg = f.Get("success") + f.InfoMsg = f.Get("info") + f.WarningMsg = f.Get("warning") + ctx.Data["Flash"] = f + ctx.SetCookie("macaron_flash", "", -1, opt.CookiePath) + } + + f := &Flash{ctx, url.Values{}, "", "", "", ""} + ctx.Resp.Before(func(macaron.ResponseWriter) { + if flash := f.Encode(); len(flash) > 0 { + ctx.SetCookie("macaron_flash", flash, 0, opt.CookiePath) + } + }) + + ctx.Map(f) + s := store{ + RawStore: sess, + Manager: manager, + } + + ctx.MapTo(s, (*Store)(nil)) + + ctx.Next() + + if err = sess.Release(); err != nil { + panic("session(release): " + err.Error()) + } + } +} + +// Provider is the interface that provides session manipulations. +type Provider interface { + // Init initializes session provider. + Init(gclifetime int64, config string) error + // Read returns raw session store by session ID. + Read(sid string) (RawStore, error) + // Exist returns true if session with given ID exists. + Exist(sid string) bool + // Destory deletes a session by session ID. + Destory(sid string) error + // Regenerate regenerates a session store from old session ID to new one. + Regenerate(oldsid, sid string) (RawStore, error) + // Count counts and returns number of sessions. + Count() int + // GC calls GC to clean expired sessions. + GC() +} + +var providers = make(map[string]Provider) + +// Register registers a provider. +func Register(name string, provider Provider) { + if provider == nil { + panic("session: cannot register provider with nil value") + } + if _, dup := providers[name]; dup { + panic(fmt.Errorf("session: cannot register provider '%s' twice", name)) + } + providers[name] = provider +} + +// _____ +// / \ _____ ____ _____ ____ ___________ +// / \ / \\__ \ / \\__ \ / ___\_/ __ \_ __ \ +// / Y \/ __ \| | \/ __ \_/ /_/ > ___/| | \/ +// \____|__ (____ /___| (____ /\___ / \___ >__| +// \/ \/ \/ \//_____/ \/ + +// Manager represents a struct that contains session provider and its configuration. +type Manager struct { + provider Provider + opt Options +} + +// NewManager creates and returns a new session manager by given provider name and configuration. +// It panics when given provider isn't registered. +func NewManager(name string, opt Options) (*Manager, error) { + p, ok := providers[name] + if !ok { + return nil, fmt.Errorf("session: unknown provider '%s'(forgotten import?)", name) + } + return &Manager{p, opt}, p.Init(opt.Maxlifetime, opt.ProviderConfig) +} + +// sessionId generates a new session ID with rand string, unix nano time, remote addr by hash function. +func (m *Manager) sessionId() string { + return hex.EncodeToString(generateRandomKey(m.opt.IDLength / 2)) +} + +// Start starts a session by generating new one +// or retrieve existence one by reading session ID from HTTP request if it's valid. +func (m *Manager) Start(ctx *macaron.Context) (RawStore, error) { + sid := ctx.GetCookie(m.opt.CookieName) + if len(sid) > 0 && m.provider.Exist(sid) { + return m.provider.Read(sid) + } + + sid = m.sessionId() + sess, err := m.provider.Read(sid) + if err != nil { + return nil, err + } + + cookie := &http.Cookie{ + Name: m.opt.CookieName, + Value: sid, + Path: m.opt.CookiePath, + HttpOnly: true, + Secure: m.opt.Secure, + Domain: m.opt.Domain, + } + if m.opt.CookieLifeTime >= 0 { + cookie.MaxAge = m.opt.CookieLifeTime + } + http.SetCookie(ctx.Resp, cookie) + ctx.Req.AddCookie(cookie) + return sess, nil +} + +// Read returns raw session store by session ID. +func (m *Manager) Read(sid string) (RawStore, error) { + return m.provider.Read(sid) +} + +// Destory deletes a session by given ID. +func (m *Manager) Destory(ctx *macaron.Context) error { + sid := ctx.GetCookie(m.opt.CookieName) + if len(sid) == 0 { + return nil + } + + if err := m.provider.Destory(sid); err != nil { + return err + } + cookie := &http.Cookie{ + Name: m.opt.CookieName, + Path: m.opt.CookiePath, + HttpOnly: true, + Expires: time.Now(), + MaxAge: -1, + } + http.SetCookie(ctx.Resp, cookie) + return nil +} + +// RegenerateId regenerates a session store from old session ID to new one. +func (m *Manager) RegenerateId(ctx *macaron.Context) (sess RawStore, err error) { + sid := m.sessionId() + oldsid := ctx.GetCookie(m.opt.CookieName) + sess, err = m.provider.Regenerate(oldsid, sid) + if err != nil { + return nil, err + } + ck := &http.Cookie{ + Name: m.opt.CookieName, + Value: sid, + Path: m.opt.CookiePath, + HttpOnly: true, + Secure: m.opt.Secure, + Domain: m.opt.Domain, + } + if m.opt.CookieLifeTime >= 0 { + ck.MaxAge = m.opt.CookieLifeTime + } + http.SetCookie(ctx.Resp, ck) + ctx.Req.AddCookie(ck) + return sess, nil +} + +// Count counts and returns number of sessions. +func (m *Manager) Count() int { + return m.provider.Count() +} + +// GC starts GC job in a certain period. +func (m *Manager) GC() { + m.provider.GC() +} + +// startGC starts GC job in a certain period. +func (m *Manager) startGC() { + m.GC() + time.AfterFunc(time.Duration(m.opt.Gclifetime)*time.Second, func() { m.startGC() }) +} + +// SetSecure indicates whether to set cookie with HTTPS or not. +func (m *Manager) SetSecure(secure bool) { + m.opt.Secure = secure +} + +// ___________.____ _____ _________ ___ ___ +// \_ _____/| | / _ \ / _____// | \ +// | __) | | / /_\ \ \_____ \/ ~ \ +// | \ | |___/ | \/ \ Y / +// \___ / |_______ \____|__ /_______ /\___|_ / +// \/ \/ \/ \/ \/ + +type Flash struct { + ctx *macaron.Context + url.Values + ErrorMsg, WarningMsg, InfoMsg, SuccessMsg string +} + +func (f *Flash) set(name, msg string, current ...bool) { + isShow := false + if (len(current) == 0 && macaron.FlashNow) || + (len(current) > 0 && current[0]) { + isShow = true + } + + if isShow { + f.ctx.Data["Flash"] = f + } else { + f.Set(name, msg) + } +} + +func (f *Flash) Error(msg string, current ...bool) { + f.ErrorMsg = msg + f.set("error", msg, current...) +} + +func (f *Flash) Warning(msg string, current ...bool) { + f.WarningMsg = msg + f.set("warning", msg, current...) +} + +func (f *Flash) Info(msg string, current ...bool) { + f.InfoMsg = msg + f.set("info", msg, current...) +} + +func (f *Flash) Success(msg string, current ...bool) { + f.SuccessMsg = msg + f.set("success", msg, current...) +} diff --git a/vendor/github.com/macaron-contrib/session/utils.go b/vendor/github.com/macaron-contrib/session/utils.go new file mode 100644 index 000000000000..da91ef03a9e9 --- /dev/null +++ b/vendor/github.com/macaron-contrib/session/utils.go @@ -0,0 +1,60 @@ +// Copyright 2013 Beego Authors +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package session + +import ( + "bytes" + "crypto/rand" + "encoding/gob" + "io" + + "github.com/Unknwon/com" +) + +func init() { + gob.Register([]interface{}{}) + gob.Register(map[int]interface{}{}) + gob.Register(map[string]interface{}{}) + gob.Register(map[interface{}]interface{}{}) + gob.Register(map[string]string{}) + gob.Register(map[int]string{}) + gob.Register(map[int]int{}) + gob.Register(map[int]int64{}) +} + +func EncodeGob(obj map[interface{}]interface{}) ([]byte, error) { + for _, v := range obj { + gob.Register(v) + } + buf := bytes.NewBuffer(nil) + err := gob.NewEncoder(buf).Encode(obj) + return buf.Bytes(), err +} + +func DecodeGob(encoded []byte) (out map[interface{}]interface{}, err error) { + buf := bytes.NewBuffer(encoded) + err = gob.NewDecoder(buf).Decode(&out) + return out, err +} + +// generateRandomKey creates a random key with the given strength. +func generateRandomKey(strength int) []byte { + k := make([]byte, strength) + if n, err := io.ReadFull(rand.Reader, k); n != strength || err != nil { + return com.RandomCreateBytes(strength) + } + return k +} diff --git a/vendor/github.com/rainycape/unidecode/.gitignore b/vendor/github.com/rainycape/unidecode/.gitignore new file mode 100644 index 000000000000..836562412fe8 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/.gitignore @@ -0,0 +1,23 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test diff --git a/vendor/github.com/rainycape/unidecode/LICENSE b/vendor/github.com/rainycape/unidecode/LICENSE new file mode 100644 index 000000000000..50802eabef75 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/LICENSE @@ -0,0 +1,203 @@ +Copyright 2014 Rainy Cape S.L. + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/rainycape/unidecode/README.md b/vendor/github.com/rainycape/unidecode/README.md new file mode 100644 index 000000000000..9a109bcfdb22 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/README.md @@ -0,0 +1,6 @@ +unidecode +========= + +Unicode transliterator in Golang - Replaces non-ASCII characters with their ASCII approximations. + +[![GoDoc](https://godoc.org/github.com/rainycape/unidecode?status.svg)](https://godoc.org/github.com/rainycape/unidecode) diff --git a/vendor/github.com/rainycape/unidecode/decode.go b/vendor/github.com/rainycape/unidecode/decode.go new file mode 100644 index 000000000000..fe74bf3d8803 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/decode.go @@ -0,0 +1,41 @@ +package unidecode + +import ( + "compress/zlib" + "encoding/binary" + "io" + "strings" +) + +var ( + transliterations [65536][]rune + transCount = rune(len(transliterations)) + getUint16 = binary.LittleEndian.Uint16 +) + +func decodeTransliterations() { + r, err := zlib.NewReader(strings.NewReader(tableData)) + if err != nil { + panic(err) + } + defer r.Close() + tmp1 := make([]byte, 2) + tmp2 := tmp1[:1] + for { + if _, err := io.ReadAtLeast(r, tmp1, 2); err != nil { + if err == io.EOF { + break + } + panic(err) + } + chr := getUint16(tmp1) + if _, err := io.ReadAtLeast(r, tmp2, 1); err != nil { + panic(err) + } + b := make([]byte, int(tmp2[0])) + if _, err := io.ReadFull(r, b); err != nil { + panic(err) + } + transliterations[int(chr)] = []rune(string(b)) + } +} diff --git a/vendor/github.com/rainycape/unidecode/make_table.go b/vendor/github.com/rainycape/unidecode/make_table.go new file mode 100644 index 000000000000..028b62e7b393 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/make_table.go @@ -0,0 +1,71 @@ +// +build none + +package main + +import ( + "bytes" + "compress/zlib" + "encoding/binary" + "fmt" + "go/format" + "io/ioutil" + "strconv" + "strings" +) + +func main() { + data, err := ioutil.ReadFile("table.txt") + if err != nil { + panic(err) + } + var buf bytes.Buffer + for _, line := range strings.Split(string(data), "\n") { + if strings.HasPrefix(line, "/*") || line == "" { + continue + } + sep := strings.IndexByte(line, ':') + if sep == -1 { + panic(line) + } + val, err := strconv.ParseInt(line[:sep], 0, 32) + if err != nil { + panic(err) + } + s, err := strconv.Unquote(line[sep+2:]) + if err != nil { + panic(err) + } + if s == "" { + continue + } + if err := binary.Write(&buf, binary.LittleEndian, uint16(val)); err != nil { + panic(err) + } + if err := binary.Write(&buf, binary.LittleEndian, uint8(len(s))); err != nil { + panic(err) + } + buf.WriteString(s) + } + var cbuf bytes.Buffer + w, err := zlib.NewWriterLevel(&cbuf, zlib.BestCompression) + if err != nil { + panic(err) + } + if _, err := w.Write(buf.Bytes()); err != nil { + panic(err) + } + if err := w.Close(); err != nil { + panic(err) + } + buf.Reset() + buf.WriteString("package unidecode\n") + buf.WriteString("// AUTOGENERATED - DO NOT EDIT!\n\n") + fmt.Fprintf(&buf, "var tableData = %q;\n", cbuf.String()) + dst, err := format.Source(buf.Bytes()) + if err != nil { + panic(err) + } + if err := ioutil.WriteFile("table.go", dst, 0644); err != nil { + panic(err) + } +} diff --git a/vendor/github.com/rainycape/unidecode/table.go b/vendor/github.com/rainycape/unidecode/table.go new file mode 100644 index 000000000000..b7e41fa70ff0 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/table.go @@ -0,0 +1,5 @@ +package unidecode + +// AUTOGENERATED - DO NOT EDIT! + +var tableData = "x\xda,\x9c\x05\\\x1cW\xd7\xc6\xf7\xcc\xec.]\x96e\x17[\xa8\x84\x92ThB\x02qwwwe\x80\t;\xd8\x00\xcbB ^\xb7\xd4ݛ\xba\xb7\x91\xb6\x91\xba[jI=\xa9\xbb\xc4]\xde\xef9\x0f\xdf\xef\xfd\x9d\xff\xb9\xf7̝;w\xce}\xe6\xec얼\x1e\x8f\xe8\xff\xc4\xf0\x88az\xc4\xf4z\xc4\xeb\xf3\x88\xcf\xef\x11\u007f\x92G\x92N\xf3\xc8i\x01\x8f\x04\x92=\x92\x1c\xf4H0\xc5#)!\x8f\x84R=\x92\x1a\xf6H8\xe2\x91H\x9aG\xd2\xd2=\x92\x9eᑌL\x8fdfy$+\xea\x91h\xb6G\xb2s<\x92s\xbaGN?\xc3#g\x9c\xe9\x913\xcf\xf2\xc8Ym<\xd2&\xd7#\xb9g{\xe4\xec<\x8f\xe4\xb5\xf5H\xdbv\x1eiw\x8eG\xce9\xd7#\xe7\x9e\xe7\x91\xf3\xce\xf7\xc8\xf9\xf9\x1eɿ\xc0#\x17\xb4\xf7H\xfb\x0e\x1e\xe9P\xe0\x91\x82\x8e\x1e\xe9\xd8\xc9#\x9d\n=RX䑢\xce\x1e\xe9\xdc\xc5#]\xbaz\xa4k7\x8ft\xeb\xee\x91\xee=<ң\xa7Gz\xf6\xf2H\xaf\xde\x1e\xe9\xdd\xc7#}\xfaz\xa4o?\x8f\xf4\xeb\xef\x91\xfe\x03<2`\xa0G\x06\x0e\xf2Ƞ\xc1\x1e\x19<\xc4#C\x86zd\xe80\x8f\f\x1b\xee\x91\xe1#<2b\xa4GF\x8e\xf2Ȩ\xd1\x1e\x19=\xc6#c\xc6zd\xec8\x8f\x8c\x1b\xef\x91\xf1\x13<2a\xa2G&N\xf2Ȥ\xc9\x1e\x99<\xc5#S\xa6zd\xea4\x8fL\x9b\xee\x91\xe93<2c\xa6Gf\xce\xf2Ȭ\xd9\x1e\x99=\xc7#s\xe6zd\xee<\x8f,\x98\xef\x91\xf9\v\xe0\x17zd\xe1\"\x8f,*\xf6H\xb1\xe5\x11\xab\xc4#%\xa5\x1e)-\xf3H\x99\xed\x11{\xb1G\x16\x97{\xa4<摘\xe3\x11\xa7\xc2#\x15\x95\x1e\xa9\xac\xf2HU\xb5G\xaak\x87m\x87\xed\x80}\x01\xfb\x12\xc9\xf8\n\xfekl\xd07\xb0oa\xdf\xc1vb\x83vy\x8c\xe9\xb1\xef=F<\xfe\x03\xee\xf1G\xd8O\xb0\x9fa\xbf\xc0~\x85\xfd\xe61,\xfbw\xec\xd1\x1f؟?a\u007f\xc1\xfe\x86\xfd\x83\xfd\xf9\x17\xf6\x1fl7l\x0f\xf6p/\xf6g\x1fnu?\xec\x00\xec \xec\x10\xec04{\x04\xfe(Rs\fv\x1cv\x02v\x12{t\xcac4\xc4\xfe\x87\x06\x9e\xc7!\"b\x19\xf0&\xbc\x17\xde\a\xef\x17\x19\x96$Rz\x1a|\x00>\x19>\b\x9f\x02\x1f\x82O\x15\x19\x1e\x16)\x8b\xc0\xa7\xc1\xa7\x8b\x8c\xc8\x10\xb13\xe1\xb3\xe0\xa3\xf0\xd9\xf09\xf0\xa7ß\x01\u007f&\xfcY\"\xa3ڈ\x94\xe7\u009f\r\x9f\a\xdf\x16\xbe\x1d\xfc9\xf0犌>O$v>|>\xfc\x05\"cڋ8\x1d\xe0\v\xe0;\xc2w\x82/\x84/\x82\xef\f\xdf\x05\xbe\xab\x18c\xc6v\x13é\xe8.2\xb6\x87HEO\x91q\xbdD*{\xc3\xfa\x88\x8c\xef+R\xd5\x0f\xbe?\xfc\x00\xf8\x81\xf0\x83\xe0\a\xc3#\x05\xe3\x87\xc2\x0f\x13\x998\\\xa4f\x04\xfcH\xf8Q\xf0\xa3\xe1Lj\x91_3V\x8c\x9a\xf2qbL\x1c5^d\xd2\x04\x11w\"\xfc$\xf8\xc9\xf0S\u09ca1i\xc441\\{\xba\xc8\xd4\x19\"\xf53\xe1g\xc1φ\x9f\x03?Wd\xda<\x91\xf8|\xf8\x05\xf0\v\xe1\x17\xc1\x17\xc3[\xf0%\"\xd3KE\x1a\xca\xe0m\xf8\xc5\xf0\xe5\xf01\x91\x19\x8eH\xa2\x02\xbe\x12\xbe\n\xbe\x1a\xbe\x06ޅ\xaf\x85\xaf\x83\xaf\x87\x8f\xc37\x88\xccJ\x8845\x8a\xcci\x12i^\x02\xdf,2\xb7E\xf0l\xc2/\x83_\x0e\xbf\x02~%\xae\xbbJ\xa4d\xb5\xc8\xd0\va\x17\xa1}\xb1H\xcfK`\x97\xe2\xce.Ö_\x8e-\xbf\x02[}%\xec*\xd8\xd5\xd8\xf25\xb0kD\xba]+2\xf8:l\xef\xf5\"#o\x10Y|#\xb6\xf2&\xd8\xcdb\xc4\x1ao\xc1\xfe\xdc\n\xbb\r\xbbq;v\xe2\x0ed\xf9N\xd8]X\xe0\xdd\xc8\xee=\xc8\uef78\xc8}\xb0\xfb\x91µH\xe1\x98\a\x90B\xe7A\x91\xc9\x0f\x89\xd4>,Ɯ\xa9\x8f\x88t}\x14\xf6\x98\x18\xd3F?.F<\xf6\x04\xb2\xf2$\xb2\xf3\x14\xfc\xd3\xf0\xcf\xe0Οŝ?\x87;]'2s=\xfc\x06\xdc\xf9F\xdc\xe5\xf3\xb8\xcb\x17Ę;\xfaE\xc5&1Zb\x9b\x15[0\xe3V\x91\x1e/\xc1^\x16\xa3!\xfe\nR\xf6\xaaȲ\xd7\xc4X\xb6\xecu`\xc0\x1b\"m\xdf\x14c\xf8ܷ\x80\x96\xb7\xc5(kyG\x8c\xf1c\xdf\x05*\xde\x13\xa3\xaa\xe2}(b\xec\a@Ň\x10H\xc5Gx\x80\xb6\xe1\x01\xfa\x187\xfd\t\x84\xf9)n\xec3\xdc\xd8\xe7X\xdfv\xaco\a\xfc\x17\xf0_\xc2\u007f\x05\xff5\xfc7\xf0\xdf\xc2\u007f\a\xbf\x13\xd9܅9\xbe\xc7\x1c?\xc0\xff\b\xff\x93\xa0\"\xfd,\xa8\t\xbf \xaf\xbf\xe21\xf9\r\xfew\xf8?\x90\xd6?\x91ֿp\x95\xbfq\x95\u007f\xe0\xff\x85\xffOot\xb7\xde\xe3\x1e<\n{\xf5\x06\xf6\xe9\r\xec\xd7\x1b8\x80\x93\x0f\xe2\xe4Cb\x8c\x9ey\x18\x1bq\x04\x1bq\x14\x1bq\f\xd7;\x8e\xeb\x9d\xd0\xeb\x9d\xd4\xeb\x9d\xc2|\xff\xc3|\x1e\x03e\xc2@\x99\x807\u1f46\x8c\xf0\x19b\xfb\xe1\x93\xe0O3dL\xc0\x10'\x19>\b\x9fbȤ\x90!n*|\x18>b\xc8\xd44C\xea\xd3\xe13\xe03\r\x99\x91eH\"\n\x9f\r\x9fcȴ\xd3\r\x89\x9fa\xc8\xf43\ri8ː9m\fi\xce5d\xf4ن\xc4\xf2\f\x99\xd8\u0590\xb2v\x861i\xc69\x86\xe1&\xce5d\xeey\x86\xb4\x9c\x8f\x15\xe5cE\x17`%\xed\xb1\x92\x0e\xb8b\x01\xae\xd8\x11\xbe\x13|!|\x11|g\xf8.\xf0]1s7\xcc\xdcݐ\xaa\x1e\x86\xd4\xf4\xc4\xd5z\x19R\xd1\xdb0\xcaJ\xfa\x18F]m_\xcc\xd8ϐa\xfd\r)\x1d`\xa0P`M\x83\xb0\xb6\xc1\xb8\xda\x10Ü7h\xc1Pr\x98!C\x87c\xfd#\fY8\x12W\x1f\x85\xab\x8f6d\xec\x18\xcc6\u0590\xbaq\xb0\xf1\xb8\xdf\t\xb8߉\xb8\xea$\\u2V:\x056\x156͐\x92\xe9X\xd1\f\\g&\xeem\x16l6\xe6\x98c\xc8\u0e70yhχ-\x80-\x84-¼ņ\x94\xa3V\x97\x97\xc0Jaeȝ\x8d\xb9\x17#G\xe5\xb0\x18r\xef\xc0*\xb0\x0f\x95\xb8\xc3*X5\xac\xc60\xaa溆̪\x85\xd5\x19R]\x8f[\x8f\xc3\x1a`\t,\xa2\x11\x89\x1dф\x1c-1dd3V\xdc\x02[\n[\x06[\x0e[\x01[\t[\x85;Z\r\xbb\x10\x19\xb9\b\xbbv1Vu\t\xfc\xa5\xb0ː\xcb\xcbaW`UW\"3W\x19\xd2x5\xb2\xb3Ɛ\xa6kp\xf7\xd7b\xa5\xd7!\x8b\xd7\xc3n\xc0\xfe\xdd\b\xbbɐA7\xc3n\x81݊\xac߆;\xbf\x1d\x99\xbd\x03\x19\xbdӐQwA\x01w\xe3\x1a\xf7\x18Ry/v\xe3>d\xf5~\x8c]\v{\x00{\xd6\xf2 0\xf7!m=l\xe0\x11~\x04\x98\xf6(0\xec1\xc3X<\xf1q\xdcx\xfc\t\xa0\xe5IØ5\xeb)\xc3X\xb0\xe0i$\xea\x19س\x98\xf29\xf8u\x98~=nm\x03l#\xecy\xd8\vX\xf2\x8bX\xf2&C\xf27\x1b\xd2n\x8b!\xc5[\xd1~\t\xfee\xd8+h\xbf\x8a%\xbc\x06{ݐ\xfeo\x182\xf0M\xdc\xea[\x86\xcc|\x1b\xfe\x1d\xf8w1\xe6=C:\xbdoH\xd1\a\x86\xcc\xffА\x8e\x1f\x19\xb2h\x1b\xda\x1f#\xf6\x89!}?5\xa4\xf03\xcc\xf79\xc6n\xc7y;p\xde\x17\x86\x14|\x89\xf3\xbeB\xfbk\x1c\xff\x06)\xf9\x16\xe7~gȊ\x9dX\xcb.\xa4\xff{Cf\xff\x80\xf4\xfc\x88\xcd\xfd\t[\xf1\xb3!K~\xc1Z\xfe\xc19\xff\x1a2\xe0?\x8c\xdbM\x99\xee!\xf7\x92\xfb\xc8\xfd\xe4\x01\xf2 y\x88\xb9\x80\\H.\"KM\xb1\xcaL\xb1mS\x9cŦ\xb8\xe5\xa6$b\xa6\x94:\xa6\x94U\x98\x12\xab4\xa5\xbaʔ\xfajS\x1ajLitMYR\xcb3\xeb\xc8z2N6\x98\x92\x9f0\xa5c#{M\xe4\x12\xb2\x99\\J.#\x97\x93+L\x19\xb4\x92\xadU\xe4j\xf2B\xf2\"\xf2RS\x86\\fJ\xbf\xcbM\x19q\x05\xecJS\xc6\\\xc5#W\x9b2i\r[ט2\xe3Z\xf4\xaeñ\xeb1\xfe\x06S\x86\xdeh\xe2cҔ\xe17\xe3\x9c[L\x99{+\xfcm&\xde\foǠ;L\x19w\xa7)\xe3\xef2e\xc2\xdd&>&Mc\\\xfc^\xccp\x9f)\x93\xef7e\xeaZ\xce\xfb\x80)\xd3\x1e4e\xfaC\x98\xffaӘ\x1c{\x04\xe3b\x8f\xa2\x15\u007f\f\x83\x1f\xc7LO\xe0ГH\xe1SH\xe1Ӱg\x90\xc6g\x91\xc2\xe7\x10[gJ\xc9zS\xca7 \x95\x1bq\xecy\x13\x9f\x93\xf0/\x9ax;܄\x81\x9bM\xa9\xdcbJ\xd5V\xe4\xf8%Sj^Fn_\xc1\x1e\xbcjJ\xedk\xc8\xf9\xeb\xa6\xc4߀\xbd\x89ܿ\x85I\xdf6\x8d\xda\xd8;\xa6Q\x19{\x17\xad\xf8{\x18\xfa>\xa6\xf9\x00\x87>D\xfb#\xf8m\xf0\x1fs\xf1\x9f\xe0\xea\x9f\xea\x95>\xc3\x12?\x87m\x87\xed\xd0\x19\xbe\xc0\xf4_\x9ar\xfeW\x1c\xf75\xf9\x8diLk\xf8\xd64\xe2\rߙ2k\xa7)M\xbbL\x99\xf2\xbd)u?\xe0H\xed\x8f8R\xfb\x13Z\xb1\x9fъ\xfdb\xca\xc8_MY\xfc\x9b\xe6\xe3w]\xd0\x1f\xa6\x8c\xfe\x13r\xf9\vi\xff\x1b\xf7\xfc\x8fi\f\x1b\xfd\xafi\x94\xc6\xfeCҝ\xddX\x88\xb3\a\xb7\xbb\x17\xb7\xb5\x0f\xf2\xdaoJ\xc5\x01^\xf9 y\x88t[\xfc^\x19\x93\xe45\xe68\xa7yel\xc0\x8b7\x8ad/\xde#\x82^sz<\x96\xe25\xc6U\x840\"\xd5+3\xc2^sxK,\xe2\x95!i^\x19\x9a\ue559\x19^\x19\x95\xe9\x95\xe1Y^\x19\x11\xf5\x1asc\xd9^\x99\x9b\x83\xe1\xa7\xc3\xce\xf0ʸ3\xbd2\xfe,\xafLh㕉\xb9^\x99t\xb6W&\xe7yej[\xafLk\xe7\x95\xe9\xe7`\xdas\xbd2\xf2<\\'v\xbeט\x1e\xcf\xf7\x1a\xc3b\x17x\x91\xc3\xf6^\xef\xb4Xi\xac\x83W\xf2\v\xbc2\xa7#|'\\\xa7\x10+O\x14\x01Vg\xafX]\xbcR\xd2\xd5+\x8dݼR\xde\xdd+e=\xbcb\xf7\xf4╣\x97WZz{\xc5\xe9\x03\xeb\xeb\x95\xca~^\xa9\xea\xef\x95\xea\x01^\xa9\x19\xe8\x15w\x90Wj\a{\xa5~\x88W\xe2C\xbd\xd20\xcc+\x89\xe1^Y<\u008b}\x1a\xe9E\x11\x1f\xe5ž\x8c\xf6b#\xc7x\xbdq\xacd,V0\xce+\xcd\xe3\xe1'\xe0:\x13\xbd\x86\x93\x98\x04X\x93\x01{\n\xe0N\xf5\x1ae\x15ӼFy\xc5t\x8d\xcd@\xb7e&\x960\xcbk4;\xb3\xbdR1Nj\u05f5\xb9^\xbc\xa4\xcd\xf3\x9a\r\xf1\xd8|\\\xafb\x01F,\xc4\x02\x16yͲ\x96X1\x12\x85\xef@n\t\xee\xb6\x14\xd7)ӽ\xb2u\xbaň\x94#\x12ӈ\xa3\x91\n\x8c\xad\xc4\xd8*\xdd\xdej]A\rR\x19w1k\xbc\u058bG\xb0\u038bg\xa0\x1e)\x8e\xe3\xe6\x1a\x90\xc7\x04\xee\xa0\x11\xbe\t~\t\xae\xd9\fk\xc1,K1\xcb2\xf8\xe5\xf0+\xbcƤ\x86\x95^\xc3mX\xe5\x95)\xab\xbdRw\xa1\xd7ߡK\xe7Ν;\\\xe6UI]\xee\rh\xb7P#Wx\x83\x1d\xbah\x8b\xbd+y\xfc*\xf2j\xaf\xb4[\x03\xbb\xc6kL\u037f\xd6k\xd4\xe7_\a\xed\xe5_\x8f\xf4\xe4ߠ\xad\x1b\xb5u\x93\xb6n\xd6\xd6-^sn,\xffV\xaf\xd9\x12˿\rrʿ\x1d;\x99\u007f\an(\xffN\xdcP\xfe]ں[[\xf7h\xeb^mݧ\xad\xfb\xb5\xb5\x16\xb2\xcd\u007f\x00\x99\xcd\u007f\x10\xad\xf2\x87\xd0*\u007f\x18)\xc8\u007f\x04)\xc8\u007fT\x15\xf6\x98n\xee\xe3\x10W\xfe\x13\xd8\xd7\xfc'!\xb8\xfc\xa7\xb0\xd7\xf9OC\x87\xcf \x11\xcfz\x8d\x19\xf9\xcfy\x8dD\xfe:\xaf9.\x96\xbf\xdekV\xc6\xf27\xe0Yh\x88o\xc4~5ğ\xf7\x9a\xc3b\xf9/x\xcd\xd2X\xfe\x8blob{\xb3WFo\xf1Jl\xab\xea\xf7%\x95\xce\xcb<\xfa\n\x8f\xbe\xea\x95\xe2\xd7\xf4\x01y]\xb5\xf9\x86\xae\xf9M]\xf3[\xcc\xd3\xdb\xe4;\xba\xfewu\xfd\xef\xb1\xff>\xf9\x81\xce\xf7\xa1\xce\xf7\x11\xfb\xdbȏ\xc9O\xf0\x00|\n\xfb\f\x8f\xe4\xe7\xf0۽\xc6\x10{\x87\x17\xaf\xcc_\xa8@\xbeT\x81|\xe5\x95\xc1_þ\x81}\v\xfbNW\xb1SW\xb1\v\xcf\xea\xf7xJ~\xd0*\xf0\xa3\n\xf5'<\xb5?C\x8a\xbf\xc0\xff\n\xff\x1b\xe4\xf0;\xe4\xf0\a\xfc\x9f\xf0\u007f\xc1\xff\r\xff\x0fd\xf8/d\xf8\x1f\xb2\xb6\x1bY\xdb\x03\xbf\x17~\x1f\xfc~\xf8\x03\xba惺\xe6C\\\xe7a\xf2\bDw\x14\xa2;\xc6\xdeq\xf2\x04y\x92\xd4g\x8c\x8a\r\xf3a\xbf\x86\xfbd\xc2\b\x9f\xcc\x19铉\xa3|\xa8\xbf\xa3}2i\x8c\x0f\x1a.\x1e\xeb\x93\xc9\xe3|2v\xbcϘ\x1a\x9b\xe0\x93i\x13}2s\x92O\xa6O\xf6\xc9\xd4)>|P\x14O\xf5ɬi>cr\xf1t\\\xa7x\x06N\x9d铑\xb3\xb8\xd8\xd9\xe4\x1c\x9f\xf4\x9f\xeb\x93\xfcy>)\x9a\uf4f6\v|\xd2q\xa1O\x06-\xf2Ia1GX>\xb1J|RR\xea\xc3w\n\x9f\x94\xd9>\xb1\x17\xfb\xa4\xa5\x1c>\x06s|FCq\x85\x0fҭ\xf4\x89S\xe5÷\n\x1f\x9e\xe7\x1a\x84\xe3\xaeO*k}\x12\xab\xf3A\xc7\xf5>\xa3<\x16\xf7A\u007f\r>\xa9N\xf8P\xf0|R\xd3\xe4C)_\xe2\x13\xb7هG\xb2\xb8\xc5'\xb5K}R\xb1\xccg\xd4ǖ\xfb$\xbe\xc2'\x8d+}Ұ\xca'\xf5\xab}\xa8\xcd\xc5\x17\xfa\xa4\xe9\"\x9fQ[|1\xaeS|\tN\xbd\xd4'\x8b/\xf3\x19v\xd3\xe5\\\xf1\x15X\xfb\x95>\xe9t\x15{W\x93k\xc8k\xc8k\xc9\xebȵ\xe4\xb3>\x19\xfc\x1c\xeee\x1d\xeeu=&܀;و\xfe\xf3\xb0\x17\x10{\x11\xb6\t\xf1\xcd\x1c\xbd\xc5'\x89\xad\xc8\xd9\x1b>\xe9\xfb\x16#o\x93\xef\x90\xef\x92\xef\x91\xef\x93\x1f\x90\x1f\x92\x1f\x91\xdbȏ\xc9O\x91\xdbϐ\xdbϑ\xdb\xed\xc8\xd5\x0e\xdc\xf0\x17\xc8\uf5daůp\xe7_#S\xdf \x91\xdf¾Czw\"{\xbb`\xdf#{?\xc0~D\x96~\xf2I\xf1\xcfH\xdd/\xb0_5\xf3\xbf)~\xf7I\xdd\x1f\xc8۟\x9a\xe3\xbf0\xd5\u07fc\xe2?\xe4\xbf\xe4\u007f\xe4nr\x0f\xf4\xb3\xd7g\xb8\xcd\xfbp\xfb\xfbq\x83\a|\xd2\xee \x0f\x1d\"\x0f\x93Gȣ\xe41\xf28y\x82\x15~9\xaf\xd2/\x85Uزj\xbft\xa8\xe1\xd9.Y\x875\xd4\xc3\xe2\xb0\x04\xac\xd1o\xe475\x01\x89%@s3\xf2\xd9\xd0\xe2\xc7\xc7yl)Ҽ\f)^\x8et\xad\xf0K\xedJM\xf5*\xbfQ\x12[\x8d\x91\xb1\v\x91\xf0\x8b\xfcFM\xf3\xc5Hv\xf3%\xe8]\xeaGY\xb9\xcco\x96\x96\xc6.G\xac\xec\n\xe4\xfaJ\xd8U~cx\xc3պ%k\xfcfYY\xec\x1a\xecе\x88_\a\xbb\xdeo\xd4\xd7\xdf\xe0\x97\xa97\xc2n\x82\xdd\f\xbb\x05v+\xec6\xec\xeb\xed\xf0w`\xe3\xee\x84\xdd\x05\xbb\x1bv\x0f\xec^\xac\xea>\xbf1j\xf4\xfd~\x19\xb9\x16\xf6\x00\xecA\xbf4>\x84\xfdz؏o)\x8f\xf8eʣ\xb0\xc7T\x15\x8fc\xf7\x9e\xf0˸'aOa\xd5\xe5O\xa3\xf1\x8c_ʟ\x85\x00\x9e\xf3\xcb\xc4u\xf0\xeba\x1b`\x1b\xfd2\xfey\xd8\v\xb0\x17a\x9bp|3l\vl+\xec%\xd8\xcb\xd8\xfeW\xfc\xf8px\xd5oĚ_C\xefu\xa4\xe0\r\xc8\xf2M\xec\xf6[~õ\xdfV\xbc\x03\r\xbc\v\xd5&\xdeS\xbc\x8fc\x1f`\x91\x1fB0\x1f\xf9e\xce6\xd8Lj}\x86\xfe\xe7\xaa\xed\xedض\x1dP\x92\xbd\x133\xed\xf2\xcb9\u007f\xfae\xe1\u007fܹ\xdd\xe4\x1eh`/4\xb0\x0f\x1a\xd8\x0f\r\x1c\x80\x06\x0eB\x03\x87\xa0\x81\xc3\xd0\xc0\x11h\xe0(4p̏ϩ\xe3\xc8\xf0\t$)v\xd2/\xe7\x9f\xf2\x1b\x05՞$\xa3\xa8H\x92\xa4\xc8H\x92\x8ef\x92\xb4\xf5\xc2|I\xd2ɏ~\x12\xec\xb4$\xe9\x17H\x92A\xc9I\xb2\"\x98$KS\x92dy(I:\xa4&\xf1qO\x92\xfc\xf4$)\xc9H\x92\xf2LXV\x92\x94Ea\xd9I\x12\xcbI\x92\xa6ӓ\xa4\xe5\x8c$\x19}f\x924\x9c\x05k\x93$\u0379IFs\xec\xec$\xa9\xccK\x92\xaa\xb6IR\xdd.Ij\xceI\x92\xf8\xb9\xb0\xf3\x92\xa4\xf8\xfc$\xa9͇]\x90$\xd3\xda'I]\x87$\xa9/H\xc2\x03\xdb\x113t\xe2u\v\xc9\"\xb2s\x12\xbe\xdb\xc0\xbaº%ɐ\xee\xb0\x1e\xb0\x9eIb\xf7\x82\xf5\x86\xf5I\x92\x11}\x93\xc4\xe9\a\xeb\x9f$\x89\x01\xb0\x81\xb0AI\xe2\x0e\xc1%\x87\xe2>F$\xc9\xec\x91I2eT\x92\f\x1e\r\x1b\x93$\xcb\xc6&I\xc18^e<9\x81\x9cHN\"'\x93Sȩ\xe44r:9\x83\x9cI\xce\"g\x93sȹ\xe4\xb9\x80\\H.\"\x8bI\x8b,!K\xc92\xd2&\x17\x93\xe5d\x8ct\xc8\n\xb2\x92\xac\"\xab\xc9\x1a\xd2%k\xc9:\xb2\x9e\x8c\x93\rd\x82l$\x9b\xc8%d3\xd9B.%\x97\x91\xcb\xc9\x15\xe4Jr\x15\x94\xb0Z7\xefB\xec\xf2E\xd8ɋ!\x97K\x92d\xfc\xa5P\xc0eH\xfb\xe5I\xd2x\x05Tpe\x92,\xbe*\tE\xe1\xea$ԕ5\xd0\xc65\x10ԵI\xa8(\xd7A\x18\xd7CU7@M7B\x037AE7C \xb7$IŭI(2\xb7ᔆۓ\x8cX\xec\x8e$<\xdcw\xea\fwa\xf0\xddz\xe1{p\xf6\xbd8\xfb>\x9cy?\x82k\xb1\xdf\x0f$\xe1\xb5\xe7Ah\xeb!\x88\xf4a\b\xe7\x91$ò\x1e\x85:\x1eK2l\xfbqH\xe3\x89$\xc3u\x9f\x84v\x9eB\xa4\xf9i\b\xe5\x19D\xac\xe7xW\xeb\xc8\xf5\xe4\x06r#\xf9<\xf9\x02\xf9\"\xb9\x89\xdcLn!\xb7\x92/\x91/\x93\xaf\x90\xaf\x92\xaf\x91\xaf\x93o\x90o\x92o\x91o\x93\xef\x90\xef\x92\xef\x91\xef\x93\x1f\x90\x1f\x92\x1f\x91\xdbȏ\xc9O\xc8O\xc9\xcf\xc8\xcf\xc9\xed\xe4\x0e\xf2\v\xf2K\xf2+\xf2k\xf2\x1b\xf2[\xf2;r'\xb9\x8b\xfc\x9e\xfc\x81\xfc\x91\xfc\x89\xfc\x99\xfc\x85\xfc\x95\xfc\x8d\xfc\x9d\xfc\x83\xfc\x93\xfc\x8b\xfc\x9b\xfc\x87\xfc\x97\xfc\x8f\xdcM\xee!\xf7\x92\xfb\xc8\xfd\xe4\x01\xf2 y\x88`\xd6\xd4\xd4t\bHmA\x00\x1fs\x1d\x03R\xd2)\x80O\xe5\u0080T\x17\x05\xa4\xb9s@\xea\xbb\x04\xf0\xb1\xda5 U\xdd`\xdd\x03fUUU\x8f\x804\xf6\f\xe0\xf9\xe8\x05\xc4{\a$\xde' \xb1\xbe\xbc\xf1~d\xff\x80\xe4\x0f\x80\r\xd4\x14\fB\n\x06k\n\x86 \x05C5\x05Ð\x82\xe1\x01c\xea\xd4\x11\x9a\x83\x91\xb8\xffQ\xb0њ\x831\x9a\x83\xb1\xb8\xffq\xb0\U0005a0c9\x9cq\x1299`\x0e\x991a\nf\x9e\n\x9b\x16\x90\xe2\xe9\xf03xl&9\x8b\x9c\x1d\x90\xba9\x01\xb32\x16\x9b\x1b0\xcbc\xb1y\x01i\x99\x1f\xf0\x96!\x1d\vp?\xb1\x85\x01Y\xbc(`47\x17\xeb*\xac\x801~|\t\xb6\xa4T\x1be\x013\xaf(\xcf\x0ex\xf3\x8a\x8a\xf2\x16\a\xa4sy@\xba\xc4\x02\xd2\xd5\tH\xb7\x8a\x80t\xaf\fH\x8f\xaa\x80\xf4\xac\x0eH\xaf\x9a\x80\xf4v\x03ҧ6 \x85u\xbct=\x19'\x1b\xc8\x04\xd9H6\x91K\xc8f\xb2\x85\\J.#\x97\x93+ȕ\xe4*r5\x14v!\xec\"\xa8\xecbF.\x81\xca.\xd5\x14_\x86\x14_\xae)\xbe\x02)\xbeRS|\x15R|\xb5\xde\xdc\x1a\x8e\xbc\x86\xbc\x16Y\xbeN\xb3|=\xbb7\x907\"\xd17i\xa2o\x86\xd8nQ\xb1\xdd\n\xb1ݦb\xbb]\xc5v\a\xc4v\xa7\x8a\xed.\x88\xedn\x15\xdb=*\xb6{Ul\xf7Ql\xf7\xab\xd8\xd6Rl\x0f\xa8\xd8\x1e\x84\xd8\x1eR\xb1=\f\xb1=\xa2b{\x14b{\x8cW{\x1cb{B\xc5\xf6$\xc4\xf6\x94\x8a\xedi\x88\xed\x19\x88\xedY\x88\xed9\x8eY\a\xa5\xadgk\x03\xb9\x91|^\x15\xf7\x82*\xeeE(n\x13\x14\xb7\x99\xf1-\xe4V\xe8\xe0%\xb6^ք\xbc\x82\x84\xbc\xaa\ty\r\ty]\x13\xf2\x06\x12\xf2\xa6&\xe4-\x8ez\x9b|\a\tyW\x13\xf2\x1e\xbb\xef\x93\x1f !\x1fjB\xb6\xb1\xfb1\xf9\t\xf9)\xf9\x19\xf99\xb9\x9d\xdcA~A~\x19\x90\x82\xaf\xd8\xfa\x9a\xfc\x86\xfc\x96\xfcN\x1f\xa6\x9d\xaa\xc0]\xec\u007f\xaf\x1a\xfcAW\xf5\xa3J\xef'h\xf0gm\xfc£\xbf\x92\xbfA\x82\xbfC\x82\u007f@\x82\u007fB\x82\u007fA\x82\u007fC\x82\xff@\x82\xffB\x82\xffA\x82\xbb!\xc1=\x986\u007f/P\xbc\x0f\x13\xc6\xf7+\x0e\x04\x8c.E\a\x03FעC\x01\xa3[\xd1\xe1\x80ѽ\xe8H )\xafK^\xa7\xbc.EG\x03fQ\x97\x9e\xc7y\x95\x13\xe4I\xf2\x14\xe9Ifi#\x8dd\x147\xb6\xbc\xa4/\x19\xe5-Y\xcb[2\xca[\xb2\x96\xb7d\x94\xb7d-o\x1c\x90B\x86\xc8T2\x9c\x8cO\xc7H\xb2\x969\xf6\xd3Ɍd|Tf&k\xa9KF\xa9K\xd6R\x97\x8cR\x97\xac\xa5.YK]2J]\xb2\x96\xbad\x94\xbad-u\xc9Z꒵\xd4%\xb3\xd4%k\xa9Kf\xa9K\xd6R\x97\x8cR\x97\xac\xa5.\x19\xa5.YK]2J\x1d/\xd7!\x19\xa5.YK]2J]\xb2QRR\x98\x8cR\x97\x8cR\x97\x8cR\xc71]\x93Q뒍\xaa\xaa\xee\xec\xf6HF\xb1K\xd6b\xc7n\xefdT\xbbdT;\xf6\xfa\x91\xfd\x93Q\xed\xd8\x1a\xa89\x19\x84\x9c\f֜\fAN\x86jN\x86\xf1\xe0pr\x049\x92\x1c\xa59\x19\xad9\x19\xc3\xfeXr\x9c\xe6d\xbc\xe6d\"\xfb\x93\xc8\xc9\xe4\x14r*9\x8d\x9cN\xce g\x92\xb3\xc8\xd9\xe4\x9cd\x16\xc1d\x16\xc1d\x14\xc1d\bp\x01\x0f-LF\rd\xab\x98\xb4\xc8\x12\xb2\x94,#mrq2\na2\na2\na2\na2\na2\na2\na2\na2\na2\n!\x94R\x97,\xa3\x1b\x92\xfd\xa3\nG\x14N*L\xf0\xf4F\xb2\x89\\B6\x93-\xe4Rr\x19\xb9\x9c\\A\xae$W\x91\xab1\U00045c0b0\xf9Ō\\\x02\x11^\xaa\t\xbf\f\t\xbf\\\x13~\x05\x12~\xa5&\xfc\xaadT?\x0eZ\x83\x14O\xbc\x86\xcdk\x93Q\xfd4\xd9\xd7#\xc1\x13o`\xec\xc6d\x14?M\xf5͐\xdf-*\xbf[!\xbf\xdbT~\xb7\xab\xfc\xee\x80\xfc\xeeT\xf9\xdd\x05\xf9ݭ\xf2\xbbG\xe5w\xaf\xca\xef>\xca\xef~\x95\xdfZ\xca\xef\x01\x95߃\x90\xdfC*\xbf\x87!\xbfGT~\x8fB~\x8f\xf1j\x8fC~O\xa8\xfc\x9e\x84\xfc\x9eJ\xd6\xe2\a\xf9=\x93l4[\xcfB\u007f\xcfq\xd0:\xe8o\xbd\xeao\x03\xbb\x1b\xa1\xbf\xe7U\u007f/$k\xe9\x83\xfc6A~\x9byl\v\xb9\x15\xf2{\t\xf6\xb2\xe6\xe2\x15\xe4\xe2U\xcd\xc5k\xc8\xc5뚋7\x90\x8b7\x93\xb5\xf0i*\xde\xe6)\xef \x15\xefj*\xde\xd3T\xbc\xcf\xd8\aHŇ\x9a\x8am\xec~L~\x92\xac\x1f\xb8\x9f\xb2\xfd\x19\xf99\xb9\x9d\xdcA~A~I~E~M~C~K~G\xee$w\x91ߓ?\xe8\xc2~d\xf3'\xf2g\xf2\x17\xf2W\xf27(\xefw(\xef\x0f(\xefO(\xef/(\xefo(\xef\x1f(\xef_(\xef?(o7\x94\xb7\x87\xa3\xf7\x92\xfb\xc8\xfd\xe4\x01\xf2 y\x88\b\x05>\xc4\xee\xc3\xe4#\xe4\xa3P\xe1cA\xfd\xc2\xf18T\xf8\x04cO\x92O\x91OC\x89\xcf@\x89\xcfB\x89\xcf鞭\x83\x10\u05eb\x107\x04\xf5[\xc7\xc6 \n!G\xbe\xa0j|\x11j\xdc\x045nfh\v\xb9\x95|\x89|Y\xf3\xf3\n\xf2\xf3\xaa\xe6\xe75\xe4\xe7u\xcd\xcf\x1b<\xf8&\xf9\x16\xf96\xf2\xf3\x8e\xe6\xe7]\xcd\xcf{\x8c\xbd\x8f\xfc|\xa0\xf9\xf9P\U000f3371\x8f\xc9O\xc8O\xc9\xcf\xc8\xcf\xc9\xed\xe4\x0e\xf2\v\xf2Kh\xf2+\xb6\xbe&\xbf!\xbf%\xbf#w\x92\xbb\xc8\xef\xc9\x1f\xc8\x1fɟȟ\xc9_\xc8_\xc9\xdf \xcc\xdf!\xcc? \xcc?!̿ ̿!\xcc\u007f \xcc\u007f!\xcc\xff \xcc\xdd\x10枠\xb7\xa0K炽A\x1f\\\xe7\x82}A\xbf\xfa\xce\x05\xfb9\xcb\x01\xf2 y\x88j\xf0~\xd5\xe0Zj\xf0\x01\xd5\xe0\x83\xd0\xe0C\xaa\xc1\x87\xa1\xc1GT\x83\x8fB\x83\x8f\xf1\x92\x8fC\x83O\xa8\x06\x9f\x84\x06\x9fR\r>\r\r>\x03\r>\v\r>\xa7\x1a\\\a\r\xaeW\rn\xe0\x19\x1b\xa1\xc1\xe7U\x83/\xa8\x06_\x84\x067A\x83\x9byl\v\xb9\x95|\x89|Ys\xf1\nr\xf1\xaa\xe6\xe25\xe4\xe2u\xcd\xc5\x1b\xc8ś\xba\xddoq\xd4\xdbH\xc6;\x9a\x8cw5\x19\xef1\xf6>\x92\xf1\x81&\xe3CM\xc66\xc6>&?!?%?#?'\xb7\x93;\xa0\xbf/`_\xb2\xf7\x15\xf95\xf9\r\xf9-\xf9\x1d\xb9\x93ܕ\xa2U\xfe{\xb6\u007f\xd0E\xfd\xa8\x1a\xfc\x89\xfd\x9f\xc9_\xc8_\xc9ߠ\xc1ߡ\xc1?\xa0\xc1?\xa1\xc1\xbf\xa0\xc1\xbf\xa1\xc1\u007f\xa0\xc1\u007f\xa1\xc1\xff\xa0\xc1\xdd\xd0\xe0\x1e\x8e\xdeK\xee#\xf7\x93\aȃ\xe4!\xf20y\x84#Uz\xccL\x95\x9e\xb3R\xa5\xd7\xecT\xe9='U\xfa\xccM\xe5\u007f\xab\x98\x97\xea\x83+ʛϋ- \x17\x92\x8b\xc8b\xd2\"K\xc8R\xb2\x8c\xb4\xc9\xc5d9\x19#\x1d\xb2\x82\xac$\xab\xc8j\xb2\x86t\xc9Z\xb2\x8e\xac'\xe3d\x03\x99 \x1b\xc9&r\t\xd9L\xb6\x90K\xc9e\xe4rr\x05\xb9\x92\\E\xae\x86\xc0.T1]\xc4\xee\xc5ڼ\x84\xcdK\xc9\xcbTc\x97\xab\x9c\xae`\xffJ\xec\xebUl]M\xae\xc1\xf1\xe6kؼ\x96\xbc\x8e\xbc\x9e\xbc\x81\xbc\x91\xbc\tr\xbb\x19\"\xb8EEv\xab\xe26\xc6o\x87\xde\xee\x80\xde\xee\x84\xde\xeeRu\xdd\r\x99ݣ\x8d{Ѹ\x8fc\xee\x87\xe0\xd6Bp\x0f@p\x0f2\xf2\x10d\xf50[\x8f@t\x8f\xb2\xf5\x18\xf98\x16\xf8\x04\xae\xf3${OAz\xcf@v\xcfBr\xebTr\xebUr\x1b \xb9\x8d*\xb9\xe71\xe9\v\xa9Fs\xf3\x8b\x10\xdc&\x15\xdcf\x9e\xb6\x05ZڊK\xbc\xa4w\xf72C\xaf\x90\xafBm\xaf\xa5\x1a\xb6\xf3:F\xbc\x81\xb9\x9a\xdfT\xb5\xbdŃoCn\xef\xb0\xf5\x11D\xb7\x8d\xad\x8f\xc9O \xbdO!\xbd\xcf \xbd\xcf!\xbd\xed\x90\xde\x0eH\xef\vH\xefKH\xef+H\xefkH\xef\x1b\x8e\xfe\x96\xfc.Ո\xd5\xec\x04\xaaw\xb1\xff=\xf9\x03\xf9#\xf9\x13\xf93\xf9\v\xf9+\xf9\x1b\xf9;\xf9\a\xf9'\xf9\x17\xf97\xf9\x0f\xf9/\xf9\x1f\xb9\x9b\xdcC\xee%\xf7\x91\xfb\xc9\x03\xe4A\xf2\x10y\x987\xac\u007f\x95?\x0f#[\xe6\x87\xf5\xaf\xf1\x17\x84\xa5ia\xd8h\x89-\nKKqX\xf2\xad\xb04\x97\x84\xa5\xbe4,Uea|P\xdba3\x1e\x8f-\x0eK\xbc<,\xb1XX,'lV\xc6\xe3\x15\x18T\xc9UV\x91\xd5d\r钵d]\x18\x0fS}X\x9cx\x18\xcfQCX\x12\x890\x1e\x9fưLm\n\xe3SpIX\xc67\x87\xf1I\xd8\x12\x16{i\x18\x9f\xcf\xcb\xc2\xe2.\x0f\xe3\xa3yEX&\xac\f\xcb\xe8U8{\xb5\x9e}5g\\C^C^K^\x87\x8c^\xaf\x19\xbd\x01\x19\xbdQ3z\x93f\xf4fd\xf4\x16\xcd\xe8\xad\xc8\xe8m\x1cy\xbbf\xf4\x0e\xcd\xe8\x9d\xcc\xe8]\x9aѻ\x99\xd1{4\xa3\xf7\"\xa3\xf7iF\xefGF\xd7jF\x1f@F\x1fDF\x1fҌ>\x8c\x8c>\xa2\x19}\x14\x19}L3\xfa83\xfa\x84f\xf4If\xf4)d\xf4i\xcd\xe83\xc8\xe8\xb3\xc8\xe8s\xc8\xe8:$k=2\xbaA3\xba\x11\x88?\x8f\x84\xbe\x80\x84\xbe\x88\x84nbB7\xe3\xc4-\x18\xbb\x15c_\xe2b_\x0e\xcb\xecW ⾳\xfb潪b\x9eT\x94\xf7\x9az\xb7(\xefu\xf8\xf9\xee\xfc\xbc7\xe0/\x98\xd4>\xef#\x9e\xb1\x8d\xfc\x84\xfc\x94\xfc\x8c\xfc\x9c\xdcN\xee \xbf \xbf$\xbf\"\xbf&\xbf!\xbf%\xbf#w\x92\xbb\xc8\xef\xc9\x1f\xc8\x1fɟȟ\xc9_\xc8_\xc9\xdf\xc8\xdf\xc9?\xc8?ɿȿ\xc9\u007f\xc8\u007f\xc9\xff\xc8\xdd\xe4\x1er/\xb9\x8f\xdcO\x1e \x0f\x92\x87\xc8\xc3\xe4\x11\xf2(y\x8c\xb9\x80\\H.\"\x8bI\x8b,!K\xc92\xd2&\x17\x93\xe5d\x8ct\xc8\n\xb2\x92\xac\"\xab\xc9\x1a\xd2%k\xc9:\xb2\x9e\x8c\x93\rd\x82l$\x9b\xc8%d3\xd9B.%\x97\x91\xcb\xc9\x15\xe4Jr\x15\xb9\x9a\xbc\x90\xbc\x88\xbc\x98\xbc\x84\xbc\x94\xbc\x8c\xbc\x9c\xbc\x82\xbc\x92\xbc\x8a\xbc\x9a\\C^C^K^G^O\xde@\xdeH\xdeD\xdeL\xdeB\xdeJ\xdeF\xdeN\xdeA\xdeI\xdeE\xdeM\xdeC\xdeK\xde\x17\x91!\xf7Gd\xe8ڈ\x8cz \"\xc3\x1f\x8cȈ\x87\"2\xf3\xe1\x88\xcc}$bL/~4\"c\x1e\x8bȸDZ\xabODd\u0093\xd0\xdeS\x11\x99\xf4tD&?\x131\xe6ƞž?\x17\x91i\xeb\"2}}Dfl\x88\x18\x93\x8b7F\x8cq\xc5\xcfG\x8cQ\xf9/Ddʋ\x11cZlSD\xff\x99\xc6\xe6\x881\xacx\v\xce\xcb\xdf\x1a\x91a/\xa1\x17{9\x82\xfa\x18\x91\xb1\xafFd\xf4k\xb8\xfc\xeb\x11\x99\xf3FDf\xbd\x191f\xc7ފ\x18\x93F\xbcͥ\xbeC\xbeK\xbeG\xbeO~@~H~Dn#?&?\xc1#\xf9)\x1e\xe0\xcfP*>\xc7\xe3\xbd\x1d\x8fՎ\x884~\x11\x91\x96/\xf1\xcc\x17\u007f\x85'\xefk\x14\x94o\xf0@\u007f\x8b\a\xfc;<\xfa;\xf1\x84\xee\xc2\xe3\xff}\x04\x9f\x00?\xe0i\xff\x11O\xf9O\x11i\xf8\x19O\xe7/\xa8\tſ\xa2\xfc\x14\xff\x86ғ\xff{D\xea\xfe\xd0\xe7\xe2ψ\xfe\x93\x8d\xbfP\x80\x8a\xff\xc6y\xf9\xff\xa0\x1c\xfd\xab\xe5迈,ٍ\x92\xb4\aeb/.\xbf\x0f%d?Jǁ\x88\xb1$v0b\xb8\xf6\xa1\x88,>\xcc\xe5\x1e!\x8f\x92\xc7\xc8㭏\xe3\tvN\x92\xa7HO\x9a\x94K\x9aQ^n\xa4I\x8d\x99&e\xde4\xd45_\x9a\xd4\xfbӤ:)MJNK3JJ\x02i\x12ON\xc3#\x9b\x92&\x15\xa14\xa3\xa2\"5MJ\xc3iR\x19I\x93\x86\xb44\xa9MO\x93XF\x1a\nh&P\x93\x05\x94E\x81\x92l\xccW\x9e\x93f\xd4ל\x0eԟ\x01\xc4\xce\x04&\x9e\x95fT\x97\xb4\x01&\xe6\xe2\n\xe5g\x035m\x81x\xbb4\xb3$^~\x8e\xb2\xe1\\e\xc9y\xca\xf8\xf9ʊ|\f\xa9\xb8\x00(m\x0f4t\x00j\v\x80\x89\x1dq\xb8db',\xb2\xbc\x10\xa8)\x02\xca:\x03\xf5]\x80\xea\xae@I\xb743^R\xde\x1d\x8c\xc7{\xe0\x96z\"X\xd1\v(\xed\rT\xf6\x01\x1a\xfa\x02\xb5\xfd\x80\xd8\xe04\x99;\x04\xf9\x19\x8a\xb4\fC6\x86#\x1b#p\xd6H\xc4G#\x0fc\x90\x82\xb1\xb8\xfdq\xb8\xfd\xf1i2q\x02bSӌ\xd2\xcai@lf\x9aQ[2\v\x988;͈\xc5\xe6\xa4ɔ\xb9i\xace\xe4|r\x01\xb9\x90\xb4\xd2\xc4*I×\xd2\xd24\xa3\xd9*K3\x9b-\xdbN3lwq\x9a\xd8\xe5\xe8\xdan\fGl'M܊4\xa3ɪL3\x9b,\xbb*\r{_\x8d\x03nM\x9a$\\\xc4l\xb7\x16\x87\xed:\xc0\xa9ǁD\x1c\xb3$\x1a\xd0r\x12i\xe24\xa6\x99V'\xb7I\x99X\x92\xe6mF\xa79\xcd\a\xd7춤ym\xb7\x93\xbb\x94.\xb1,\xcd\ag'\x96㨆W\xb4\xfa\xc4\xca4/\xc2\xee\xaa4\x13n\xb5v\x9a\xed\v\xb5\xe3^\xa4L\\\x8cq\x88Y\x97\xa4\xf9\xe9\xedK[\x1b\xb6{\x19.\x87a\x97\xd39W\xa4\x99\x89N֕i^о*-)щ\x97\xbbZ\x03\xcd\xf6\x1a=\x9a\xb8\x06Cq\xf8ZL\xa9\x87\xafc\u05fe\x1e\x13\xea\x18\xf7\x06ƛ\xed\x1b\x19O\xdcD\xe7܌\xf5\xa3w\v֏\xc1\x89[\x11u:%nK3\x9dN\xd6\xedi^\ak\xbaC;\xee\x9d\xca\xc4]\x1a\xb2\x13wkg\xc6=i2\xe3\xde4\xef\f\\\xec\xbe4sF\xa7\xc4\xfdJgm\x9a1c\xc6\x03ܧ\aɇȇ\xc9G\xc8G!\x95\xc7\xf4Qz\x1c\x88?\x81\xe7\xe9I<\x00\x15O\x01\xb1\xa7!\xa1gҤ\xea\xd94\xa3\xaa\xfc9\xa0z\x1dP\xb2\x1e\x88o\x00\x1a6\x02\xb5\xcf\x03\xb1\x17\xa0\xb4\x17\xa1\xb4M\xfa,l\x86ܶ\xe8s\xb7U\x1f\xad\x97 \xb0\x97!\xbaW\xf0ܽ\n\xe1\xbd\x06\u1f4e\xe7\xee\r\\\xb0\xea\xcd4\xb3<^\xfe\x96\x8e{[\x9f\xbew\x80\xf8\xbb\xc0\xdc\xf7\x80\x86\xf7\xf59\xfc \xcdh\xa8\xfa0ͬ*\x8f\u007f\x84k\xd5l\x03\xca>F\xbf!\xf6\t\x9aU\x9f\xa2Y]\xfe\x992\xfe9X\x12߮\x8c\xedH3\xeb'\xd6~\x81v<\xfe%\x06\xce\xfd\n\xa8\xfc\x1a\x98\xf2\r\x9e\xe0\xf2o\x81\xaa\xef\xf4\x81\xde\t\xc4w\xa5\x99\xd5\xf1\xf8\xf7h\xce\xfd\x01(\xfd\x11\x88\xfd\xa4\x8f\xfaϸ\xa9\xaa_\xf4\x99\xfd\x15OF\xec7}<~\xd7G\xf6\x0f}Z\xff\x04\xaa\xfe\xd2\a\xf5o\x05\x12\x9f\x01\xce\xe7\xe9f\xb1em\am{\a\x02\xf6\x17\x80\xfb%\x87~\x95n\xb4X_\x03\x89o\x00\xe7\xdbt\x13\xc5\xe2;жw\"`\xef\x02\xdc\xef\xd1o\xb2~\x00c֏\xca\xc4OJ\xe7\xe7t/\"\xd6/\xeal\xfbW\x8dٿ)\xdd\xdf5\xd4d\xfd\x91\x8e\xb7\x94?\x81\xc4_\x80\xf3w:\xdeW\xac\u007f@\xdb\xfe\x17\x01\xfb?\xc0\xddͅ\xecI7ʬ\xbd@b\x1f\xe0\xecO7\xcb,\xeb\x00h\xdb\a\x11\xb0\x0f\x01\xeea\xf4\x9b\xac#`\x99uT\x998\xa6t\x8e\xa7{\x11\xb1N\xa8\xb3\xed\x93\x1a\xb3O)\xdd\xffi\xa8\xc9\xf2d\x18\x15\x96\x00\t\x03p\xcc\f\xb3\x02\xb5\x1cD-G\xc0\xf6\x03n\x12\xfaM\xd6i\x19F\xb9\x15\x00\x12ɀ\x13\xcc0\xcbQ\xcbA\xd4r\x04\xecT\xc0\rg\xf0\xdf\xc6!\xdad\xa5\xb1\x9d\xaem'#Ë\x88\x95\xa9\x0e\xb5\\cv\x94dz\xc9\x1cDʭӕ\x893\x94Ι\x18\x8a\v\x9c\xa5\x0e\xf5\\cv\xae\xd2=\x9bg\xe4e\x98\r1\xab\xad2\xd1N霓\xe1E\xc4:W\x1d*\xba\xc6\xec\xf3\x95n\xbe\x86P\xd13\xf0\xfd\xc0j\xafLtP:\x05\x19^D\xac\x8e\xeaP\xd65f\x17*\xdd\"\r\xa1\xb2g\x98\xb51\xab\x8b2\xd1U\xe9t\xcb\xf0\"buW\x87\xf2\xae1\xbb\xa7\xd2\xed\xa5!Tx\\2n\xf5Q&\xfa*\x9d~\xb8<>\x10\xfa\xabC\x85ט=P\xe9\x0e\xd2\x10*<:-\xd6\x10eb\xa8\xd2\x19\x86\x03\x10\xdcpu(\xf3\x1a\xb3G*\xddQ\xbc\xfb\xd1\x19\xc6bk\f\x90\x18\v8\xe32\xcc\xc5(\xf2 j<\x02\xf6D\xc0\x9d\x84~\x9359è\xb5\xa6\x00\x89\xa9\x803\rkEu\aQ\xdc\x11\xb0g\x02\xee,\xf4\x9b\xac\xd9\x19f}\xb35'ìn\xb6\xe6\xe2\xe4fk\x1e\xaf6\x9f\\@.$\x17\x91Ť\x95!y%\x19RX\x9a!\x1d\xcb2\xa4\x9f\x9d!}\x17g\x98}\xfb\xe6\x95gȠX\x86QT\xe4dH\x97\x8a\f\xe9Z\x99!ݪ2\xa4{u\x86\xf4\xa8ɐ\x9en\x86\xf4\xaa͐\xdeu\x19ҧ>\xc3\xecҹ \x9eav\xed\\Аav\xeb\\\x90\xc80\xbbw.h\xcc0{t.h\xca0{v.X\x92a\xf6\xea\\Мa\xf6\xee\\Вa\xf6\xe9\\\xb04ë\u007f\x1d\xb6,#\xa9K\xe7\x8e\xfa\xe7a˹\xa6\x15\xe4Jr\x15\xb9\x9a\xbc\x90\xbc\x88\xbc\x98\xbc\x84\xbc\x94\xbc\x8c\xbc\x9c\xbc\x82\xbc\x92\xbc\x8a\xbc\x9a\\C^C^K^G^O\xde@\xdeH\xdeD\xdeL\xdeB\xdeJ\xdeF\xdeN\xdeA\xdeI\xdeE\xdeM\xdeC\xdeKޗ!\xd6\xfd\x19b\xaf\xcd\x10\xe7\x81\fq\x1f̐\xc4C\x19\xd2\xf8\xb0>\x90\x8fd\xa0\x86?\xaa\xcf\xdfc\xfaT>\xae\x0f\xe1\x13\xfa\x90>\t4>\x95\x81W\xb5\xa7\x01\xfb\x19\xc0y\x16p\x9f\x03\x12\xeb\x80\xc6\xf5\x19x;\xdb\x00\xd8\x1b\x01\xe7y\xc0}\x01H\xbc\b4n\xca\xc0\xdb\xd5f\xc0\xde\x028[\x01\xf7% \xf1r\x06>\xc0^\xc90c5֫\x19\xf8\xf0\x8a\xbd\x86\x80\xfd:\xe0\xbc\x01\xb8o\x02\x89\xb7\x80Ʒ3̺\x84\xf5\x8e\xd2~W鼧t\xdfW&>P6~\x98\x81w\xa7\x8f2$\xbe\r\r\xfbc\xc0\xf9\x04p?\x05\x12\x9f\x01\x8d\x9fg\xa0\x02n\xcf\xc0\a\xfd\x0e\xb4\xec/в\xbfD\xcb\xf9\n-\xe7k\xb4\xdco\x80ķ@\xe3w\x19fY\x95\xb5\x13\x8fJ\x95\xb5Ki\u007f\xaft~P\xba?*\x13?)\x1b\u007f\xe6s\xfa\v\x9f\xc6_\xf9\x9c\xfe\xc6g\xf2w>\xb9\u007f(\x1b\xff\xcc\xc0g\xcb_\x80\xfd7\xe0\xfc\x03\xb8\xff\x02\x89\xff\x80\xc6\xdd\x19\xa8\xe2{\x00{/\xe0\xec\x03\xdc\xfd@\xe2\x00\xd0x\x90\x9bw\x88\x9d3\xbd(GN\x17\xb4\x9d\xae\x99f\xad\xe3tC\xd3펦\xeb\xf6 {f\xeaW\x8b^\x99\x10po\x1c\xb3\xfadj\x05\xeb\v6\xd9\xfd\xc8\xfeJg\x009\x10\x13\xe2F\a\xb5\xba\xc1\x1as\x87\x90C5\xe4\xba\xc3Z\xddp\x8dY#ȑ\x1a\xb2\xacQ\xadnt\xab\x1b\x93)\xb5ca\xe32%6>\x13\x9a\x9b\x90\xe9\xc5˥3\x11mgR\xa6\xd9\xe08\x93\xd1t\xa7\xa0\xe9\xbaS\xc9i\x99\xfa\xb9<=\x13✁c\xd6\xccL}\x1f\x9d\x056ٳ\xc99Jg.9\x0f\x13b\x8d\xf3[\xdd\x02\x8d\xb9\v\xc9E\x1ar\xdd\xe2Vgi\xcc*!K5\x84\x17\xe7Vg\xb7\xba\xc5ؐr\x1cn\xb0cJ\xc7Q\xba\x15J\xab2\x13orU\x99^\xbc\xda9\xd5h;5\x99f\xa5\xe3\xb8h\xba\xb5h\xban\x1dY\x8f\x80\x15\xcf\xd4W\xc0\x86L}\x99K\x90\x8dJ\xa7\x89\\\x82Y\xb0\xd0\xe6Vע1w)\xb9LC\xae\xbb\xbcխИ\xb5\x92\\\x95\xc9\xd7\xc4խ\xee\xc2Vw\x11\xc4s1\xae\xd7t\t\xc6رKuE\xb1\xcbt\x19\xb1\xcbu\x05\xb1+2\xf1B~e\xa6\x17o\xe8\xceUh;Wg\x9a\xa5\x8e\xb3\x06M\xf7\x1a4]\xf7Z\xf2:\x04\xac\xeb3\xf5M\xfe\x06\xb0ɾ\x91\xbcI\xe9\xdcLނY\xb0\xda[[\xddm\x1aso'\xefА\xeb\xde\xd9\xea\xeeҘu7y\x8f\x86,\xeb\xdeVw_\xab\xbb\x1fr^\x8bM\x8d=\x90\x89\x9a\xf8`\xa6\x17_6\x9d\x87\xd0v\x1e\xce4\xab\x1d\xe7\x114\xddG\xd1t\xdd\xc7\xc8\xc7\x11\xb0\x9e\xc8\xd4/\xa5O\x82M\xf6S\xe4\xd3J\xe7\x19\xf2ŶU=\xd7\xea\xd6i\xcc]OnА\xebnlu\xcfk\xccz\x81|QC\x96\xb5\xa9\xd5mnu[2\xa5z+\xec%\\3\xf62\x1a\xaf\xc0^\xcdD]~-Ӌ\xef\x17\xce\xeb\x99Z\x9e3\xcd\x1a\xc7y\x13M\xf7-4]\xf7m\xf2\x1d\x04\xacw3\xf5{\xc8{`\x93\xfd>\xf9\x81\xd2\xfa\x90\xfc\b\xb3\xe02\xdbZ\xddǭ\xee\x13<\xee\x9f\xe2\xdc\xf2π\xd8\xe7\x99\xf8 ٞ\xe9\xc57|g\a\xda\xce\x17\x99f\x95\xe3|\x89\xa6\xfb\x15\x9a\xae\xfb5\xf9\r\x02ַ\x99\xfaK\xc0w`\x93\xbd\x93ܥt\xbe'\u007f\xc0,\xc8Ǐ\xad\xee'\x8d\xb9?\x93\xbfh\xc8u\u007fmu\xbfi\xcc\xfa\x9d\xfcCC\x96\xf5g\xab\xfb\v5\xe7o\xd8?\xb0\u007fQ\xa6\xec\xff2\xbdx\x05sv\xa3\xed\xec\xc94㎳\x17Mw\x1f\x9a\xae\xbb\x9f<\x80\x80u0S\xbf\xbb\x1f\x02\x9b\xec\xc3\xe4\x11\xa5s\x94<\x86Y\xb0\xa2\xe3\xad\xee\x84\xc6ܓ\xe4)\r\xb9\xee\xffZ\x9d'K\xbf\xeb\vid!dYf\xab\xf3\xb6:_\x96\xc4\xfd\xb0\xa4,#\xdet\x1a\x1a\x014*\x93qBeS\x10\xcdY)\x18\x87*\x14\x82\xc3\x13\x9e\n\x87\a'\f\a)F\xb2\xf47\x824\xa5\x93\x8eP\xccq2\xb4\xe3fj\aE];V4\x8b\xbf+d\xabk\xb2sZ\xdd\xe9t\xce\x19\xad\xee\xcc,\x9f:\xe7\xac\xff\xf7m\x18vs[\xddٌ\xban\xde\xff\xfb\xb6\f[\xedZ\xdd9\x8c\xe2u\xfb\xff\xfdyXu\xec\xfc,|\x18\xe6gy\xf1mƹ\x00m\xa7}\x96\xd9\xec8\x1d\xd0t\v\xd0tݎd'\x04\xac\xc2,\xfd\xd6S\x046ٝ\xc9.J\xa7+\xd9\r\xb3`I\xdd[]\x0f\x8d\xb9=\xc9^\x1ar\xddޭ\xae\x8fƬ\xbed?\r\xe1E\xbb\xd5\rhu\x03\xb3\xa4y\x10l0l\x88\xaeih\x96Qo\x0fS\fςdGdy\xeb\xb1ܑ\b8\xa3\xb2\xccz\xc7\x19\x8d\xa6;\x06M\xd7\x1d\x8b\x11\xee8\xf4\xad\xf1Y\xfa\xfb\xcf\x04\xf4\xad\x898\x03\x13Oju\x93\xb3\xa4~\nl*lZ\x16\u07bd\xa7gy\xf12\xee\xcc@ۙ\x99e.v\x9cYh\xba\xb3\xd1t\xdd9hZs\xb3\xf4u}\x1e\xc6\xe9o&\xadnA\x96,^\x98\xa5\xdfY\x16\x91\xc5J\xc7\"K\xb2\xf0\xfd\xc5qJ[]\x99\xc6\\[;\xae\xbbX;Vy\x16\xbf\xfaIJ|\xfa=\xc7r\xfe\xdfWd\xa1\\U\xe2\x18櫢s\xaa\xe9\xdc\x1a:\xcb\xcd\xd2\xff\x1c[\v6\xdbuJ\xa7^\xe9ƕVC\x16^\x1c\x13\x80Әe\xe2\xc2Mh\xbaK\xd0t\xddf4\xad\x96,\xfd\xe5oi\x96Ė\xc1\x96#T\xb9\"\xcb[\x87\xeb\xaf\xcc2\xea\x9cUYf\x9d\xe3\xacFӽ\x10M\u05fd\bM\xeb\xe2,\xfd\xf9\xea\x92,\xa9\xbb\x14k\xa8\x8aٗ\xd19\x97ӹW\xd0YW\xea\xf6\\\xa5[r\xb5n\xc6\x1a݁k\xb2|5\xf8F\xe8\\\x9be֔;\xd7eyA\xe7z\xed\xb87h\xc7uoԎu\x93v,\xeb\xe6,T\xa6[\xb2\xf4\x8f9o\xe5\x03s\x1b\x1f\x98\xdb\xf9\xa4\xdc\xc1G\xe4Nf\xfa.\xe6\xf8nf\xf5\x1e\xa6\xf3^\xcd\xdb}Y&\x96u\u007f\x96\x17t\xd6j\xc7}@;\xae\xfb\xa0v\xac\x87\xb4cY\x0fC\x11\xb1G8ѣ\x9c\xe8\xb1\xd6]z\x9c\xf3=ѺKOrڧZw\xe9i\x9d\xfd\x99,)y6K\xec\xe7\xb2\xc4Y\x97%\xee\xfa,\xb16d\xe1\xbdm#\xe0<\x0f\xb8/\x00\u058b\xb8\v{\x13\xe0l\x06\xdc-\x80\xb55\v\x1f\xe9/\x01\xceˀ\xfb\n`\xbd\xaa{\xf5\x9a\xee\xd5\xeb\xbaKo\xe8\xfe\xbc\x99e\x96\xc7\x12o)ݷ\x95\xf6;Y^\xd0~W;\xce{J\xeb}\xa46\xf1\x81&\xf9C\xcd\xf9GY\xfa\x03\xe76\xcd\xfcǚ\xf4O\xb0\x88ħ\xba\x9c\xcftu\x9fg\xe9\xef*\xdbu\x8d;ty_@\x02M\x89/\x95\xeeWJ\xfb\xeb,\xaf\xfe\x02\xf8\x8dv\x9co\x95\xd6wz\xf7\x89\x9dL\xc8.f\xea\xfb,~G\xff\x81\t\xfb\x91\xc9\xf9I\xa5\x98\xf8Y\xe9\xfe\xa2\xb4\u007fU\x8d\xda\xf6o\xdaq~WZ\u007fd\xe1k쟀\xfb\x17`\xff\x9d\xa5\xdfb\xffA\xd3\xf9\x17\xb0\xfe˒\xda\xddY\xf8\xf2\xb3\ap\xf7\x02\xf6\xbe,\xfd\x81b?\x9a\xce\x01\xc0:\x98eV\xc6\x12\x87\x94\xeea\xa5}$\xcb\v\xdaG\xb5\xe3\x1cSZ\xc7\xc1\xca\xc4\t\xa5{Ri\x9f\u00a0J\xdb\xfe\x9fv\x1cO\x14\xb4$jTV\x1aQ|\xd71\x01\xd7\vؾ\xa8\xfe\x8c\xe7G\xd3I\x02\xacӢ\xf8\xbe\x14\x00\xdcd\xc0\x0eF\xf5\xb7\xe9\x144\x9d\x10`\xa5F\xf1e!\f\xb8\x11\xc0N\x8b\xea\x0f@\xe9h:\x19\x80\x95\x195*\x12Y\x8a(\xe0f\x03vNT\u007f\x9b9\x1dM\xe7\fř\x80u\x16\x82\x15\x896J7Wi\x9f\x1d\xf5\x82v\x9ev\x9c\xb6J\xab]\x14\xdf\xec\xce\x01\xdcs\x01\xfb\xbc\xa8\xfe\n\u007f>\x9aN>`]\x10\xc5\x17\xa7D{\xa5\xdbAi\x17D\xbd\xa0\xddQ;N'\xa5U\x88\x93b\x89\"\xa5\xdbYiw\x89\xe2)\xb0\xed\xae\xdaq\xba)\xad\xeeQ}\x84\x13=\xe8ܞtv\xaf\xa8O\x9dݛ]\xa7\x0f\x9d\xd57\xaa\xdf\xc7\xfa)\xdd\xfeJ{\x80\x1e\xb0\xed\x81\xdaq\x06)\xad\xc1Q\xa3%1\x04p\x87\x02\xf6\xb0\xa8\xfe\b7\x1cMg\x04`\x8d\x8cJ\xcb(\xd8h\xac\xb0%1F\xe9\x8eU\xda\xe3p\x03\x18:^;\xce\x04\xa551\x8ao\x95\x93\x00w2`O\x89\xeao\xf4S\xd1t\xa6\x01\xd6\xf4\xa8\xfe.?C\xe9\xceTڳ\xa2\xfcY~\xb6v\x9c9Jk.F\xc6\xe6E\xf5[\xe2|\xa5\xbb@i/\x8c\xf2\xe7\x9dE\xdaq\x8a\x95\x96\x15՟\x9aJ\x94n\xa9\xd2.\x8b\xf2\x97&[;\xceb\xa5U\x8e\xf30U\x8c\xceu\xe8\xec\n\xa4Kg\xabdש\xa2\xb3\xaa\xa32\xbb&*\x85n\x145\u0529\x8dj\x9ds\xea\xe0P\t\xeb\xa3>uN\x9c]\xb7\x81]\xd7M\xb0k5\xb2kYMQ\xfe\x8d\x05\xd9L\xb6\x90K\xc9e\xe4rr\x05\xb9\x92\\\x15\x95\xbc\xd5Q)\xb90*U\x17Ee\xf1\xc5Q\x89_\x12\x95\x9aK\xa3\x12\xbb,*e\x97G\xa5ከ\x94^\x19\x95\xba\xab\xa2R}uT\xca\xd7@\xff\xe5\xd7`_\xae\x8dJ\xfduQ\xb1\xae\x8f\x8a{CT\x127Fž)*\xce\xcdQ\xa34vKT\xff85j\xd4\xc6n\x8bJ\xed\xedQYr\a\xfc\x9dQ\xe9\u007fWT\x06\xdeͫ\xdfC\xdeKއ\xab\xdf\x1f\x95Ƶ\x98\xe8\x01<#\xf5\x0fF\xa5\xf9\xa1\xa84=\xac\x13=\xa2x\x14\xd7z\f\xd7z\xb9\x80\\H.\"\x8bI\x8b,!K\xc92\xd2&\x17\x93\xe5d\x8ct\xc8\n\xb2\x92\xac\"\xab\xc9\x1a\xd2%k\xc9:\xb2\x9e\x8c\x93\rd\x82l$\x9b\xc8%d3\xd9B.%\x97\x91\xcb\xc9\x15\xe4JrU\xb6T\xae\xce6*c\x17fK\xf9E\xd9Fy\xec\xe2l<×dK\xe9\xa5\xd9\xfa\u007f\x12\x99-\x15\x97g\x1b\x15\xb1+\x10n\xbe2[\x1a\xae\xca\xd6w\U000abce5lM6\xff?\"q\xa0\xe6Z\x1c\xb8.\x1b\xd5\xedz\xc4o\xc86\xcab7fK\xcdM\xd9R{s6\x8a\xe7-\xd9Rrk\xb6Q\x12\xbb-[\xaaoϖ\xe6;\xb2\xa5\xfe\xcel\xa9\xba+[\x1a\xef\xce\xd6\xff+8 ~o\xb6\xc4\xef˖\xd8\xfd8\xb26[\xea\x1e\xc8\x16\xeb\xc1lò\x1e\xca\x16\xe7\xe1l\xc3q\x1eɖģ\xd9F\xa2\xf21 \xf1x\xb6\x99H4>\x91m\xd47?\x99m\xd677?\x95mT5?\x9dmV57?\x93-\xf6\xb38\xd7y.\xdbp\xddu\x8a\xf5\xe8&6`\u038d:\xe7\xf3\x8a\x170\xf1\x8b:\xf1&,js\xb6\xd1ܼ\x05Wت\x93\xbf\x04X/\xe3<\xfb\x15ĭW1\xca~\r\x93\xbe\x8e\xf3\xec7t\xe67uҷtҷ\xb3e\xc2;\xd92\xfa]t\x8a?Ľm˖\xb6۳\xa5pG6\xff6\xeb\x8bl\xe9\xfbe\xb6\x14|\x95m\x14\x14|\x9d\xad\u007f\xea\xfeMv\xeb\xbf&\xf96\xdb\x187\xf5\xbbl\xc9\xdf\xc9\xfd\xd8E~O\xfe\x90-\x9d\u007f̖.?eKן\xb3\xa5\xdb/\xd9\xd2\xfd\xd7l\xe9\xf1[\xb6\xf4\xfc=[z\xfd\x91-\xbd\xff̖>\u007fq\xf4\xdf\xe4?\xe4\xbf\xe4\u007f\xe4nr\x0f\xb9\x97\xdcG\xee'\x0f\x90\a\xc9C\xe4a\xf2\by\x94\x1b#\xe7\xe0\x92ss\x8c\x8a\xe6y\x98\xa7y~\x8eQֲ\x00WZ\x88+-\xca1\x9c\xe6b\\\xc2\xc2\xe5J\xf42\xa58\xa9\f'\xd98i1.W\xae7\x1a\xc3u\x1c\\\xa7\x02\x97\xa8\xc4}Ua@5\x06\xd4\xe8\xe5\\\xdcU-n\xbaN\x17Q\xaf7\x14\xc7\xcc\r\x98'\x81h#\x867ip\t\xb3\xdfL\xb6\x90K\xc9e\xe4rr\x05\xb9\x92\\E\xaeΑ\xd1\x17\xe6\xc8\xec\x8brd\xd6\xc592\xe1\x12(\xa8[ޥPP\xb7n\xdd\xf2.\xc3^^\x8e\x8b]\x81\x8b]\xa9\xab\xbf*GJ\xafƢ\x1a\xd6\xe4h\xe5\xb9\x06\xf7Zv-\x0e\xd4\\\x87;\xb8\x1ewp\x03n\xe9\xc6\x1c\x94\x99\x9bp_\xf1\x9bua\xb7`\xfd\xb7b\xa2\xdb0\xe4v\rܑ\x83\xd2v\xa7Nw\x17\xa6\xbb;G\xffA\xb9Ngݛ\xa3E\xec>\x8c\xbb\x1f\x13\xc7\xd6\xea\x14\x0f\u0b9b\x1f\xd4\xd3\x1e\xc2<\x0f#\x8d\x8f \xfd\x8f栀=\x96#\xf9\x8f\xf3.\x9e \x9f$\x9f\"\x9f&\x9f!\x9f%\x9f#ב\xeb\xc9\r\xe4F\xf2y\xf2\x05\xf2Er\x13\xb9\x99\xdcBn%_\"_&_!_%_#_'\xdf \xdf$\xdf\"\xdf&\xdf!\xdf%\xdf#\xdf'? ?$?\"\xb7\x91\x1f\x93\x9f\x90\x9f\x92\x9f\x91\x9f\x93\xdb\xc9\x1d\xe4\x17\xe4\x97\xe4W\xe4\xd7\xe47\xe4\xb7\xe4w\xe4Nr\x17\xf9=\xf9\x03\xf9#\xf9\x13\xf93\xf9\v\xf9+\xf9\x1b\xf9;\xf9\a\xf9'\xf9\x17\xf97\xf9\x0f\xf9/\xf9\x1f\xb9\x9b\xdcC\xee%\xf7\x91\xfb\xc9\x03\xe4A\xf2\x10y\x98\x04\x9f\n\x1f\x86\x8f\xc0\xa7\xc1\xa7\xc3g\xc0g\xe6ʈ\xac\\\xb1\xa3\xf0\xd9\xf09\xf0\xa7ß\x01\u007f&\xfcY\xf0m\xe0sse\xe4ٹ\xb28/WF\xb5͕\xf2v\xb92\xfa\x9c\\\x89\x9d\v\u007f\x1e\xfc\xf9\xf0\xf9\xf0\x17\xc0\xb7\x87\xef\x00_\x00\xdf1W\xc6t\xca\x15\xa7\x10\xbe\b\xbes\xae\x8c\xeb\x92+\x95]\xe1\xbb\xc1w\x87\xef\x01\xdf3W\xc6\xf7ʕ\xaa\xde\xf0}\xe0\xfb\xc2\xf7\x83\xef\x0f?\x00~`\xaeL\x18\x94+Ճ\xe1\x87\xc0\x0f\x85\x1f\x06?t\x01t!t\x11t1t\tt)t\x19t9t\x05t%t\x15t5t\rt-\xdcm\x1d\xdcm=t\x03t#\xaa{\x13\xaa{3t\vt+t\x1bt;t\at't\x17t7t\x0ft/t\x1ft?\xf4\x00\xf4 \xf4\x10\xf40\xf4\b\xf4(\xf4\x18\xf48\xf4\x04\xf4$\xaa\xeb\x14\xaa\xeb4\xf4\f\xf4,\xf4\x1c\xf4<\xf4\x02\xf4\"\xf4\x12\xf42\xf4\n\xf4*\xf4\x1a\xf4:\xaa\xe5\x06\x8a\xfb&\xf4\x16\xf46\xf4\x0e\xf4.\xf4\x1e\xf4>K\xfb\x01\xf9\x90|D>&\x9f(\xa5\x855\x98\tf\x86%\xc0\x12aE`Ea\xc5Ji\xf5\x8b\xc3J\xc0\x9e\x84=\x05{\x1a\xf6\f\xecY\xd8s\xa5\xb4\xc8\xf3\xb0\x17`/\xc2^\x82\xbd\f{\xa5\x14\x97\x9f\xe4k\xa5\xd0!\xc0ހ\xbd\t{\v\xf66\xac$\xaf\x96\"u<\x93\x04+\r+\x03K\x86\x95\x85\xbd\x03+\a\xb3\xe0\xfe\x14XyX\x05XEX%XeX\x15\x98\xb5\x94\x16\xb5\xc1RavXUX5XuX\r\x98\xa3\x94ּ&\xec]X-XmX\x1dX]X=\xd8{\xa5\xb4X}X\x03XCX#XcX\x13\xa6\xae)٬\x14fY\xb0\x16\xb0\x96\xb0V\xb04\x98\x93W]\xa4\xbb\x94\x16\xf7\xc0\xbc0\x1f\xcc\x0f\v\xc0\x82\xb0ְ6\xbc\xabm)-Ў\xa1\xf6\bu`(\x84PG\x86:!\xd4\x19\xef\x0eú\xc0\xd2a\x19\xb0\b\xac+,\x13\x96\x85\xf7Fa\xdd`\xddaٰ\x1cX.,\x06끺{\x1f\x96\x87\xb2ˇ\x15\xc0Ⱎ(\x8b^\xb0ވ\xa3\x0f\xac/\xd2\xd4\x0f\xd6\x1f\xe1\x01\xb0\x81L\xc1 \xf2\x03<\xff!l0l\bl(l\x18l8l\x04l$\xea\u007f\x14l4\xec#\xd8ǰO`\x9f\xc2>\x83}\x8e\xf7}\x01\xfb\x12\xf6\x15\xeck\xd87\xb0oa\xdf\xc1\xbeG\xbd\xfd\x00\xfb\x11\xf6\x13\xecg\xd8/\xb0_a\xbf\xc1~Gz\xfe\x80\xfd\t\x1b\x03\x1b\v\xfb\v6\x0e6\x1e6\x01\xf9\xfc\x1b6\x11\xf6\x0fl\x12l2l\nl*l\x1a\xd28\x1d6\x036\x136\v6\x9b9\x9b\x83п\xb0\xb9H\xe5<\xd8|\xd8\x02\xd8BآRZ\xb9\xc5(\xa1%Х\xa5\xb4\x81\xcbJ\x99J\x0f\\\x8e䮀\xad\x84\xadb\x14\xab\x11Z\x03[\x8b\x84\xae\x83\xad\x87m\x80m\x84m*e*\xd7y3Pn\v0p+b\xdb\x06\xdb\x0e\xdb\x01\xdb\xc9\bv\x91\xbbq\xbc\a\xb6\x17>\xb8\x0f\xb6\x1fv\x00v\x90W\x0f\x952u.wX\xe1\b0\xf0(*\xea\x18\xec8\xec\x04\xecd)\xcd{\nv\x1a\xe13\xb0\xb3p\x9cs\xb0\xf3\xb0\v\xb0\x8b\xb8v\t\xc9\xef|\x19(w\xa5\x94\xd6\xf9*\xa3\xbdF^G\x11ހ݄\xdd\xe2\x99\xdb\b݁\xddE\xe1݃݇=\x80=\x84=Bq\xb9\x80\\H.\"\x17\x93Kȥ\xe42r9\xb9\x82\\I\xae\"W\x93kȵ\xe4:r=\xb9\x81\xdcHn\"7\x93[ȓ\xe4)\xf24y\x86IkY!I\xab\x9f\x9a\xa45\xa9\x95\xc4}^\xb2\x0eY\x97\xacG\xbeG\xd6'\x1b\x90\r\xc9Fdc\xb2\tٔlF6'[\x90-\xc9Vd\x1a\xe9\xc4[]\f\xb9I\x0f\xe9%}I\x89\xba\xad\x8a]\xf7CS\xa1\x01\x1eWӃ<\xae\xa6\xb7\x86ڡm\xa0U\xa1my\xbd\xba\xde\x0eZ\rڞ\xc7\x0e\xbd\x03\xefs\xe8!\x9ew\xe8\x1d\xa15\xa0\x9d\x92̸\xde9Ik\x1eN25o\xde%\xc9ܼy\xf3t\x04\x83\x19IZ0\x92d\n6\xef\x9ad\x0e6o\x9e\x99\x94\x006\xcf¥6\xd1$\xadM\xb7$S\x9b\xe6ݓ\xccm\x9a7\xcfN\xd2Z\xe5$i\rs\x93\xb4F\xb1$-\xadG\x92\x16}?\xc9\x14\x8d\xe6%\x99\xa3\xd1h>\x82=\v\x92\xb4\x9e\xf1$S\xcfh\xcf$s\xcfh\xb4WR\x02\x18\xed\x8dK\xbd\xfb$i\xbd\xfb&\x99zG\xfb%\x99{G\xa3\xfd\x93\xb4\xec\x01IZ\xfa\xc0$-cP\x92\x96\xf3A\x92\xc9\xd2\xe8\xc3$S\xa3\x94\xc1I\x89\x16K\xff\x94\x94!IZ\xcaP\x96\xce0r89\x82\x1cI\x8e\"G\x93\x1f\x91\x1f\x93\x9f\x90\x9f\x92\x9f\x91\x9f'i\x95\xbeH\xd2\xfa\u007f\t\xfd\n\xfa5\xf4\x1b\xe8\xb7IZ\x87\uf4b4*\xdfC\u007f\x80\xfe\x88\xf3?\xc1~N\xd2\x06\xfe\x02\xfb\x15\xe1\xdfp\xdf\xef\xd0?\xa0\u007fB\xc7\xc0\xc6\xc2\xfe\xc2\xf18\xe8x\xe8\x04\xd8\xdf\bO\x84\xfd\x03\x9b\x04\x9b\f\x9b\x02\x9b\x8ak\xd3`\xd3a3`3a\xb3`\xb3as\x92\xb4\x8e\xff\xa2\x06\xe6\xe2\xfd\xf3\x92\xb4:\xf3\x11^\x80s\v\xf1\xdc\"\xd8bܳ\x04\xb6\x14\xe1e\xb0\xe5\b\xaf\x80\xadĽ\xab\xa0\xab\xa1k`k\x11^\a]\x0f\xdd\x00\xdd\b\xdb\x04\xdb\f\xdb\x02\xdb\nۆkۡ;\xa0;\xa1\xbb\xa0\xbb\xf1\xde=\xc8\xf7^\xe8>\xe8~\x9c?\x00;\x88\xbc\x1f\x82\x1d\xc6=G`G\xf1\xeec\xd0\xe3\xd0\x13Г\xd0S\xb0Ӱ38>\v=\a=\x0f\xbb\x00\xbb\b\xbb\x04\xbb\f\xbb\x02\xbb\x8a\xeb\xd7\xf0\x8e\xeb\xb0\x1b8\xbe\xc9Z\xb9E\xde&\xef\x90w\xc9{\xe4}\xf2\x01\xf9\x90|D>&\x9f(\xcd/a\xa4\x894\x93\td\"Y\x84,J\x16#\x8b\x93%\xc8'ɧȧ\xc9g\xc8g\xc9\xe7\xc8\xe7\xc9\x17\xc8\x17ɗȗ\xc9W\xc8W\xc9\xd7\xc8\xd7\xc97\xc87ɷȷɒd)R'\x93\xc8\xd2d\x192\x99,K\xbeC\x96#-d\nY\x9e\xac@V$+\x91\x95\xc9*\xa4\x95\xb4\x91\xa9\xa4\x9d\xacJV#\xab\x935H\aY\x93|\x97\xacE\xd6&\xeb\x90u\xc9z\xe4{d}\xb2\x01ِlD6&\x9b\x90M\xc9fds\xb2\x05ْlE\xa6\x91N\xd2E\xbaI\x0f\xe9%}\xa4\x9f\f\x90A\xb25نlK\xb6#ۓ\x1d\xc8\x10ّ\xecDv&\xc3d\x172\x9d\xcc #dW2\x93\xcc\"\xa3d7\xb2;\x99M搹d\x8c\xecA\xbeO\xe6\x91\xf9d\x01\x19'{\x92\xbd\xc8\xded\x1f\xb2/ُ\xecO\x0e \a\x92\x83\xc8\x0f\xc8\x0f\xc9\xc1\xe4\x10r(9\x8c\x1cN\x8e G\x92\xa3\xc8\xd1\xe4G\xe4\xc7\xe4'\xe4\xa7\xe4g\xe4\xe7\xe4\x17\xe4\x97\xe4W\xe4\xd7\xe47\xe4\xb7\xe4w\xe4\xf7\xe4\x0f\xe4\x8f\xe4O\xe4\xcf\xe4/\xe4\xaf\xe4o\xe4\xef\xe4\x1f\xe4\x9f\xe4\x18r,\xf9\x179\x8e\x1cON \xff&'\x92\xff\x90\x93\xc8\xc9\xe4\x14r*9\x8d\x9cN\xce g\x92\xb3\xc8\xd9\xe4\x1c\xf2_r.9\x8f\x9cO. \x17\x92\x8b\xc8\xc5\xe4\x12r)\xb9\x8c\\N\xae W\x92\xab\xc8\xd5\xe4\x1ar-\xb9\x8e\\On 7\x92\x9b\xc8\xcd\xe4\x16r+\xb9\x8d\xdcN\xee w\x92\xbb\xc8\xdd\xe4\x1er/\xb9\x8f\xdcO\x1e \x0f\x92\x87\xc8\xc3\xe4\x11\xf2(y\x8c \x1f\x92\x8f\xc8\xc7\xe4\x13e\xd8\xf3\x93&\xd2L&\x90\x89d\x11\xb2(Y\x8c,N\x96 \x9f$\x9f\"\x9f&\x9f!\x9f%\x9f#\x9f'_ _$_\"_&_!_%_#_'\xdf \xdf$\xdf\"\xdf&K\x92\xa5H\x9dL\"K\x93e\xc8d\xb2,\xf9\x0eY\x8e\xb4\x90)dy\xb2\x02Y\x91\xacDV&\xab\x90V\xd2F\xa6\x92v\xb2*Y\x8d\xacN\xd6 \x1ddM\xf2]\xb2\x16Y\x9b\xacC\xd6%\xeb\x91\xef\x91\xf5\xc9\x06dC\xb2\x11٘lB6%\x9b\x91\xcd\xc9\x16dK\xb2\x15\x99F:I\x17\xe9&=\xa4\x97\xf4\x91~2@\x06\xc9\xd6d\x1b\xb2-َlOv CdG\xb2\x13ٙ\f\x93]\xc8t2\x83\x8c\x90]\xc9L2\x8b\x8c\x92\xdd\xc8\xeed6\x99C\xe6\x921\xb2\a\xf9>\x99G\xe6\x93\x05d\x9c\xecI\xf6\"{\x93}Ⱦd?\xb2?9\x80\x1cH\x0e\"? ?$\a\x93Cȡ\xe40r89\x82\x1cI\x8e\"G\x93\x1f\x91\x1f\x93\x9f\x90\x9f\x92\x9f\x91\x9f\x93_\x90_\x92_\x91_\x93ߐߒߑߓ?\x90?\x92?\x91?\x93\xbf\x90\xbf\x92\xbf\x91\xbf\x93\u007f\x90\u007f\x92cȱ\xe4_\xe48r<9\x81\xfc\x9b\x9cH\xfeCN\"'\x93Sȩ\xe44r:9\x83\x9cI\xce\"g\x93s\xc8\u007fɹ\xe4\xb9\x80\\H.\"\x17\x93Kȥ\xe42r9\xb9\x82\\I\xae\"W\x93kȵ\xe4:r=\xb9\x81\xdcHn\"7\x93[ȭ\xe46r;\xb9\x83\xdcI\xee\"w\x93{Ƚ\xe4>r?y\x80\xf9\x80|H>\"\x1fK\u007f\x98\xcc\xfe\x90L!˓\x15Ȋd%\xb22Y\x85\xb4\x9262\x95\xb4\x93U\xc9jdu\xb2\x06\xe9 k\x92\uf4b5\xc8\xdad\x1d\xb2.Y\x8flI\xb6\"\xd3H'\xe9\"ݤ\x87\xf4\x92>\xd2O\x06\xc8 ٚlC\xb6%ۑ\xed\xc9\x0ed\x88\xecHv\"\xb7&k\xe1m\xc9Z\x97\xed\xc9Z\xfa\x8ed-cg\xb2\x16ٕ\xacuݝ\xace\xeeIֲ\xf6&k\xd1}\xc9Z\xb7\xfd\xc9Z\xf7\x03\xc9Z\xf6\xc1d-\xe7P\xb2\x96{8Y\x8b\x1dI\xd6z\x1cM\xd6\xde?\x96\xac\xe5\x1dO\xd6\xf2O$k\x05'\x93\xb5\xf8\xa9d\xad\xe7\xe9d\xadיd\xad\xf7\xd9d\xadϹd\xad\xef\xf9d\xcdz\x81o\xbcH^\"/\x93Wȫ\xe45\xf2:y\x83\xbcI\xde\"o\x93wȻ\xe4=\xf2>\xf9\x80|H>\"\x1f\x93O\x94\xd5*i0SY\xad\xbf\x19\x96\x80p\"\xac\b\xc2Ea\xc5\x10.\x0e+\x81\U00013c27\xcaj\x15\x9e\x86=\x03{\x16\xf6\x1c\xecy\xd8\v\xb0\x17a/\xc1^\x86\xbd\x02{\x15\xf6\x1a\xecu\xd8\x1b\xb07ao\xc1ކ\x95\x84\x95\x82\xe9\xb0$XiX\x19X2\xac,\xec\x1dX9\x98\x05\x96\x02+\x0f\xab\x00\xab\b\xab\x04\xab\f\xab\x02\xb3\xc2l\xb0T\x98\x1dV\x15V\rV\x1dV\x03\xe6\x80Մ\xbd\v\xab\x05\xab\r\xab\x03\xab\v\xab\a{\x0fV\x1f\xd6\x00\xd6\x10\xd6\b\xd6\x18\xd6\x04\xd6\x14\xd6\f\xd6\x1c\xd6\x02\xd6\x12\xd6\ne\x91\x06s\xa2,\\07\xc2\x1e\xa8\x17\xd7|0?,\x00\v\xc2Z\xc3\xda\xc0\xda\xc2\xda\xc1\xda\xc3:\xc0B\xb0\x8e\xb0N\xb0ΰ0\xac\v,\x1d\x96\x01\x8b\xc0\xba\xc22aY\xb0(\xac\x1b\xac;,\x1b\x96\x03˅\xc5`=`\xef\x97ժ\xe4\x95\xd5:\xe4\x97\xd5\xda\x14 =q\xa4\xa7'\xb4\x17\xb47\xb4\x0f\xb4/\xb4\x1f\xb4?t\x00t t\x10\xf4\x83\xb2Z\x99\x0fa\x83aC`Ca\xc3`\xc3a#`#a\xa3`\xa3a\x1f\xc1>\x86}\x02\xfb\x14\xf6\x19\xecs\xd8\x17\xb0/a_\xc1\xbeF\xbc\xdf \xdeo\xcbr\x14#\xbf'\u007f \u007f$\u007f\"\u007f&\u007f!\u007f%\u007f#\u007fG<\u007f\xc0\xfe\x84\x8d\x81\x8d\x85\xfd\x05\x1b\a\x1b\x0f\x9b\x00\xfb\x1b6\x11\xf6\x0fl\x12l2l\nl*l\x1al:lFY\xad\xe3L\xd8,\xd8l\u061c\xb2Z\xdd\u007fasa\xf3`\xf3a\v`\v\xcbj\xc1E\xb0Ű%\xb0\xa5e\xb5\xda\xcb`\xcba+`+a\xab`\xab\xcbj\xe5\xd7\xc0\xd6\xc2\xd6\xc1\xd6\xc36\xc06\xc26\xc16ö\xc0\xb6¶\xc1\xb6\xc3v\xc0v\xc2v\xc1v\xc3\xf6\xc0\xf6\xc2\xf6\xc1\xf6\xc3\x0e\xc0\x0e\xc2\x0e\xc1\x0eÎ\xc0\x8e\u008e\xc1\x8e\xc3N\xc0N\xc2N\xc1N\xc3\xce _ga\xe7`\xe7a\x17`\x17\x91\xb7K\xb0˰+e5\xd7U\x9c\xbb\x06\xbb\x0e\xbb\x01\xbb\t\xbb\x05\xbb\r\xbb\x03\xbb\xcbR\xbeG\xde'\x1f\x90\x0f\xc9G\xe4c\xf2\xa5w8/'_!_%_#\xf3\xc8|\xb2\x80\x8c\x93=\xc9^do\xb2\x0fٗ\xecG\xf6'\a\x90\x03\xc9A\xe4\a\xe4\x87\xe4`r\b9\x94\x1cF\x0e'G\x90#\xc9Q\xe4h\xf2#\xf2c\xf2\x13\xf2S\xf23\xf2s\xf2\v\xf2K\xf2+\xf2k\xf2\x1b\xf2[\xf2;\xf2{\xf2\a\xf2G\xf2'\xf2g\xf2\x17\xf2W\xf27\xf2w\xf2\x0f\xf2Or\f9\x96\xfc\x8b\x1cG\x8e''\x90\u007f\x93\x13\xc9\u007f\xc8I\xe4dr\n9\x95\x9cFN'g\x903\xc9Y\xe4lr\x0e\xf9/9\x97\x9cG\xce'\x17\x90\v\xc9E\xe4br\t\xb9\x94\\F.'W\x90+\xc9U\xe4jr\r\xb9\x96\\G\xae'7\x90\x1b\xc9M\xe4fr\v\xb9\x95\xdcFn'w\x90;\xc9]\xe4nr\x0f\xb9\x97\xdcG\xee'\x0f\x90\a\xc9C\xe4a\xf2\by\x94 \x1f\x92\x8f\xc8\xc7\xe4\x13\x16M\xd7,Z\xd8d\xd1lf\x8b\xd6%\xc1\xa2\x95K\xb4h\u074bX\xb4Ԣ\x16-\xbb\x98E{\xaf\xb8EK/aѢOZ\xb4\xaeOY\xb4*O[\xb4\x9cg,Z\xfe\xb3\x16\xad\xc7s\x16\xad\xf4\xf3\x16-\xf2\x82E\xb3\xbfhѲ^\xb2h5_\xb6h\xb1W,Z\xf5W-Z\xdek\x16\xad\xe3\xeb\x16-\xe3\r\x8b\xd6\xedM\x8b\x96\xf9\x96E\xab\xfb\xb6E\xcb-i\xd1\nJY\xb4\xf7u\x8bV1ɢ\x95/mѪ\x95\xb1h\xb5\x93-Z\xa5\xb2\x16-\xfe\x8eEs\x94\xb3h=-\x16\xadr\x8aE+[ޢ\xb5\xaf`ђ+Z0C\xb2h\xbd+[\xb4\xa4*\x16\xed\x1d\xabE\xabe\xb3h\xef\xa6Z\xb4\xaav\x8b֡\xaaE\xb3V\xb3h}\xab[\xb4\x1a5,\x9a\xc5a\xd1:մh\xf5\u07b5h\xbdjY\xb4Pm\x8bV\xa6\x8eE\xebSע\xa5Գhu\u07b3$\xb4Ϩ\x11\xaaoIl\x9fa\xab\x11j\xa04\xb5F\xa8\xa1\xa5\b\x8e\x11h\xa4N\xd8k\x84\x1a\xf3\x04\x02MT \x15\x81\xa6\x96\xa2\xea\x16\x84\x9a\xa9{\xaa\xd6\b5\xe7=\b\xb4\xe0=\b\xb4\x94{\x10j\xa5N\xd9\x11H\xe3)\x15r\xaaP\xaa\n\xb9,\xc5\x18\x15\x82n\x15W\xb5\x1a!\x0f\xe3B\xc0˸\x10\xf0I\\\b\xf9\x19\x17\x02\x01\x89\v\xa1\xa0ąPk#.\x04ۨ\xfb\xaa\"Ж\xf7\xa9P;ާB\xed\xe5>\x15\xec\xa0N\xdaU(ē\fvT\xc1T\x06;Y\x8aK\xf2\x10\xee\xac\xd2W\xbdF(\xcc\xf4!Ѕ\xe9C ]҇P\x06Ӈ@D҇PWI\x1fB\x99F\xfa\x10\xccb\xfa\x10\x88J\xfa\x10\xea&\xe9C\xa8\xbb\x91>\x04\xb3%}\b\xe5\x18\xe9C0\xd7H\x1f\x82\xb1\xc2\xf4!\xdcC\xc5Y\r\x81\xf7\x19\xa7\n\xe51N\x15ʗ8U\xb0\x80q\xaaP\\\xe2T\xc1\x9e\x12\xa7\n\xf62\xe2T\xe1\xde\xeaު*ԇ\xf72ؗ\xf72\xd8O\xeee\xb8\xbf:mgp\x00OKx\xa0\n\xa7Jx\x90\xa5\x84Q\x9c8\xf8@\xf9\x9f#\xf4!\xfd\xcf\x11\x1aL\xffs\x84\x86\x88\xff9BC\xe9\u007f\x8e\xd00\xf1?Gh\xb8\xf8\x9f#4\xc2\xf0?Gh$\xfd\xcf\x11\x1a%\xfe\xe7\b\x8d\x16\xffs\x84>2\xfc\xcf\x11\xfaX\xfc\xcf\x11\xfa\xc4\xf0?G\xe8S\xc3\xff\x1c\xa1\xcf\n\xfd\xcf\x11\xfa\x9c\xfe\xe7\b}!\xfe\xe7\b})\xfe\xe7\b}e\xf8\x9f#\xf4\xb5\xf8\x9f#\xf4\x8d\xe1\u007f\x8eз\x86\xff9B\xdf\x15\xfa\x9f#\xf4\xbd\xf8\x9f#\xf4\x83\xe1\u007f\x8eЏ\x86\xff9B?\x15\xfa\x9f#\xf4\xb3\xe1\u007f\x8e\xd0/\x85\xfe\xe7\b\xfdZ\xe8\u007f\x8e\xd0o\xff\xf9\x9f#\xf4;\xfd\xcf\x11\xfaC\xfc\xcf\x11\xfaS\xfc\xcf\x11\x1ac\xf8\x9f#4V\xfc\xcf\x11\xfa\xcb\xf0?Gh\x9c\xe1\u007f\x8e\xd0\xf8B\xffs\x84&\x88\xff9B\u007f\x1b\xfe\xe7\bM4\xfc\xcf\x11\xfa\xa7\xd0\xff\x1c\xa1I\x86\xff9B\x93\v\xfd\xcf\x11\x9aR\xe8\u007f\x8e\xd0\xd4\xff\xfc\xcf\x11\x9a&\xfe\xe7\bM7\xfc\xcf\x11\x9aa\xf8\x9f#4\xb3\xd0\xff\x1c\xa1Y\x86\xff9B\xb3\v\xfd\xcf\x11\x9aS\xe8\u007f\x8eп\xff\xf9\x9f#4\xd7\xf0?Gh^\xa1\xff9B\xf3\v\xfd\xcf\x11Z\xf0\x9f\xff9B\v\v\xfd\xcf\x11Z\xf4\x9f\xff9B\x8b\xff\xf3?Gh\xc9\xff\xfb\x9f#\xb4T\x95g\rGh\x19\xcb\x13\x81\xe5,O\x04VHy\"\xb4\x92\xe5\x89\xc0*)O\x84VKy\"\xb4\xc6(O\x04ײ<\x11X'\xe5\x89\xd0z)O\x846\x18\xe5\x89\xe0F)O\x846\x19\xe5\x89\xe0f\xa3<\x11\xdcRX\x9e\boey\"\xb0M\xca\x13\xa1\xedR\x9e\b\xed0\xca\x13\xc1\x9dR\x9e\b\xed2\xca\x13\xc1\xddFy\"\xb8\xa7\xb0<\x11\xde+\xe5\x89\xd0>\xa3<\x11\xdco\x94'\x82\a\n\xcb\x13\xe1\x83Fy\"x\xa8\xb0<\x11>\\X\x9e\b\x1f\xf9\xaf\xcb\xf4\xaa\xd09I\xaf\n\x9e\x97\xf4\xaa\xe0\x05#\xbd*|Qҫ\x82\x97\x8c\xf4\xaa\xf0e#\xbd*|\xa50\xbd\xeaઊ\xbb\x9a\n]c\xdc\f^g\xdc\fސ\xb8\x19\xbeɸ\x19\xbc%q3|[\xe2f\xf8\x8e\x117\x0f\xee\xaa\xfb\xab2x\x8f\xf7K\xf8>\xef\x97\xf0\x03\xb9_\x0e\x1e\xaa\vv\t?\xe2\x05\xe3\xe0\xb1:H5\x0e\xfegy\xf2\xbf\xee\xd3\x11\xea\\Qk\x15\xae\xa8ew\x81\xa6W\xd4\xdc\x19\x155o\xa4\xa2\x16\xeeZQ+Ȭ\xa85˪\xa8eE+j-\xbbUԺw\xaf\xa8\xb5ˮ\xa8\xf5ͭ\xa8\xa5\xc5*j\xf5\x9f\xa8\xcc\xefA\xa4\x894\x93\td\"Y\x84,J\x16#\x8b\x93%\xc8'ɧȧ\xc9g\xc8g\xc9\xe7\xc8\xe7\xc9\x17\xc8\x17ɗȗ\xc9W\xc8W\xc9\xd7\xc8\xd7\xc97\xc87ɷȷɒd)R'\x93\xc8\xd2d\x192\x99,K\xbeC\x96#-d\nY\x9e\xac@V$+\x91\x95\xc9*\xa4\x95\xb4\x91\xa9\xa4\x9d\xacJV#\xab\x935H\aY\x93|\x97\xacE\xd6&\xeb\x90u\xc9z\xe4{d}\xb2\x01ِlD6&\x9b\x90M\xc9fds\xb2\x05ْlE\xa6\x91N\xd2E\xbaI\x0f\xe9%}\xa4\x9f\f\x90A\xb25نlK\xb6#ۓ\x1d\xc8\x10ّ\xecDv&\xc3d\x172\x9d\xcc #dW2\x93\xcc\"\xa3d7\xb2;\x99M搹d\x8c\xecA\xbeO\xe6\x91\xf9d\x01\x19'{\x92\xbd\xc8\xded\x1f\xb2/ُ\xecO\x0e \a\x92\x83\xc8\x0f*'(/\xfaPd\xb0\xc8\x10\x91\xa1\"\xc3D\x86\x8b\x8c\x10\x19)2Jd\xb4\xc8G\"\x1f\x8b|\"\xf2\xa9\xc8g\"\x9f\x8b|!\xf2\xa5\xc8W\"_\x8b|#\xf2\xad\xc8w\"ߋ\xfc \xf2#\xd3\xfe\x93\x1c\xfc,\xf2\x8bȯ\"\xbf\x89\xfc.\xf2\x87ȟ\"cDƊ\xfc%2Nd\xbc\xc8\x04\x91\xbfE&\x8a\xfc#2Id\xb2\xc8\x14\x91\xa9\"\xd3D\xa6\x8b\xcc\x10\x99)2Kd\xb6\xc8\x1c\x91\u007fE\xe6\x8a\xcc\x13\x99/\xb2@d\xa1\xc8\"\x91\xc5\"KD\x96\x8a,\x13Y.\xb2Bd\xa5\xc8*\x91\xd5\"kD֊\xac\x13Y/\xb2Ad\xa3\xc8&\x91\xcd\"[D\xb6\x8al\x13\xd9.\xb2Cd\xa7\xc8.\x91\xdd\"{D\xf6\x8a\xec\x13\xd9/r@\xe4\xa0\xc8!\x91\xc3\"GD\x8e\x8a\x1c\x139.rB\xe4\xa4\xc8)\x91\xd3\"gDΊ\x9c\x139/rA\xe4\xa2\xc8%\x91\xcb\"WD\xae\x8a\\\x13\xb9.rC\xe4&\x9d\xee\x16y\x9b\xbcC\xde%\xef\x91\xf7\xc9\a\xe4C\xf2\x11\xf9\x98|\xa2\n#\xd2DL\"f\x91\x04\x91D\x91\"\"EE\x8a\x89\x14\x17)!\xf2\xa4\xc8S\"O\x8b<#\xf2\xac\xc8s\"ϋ\xbc \xf2\xa2\xc8K\"/\x8b\xbc\"\xf2\xaa\xc8k\"\xaf\x8b\xbc!\xf2\xa6\xc8[\"o\x8b\x94\x14)%\xa2\x8b$\x89\x94\x16)#\x92,RV\xe4\x1d\x91r\"\x16\x91\x14\x91\xf2\"\x15D*\x8aT\x12\xa9,RE\xc4*b\x13I\x15\xb1\x8bT\x15\xa9&R]\xa4\x86\x88C\xa4\xa6Ȼ\"\xb5Dj\x8b\xd4\x11\xa9+RO\xe4=\x91\xfa\"\rD\x1a\x8a4\x12i,\xd2D\xa4\xa9H3\x91\xe6\"-DZ\x8a\xb4\x12I\x13q\x8a\xb8D\xdc\"\x1e\x11\xaf\x88O\xc4/\x12\x10\t\x8a\xb4\x16i#\xd2V\xa4\x9dH{\x91\x0e\"!\x91\x8e\"\x9dD:\x8b\x84E\xba\x88\xa4\x8bd\x88DD\xba\x8ad\x8ad\x89DE\xba\x89t\x17\xc9\x16\xc9\x11\xc9\x15\x89\x89\xf4\x10y_$O$_\xa4@$.\xd2S\xa4\x97Ho\x91>\"}E\xfa\x89\xf4\x17\x19 2Pd\x90\xc8\a\"\x1f\x8a\f\x16\x19\"2Td\x98\xc8p\x91\x11\"#EF\x89\x8c\x16\xf9H\xe4c\x91OD>\x15\xf9L\xe4s\x91/D\xbe\x14\xf9J\xe4k\x91oD\xbe\x15\xf9N\xe4{\x91\x1fD~\x14\xf9I\xe4g\x91_D~\x15\xf9M\xe4w\x91?D\xfe\x14\x19#2V\xe4/\x91q\"\xe3E&\x88\xfc-2Q\xe4\x1f\x91I\"\x93E\xa6\x88L\x15\x99&2]d\x86\xc8L\x91Y\"\xb3E\xe6\x88\xfc+2Wd\x9e\xc8|\x91\x05\"\vE\x16\x89,\x16Y\"\xb2Td\x99\xc8r\x91\x15\"+EV\x89\xac\x16Y#\xb2Vd\x9d\xc8z\x91\r\"\x1bE6\x89l\x16\xd9\"\xb2Ud\x9b\xc8v\x91\x1d\";Ev\x89\xec\xae\u008dcr/\xb9\x8f\xdcO\x1e \x0f\x92\x87\xc8\xc3\xe4\x11\xf2(y\x8c\x84b~\x84b\x01\xab)?\x1c\xb4\x9a\xfa\x86[[\xd5\xff\v\xad\r\x82Ѷ8\x19o\x87P\xbc=B\x91\x0e\bEB\b\xc5:\"\x14\xebd5\x15\x84;[M\x19\xe1\xb0U\xfd\xffκ \x18M\xb7\xaa\xffqZ\x06\x19\xc1\x89xW\xdc\x15\xc9D(\x92\x85P,\x8aP\xac\x9bՔ\x1b\xee\x0eD\xb3\x81x\x0e\x10\xc9\x05b1\xab)+\xdc\xc3j\xea\x12~\xdfj\xea\x11\xce\xc3a4\x1f\x87\xd1\x02\x1cF\xe38\x8c\xf7\xc4a\xbc\x17\x0e\xe3\xbdq\x18\xe9\x83\xc3H_\x1cF\xfa\xe10\xd6\x1f\x87\xb1\x018\x8c\r\xb4\x9ar\u0083\x80\xe8\a@\xfcC 2\x18\x88\r\xb1\x9a\xfa\x84\x87*\f\x03\xe2\xc3\x15F\x00\xb1\x91\n\xa3\xac\xa6\xbc\xf0h \xfa\x11\x10\xff\x18\x88|\x02\xc4>\xb5\x9az\x85?S\xf8\x1c\x88~\x01D\xbe\x04b_Y\xb5ܯ\xad\xa6\x9e\xf1oXEߒߑߓ\xbf\xc0Y\u007f\x85\xfdƣ\xdf\xc9?P\x89\u007f\xc2Ơ\x12\xc7\xc2\xfeB%\x8e\x83\x8dG%N\x80\xfd\x8dJ\x9c\b\xfbGU\xe4$U\x91\x93UENQ\x159UU\xe44U\x91\xd3UE\xceP\x159SU\xe4,U\x91\xb3UE\xceQ\x15\xf9/+r\xae\xaa\xc8y\xaa\"竊\\\xa0*r\xa1\xaa\xc8E\xaa\"\x17\xab\x8a\\\xa2*r\xa9\xaa\xc8e\xac\xc8\xe5\xaa\"W\xb0\nW\x92\xabTE\xaeV\x15\xb9FU\xe4ZU\x91\xebTE\xaeW\x15\xb9AU\xe4FU\x91\x9bTEnV\x15\xb9EU\xe4VU\x91\xdbTEnW\x15\xb9CU\xe4NU\x91\xbbTE\xeeV\x15\xb9GU\xe4^U\x91\xfbTE\xeeW\x15y@U\xe4AU\x91\x87TE\x1eV\x15yDU\xe4QU\x91\xc7TE\x1eW\x15yB\xd5\xe1I\x85S\xaa\x0eO+\x9cQuxVᜪ\xc8\xf3\xaa\"/\xa8\x8a\xbc\xa8*\xf2\x92\xaa\xc8˪\x0e\xaf(\\U\x15yMU\xe4uU\x917P\x917UE\xdeR\x85~[\x95\xed\x1d\x1c\x86\xef\x02\xd1{@\xe4>\x10{\x84\xaa|\f{\xc2\xc6m\x1e\xd2D\x9a\xc9\x042Ѧ5(b\xd3\xdcEmZZ1\x9b֤\xb8MkT¦\xf9\x9f\xb4iΧlZ\xab\xa7mZ\xd3glZ\xcbgmZ\xb3\xe7lZ\x8b\xe7m\x9a\xe7\x05\x9b\xd6\xe6E\x9b\xa9]\xb3\x97l\xa6\x86\xcd^\xb6\x99|\xcd^\xb1i\xdeWmZ\xbb\xd7lZ\xc3\xd7m\x9a\xef\r\x9bV\xffM\x9b\xe6z˦5~\xdbfjܬ\xa4\xcdT\xbfy)\x84\x9a\xeb\b\x05\x92l&W\xa04B\xce28\xe7L\xb6\x99\xeb;\x9b\x96\xb5\x99\x1b;\x9b\xbe\x83\x13\xder6\xad\xb9Ŧ\x05Rl\xa6\xe6\x81\xf26-X\xc1fr6\xadh35uVb\xba+\x93UH+i\xb3i\x99\xa96Sf\xa6\x1dȯj\xd3r\xab\xd9L\xb9ݪ\x03Y5lZ\x86\xc3f\xcaȨi\xd3\xf2\u07b5\x99\xb23k\x019\xb5\x81.u\x80\xfc\xba@A=\xa0\xc7{6S^V}\x9b\x96\xd3\xc0\xa6uih3u\xe9\xd2\b\xc8ol\xd3\xf2\x9b\xd8L\xf9\xf9\xcdlZ\xb7\xe66S\xb7n-lZzK\x9bֽ\x95M+H\xb3i=\x9c6-\xcbe\xd3\xc2n\x9b)\x1c\xf1\xd8P\xdd^\x9b\xfa\xfbo>\x9b)\x12\xf3۴H\xc0\xa6\xfe\xfe[\x10W\"\xadmZ\xac\x8d\rU\xdb֦\xfe\xfe[;\x9b)\x16i\x8f\v\xb1\x0e6-\x1e\xb2\xa9\xbf\xff\xd6\x11\x97#\x9d\x80hg\\\x88\x87\x11K\xbc\vB\xd1t\x9b\x16\x8d S\xb9]\x81\x8cL ?\vh\x17\xb5\xa9\xbf\t\xd6\ry\xc8\xe8nS\u007f\xf7+\x1b\xc1v9\x80'\xd7f\xca\xe9\x12\x03\xf2{\x00\xed\xde\a\x9cy\xc8Uf\x81M\xfd\x9d\xbe\xb8bAO\x9c\xe8\xd6\v(\xe8\r8\xfb\xd8\xd4\xdf\xe2\xeb\x8b,g\xf6\x03r\xfb\x03\x19\x03\x80.\x03\x81n\x83P\xd9\x1f\xc2G\x06\xa3^\xf2\x87\x00\xed\x86\xdaL=\x9c\xc3l\xa6\xac\xac\xe1\xf0\x91\x116\xf9\x03r#m\xc6\x1f\x90\x1be\xe3\x1f\x8c\x1bm3\xfe\xec\xdbG6\xf9\xb3o\x1f\xdb\xf8\xf7\xde>Ae\u007fjS\u007f\xa6\xed3\xd6\xe6\xef6S\x83\xc0\x1fp\xb2\xe6\u007f\xdaL-\x9a\x8fA\xcd\a\xc6\xc23\x1a\xff\xa5\x9c\xc49\x0e\xfe\xe3\x1ao3\xbb\x9c\xce\tp\x11\xef\xdfʁ\x9c\x13m\xe6\xe6N\xe7?\x88\xc6霄\xd3i\x93mfgӦSl\t\xf5q~*\x04\x17\xa6\xc1\xebҦ\xe3\xf9\xb4\x19\xea\xf9\xa63m\t\xb8蜅F0\x1b\x8e?\a\xce\xfe/\x9c}.\x931\x8f\x9cO. \x17\x92\x8b\xc8\xc5\xe4\x12r)\xb9\x8c\\N\xae W\x92\xab\xc8\xd5\xe4\x1ar-\xb9\x8e\\On 7\x92\x9b\xc8\xcd\xe4\x16r+\xb9\x8d\xdcN\xee w\x92\xbb\xc8\xdd\xe4\x1er/\xb9\x8f\xdcO\x1e \x0f\x92\x87\xc8\xc3\xe4\x11\xf2(y\x8c \x1f\x92\x8f\xc8\xc7\xe4\x13\xa9fKf\x8a\x06榘\xc0\x8c\x143\x98\x97\x92\x00\xe6\xa4$\x82]R\x8a\x80\xf9)ESM\x96\x94b\bvK)\x0e\xa6\xa7\x94\x00\xbb\xa7<\t\x16\xa4<\x05\xf6Hy\x1a\xccJy&5\xc1\x92\x19Ny\x16\x92\x1bNy\x0e\x92\x11Ny\x1e\xa2\xfe\x14\x1b$'\x9c\xf2\"\xa4K8\xe5%H~8\xe5e<\x16Ny\x05\a\xdd\xc2)\xafB\xd2\xc3)\xafA\xba\x87S^\x87\x14\x84Sހ\xf4\b\xa7\xbc\t\xc9\n\xa7\xbc\xa5\ue327\xbc\x9d\xcaMm\xb2\x14\xa9\xe3\x82-EO\x82\xa4\xa6\xe8\xa5!\xf6\x14\xbd\f\xa4j\x8a\x9e\f\xa9\x96\xa2\x97\x85TO\xd1߁\xd4H\xd1\xcbA\x1c)\xba\x05R3EOIM\xb4ج)z\xf9\xd4\"\x96\xb6\xf1H\x8a^\x01\x81f\xf1X\x8a^1\xb5\xa8ŗ\x15\x8f\xa6\xe8\x95pOZ\xe2\x98}\xc51\xfb\x89c\xf6g\xca\a\x90\x03\xc9A\xa9\t-\x9b\xfb\xf4\x0f\xc41?\x14\xc7\x1c,\x8e9D\x1cs\xa88\xe60q\xcc\xe1\xe2\x98#\xc41G\x8ac\x8e2\x1cst\xa1c~T\xe8\x98\x1f\xff瘟\x18\x8e\xf9i\xa1c~f8\xe6\xe7\x86c~Q\xe8b_\x16:\xe6W\x85\x8e\xf9\xf5\u007f\x8e\xf9\x8d\xe1\x98\xdf\x16:\xe6w\x85O}_\xe8\x98?\xa8\x17\xe1ʏ8\xe1T^\xf8\x13N8q\xc7ό\x0eW~)|\xc1\xaf*\xa0\xd2\xf2[a,\xbf\xa7\x16\x83C\x86ի\xfe(\xf4\xcd?\v\xbdv\f.\xb6ˊ\xa8\x8bc\x11\xf4e\xf1\xbe\xbfx6\xa6\x82\xe3xg8E\x1f\xaf\xe2S\xf9\x9fP\xf8\xaa\xbf\x91\x88\xb6x\xf7Dd\xa5\x1do\xfe\xa7\xb0\xbdL\xfa\xaf\xbdL6\xda\xcb\x14\xa3\xbdL-|\xf34\xf54t:+m\x069\x93\x9cE\xce&\xe7\x90\xff\x92s\xc9y\xe4|r\x01\xb9\x90\\D.&\x97\x90KSM\xb6\xb4e\xa9\xa6Դ\xe5\xa9&{ڊTSմ\x95\xa9\xa6ji\xabRM\xd5\xd3V\xa7\x9aj\xa4\xadI59\xd2֦\x9aj\xa6\xadK5۬i\xebA[\xda\x0605m##\xd9Dn&\xb7\x90[S\xb5\xf0\xb6T-\xba=U\x8b\xef\x80\xedL\xd5b\xbbR1\xb3\xdd\rD\xf7\x00\xf1\xbd@d\x1f\x10۟\x8aU\xc3\x01 z\x10\x88\x1f\x02\"\x87\x81ؑT\xac\r\x8e\x02\xd1c@\xfc8\x109\x01\xc4N\xa6b\xea\u007f\n\x88\x9e\x06\xe2g\x80\xc8Y v.\x15S\xff\xf3@\xf4\x02\x10\xbf\bD.\x01\xb1˩\x98\xc8_\x01\xa2W\x81\xf85 r\x1d\x88\xddHŤ\xee&\x10\xbf\x05\xc4n\xa7b\xe6~\a\x88\xde\x05\xe2\xf7\x80\xc8} \xf6 \x153\xbb\x87@\xf4\x11\x10y\fĞ\xb0\x17\x0fc\xa1X\x90\x13\xc9-\xd0\xec\x89\xe1\xec\x1eYa\x93\xbdH8\xa7G$/b\xb6\x9b\xc3y\x91\x04{\x91hn.|8ў\x10\xcdM\xcf*b7\xf7\x8a\xe5\x16\xb5\x17\x89\xe4\xa7\xc73b\xc5\xec\t\xe1\xf4\xbcHq{b,\x9e\x9b\x1e)a7Dzr\x9e\xb4\x17\xe9\x1e\x8eVʋ>eOL\x0f\xe7\x85\v\x9e\xb6\x17M\x0fg\xc7\xf2\xa2\x91g\xecE2\xc3\xd9ٱ\xdcg퉙\u171c\xf0s\xf6\x84\xcchf\xf8y\x9c\x8fGs#\xe1\x17\xf0H\x1c7\xbeh/\x8a\x13\xd9\x19\x91\xbc\x97\xec\tݣٱ\x97\xedŔd\xe6\x85s^\xb1\x17W\xc1\x9cHA$\xefU9\xdd+\\P\xf0\x1a\xa2\xc2\xd5\xd7\xedŔ\xe8\x05\xb1\xdc7\xec\xc5\xd2\xf3\xe2}#Ѽ؛\xf6\xc4\xeey\xb1\xdc\xc8[\xf6\x84\xf4p~\xe4m$1\x96\x17\xcf\r\x97\xc4\xfbb\x95b=JA\xfb\xa4gGt$\x15\xa5\x11͉$ًa\x05\x98\x9d\x8d\xbc\x97\xc6Eu\xb2\f\x1e\x86&\xdb\x133b}#\xb9e\xed\t\x19\x91\xfc\xe8;\xf6\"\x19\xb1\xec\xecp^9\xbb\x19/\xb5\xd8\x13rù\xb1\x14$;7VP\xde^4+\x12\xcd\xcc*ȯ`/\x8abU\xcfW\xb4'\xaaRϯd/\xd2%\x9c\x97\x17ɮ\x8cK\xd1p>\xb2S\x05\x97\xa2\xe9\xf1l\xab=\x01\x1a\xb3ًuQ\xa5\x804\xa4\xda\x13\xbb\xa2,3\xec\xf6\x84\xae\x91HAU<\x1b\xcfϊdW\xc3\xf9\xbcpnzu\xf5\xa2\xf4\x02TY\r<\x1bɏ9\x10i\xd7\b\xea.\xb3\xa6=1+\x92W\xd0\xf7]D\x1eA-\xd5\xc2\r\xe1\xccHm{B\x97HA\xb8\x0e\xceƢ\xb9\x05u\xed\t=cXo\xd8\xcd\xe8\x14\xdeS'\xe3\xb9\x19\xf5\xed\tY\xa8\xaf\x06\x90X^nC{bN4=/\xd6Ȟ\x90\x13͎4\x86\x84ӳ\x9a(\xc9\xeb\xde\xd4^4'\x9c\x9b\x1f\x8d\xe56\xb3\x17\xe1m\xb9\xcd\xd5\xfd(\xc1\x16\xf6bT\xe4\xb6%n\x8ed\x86[\xe1f\b\x8a+\r\xf7\xa8\x8at\xda\x13\xfa\x84\xf32\\\"nH<\x9c\xeb\xb1'fGq\xd1kOȎ\xe6\x85}\xf6ļx\x8fHį\xb4Kv$`7\xe7Er\x82\xf6by1\x14kf$\xb7\xb5=AyB\x1b\xbbɚ\xd5\xd6n\xb2e\xb5\xb3\x9bR\xb3\xda\xdbM\xf6\xac\x0evSլ\x90\xddT-\xab\xa3\xddT=\xab\x93\xddT#\xab\xb3\xdd\xe4\xc8\n\xdbM5\xb3\xba\xd8\xd13d\xa5\x83\xb6\xac\f05+\x02ڳ\xba\x82U\xb32\xc1jYY`\xf5\xac(X#\xab\x1b\xe8\xc8\xea\x0e\xd6\xccʶ\x9bS\xadY9\xa0-+\x17L͊\x81\xf6\xac\x1e`լ\xf7\xed\xe6f\xee\xfayvSF8ߎEf\x81\u074cb\x88\xdbM\xb1`O\xbb\xa9Gz/;?\x13\x93}Ⱦd?{\x91f\x91h~$\xda\xdf^\xc4\xd7'\x16\xef\x15\x1e`/\xea\x0fG\xf3\x11\x1ehOL\x8bD\xbbE\a\xd9\x13\x9a\xe7\xa6W\xfe\x00\xf1\xd4\xff\xd0nʭ?X\x154J\x1e-x\x88ݔS\u007f\xa8\xddԽ\xfe0\xa0\xc1p\xbb)\xad\xc1\b\xbb\xa9i\x83\x91v3\x1a\xe3(\xb8'd4\x1em\xf2\x11\x1em\xf2\xb1\xbd\x04\x1fm\xa2\x9c\xec\x13{q\x1e\xa8\x86\xf4)\"\xca\xfc\fqd~n75\xeb\xfb\x85\xddܽY\xdf/\xed\xe6\xb4f}\xbf\xb2\x9b\x9b6\xeb\xfb\xb5\xdd\xeco\xd6\xf7\x1b\xe3y\xd6\u05f7x&\xfb;\xe49\xfb{<\x98\xfd\x83\xdd\xd45\xe7G\xbc%\xe7'\xe3.V\xf9ϸ+\xe7\x17\xbb)=\xe7Wܕ\xf3\x1b\\#\xa7c\xea\xefhd\x90?\xecf\xf0O$\x132\x86\x97\xaa\x8e\xe5%\xfb_\xea\x92}\x1c/\xd9\xc7\xe3\xa0J\xfe\x04xQ\x95\xfc\x8e\xa9\u007f\xdbM\xee\xf0D$\xd1\x1d\xfe\aIt\x87'!\x89\xee\xf0d8J8c\n\xdc&\x9cQ%\u007f\xaa\xbd(\xb5c\xea4d?\u007f:\x12\x96?\xc3\xfe$\x13\x96\x1fI\x8f\xe5f\xccD\xca\xf2g\xe1bp6.\x06\xe7\x18š\xdaǿ\xb8\x14\x9c\x8b\xf4\x06\xe7\xa1H\x83\xf3qS\xeb\x05\xb8\xa9\xf5B\xe3&個pS\xebŸ\xa9\xf5\x12\xdc\xd4z)\x92\xea\xca\xcaYfOH\x83,G\x9fY9\xa7\xf2\n\xbb\xa9\xc1\xfb+\x91\xfb\xf4U@\xc6j{B\xc3*\xdd3\xd7\xd8\xcd\rc\x95ע\xe8\x1a\xacCm\xf5Yoǀ\xb0\x01\x05\xef\xdeh7Es7\xd9\x13ZVnYy\xb3\xdd\xd42m\v\xe2/\xd8j7e\xe7l\x03r\xb7\xdb\xcd\xe8\x1ew \xd8{'^\xdfe\x97]\xfd_\x8bv\x83\xb1\xec=He\xb3\xbdh\xf6x\xef>\xbb\xd9\xedNۏ\x82\xf2\x1e\xb0\x9b\xf2\xf3\x0e\xdaM\xbe\x9e\x87\xec\xa6\xd6]\x0e\xd3\xf1\x8e\x90G\xd1z2\x8e\xa1\xf5d\x1cG\xeb\xc98\x81֓q\x12\xad'\xe3\x14ZO\xc6i\xb4\x9e\x8c3h=\x19g\xd1z2Ω֓q^\xb5\x9e\x8c\v\xaa\xf5d\\T\xad'\xe3\x92j=\x19\x97U\xebɸ\xa2ZO\xc6U\xd5z2\xae\xa9֓q]\xb5\x9e\x8c\x1b\xaa\xf5d\xdcT\xad'\xe3\x96j=\x19\xb7U\xebɸ\xa3ZO\xc6]\xb0Z\xc6=\xb0z\xc6}\xb0F\xc6\x03Б\xf1\x10\xac\x99\xf1\xc8n\xb6[3\x1e\x83\xb6\x8c'\xd2\xe4[\xae\x88I\xc4,\x92 \x92(RD\xa4\xa8H1\x91\xe2\"%D\x9e\x14yJ\xe4i\x91gD\x9e\x15yN\xe4y\x91\x17D^\x14yI\xe4e\x91WD^\x15yM\xe4u\x917D\xde\x14yK\xe4m\x91\x92\"\xa5Dt\x91$\x91\xd2\"eD\x92Eʊ\xbc#RN\xc4\"\x92\"R^\xa4\x82HE\x91J\"\x95E\xaa\x88XEl\"\xa9\"v\x91\xaa\"\xd5D\xaa\x8b\xd4\x10q\x88\xd4\x14yW\xa4\x96Hm\x91:\"uEꉼ'R_\xa4\x81HC\x91F\"\x8dE\x9a\x884\x15i&\xd2\\\xa4\x85HK\x91V\"i\"N\x11\x97\x88[\xc4#\xe2\x15\xf1\x89\xf8E\x02\"A\x91\xd6\"mDڊ\xb4\x13i/\xd2A$$\xd2Q\xa4\x93Hg\x91\xb0H\x17\x91t\x91\f\x91\x88HW\x91L\x91,\x91\xa8H7\x91\xee\"\xd9\"9\"\xb9\"1\x91\x1e\"\xef\x8b\xe4\x89\xe4\x8b\x14\x88\xc4Ez\x8a\xf4\x12\xe9-\xd2G\xa4\xafH?\x91\xfe\"\x03D\x06\x8a\f\x12\xf9@\xe4C\x91\xc1\"CD\x86\x8a\f\x13\x19.2Bd\xa4\xc8(\x91\xd1\"\x1f\x89|,\xf2\x89ȧ\"\x9f\x89|.\xf2\x85ȗ\"_\x89|-\xf2\x8dȷ\"߉|/\xf2\x83ȏ\"?\x89\xfc,\xf2\x8bȯ\"\xbf\x89\xfc.\xf2\x87ȟ\"cDƊ\xfc%2Nd\xbc\xc8\x04\x91\xbfE&\x8a\xfc#2Id\xb2\xc8\x14\x91\xa9\"\xd3D\xa6\x8b\xcc\x10\x99)2Kd\xb6Ȝ4.\x9fȹ\xe4\xb9\x80\\H.\"\x17\x93Kȥ\xe42r9\xb9\x82\\I\xae\"W\x93kȵ\xe4:r=\xb9\x81\xdcHn\"7\x93[ȭ\xe46r;\xb9\x83\xdcI\xee\"w\x93{Ƚ\xe4>r?y\x80\xf9\x80|H>\"\x1f\x93O8e\xbcr&6\xc2\xec^79\x13Z\x86c\xba\xd9i\xf6D\xf5\x04g\x11.\xd2\xf5Dg\x02\xd6\xe5z\x11\xb9\xb7\xa8Ӝ\x16Ӌ9\x8b\xb4\xe3\xc5\xe2\xce\x04_8W/Qx\xf3\x93r\xf3SNs\x8b\xa8\xfe\xb4\xd3\xdc \xae?\xe34\xb7\x8d\xeb\xcf:\x13ӰNןs&4\rG\xf5睉\r\xb3bq\xfd\x05C_T\x11b\xb2\xad\xbf\xe4L\xf0D#\xfa\xcbN\xb3;\xaa\xbf\x82س\xa2\xfa\xab\"\xaf\xa9Kq\xfdugb\x03\x95\xda7\x10oD\u007f\x13\x11\xc4p\xf4\x16\xf2\xa0\xf4m\xa7\xd9\x17\xd5K:\x8b4T\x9b\rz)gB#<\xa3ˣI\xce\"\xad\xd4\x06\x85^ZN\x97q&\xb4\xc5˓\vO\x97\xc51\xd2\xf0\x8e\xf1\x86r\xceD\x9f:mA\x9a\xe3\xb9z\x8a3\xa1\x05\x1e*\xef47\x8d\xe8\x15\xf0\xf6\xb0^\xd1Y\xc4\xc3'+\xa9\xf4\xab\xf7WfΫ\xa8[#\xbaՙ\xd8D\xa5\xc2\xe6Ll\xaa2\x97\xaa\x92\xa5\x02v\x95mhUgB\xabh\xae^͙\x88\xdc\xc7\xf4\xea\xce\x04\xa8^\xc3in\x16\xd6\x1d΄ָ\xa5&\x92\ny\x17G\x91\xa8^K\xee\xa8\xedLl\xa1RX\xc7in\x15\xd5\xeb\xe2\x9dq\xbd\x9e3\xc1\x8dw\xbe\xe747\x89\xeb\xf5\x91\xbc\xa8ހl\xe8Lp\xa2\xc8\x1b\xa9:\u009aRo,\xf9h\"\xd2T\xc5\x18ћ\xa9\xac\xc7\xf4\xe6|\xa2\x85\xd4uKu)\xaa\xb7r\x9a[\xc7\xf54u\x10֝H[\\w\xe1%aݍ\xb7GtOaֽ\xceD\xb7J\x94\x0f\xaa\xca\xc4\xefLD\xe1\xc4\xf4\x00\x1f\t\xb2\f\xa2z\xebªiS\x18h\xcbw\xb6C\x02P\x14\xed\xe5\xd5\x1d\x9c\ti\xc8LH\xd2ؑ\x1eى\x15\xde\xd9in\x13\xd5\xc3\xce\"\xdcjһ\x88?\xa5K\x85f8\x13\x9a\x85\xb3\xf5\x88D\xd2U\xf9M\\\xcft&\xfa{ų\xf5,q\xa3(k\xa8\x9b3ѩ\x9e\xef\xae\xde\x10ֳ\xe1\xfa\x91l=Gnɕ\xe7cN\xb3+[\uf064\xe0\r\xef;\x13[\xa9\xaa\xcbs&4\xc4+\xf2\x9dfo\\/\x80\xbb\xc7#z\\\xfc\xa6'\x8b\xbe\x97\x8a#\xac\xf7v\x9a\x9da\xbd\x8fJ^\xae\xde\x17\xe7b\xd9z?\xa7\xb9q\xb6\xde\x1f\x95\xaf\xd23@\xde2Pn\x19\x84x\xf1\xea\x0f\x94\xafE\xf5\x0f\xe5\xe4`\xe3\xa5C\xc4O\x86\xb2\xa4\x86!\xc9x\xe9p\\S\xc5;\x02-2\xac\x8fd+\x1b\xa5\xeaB\x95\xe9h\xc9\xc8G\"\x1f\xe3\xbdy\xfa'\xea\rq\xfdS\xde\xf9\x19\xf99\xf9\x05\x92\x0f\xff\xfe\x92\xf5\xf4\x15\xcb\xfak\xd6\xf97\x86\x9b}\xcbF\xf5\x1d\"CҾG\xd2\"\xb9\xfa\x0f\"?\xb2\x1d\xfc\xa4\x9a}D\xff\x99\a\xbf0\x86_\x19\xfe\x8d\x85\xfd\xbb3\xc1\x8fv\xf6\x873\xb1\xb5*\xf3?\x9d\x89-\x95\x8eq\x9a\xfda}\xacz\t\xf2\U00057abb\xa8>\x8ey\x1co4\x90\t\xce\xc4f*?\u007f#\x93q}\xa2\x94\xd8?\x85\x95?\xc9H\xdfd\u0530\xd2)\x85\ryj\xe1\x1dӌ;\xa6\xd3wf\xa8n W\x9f\x89~)\xa6ϒ\xc6?[\x92>G\x9aٿ,\xd4\\}.\x0e\xd1 \xe7I\xab\x9b\xefL\xf0\"\xaf\vD\x162O\x8b\xe0\xfca}\xb1\x91\xa5%L\xf5R)\xeeer\xdfr6\x8f\x15F\xe7\xba\xd2in\x17\xd1W)w\xcb\xd5W\xa3{\x8b\xebk\x8c\xceo-\xd2\x13\xd6\xd7\x15\xf6\xa9\xeb\xe5\x9e\r҇l4:\xa3M\xceD\xaf*\x89\xcdF\x87\xb7\x05\xce\x16ӷJ\xff\xbb\r\xfe\x81\x1a\u070e\xa3>a}\anQ\x11\xed\xc4+\xa3\xfa.I\xd4n\x16\xf6\x9e\u0097쥯\xees&\xaar\xd2\xf7\x1bz\x00\x15\x85l\x1fD\xa9\xabw\x1cB\xb9*=,\x19:\xc2\x06\x9d\xab\x1f\x15\xe7<\xc6<\x1fw\x9a\x1bE\xf5\x13\xaa\xf8\xa2\xfaIU|x\xe0\x14/\x9df%\xc6\xf43\xaa\xa5\xab\x97\x9e\x85\x1f\x85\xf5sR\x8b\xe7y\xcf\x05V\xecE\xb41\xbc\xe0\x92\xbc粴\xc9+\xc6\xe3W\x9d\x89m\xd5\xd3\u05cc\xd7_/\xecpnp\x90\xb8)\xfd\xe4-z\xecm:S\xae~G\n\xef\xae\xf4j\xf7\x8c~\xf8\xbeQ0\x0f\xe4=\x0f\x8d\xca{\xe4L\xc0e\xfd1s\xf2?ܫN>\xe12ޢ\xb9\x94;\x9b\\\tnx\x82٥\x1aL\x82\vu\x8ax\x13]\xf0\x92\\\xbd\x88\v^\x92\xab\x17u\xa9\f\x15s\xc1\x9fr\xf5\xe2.\xf1\xf1\x12<\xf9\xa4K\xb9\xccS.s}\x8c\x8a.\x95\xd0gx\xe6Y\x97\xaa\x85\xe7\\\xaa7}^=\x88\x11\xd1\xc5\xda\u007fѕ\xd0\x00\xef{\xc9E\xb7|\x99\xf7\xbd\xe2J\xf4\xab8_-L\xdak.\xba\xf0뮄f\xa8\xb57\x94D\xf57\x99ķ\\\t\rq\xf0\xb6\xcb\x18qJ\xba\xe8(\xa5\\th\xbd\xf0t\x12nC\xef_ڥ\x1ak\x19\x97xA\xb2\xcb\x18\xcd˺\x8c\x8a{\xc7E\xff*\xe7\x92\xf2\xb3 \xa9j@\x94\xac\x96\x978+\xb884Ut\xc9z\x0eq\xa9\x17Tv\x99\x9dq\xbd\x8aK\xb58\xab\xcb\xdc4\xae\xdbp&\xaa\xa7\x92v\x17\x1b_Ud\x16\xf7Vs\x99\xdb\xc4\xf5\xea.\xf1\xa1\x1a.\f\x8aȝÕ\xe8C\x9f\xa6\xd7D=\xc4\xf5w]\xaa+\xaa\xe5Jl\xa0*\xb46\x8f\xea\xb8\xe8/u]\xca\x1d\xea\xb1\xc0\xdf\xe3\x85\xfa,\xf0\x06.\xa3Sl\xc8j\xcb\xd5\x1b\xa1\xa0 \x8d]\xec؛H\x117\x95\xe47s\xa99Ks\xbe\xab\x05\xc2Q\xbd\xa5z?*\xbb\x95\xcb\xdc0\xaa\xa7If\x9d.\xe5+.y\xc6\rA\xf9{\xa46\xbc.qW\x9f\xcb\xec\x8f\xea~\x95\vD\x1fp\x99\x9bE\xf4 cl\xedb+k\x83*Aٷe}\xb5c\xb2ۻT\xa3\xee \xf1\x85\\\t-\x11_GW\xa2S\x95G'\x974\xc6\xce,\xb9\xb0Q\xbe]\x98\xd2t\xbcS]ˀo\x85\xf5\x88K\x1aJW\xa9\x8aL\x97\xb9eXϒ\x83\xa8\xf8q7Wb35\x1awg\xb2\xb2Q\xbd\xc8a\x8e\xcb\xe85s]j\x8a\x1332\xd2C\xd5\x0e\x06@zi\x9e+Q}M\xd2\xf3\xa5\xcc\v\\jd\x89\xbb\xa4\x8f\xeaI\xa7\xee\x85\xe2E}\xf5\x16\xaf\xec\xe3\xe2\x80\xd6\x17iR\xe9\xed\x87\\\xa8\xa6\xd3\xdf%\xbd\xfe\x00\x96\xea@\xe6~\x90\x8b=\xd5\a\xca\r\x11ۇF\xc5\x0f\x96\xe2\x1a\x82\xe2@\x04C]\x9c\x94\fsq\xdc\x1f\xaeR\x1e\xd5G\xf0\xf9\x91.\x0e\xa1\xa3pc<\xac\x8fv\x15Q\x93\xaeL\xfd#\x97\x9a$}\xec\xe2\xfc\xe2\x13yǧ.sZT\xffL\xea\xefs\xfa\xdd\x17R}_\xc2gr\xf5\xaf\xf0L\\\xff\x1a\x1e\x82S\xdf0\x93\xdfJ\x1b\xf8Ψ\x86\xef\xd5\xcb\xc2\xfa\x0f\xf2\xce\x1f\xa5E\xfc\xe4Jl\xaa.\xfel\xf8\xee/L\u05ef.5W\xf8\xcd%]\xd3\xef.N\x91\xff\x90\x02\xfc\x13I@\x06\xc6\xf0}cQS\x18\b\x8d\xa2\x19\xa7\"A\xfeǣ\x88\"\xfa\x04\x97̦\xfeFǢjn\xa2K\xf5\x8eQ\xfd\x1f\xc3=&Aի'K\xff1\x85\xbd\xccT\xd4\x01\x921\xcdU\xa4ET]\x9c\xee2\xe6\\3\x8c\xb8g\x8a\xab\xcdr\xc9H4\xdb\xc5\x01r\x0eS\xf3\xafKM+\xe7\xba8\x89\x9a\xe7\x92!v\xbeQ)\v\xa4R\x16\xb2a/ra\x86\x99\xab/V\xed*\xa6/Qހå\xea\x16\x8c\x86\xf4\xef\xe5.5m[\x81\xac\xc4\xf5\x95.Sc}\x95\x8bS\xf2\xd5,\xfb5\xae\"-YWkQ\x02q}\x1d\x13\xbf\x1e9A\x99n`\x19nd\x0f\xb8\t}\x83\xbam\xb3\xcb\xdc.\xaeo1\x8ad++x\x9b\xd1\x06\xb6+\xbf\xcb\xd5w\xb8d\xe4\xdfitj\xbb\xa4\x03\xdc\r\xffG\xa9\xedA\xff\x10\xd7\xf72\xd2}L\xda~Fr\x80g\x0e\xbad&{Hy~L?\xcc\x1c\x1ca\x97rTj\xef\x98t}ǥ\xcf>\xc1\x1bN\xb2\xc1\x9f\x92\x1e\xf5\xb4Q\xa2g\xa4ٝuq\x86x\x0e>\x84\xa7\xcf\xf3]\x17\xc4w/\xca\x1d\x97\f\xf7\xb8,Q^aB\xae\xb2y^cE\\gFb\xfa\r\xc9\xc1M\xe3\xfe[,\xed\x98~\xdb\xc5\xd9\xdd\x1d\x17Ʋ\xa8~\xd7%#\xde=v\xec\xf7\xe9\xd3\x0fdHy\xc8\xc4>\x92\fY\x13\xba\xd9Ƿu\xabѵ\x9d\x9b}S{7;\xda\x0en\xe9\x80B\xe2C\x1d\x99\xfbN\xee\"\xcd\xd8ot\x16\xd7\f\xbbe\xb4\xed\xe2\x96֗.\t\xc9p\xb3k\x8f\x18\xb9\xef\xeaV}N\xa6\x9b\v\xda,\xb7\x1a\x80\xa2n\xd5ܺ\xb9Uk\xe8.E\x9amTw\x8e[v.r\xddjp\x8b\xd1\xc5zH\xf2\xdfw\xb3\xd7\xcfs\xab\x9e!\x1fթ\n\xb3\xc0\xad\xba\xeb\xb8[:؞n\xb3\vkB7\x17@\xbdE\xfaH\x16\xfa\xa2\xde\xc3z?\xb7\xeak\xfbKI\x0f\x90r\x1c\xe8\xe6\x84tP\xa1\u007f~\xe0\x96E!*\x19\x8f\x0f\x96\xf4\rq\xab.l\xa8\x9b\xfd\xd10\xa6\u007f8\xea[%a\x84;ѫ\x92>ҭ\xfa\x99Qn5\xfc\x8cvs\x91\xf7\x11\xa2B\x1c\x1f\xbbբ\xf1\x13ԥ\x8a\xffS\xb7L\x8c>3*\xeas7;\xf2/$Q_\xbaU\xff\xf8\x95[M\x83r\xf5\xaf\r\xbf\xffFZ\xe6\xb7F\x83\xff\xce\xcd\xee\xe7{7{\xd9\x1f$\x87?\xba\xa5\xcb\xfa\xc9-]\xf3\xcfRK\xbfH\xdb\xfeU\xb5\u0098\xfe\x9b[\xa6\x19\xbf\xbb\xd5\xfc\xe2\x0fý\xfe\x14\x0f\x1c\xe3\xe6\xbab\xac\x9b\xa3\xe4_F\xfaƉ{\x8f\xc7[ЇM\x90W\xff\x8dւ\xe8&\xaa֒\xab\xff\x83\xa6\x87\x14L\x92\xbej\xb2\x91\x80)*\x9e\x98>ը\xdaiF72\xddh\xa03\xdc\xe6\xfa1}\xa6ۘ\x1cϢ\xc3\xcf6\xda\xdb\x1cD\x85\x92\xfb\xd7mL\x8e纍\xbd\x9fyF\xe72_:\xcd\x05\xd2\x14\x17\xba9\xc9\\\xe46\x16\\\x8b\x8d\xa6\xb9D\\r)]|\x19\x8bv9]`\x85\x94\xd9J\xb6\xa1\x98\xbe\xca-+E\xb7,H\xd7\xf0\x9e\xb5\xe8#q\xb0Ψ\x83\xf5n\x19\xdb6H\x81n4\x9a\xfb&\xa3c\xd9\xec66ն\xb8\x8d\x89\xddV\xa3\x12\xb7\xb9e\xe4\xdc\xee6&\x06;\xdc\x1c\xabw\xaa&\x87\xb1ҭ\x96\xa7\xbb\x99\xb8=n\xce\r\xf7\x16\xfa\xe2>\xb71\xad\xda\xef\x96\xfd\x87\x03\xecn\x0f❪(\x0f\xb9e\xe1~X<\xf9\b\x1b\xcdQ\xf8\xb3Z0\xba\xb9@9^X\xbe'\x8c\xf6x\xd2\xcd\x19\xf8)\xb7\xcc{N\xbb\xb9\xe9s\x06iU1\x9e\x95\xc6p\xce\xc8\xeby\xf1\xbb\v\xaa\x17\xb9h\xb3\xbbG\xedhe{d5\x94\xa3\xbc%\xae\xe7zT\u007f\x12\x13\xaf\xed!\xbe\xf8\xbeqK\x9eG\xa6\x84\xf9\x1e\x99)\x16xd\xa2\x17\xf7\x18+K\x8f\xeadzyԴ\xa8\xb7GF\xab>\x1e5o\xea\xeb)\xe2\xee\xd1\v5\xd4\xcf#\xe3H\u007f\xa3\t\rP\x99C\xae\x06zT\x174\x88\xcd\xef\x03\x86?4\xbcf\xb0\xc7\xe8\xfd\x86Hq\f\xf5$\xc0\x8b\xf4a\x92\xb5\xe1FU\x8f\x90\x8b#\x912\x15\xfd(\xb9i\xb4G\x8d\xf2\x1f\x15\xc6\xf01\x0f?\x91\x86\xf9\xa9\a\xc3uX\xff\xac\xf0\xe2\xe7\x12\xc3\x17\x1e\xe93\xbe\xf4pU\xf9\x95\x87#\xf1\xd7\x1e5\x19\xf9\xc6\xf0\x83o=j]\xfa\x9dG\xc6\xef\xef=\\\xb3\xfe\xe0\xe1l\xe3G\x0f'G?I\xff\xf2\xb3ѿ\xfc\u008c\xfd\xca\xe7~\x93\xba\xff\xdd(\xc4?\x8c6\xfd\xa7ǘލa\xf9\x8d52\xf6\x97G\x96\xf2\xe3<\xdcg\x18\xafj$G\x9f\xe0Q3\x89\xbf\xe5\x95\x13\x19\xed?F%L\xf2ȸ2Y\xba\x97)F\x89L\xf5H\x9f8\u0378m\xbaG\xed#\xcf(l\x183=\xec\xb0g\xf1\xec\xec\xc2Nb\x8eGu\xb5\xffzdF<׃5M\xae>\x8f\xef\x9e\xefag\xbc\xc0x\xdbB\xa3\x1d-\x92>g\xb1\x87\x13\x9e%F-/5\x9cu\x99\xb4\xfc\xe5x\x16u\xb7\x82\xadd%\x9df\x95G\xf5\xff\xabU\xe1\xa3\xd8\xd6xd\xa8_k<\xb7\xae\xd0q\xd7{d|\xde\xe0\x91\xbd\xbd\x8d\x1eن\xdad$c\xb3\x87+\x89-\xc6{\xb7J\xd5l\xf3pR\xb0\x9d\x95\xb0\x83\rf\xa7GfD\xbb\x8c\xe2ݭJ?\x8eV\xb6\xc7ù\xc8^\xb6\xdd}\x1en0\xef\x97^\xf8\x80\x87\x03\xd6A\x91CF\xef{\x98\r\xe6\b\xfbѣ\xf4\xdcc\x1e\x0e\xa4\xc7EN\x88\x9c4\xca\xff\x14k\xf7\xb4\xf4\x8cgT\a\xd7=\xa6\x9f5.\x9eSN\xd7]?\xefQ\xb3\xdd\v,\xe7\x8bƥK\x1eY\xed^6\x8e\xaf(?\x8b\xeaW\v\x1b\xfe59\xbe.\x05p\xc3#\x03\xfdM\xe3\xa9[\x1e\xb5\x01u\xbb\xb0\u05fbc\fdwY\x03\xf7\xef\x95\xfe\xe6\x05/F\x8e\xb0\xfe\xa2\x97\x8bڗ\xbc\xb2\xfa\xf4\xaaz}ŋ\x81 \xa2\xbf\xea\xa5\x1b\xbe\xe6e\x9f\xf6\xbaW\xed\xea\xbfᕖ\xf0\xe6\u007fI{˫J\xf8myaI\xaf*\xa2R^U=\xbaWf`I^:yi\xafxY\x19\xaf\xd1D\x93\xbdl\te\xbd\x18\xd4#\xfa;^\xce\xc0ˉX\xbc\x1cXS\x98\x9c\xf2FD\x15\xe4Ί^\xe9\xd3*yů+{\xd9\aU\xf1\xf2+\x8dU\n\xd2\xf6_\xfaRQ@\xf0E\xbbWm\xb7T\xf5\xd2\x17\xaby\xd58S\xdd\xcb\x11\xba\x86\x8a\x1e\x118\xbc\xd2\xc1\xd7\xf4r\x15\xf6\xaeW\xf9O-\xaf\x1a\xc2jK\xaa\xeax\xb98\xa9\xcb+\xf5\xe4\xe0=/]\xa6\xbeD܀%\xddЫV\x8a\x8d\x8c\xf45F\xf9\xa1\xe14\x91\xf45e16\xf3J\xc7\xd4\\UWLo\xe1\xe5ǵ\x96|Y+\xaf\xfaܒfT\xa8SR\xe3\xfa/?nɮ\xc7+\xad\xd3+1\xf8XR~\xbe8\xe0\xe5\xc6H\x10\xe5\x8b\xf7\xb66\x8a\xab\x8dWu\x11m\xff\x8b\xa7\x9dW\x8d)\xed\x8d\xfa\xec n\x10\xf2\xaaydG梓d\xa9\xb3Wz\x8b\xb0\x97co\x17\xaf\xac\xfbӍ\xf7g\xf0\xde\b\x9f\xeb*\xb7d\xb2\xfa\xb3\xbc\xdc\x14\x8dz\x8d\x05o7\xe3\x81\xee\x12m\xb6W\u05909^5\xf5ȕL\xc5\xe8K=\n\x1fy\xdfx$ϫ\xb6V\xf2\xbd\\\xc5\x16H\x81\xc7\xff\xcbHO\xaflZ\xf422\xdaۛ\xe8W\xc7}\xbcj\xae֗\x05\xd3\x0fE\x82\xb2\xe8ox\xd2\x00\xaf\xac<\x06z9\x1e\f\xf2ʤ\xf3\x03IŇ^\x99\a\x0f\x9661D\x1a\xcaPy\xfd0#\xffý\xb2Z\x19\xc1̎\xf4\xaa)\xf3(i)\xa3\xc53>2b\xfdX\x0e?12\U000e985fy\x8d\x15\xa8\x94\xd3\x17,\xc7/\x8d\x8b_\xb1\x85\u007fm\x1c}#\x8e\xfa\xad\x91\xc1\xef\xa0*\x83\xdf{\xd5\x0f\x14~`\x06\u007f\xf4r\u007f\xf7'\x1e\xfc\xec\xe5\xc7Iß\u007f\xf5\xf2\x93\xc3o^\x99\u007f\xfc\xee\xe5d\xff\x0f\x96\xfb\x9f^~\x18\x18#-}\xac\x97]\xf4_\xdeĖ\xaa\xf8\xc7y92\x8e\x97\xb7O\xf0\xca\xe8\xf0\xb7\xbci\xa2W}\xed\xf8G\x1a\xc6$6\xfb\xc9^\xf9|0\x85\x89\x9f*\xf7M\xf3\xaa\xe1>\xa6Og\xcaf\x18mb\xa6\x97K\xadY\"\xb3\x8d\x1a\x9c#\xd5\xf1\xafW\xa67s\xbdj\x8b\u007f\x9eWV\xd6\xf3\xbd\x9cK,\xf0\x1a\xc3\xeaBy\xf5\"I\xfab\xaf\xda>\\\xe2\xe5\xac`)\xdb\xd12\xe3]˽\x9ct\xaf\xa0\x8b\xae\x94\xceh\x95\x97\v\xd8\xd5^\xd9d]\xe3\x95E\xf3ZC\xd7ye\x8e\xb2\x9e\x11m\xf0r\xefc\xa3\x91\xcaMF\x83\xd8L\xff\xda\"\xadl\xabW& ۼ\xdc\x1c\xdc\xeeU\x1fDw\x88\xab\xee4b\xdbe\x94\xe0n\xaf\x9a\a\xed!\xf7J\xf7\xbd\x8f\xb5\xb1\x9f\x05w@^wЛؚ\xcb\xcc\xc2\xd6pX\n\xeb\x88W}F<ʗ\x1f3\xfc\xf8\xb8\xe4\xfb\x04}褗;ۧ\xbcƢ\xfd\xb4\xe1\x87g\f\u007f8k\x14\xef9\xbe\xed\xbc8\xf9\x05/\a؋F\x1e/yeyy\x99\xde}EF\x8e\xab\xe2\x0f\xd7\xc4g\xaeK2o\x88\xdcdzn\xb1\x92o{\xb9\xd5u\xc7++\x95\xbb\xc6{\xefI\x9f~\xdf\xf0\x92\a^\xae6\x1ez\xb9\x04~$\x17\x1f{9S\xfc\x1f\x8b\xe3\t\x1f\xef\xd0|\x89ij\xd6k\xf2%8\xc3}t\xb3\x8f\x9fC\x12D\x12}|\xae\x88O>\x15\x17\xf5ɯL}\xc6\x18]\xdc'\xdb\x1e%|*\x1fO\xfa0\x9b\x8b\xe9O\xf9Tw\xf2\xb4O\xad\xfc\x9f\xf1\xa9\xb5\xe4\xb3>\fE1\xfd9\x9f\xea~\x9e\xf7ICy\xc1gn\x84\xf1\xd1\xc7\xf4\xbd\xe43\x96\x87/\xfb\xd4\xc6\xd9+>\xf6\t\xaf\xfa\xb8\x91\xf1\x9aJYL\u007f\xddG\xa7z\xc3'{\xaboʓo\xf9T1\xbf\xedS;`%}\xc6*\xbc\x94O\xbe\x99\xea\x85'\x92|\x86[\x97\xf6\xa9\xc9c\x19\x1f\xa7~\xc9>ծ\xca\xfa\xe4+\xc3;>v$\xe5|\x9c\x04X|\x89\xed\xd4\x03)\x85O\x96\xf7\xb1ۯ\xc0\b*\xfa\xb8\xffVI\x1e\xa9,R\xc5\xc7Ţ\xd5\xc7\xea\xb4\xc9\xc9T\x9ftdvC\xab\xfa\x12}\xaa\xba\xaa\xf9\xd4d\xac\xbad\xa2\x06\x13\xe2\xf0\xa9YZM\x9f\xea\xeb\xde\xe5\x99Z\xcc\\m\x95\xa2\xb0^\xc7\xc7\uefee\x91\xdcz>\xb5\x90~\x8f\xf7\xd5\xf7\xd1A\x1b\xf8\xb8\xb2k蓱\xad\x91\x0f\xb3?\xb5)\xebS\x1f˛\xf8ԗ\x8e\xa6>\xc3ݛ\xf9\x94\x0f4\x97$\xb7\xf0\xb1\x0fk)Ѵb:\xd2|\x1c\xb2\x9cR\x15.\x1f\x9d\xd3-'=R1^F\xe9\xf3I\x97\xed\x97[\x02\x92\xfd\xa0\x8fn\xdc\xda\xc7\x0f:m\xe4d[\x9fjA\xed|\xaa\xabh\xafR\xa2&x\x1d|\xeaCi\xa8\xb0\x9c;\x1a\xf9\xeb\xc4ӝ}\xb2\x0f\x1b\x962\xe8\xe2S\xed \xdd\xc7\xe5~\x06\x0f\"LmW\x1fǖL\x9f\xda\x18Β\x94D}\xecº\x89t\xf7qݟ\xedK\xa8\xafV\x92\x85\x0e\x97\xebc\xf7\x1b\xf3qe\xd5\xc3\xc7\xc9\xf8\xfbro\x9eO\xdaR>\x93]\x80$\xa8\x9f\xe8\xf8\xe4\x974=\xa5\xb0z\xf9\xa4I\xf7\x96w\xf6\xf1\xa9n\xa7\xaf\x8f=}?y\xa2?\x8bz\x00#\x19\xe835\xd6\a\xf9\xa4\x8b\xfb\x80I\xffP\x1a\xd5`\x1f\xe7\xafC\x8c\f\x0fU7\x0e\xf3\xc9V\xf5p\x9fj\xf8#|\xfc\x81\xd5H\xb9q\x14ύ\xf6\xa9\xb1\xe8#\xf2cq\x90O|\xfc\x1a\xfc\xa9d\xec3\x1f\xc7\xd5\xcf}\xf2S\xaa/\xe4e_\xfaT\u007f\xfe\x15\x1f\xfbZn\xfcƧ\x16\x9e\xdf\x1a\xf7}\xe7SS\x9d\xef\xf9\x8e\x1f$\xc2\x1f}\xfc4\U00093466\x9f\xf1\x18\\\xe7\x17\x1f'H\xbfJ\xeb\xf8\xcd'\x13\xaf\xdf\x19\xd9\x1f\xc6џ>c\xd7p\x8c\xa4p,\xa3\xfd\xcbǮq\x9c\x8f[Q\xe3}\xb2\x16\x9f\xe0\x93=Xi\x18\x13}\xecl\xff\xf1\xa9\xd9\xff$iQ\x93%\x92)>\xb5\xfa\x99ʨ\xa6\xf9\x8c\xed\x8e\xe9>n\x06\xcc\xe0ٙr\xe3,\x91\xd9Fb\xe6\xf0\xb9\u007f\x8d^h\xae\x8f\v\xa5y>~C\x9c\xcfִ\x80\\\xe83\a\xba\xeb\x8b|\xdc\xcfY\xccֺ\xc4'\vȥ>c;t\x99\x8f\x9b\xd4\xcb}\xdc)^!\xb2Rd\x95\xc8j\x9f\xda\xd7[\xe3\xe3\xee\xf3Zq\xdcu>N:\xd7\xd3#6ȹ\x8d\xbe\xa2>\x99pm\xf2q\xac\xd8\xec\x93]\x87->\xf9\xb9\xdbV\x9f\xda\t\xd9\xe6S{\xdb\xdb}\xfcd\xb2C\\p\xa7\x8f+\xd6]F;\xdc\xcd\xe4\xef1\x1e\xdfk4\xa7}t\xcc\xfd>\xceN\x0e\xf8\xb868\xe8\xe3g\x80C\xaa\xaf\x8f\xe9\x87\xc5\xe9\x8f\xc8ɣH1\xfc\xf9\x98zST?n\f\x00'|\x9cB\x9c\xf4\xa9\x95\xf0)\xf6\xfa\xa7}\xb2\xf08#-\xf0\xac\f\x02\xe7\xe4\xc6\xf3\xe2[\x17|2F^\xf4\xc9\xd6\xd6%\xe6\xe5\xb2O~\xd0tŧ\xa6\x01W}\xdc\v\xb8&\xbd\xfcu\xc9\xda\r)\x9c\x9bR=\xb7\xd05\xc6\xf4\xdb\xd2\xd2\xee\xf88\xef\xb8\xcb\xea\xbc\xe7\xe3\xbe\xf5}y\xf8\x81OM\x0f\x1e\xfad\xed\xf7\x88\xc5\xfcX\x1c\xff\u007f>\xf9A\xd2\x13~\xfe,P\xf3\xabR1\xf9\x13\xd3Tɛ\xfd|<\xc1\xaf\x06\xb0D\xbfl\xa8\x16\xf1\xf3SCQ\xbf\x9a\xcf\x17\xf3\xabvS\xdcϥ\xa1_\xe2\u007f\xd2\xcf5\xe1S~\x19ӟ\xf6\xcbj\xfd\x19?\x9b˳~\xe5\x8a\xcf\xf9\xd5\"\xf6y\xbf\xd1\x0e^\xf0\xb3Q\xbe\xe8\xe70\xf4\x92_\xed`\xbc\xecW\xbd\xd9+~S}\xfdU\xbf\xfa\xa6\xf2\x9a_}\xf0y\xddϵ\xcb\x1b~~\x90\xf4s\xc7\xe6-\xbflǾ\xed\xa7\xf3\x96\xf4'\xf8q\xb6\x94\x9f}\x97\xeegKL\U000ab074\xb4\x9f\xed\xa7\x8cH\xb2\x9f=aY\xbf\xeaY\xdf\xf1s\xce^ί\xaa\xc2\xe2\xe7\xef\x8fR\xfc\\\a\x97\xf7\xa3\xef\xa9\xe0g7S\xd1/ͽ\x92?\xb1\x99Jze\xbfZ\xce\xe5\xeaU\xfcj\xbdc\xf5Kq\xda\xfc\xac\xe7T\xbfl\x03\xda\xfd\xaaǫJV\xf3ˏ\xaf\xaa\xfb\xcdΈ^C\xb2\xe3\xf0s\xa8\xf3\xcb\xc7\xd8w\xfd\xdc5\xac\xe5\xe7r\xba\xb6\x14\\\x1df\xbf.\xe3\xa8秇\xbe\xe7W\xfdU})\x84\x06,\xaf\x86*\xa9\x8dXa\x8d\xfdܱi\xe2W\r\xae)\x93\xd7\xcco|\xael\xcehZH4-\xfdj\x1e\xd2\xca/>\x99fd\xc1)\x95\xef\xf2\x1b\x03\xa4\x9b\xe9\xf5H\xd9z\xf9\x88\x8f\x95\xe0\xf7\xb3-\a\x98\xbe \xab\xb7\xb5\x9f\xfb\x9dm\xfc\xd2Ŵ\xf5\xcb\xd6E;\xbf\xfc{\n\xbf1U\xec\xc0T\x84T\x92;\xfa\xe9ߝ\xfc2y\xeb\xecO\xc0DJ\x0fK\tt\xf1\xab\xa1=\xddoJ\xd33\xfcҺ\"~n\x16v\xf5\xb3=d\xfa\xd57\x9f,\xbfl\x03F%\xaen\xc6aw$\x19\xb5\x9c\xcd\"\xcea\x92sY\x1a1\xbfl\xb4\xf4\xa0+\xbf\xefWm8\x8f\xe1|?\x9b~\x01[C\x9c>\xde\xd3\xcfIW/q\xd1\xde~\xfeا\x0fc\xeb\xeb\x97%C?\xa3\xb6\xfb\xfbՔh\x80\xe1\xf7\x03\xfdj^7ȯ:\xa1\x0f\xfc\xaa\x87\xf8\x10\xc5\x1e\xc9\xd1\a\xfb\xd5\x1cm\x88\x9f?\xf7\x18\xea\xe72u\x98\x9f\xd3\xfb\xe1~N\x10G\xd0gG\xb2\xacG\xf9e\x1a=\x9a\xa9\xf9H\x1a\xcc\xc7<\xf8\xc4\xcf\xdfw~\xea\xe7\x10\xf1\x99_\x16\x15\x9f\xf3\xb1/\xfc\x1cr\xbf4\xca\xe2+\xbfZ\xe3|\xedW\xbf[\xfa\x86\x19\xfe\x96\xe1\xef\xfc\xfc\"\xfc=[\xc2\x0f~\xf9\x14\xf0\xa3_\x16\x10?\xf9e\xd7\xecg$\x15/\xfdůz\x98_\xfd\xd2\xf7\xff\xe6\xe7z\xf2w\x96\xe8\x1f~\xb5\xd1\xf1\xa7\xaa\xd01~cs~\xac$\xf5/\x16\xff8\x16\xd8x?\x17Q\x13X\xd6\u007fK\xcf3\xd1\xcf\rQi7\x93\xa4\x8f\x99\xcc~e\x8a\x91\xf6\xa9\xf4\xeai~c\x9a4\xdd\xcf\xef\x063\x8c\u009f\xe9W\x9d\xe6,?\xe7o\xb3\xfd\xfc\xa1\xd2\x1c\xbf\xfc\x16\xeb_?\xfb\xe0\xb9F\x92\xe7\xa9\xf4\xcd7\xba\xb3\x05~\xfe*d!j\x1cw.\xf2sl\\\xec\xe7\xdag\tS\xbb\x94\rh\x19\xaa\x04]\xc6r\xa3\x8eW\x18\xbd\xdbJ\xa3\xb5\xac\xf2\x1bK\x80\xd5\xd2lְ\xa0\xd7\xfa\xd5\xef\xcd\xd7\xf9\xb9y\xbdޯ6\xf07\xd0U7\xfa\xf9S\x93M\x85\x1d\xe0f\xbec\x8b\x9f\xbf\xef\xda\xea7\xa6~\xdbؾ\xb7Ӂv\x18\xf9\xdcI\x9f\xd8\xe5\xe7\x96\xd9niP{\xfc\x9c\x93\xeeEф\xf3QR\xfb\x8c\xf6\xb6_\x9c\xea\x80\xdcu\x90\xa5y\xc8/\xbbۇ\xfd\\\xdf\x1e\xc1+b\xfaQ?ǎcF{=n8\xc0\t\xf1Ɠ\xc6pp\x8a\x15pZ\x95\xde\x19\xc9\xe5Y\xbfL\bϱ՟\xf7\xab\x1ff_\xf0\xabI\xf0Ez\xe6%\xbf\xda\x05\xbbl$\xfd\x8aQ\xfeW\xa5t\xaf\xf9մ\xf7\xba\x9f\x93\xb8\x1b\xe2%7\xfdƦ\xf1-v÷\xc57\xee\xf8\xd5\xf8u\xd7\xcfߖܓ~\xfa>]\xf5\x81t\xca\x0f\xfd\xf2c\xe6G\xfeĦJ\x1f\xb3S\x8e\xe9\xffc\x8a\x9f\b\xb0\x93\xd0\x02\xac[S@\xb9\xbd\x99L\b\xb0\x9fJ\f0\x96\"\x01~6/\x1a\x90\x9fj\x14\vp\xdb3\xa0j\xa6D\x80\xf3\x84'\x03j\xd8z* \xf9x:\xa0\xdc+W\u007f&\xa0r\xffl@9\xf8s\x01\xd9fy>\xc0\x06\xf5B\x80\x03\xf5\x8b\x01.Q_\n\xa8\xfe\xee\xe5\x00wd_\t\xa8\xca}5\xc0\xae\xfe\xb5\x80j>\xaf\a\x94o\xbc\x11\xe0\xe0\xf4f@\rzo\x050\x0f\xcf\xd6\xdf\x0e\x88\x9b\x95\x94\xdbK\x05\x12ZF\xf2u=\xc0\x82L\n\x14\xfe\xe3\v\xc9@\x19yA\xb2\x91\xbc\xb2\x01\xd9ux'\xc0\x89e\xb9\x80r\x03\x8b\xa4/%\xa0\xd6\a\xe5\x03\xb2?]!\xc0\x11\xb3b@\xf5_\x95\x98\xa4\xca\x01\x996U\t\xb0G\xb4\x06d\xf3\xd2\x160&\x98\xa9\x01\xd5\xe2\xed,\x81\xaa\x01\xa3_\xaf\x16P\xab\xdc\xea\x01\x8e\xae5\x02\xca\xc3\x1c\x01Y{\xd5\f\xa8F\xf0n@>J\xd5\np\xfb\xa2\xb6\xa4\xac\x0eK\xb0n\x80\x1db=&\xe2=\x96~\xfd\x80\xf4\x00\r\x02\tNHC\x95{,\xe7\x022\xbfklh\x93\x80\xf1\xfb\x81\xa6,\xc6f\x01\xf1\x89\xe6\x01N\x81[\x040\x91h\x19\x10Ol\x150\xda]Z\x80Ù\x93\x15\xe3\np\xb4q\a\xf85\xc1#\x89\xf22\x1d>\x16\x86\x9f\f\x04؛\x04\x03\\µ\x16i\x13Ps\x96\xb6\x01գ\xb5\v\xa8&\xda^\xa2\xe9@o\x8a顀j\x10\x1dY\xe9\x9d\x18O\xe7\x00=?\x1c\xe0Pҥ\xb0\x12\xd3\r\xef\xca\b\xa8uoDR\xd15\xa06i3\x03j37+ \xab\xa5h\x80\x13\xccn\xb8/\xacw\x97Ȳ\x03f_D\xcf\t\x18\xf3\xf1\\\x14\x18\xaa \xa6\xee\xc4b.\xc0\xef\xb5\xefK;\xc8c)\xe5\ad\xc0-\bp\xc2\x18\x0f\xa86\xd93 \x13\xd1^\x86\xe7\xf46\x8a\xadO@\xfe٠\xe1\xe3\xfd\x02\xec\x04\xfa\a\xd4\xd2h\x00\xeb|`\x80c\xd0 )\x94\x0f\x02\xaaO\xfe0 \x03\xd2`q\xa1!\x01\xae\x80\x87\x06dot\x18\x1db\xb8$\u007f\x04\xb39R\x1cgT\x80\xf3\x9e\xd1\xd28?\np\xfe\xfd\xb1\xe1\n\x9f\x04\xe4\xcb\xfb\xa7\x01\xf6۟\x05\xccވ\xfe9\xe3\xfaB\xbc\xf8\xcb\x00LJ\xaf\x02\x1cJ\xbe\xa6\xa3\u007f\x130>\x06\xb2R\xbf\vp\xc3\xe7\xfb\x80\xf1\xab\x89\x1f\x02\x1c<~4\xda\xcdO\x86\xfeL\xb7\xfc\x85\xf5\xf7+\x1b\xcfo\x01\xee\xf1\xff\x1e0>-\xfc!9\xfbS\xeajL@\xcd\x1a\xc6\x06\x8c\x8f<\u007f\x05\xd4Ri\x9c\xd4\xc4\xf8\x80\x8c:\x13\nk\xfbo&yb@\xfe=\xd4?R\xa2\x93\x02\xb2#O\x12?\x9f\xb9Z\xc0\xd7/\x94\x02_\x14\xe0\x97\x83\xc5\x01\xd5i/Af\x10\xc9\xd2\x00\x87\xf7e\xac\xe3\xe5R\x96+X\x14+U\x83Z\x15\xe0蹺\xb0寡\xff\xad5j|]@\xfd&d\xbd\xd1wm\bp\x9d\xb2\x91\xdd\xea&\xe9\xaa6\xb3\x93\xdb\x12\xe0\xfaok\x80\xf3\x98m\xf4\x9a\xed\x01\xf5\xaf*v\x18\x05\xb3\xd3\xe80v\x05ԧ\xf2\xdd\x01.\xc9\xf6\x04\xd4\x18\xbb\x97U\xb2/ \xeb\xf4\xfdl\xc9\a\x8c6t0\xc0\x99ࡀ\x1a\x06\x0e\xb3q\x1e\x91\xbc\x1e\x95\xb6p, \xbb\x9e\xc7\x19Չ\x80\x9aٜ\x94J8\x15\xe0\x98xZ\x12zF\x06\x80\xb3\x92\xc4sr\xf2\xbc\xf4\xd4\x17\xa4n/\xb2X.\xe1\xe9h\xbe~9\xc0\x1f\xae\\\t\x98\x9d\x99\xfaU\xbe\xffZ@\r\x8fו\x1f\x87\xf5\x1b\xec\xd8nJ\x83\xba\x15\x90\xc9\xc4mv\x1cw\x02jq\u007f\x97\xbc\x17\x90]\xb2\xfbҙ<\x90f\xf20\xa0v\xe2\x1fI)<\x16\xf9\x9f4\xe0'\x82\xaaUkA\xfeˊ\xa0\xcc\xe8\xcdA\xe3\x83q\x82q\"1ȍ\xe2\"A>R4\xc8E{\xb1 \xfc*\xa6\x17\x0f2\xa3%\x82*}O\x06\xa5\xe1?\x15\x94\x8dߧ\x83\xf4\x90g\x82\xe6\xa6a\xfd٠\x1aB\x9f3ny>\xa8\x9a\xd4\vA6\xa1\x17\x83\xecp^\n\xaa%\xc1\xcbA\xa9\x8cW\x82\xaa\xf7z5h\x8c\x1c\xaf\x05U3y=\xa8\x96\xb0o \xd5\x11\xfd\xcd G<\xf2mFW2\xc8݆RAՄt\xbe5)(\x9dO\xe9\xa0\xeap\xcb\x04\xe5\x9f+$\a\xc5\xd7\xcb\x06\xe1/\xc8\xda;FN\xcb\x05լ\xd2b\xa41%\xc8yR\xf9 \xb7\xe2*\x04\xb9\x84\xa8\x18\xe4HX)([\xb7\x95\x83\x1cS\xab\x18\x8fX\x83ʻlA~\\H\r\xca\xd2\xcd\x1ed\x13\xaa\x1a\xe4\x8eO5\xe3\xd6\xeaA\xe5=5\x82t\x1bGP;k\x06\xe5\x97\\\xef\x06\xa5A\xd7\n\xaaFW;\xc8FSG\x8a\xbf\xaeH\xbd\xa0\xaa\xd3\xf7\x82\xdcޮ\x1f\xc4\x1c\xabA\x90?\x19k\x18\xe4\xf6G\xa3 \xbd\xb2\xb1\x14p\x93 ;\xb7\xa6\xc1¯R͂\xea\xf7\xdf̓\xec)Z\x04\xf9{\xd2 ǶVAc͗f\x94\x89\x93%\xe7bR\xdct\x14\x8f\xa4\xd9\x1b\x14g\xf3\xb1f\xfcA\xf9\x1c\x1d\x907\x06\x83\xecU[\a\xd56v\x9b \xb7\xaa\xda\x06\xe9\xff\xed$\xd1\xed\x83l\x06\x1d\x82j\x1d\x1abat\f\xb2\x03\xebd\xd4N砚Ɇ%\x91]\x98\xc8\xf4\xa0\xf4\xe7\x19A\xee\x10F\x822;\xed\x1a\xe4\xfc6Sޝ\xc5TFU\xa1t\vrn\xd3=\xa8:\x91\xec \x9bw\x8e\x91\xb1ܠL_c\xf4\xdd\x1eA\xe9\x84ޗ\xb4\xe6\x05eN\x9c\xcf\xd7\x16\x04\xd9'ƃ\xfcz\xdb3\xa8\xdag\xaf w\x8b{\a\xb9\xf4\xef\x13\x94\xaf\xe9}\xf1\x0e\xb5u\x19d{\xee\x1fT\x83\xf2\x00r\xa0\x94\xc8 \xf1\x82\x0f\x82\xb2H\xfa\x90\rpp\x90\x93\x8e!AՉ\r\r\xb2\x0f\x1d\x16T}\xd7p)\xeb\x11A\xae#G\x06\xd5|`T\x90\xf3\xf4\xd1\xffG\xd4U\aJQ~m\x1a\x04\x15\x11\x10\x01\x91k\x80\x88\"\x16\x82\x8a\"(-!q\xb7c\xb6gwg/)e \n\x18\x94 )HwH\v(!)ݠ4\b\xd2)\x8d\xc0\xb7\xe7y\xce\xfe\xbe\u007ff\xee\xee\x9dy\xe3\xc4s\x9es\xdewf\xa1\x92\xef\xb2Y\xcc\xe8\x03\xcb\xebK\xb9\xf4\xe3]\xfd\xb3\x05\x86\ad\\\xe8\xfbl\x16/y\x1a\x946\x81tn\x87K\x06C\tC(\xbe\xa1\xd9\x12ԇe\x83\x05\x0f\xa7\x96Fp\xf0?\xc2\xcdF\xc2\xf6Fek\xc4\xfa)\x1b(3:[\"̘l,2\x8e\xcd\xce\xdf@\x1ck\\67r\x8dW\xa3\x9f\x80['Rϓp\xc7d\xf4=%\x9b9\xc4T8\xc24\xea|z6w\xa0\xcd\xc8F25\x13r\x9c\x95\xadd\xecg\xcai6\x9a\x9c\x03ḁd\xe6eKH\x9a\xcf^\x16ds]r\xa1Z\xd5/\xd9\\\xf8Y\x94͊\xe9\xe2l!\x11K \xfa_u\x98\xbf\xa9\x89,\xcd&\x1b[\x96\xcdؾ\x9c]\xae\xc8\xce\x140)\x9d\x95z\xdb*\x88t5\xa6\xb5F\xbb]\x9bM\xe6\xb1\x0e\xdf\xfe\x01C\\\x9f\x8dh\xb2A\x85\xb3\x91\u07b9)[\xc2\xdffLdK\xfa\uf72c\xadٺ\xc7%[R\xff\xedD\x95\x1d\xb4\x95\x9d\xecz\x97\xb6\xb1\x9bJ\xdd\xc3\xd3\xdel\x84\xf6?\xa9п\xa8\xbc}\xd9H.\xf6\xc3\xd5\x0e\xc8\xed\xa9\xac\x83\xda\xc3!^y\x986}\x847\x1c\xcd\x06\xf5:\x96\xcd\x15\xeb\xbf\xf5|\x9c\x16\u007f\"\x9b\x8bD\xff\xa8\x1b\x9d\xcc\xd6]V\xa7\xb2\xb9\xf9\xfct6\xf8ҙl\xd6>\xcf\xc2vα\xa3\xf3z\xd3\x05Z\xd9E\x06\x80K\x02\x94\xa9\xac\xcbz\xc7\x15\xce\xe2\xdflɢ\xae\xf2õl\xec\xef\xbf\xce\x1bn\xa4\xa7\x94\xfet3\xed*\xe9L/\x9b\xb5\x9e\xdb\b4wx\xc5\u007f\xd9(\x8b\xde\xe5\xa7{h\xea>;\xcde\xc3w\xb9m\x98l\x1e\x1b\x9e\x05\xc8k\x13\xc0\xcag\x13\xaf\xcfoc\x9eg\xe3X\v\xda\xd0u!\x1b)\xf0\x03\xb8\xa6\xb0\x8d\xec\xba\b\x1b{Ц\xe4\xf0!\x1b\x86\xfb\xb0\xde[Toz\xc4&\x96Y\xcc&F\xfe\xa8\xfe\xaf\xb8\x9eK\xd8ҀU\xd2&#|\f\xc7R8>n\xa3\xd8KK\xf7\xe1\xac26>\\h\x13CzBo-g\xe3\xa2ʓz.\x8f;\xb3l\x82\x16O\xe1\xef\xa7m\xacC>c\xd3\xfaܳ\x98h\x05\x9b8_E[\xbe\x86\xed̬\xe7p}%\x1b\xca\x0f\xcfs\x02\x95mx\xc8\x1es}\xd1&d\xa9\x8a\x8d\x8bv6qƪ\x18\xc6\xcb6\x01\xb1Wl\\7{Uϯٸ\xf3\xfeu\x1b\x13\xaej6B\xe4\x1b6\xacEU\xb7\x15\xac\x9d\xe8ء}Ǭ\x1a\xe9Y\x18\x96\x91\xf5\xa6M\v\x19o\xd9\x14\xb1\u07b6\t\x92״\xc1\xd4߱\x89\xa3\xbfk\x13\x9c\xabe\x03\xedxφ\xfaOm\x9e\xeaذ\f\xf7\xbe\r\xf1\xe5\x03\x1b\xd6\x18\xeb\xda\x10t\xea\xd9P\x9a\xadoC\U0007304d{\b\x1a\xda\x10\xf3\x1aٸ&ژ\x17}h\xc3\x13 Ml\x88\xb4MmX\x03o\x86\xf96\xb7\xf1\tC\xbd\xbf\x85M\x18XK\x1b\xf7,\xb5\x82\x18Z۸\xb0\x9f\x8d\x81\xdal\x8c#v\xfcϡ\xffs\xda\xe8v.v\xe1\xb6\t6xlR\xc3\xf0B\xc8>\x8e\xc4\x0fљY\x86MhO\xc0\x86e\x87\xa0\x8d\x94&d\x83\xb7\x84mR*\x8c\xb0\xa5(%\x11\xb3!)6m\xd8)\x16\xb7\xb1p\x99\xb0\x11\xf1\x926d\x82\x96Mʤ)\x1b\x1c$\a\xd3kcS\x1fnkc\xf9\xb0\x9dM\x9e\x83lo\x13r\xd9\xc1\x06h\xefh\x03\x8c|l\x93\x85\xfeN6!ߝmX\x17\xefbCq\xba+\xe6\xd1\xcd\xc6lφRƧ6\xfa\xe6g6`\xd8\xe7p\x80\xee6A\x84/8\xe4\x1e6\x16\xb3\xbf\xb4\t\x1c\u007fec8\xe8\xa9\xe7^\xb0\xd3\xde\x18\xc7\xd72\xe2.Y\xdf\xd8P\xf4\xfc\xd6ƗĨ\x0e\xfa\xd8X\x84\xec\v\xe9\xf7\xc3\xf0\xfa\xe3\xe6\x016\xd9\x17\xf5=\x875\xd0\x06\xa68Ȇe\xfa\x1f\b\x01\x83m\xc8 \x87ذ\xdbw\xa8\x8d\x8b-\xc30\xd6\xe16\xadO\x8e\xb0!\xa9\xf9цH3\x92\xa7Q\xf4\x89\x9flHLF\xab\xf0ưٱ6Ys\x1aG\x19\x8dW\x8f\x9d`C~:ц$g\x92\r%\x8a\xc9\x19\xf1O\xb1\xb1\x8c2U a\x9aM\xaa\x82\xd3Uy3lL\x8ff\xc2Nf\xd9P\xb9\xfc\x99B\x98mC\xa9a\x8e:\xda\\\x1bx\xfb<[\xfe\xfaF\"\x9c5߆\x92\xf4\x02\x9bd\xde\vU^\xbf\xd8ȶ\x17\xd9\x18\xe1\x16\xdb\xf8$\xca\x12\x1b\xca\f\xbfB\x97\xbf\xc1˗r:ˈ\x8a\xcbm\xc2\xfaV\xa8\xd6~O\xcf\\\x9e\xb4\xb7\xb1\xa0\xb6\xca&\x94j\xb5\x8d\x1cy\x8d\xba\xd7Z\x1b\x8a\xcb\xebl\xba\x9d\x85~\xba\x9e\xae\xbc\x01\x0e\xb2\xd1\x06\xae\xbd\xc9\xc6J\xc2f\x1b\xf3\xdf-6%\xa5[m\x88\xe9\xdbl\xa09\xdbm`\x1e;\xa8̝6\x94\x89w٤ҷ;sǞ\xf4\x90r,3k/\xbe\xfe\xd3\x06\n\xf8\x17\xbb\xdeG\xd0ޟ\x11\xfb\x01\x9bP݃6֞\x0eaD\x87\x01}Gp\xf7Q\x00\xe41\x1b\x97\xac\xff\xb6\xa1\xc0x\x1c\x9es\"\xd3\xdf?6,\xf1\x9f\xb4I\xe9\xfe\x14C\xc6i\x9b>\xf8|\xc6\xc6'\xd9\xce\xda4\xc5:\xa7\xe6zކE\x91\v\xf4\xe2\x8bP\xd1%\x1b\x1e7\xbbl\xc3\xf2\xe4\x15\x1bS\x97\u007f\tGW\xe95\xd7h\u007fס\xa0\x1b\xfc\xee&>ܢ\x02o\xc3\x0f\xeeظ\xe9\xf6?\xe0\xe9]\x1br\xf5{\x18\xe2}\xa0@.\xbbĥ\xdcvq\x97\x0f۹\xbb\xb8\xa8\x9d\x0fJ\xd8E\x8c\xc5\xec\f\x13\x8f\xf2\xcb\xe2v\x99s\t~(iǴ\x1e\xb3\xc3bK\xa1\x91\xc7\xed*\xe1\xd2v\xd8a\x19;\x02vY\xbb@\xf0\x13v\xe6\"\xe5\xec\xd0\xe8\x93vxWy\xbb\xf2\xb4,;<\xfb);\xb6\xe3<\xcd\xd33\x18\xf4\xb3v\xd1r\x05;\xf6/T\xb4s\x9b\xa7=\u007f\v\xb9\xad\x92L\xe8y;m\xba\xb2\x1d\x82\u007f\xc1\xceG\x96^\xc4\xddU\xecJ\x82_\x92K\xabځ\r/\xdba\xa4\xaf\xb0\x9bW\xed\xa2\x81\xd7\xecX]{ݮ\x91\xad\x9a\x1d\xfbW\xec\xc0\xe9\xea\x9cQ\r;\xeb\xaaoڵP\xf4\x16\x87\U000f6741\xb4\xa6\xfe\xff\x1d\x95\xfa\xbbv%\x1b\xb5T9\xef\xd9\v4\xef\"WԶ\x17l\x95\xd3\xce\f\x85\xb3\xeaؕ-\xbf\x9f\x19\xe9\a\xaa\x8c\xbavnq\xacG\x91\u05f7\xd3\xd5\x1a`\xb8\rqldg\xf0jl'u\xfe\xd0.$\xb9IF\x11M\xedt\xe4fv\xe0Ls\xbb\xf0\u05cfpla\x87\x9f\xb5\xb4K>\xdd\n\xb7\xb5\xb6\xb3v\x92\x9d\xb9\xdd\x06\xb5\xda\xd5\xda\x1cv\x80\x8333w\x97]b\xa2[\xad\xc9c',y\xedȫ|v\xee.\xf2\xd3\x1a\r;\xcb=\x01\xbb`b0\xd3A\xc8\x0e/\x0fۅ\xc2DT\x88Q\xbb@S\xcc\xce\xfd\v&U\x15\xa7n\x13\xdaN\xd2N\x90\xb6\xec\xa8\xf0\xa6\xec\x00\xe9\x1c;\xe2_\x1b{\xbe\xdai\xb2\xd2\xd6N\x88j\x97\xd1h{\x1dj\a;\x1d\xb5\xa3\x9d\xc9\xcb\xc7vI\xb5;\xd9%\x06u\xb6K\x85\xa3\x8bZ~W\xdaD7\xbb\xf0\x9aO2\xb6\xfa\xa9=\xb3\x93\xe13;<\xffs;\xaa(\xdd\xed\x88\\_\xd8\xf1\xe4Y\x0f;\x1f\xe7\xf9\xd2NF\xf1\x95]<\xbb'\xef\xe8\x05\x9b\xeem\xd7'\u07be\xe6\xec\xbeQu}kg$\xf9N\a\xd8\xc7\x0e\xd8\xe8k\x97ģ\x1f\x1d\xa8\xbf]+t\x03\xe8\xe8ߣŁv-\x99\x0f\xb2K\xf0\xff\xc1\x8e*\xd3`\xcap\b\xb4<4-f\x99\xfd0\x8cgx\xa6\x99\x11v-`\xfeHk\x1bi'\xb1\x19eg\xa5\xe3'\xbdm\xb4]\xa2\xca\x18;\x8b\xbdc\xf5<\xce.Qh\xbc]\x18\xeb\x04\xb5ɉv\"\xe7$;\xea\x1d\x93i>S ˩vd(\xd3x\x9a\xce\xd3\fLa\xa6]\xf9\xef,B\xcc\xcf<Ͷ\x03x\xe7\xd8YĘ\vC\x9ag\a\t\x9b\x9f\xf1\x9c\x05\xbch\xa1]\xca\x12\xbf\xd8%V,\x12\x81\xe7d-\xb6\xe7o\"\fv\t@\xe1\xd7̬\u007f\x83\x17-\xd59.\xb3#\xc8/\xb7c\x95\xd0.Q\xe3w\x80\xd7JU\xc8*\xbbn\xb7[\x8d\xb6ר\xbe\xd6\xda%\x1f_\xc7\xce\xff\xb0#\xfb[o\x17\xec\xde`\xe7\x82\xe5F;\x03\xfe&;S\xdb\xcdj`[\xe8\x00[y\xcf6(x\xbb]ʎ;\xe0\x05;\x01Ļ\xec\xa8j춣f\xb0G\xb1o\xafN\xe9O;\x82\xeb_v\xe5\xe6\xfb`\xc8\xfb\xa9\xf3\x03\x1c\xd4A;r\x85C:\x9c\xc3v\x92\xb6#z>j\xe7&\x18x\xf4\xdfvl\xba8\xaeC=\x91n!-\x94\u007f8ғl\xf6\x14\xfb<\r\xb5\x9f\xa1Ŝ%\xa2\x9c\xb3\xe3ك\xf3\xfc\U00082f60\x93\xber\xf1\u007f\u007f]\xcah\xf82\x04}\xc5\x0eF\xf1/B\xdbU;\xe8\xe7\xb5\xff]|\xdd.\x14\xf4\x06\x8e7\x19\xefn\xe1\xb6\xdb\xf8\xea\x0e\xcc\xf1?\xfe㮝\xa4잝\xeb\x9b\xf7\xed(\xb8\xe5r\xf0\xeb\xdc\x0e\xb9/\x8f\x03Δׁ\xf5B\a6c\xe5w\xa8^\v8\b\xe0\x05\x1d\xd8\xffW(\xfd\xef4\x91}\xc0\xc1-F\x85\x1d\xe0\x13E\x1c\xc8i\x1ft\x901?\xe4\x10\xfa\xf9\xb0\x03yGQ\a\xca@\x8f8t\xf5\xb8\x98\x83/\x1cu N\x16\xe7\u007fK8Pn,\xe9\x10u?\xe6\xc0\x82G)\a\x11\xedq\a\xe2\\i\x87\x80t\x19\al\xbf,OO8\xc4\xe8\xca9\x98\xcf>\xe9\xc8\u05faK\xfb\xac\xf2\x0e\xb0\xd6,\x9e\x9er\x88S?\xed\xe0f\xe2g\xf4\xfc\xac\x03ѫ\x82\x03\xb5\x91\x8a\x0e\xa2\xcas\x0e\xf1\x92J\x0e)\xe2>\xef \xaeVv \xd7x\x01Sz\xd1\xc1\x8dYU\x1c\b\x9a/9H\x9a\xab:\xb8Q\xe6e\a6\x9b\xbc\xe2\x80\xda_u %{\x8d\r\xbc\xee@jW\xcd\x01ky\xc3!NT\x1d\xe2\xaf\xe1\x00\x1f~\xd3\x01N\xf9\x16g\xf6v\xfa\xcbN\x1d\xb3j:Ԅ\xdfq\xa00\xf1./\xaa\xe5\x90\x05\xb1\xf7\x1cy릲j;H#\xea8Ȇ\xdfw\bf|\xc0~\xea:\x90p\xd4s0\x95\xaf\x0fa4p\xe0\xd5\x00\rU\xb3\x8d\x1c\b\x15\x8d\x1dL$\x1dt\xec&TSS*\xa6YZ\x97\xe9\xd17\xd7>>B;-\x1c\x88\xa1-\x1dX\x9ai\xc5\xe9\xb6Ɯ\xb23\xe6cs\x80\xde\xdb\x1d\f~\x0e^䄞]\x0e\x8d\xf3n\a\xf6/y\x1c\xdc]\xe5u\xc0\xb1|\x0e&\xac~\x1d\x91\xe1\x90L*\xe0\xc0\xceĠ\x83\x919\xe4@~\x19\xc6\xff\"\x0e\x81\xc0(\xfe\x8eeF`\xaa|\xe2\x14l\x82\x82Lf\xfemQY)\xce>\x87\x06\xd1\x06\xeai\xabw\xb6\xe3\x9d\xed\x1d\xb2?\xbf\x03\x8e\x1d\x1d\\>\xfc\x98\xa2\xec\xe4 xuv\x90\xd4tqH\\\xe9\xea\xc0Ja7\aJR\x9f8\x90h}\xea\x00d}\xe6`\x0e\xf3\xb9\x03\xa1\xa0\xbb\x03\xcf\x16:\xb8\xa6\xdf\xc3!e\xd4/)\x95\xaf\x1c|h\xb2\xa7\x83IT/G\x06\bz\xc3&\xbfv\xc8b\xc27\x0eT\x1f\xbfu\x00j\xbe\xc3\u007f\xfa8\x18g\xfb\xd2\x16\xfaQ\xcf\xfd\x1d \b\x03\x1cJZ\xbe\x87-\rt\b\xb7\x1b\x84a\xfc\xa0\x82\x1f\x9c\xb9d\b\xcd}\xa8\x03qu\x18%8\xdc\xc15\xb8\x11\x0e\x90\xf6\x1f)Ǒ\x0eT\xb5G\xfdo\x90?\xa5g\x9f\x16\xc2h\x8ea\x8cC\x16\x88\xc6:P\xb2\x1bG\x99\x8f\x87\xb0'8$\fMt\x80\\NRӜ\xac\x100\xc5\xc1ll*\x14<\r\x97Nw \u007f\x9d\x81\x81\xcft\b\xec\xcer\b\xed\xff\xd9\xc1z\xfbl\ak8s\x1cL\x8a\xe7»\xe7Qc\xf3\xb5\xe5\x05t˅\x0e2\xc9_\b\x85\x8b\x1cif\xbc\xd8\x01\xaa\xb3\xc4!\xe1\xf9WX\xfco\x18\xeaR\a7\xc8,s`\xdb\xf8r\xb9x\x85CB\xd4\xef\x0e\xc1ޕ\x0eI\x9eW94\x81Z\xed\xe0\x03\x12\x0eTz\xd6:\x84\x86\xac\x83\x82\xfeP\xbc\\\xef\x90e\xbb\r8n\xa4\x1c79\xb0r\xb3\xd9A6\xb1E\x91f\xab\x03Lj\x9b\x03${;\x10{\x87C\x8a\xa3;\x1dL\x8ew9\x10\xd7v\xa3\xb1=\x0e\t\xb9{\xb5\x91?\x1d(I\xffE\x1b\xd9G\xa5\xeewpa\xee@\xc6!\x0e:\xc0\xc7\x0e\xc1\x14\x0e;Pl8\xe2P\x12uT\xe0 '\xeb\x98C\xd3I\ak\xcelj\xb5'0\xb7\u007f\xd4\tN\xea\xf9\x14\x10ᴃ\x19\xea\x19J\xf8,\x9a?\x87\xe3y\xf5\x85\v\x0eng\xb8\xe8к\xc5%\a*_\x97\t\x90WhB\xff:\xb8\xe9\xec\xaa\x03\xa9\xf35\x9a\xdfu\xfe\xf3\x86\x03eқ\xfct\x8b.w[\xf5u\x87\xa0\xff\x9f\x03\xa4\xf4.\xed\xe7\x9eB\xe3}\b,\x97\x93Ox\xe6vB\x8ay\x9c\xf4\xb9\xbcNY;\xcd\xe7\x04\xa9\xcd\xef\x14\x06R\xc0\x99VPNVA'%P\xc8\xc9*\xe6\x03N֭\n;9\xa7\"Nn\x1fz\xd0)D\xe2!\xa7\xd2\xfc\x87\x9d\xac\xbe\x17u2.?\xe2\xc4s\x12N\xac\xb9>\xea\x14+/\xce!\x94p\n\t(\xe9\xc4.\x92ǜ\xac\xed\x97r\x12~\x1ew\x16h\n\xa5\x95vR\xfbe\x9c\xc0\x9a\xb2N\xbc\xc6͉\xc7\xd5\xcb9!\xa1'\x9dx2\xb9\xbc\x93\xaa\xcbrR(O9\xa1\x8f\xa7\x9d\xa8\x90<\xe3\x94\xe0\xf1\xac3\xe3\xbd\x15\x9ciۮ\xe8\x84\xdd<\xe7\xc4k\x1e*\xf1\xca\xe7\x9d\xdcgP\x19\x83}\xc1\t\x81\xbf\x88\x0fU\x9c\x82\xee/\xf1\xab\xaa\x18\xca\xcbN\xb1\xd1W\xf0\xf7\xab\x10\xe6kN\xbe\x89[\xe5T\xcd)\x96\xfa\x86S\xea\x82\xd5eh\xe9\x9ej8\xc5\xe7\xde\xd4+\xder\x92~\xbf\xed$\x89\xae\xe9\xd4$\xe6\x1d\xa7\xb0\xbbw\x9d\xc2\x0ek\xc9xߓCm*\xab\x8e\x0e\xf3}'\xeb\xf3\x1f8\xb1߫.\xba\xab\xe7\x94\x12e}'j\x16\rT\xa6\r\x9d(\x864r2Yi\xac\x9a\xfa\xd0\t\xb7h\x8215u\xa2\xa0\xdd\fZk.\xdd}\xe4\x94\xcd\x17-\x9c\xe0\x96-\x9d@\xeeV\xd4`k'\x9c5\xdbIBas\nHٝ4;\x87S\xab\xabNT\x06\\\xfa\xd1\xedd@\xf18\x19\xfb\xbc\xaa_\x9fS(\x9e\x1f\x124h\x13\x01\xa7`R\xd0\t\xdb\x0e9\xb9\xb2\x16VC\x89`\x84Qm5\xe6DiǤf\xe2NP\xec\x84\x13L1\xc9\x06,\x18w\n\xe2ɁͶ\xd1!\xb4U=\xb4K\x8f\xb4\x93\x91\xd5މ\x85\xe6\x0eN\xa6\xd9\x1d\x9d\\:\xfaXͪ\x93\x93\xb5\xfb\xceN\xd2\xfc.N\xa0MW\x18H7Z\xe9'Nli\xff\xd4\tN\xf3\x99\x13H\xfc\xb9S \xb4;,\xe5\v\n\xb0\x87S\xd6\xfb\xbeL_\x9d\xfe\xffWN\xa0rO'\xe2]/'\x99\u007fo'*\xe6_S/ߠ\x97oU\x86\xdf9\xb9٭\x8f\x13<\xb2/DҏJ\xe9\xefdAa\x00L\xf6{\xa7\x06\xbc\x81\xecd\x90S\xb3\xa8\x1fԊ\x06;\xa5\xe03D\xe7<\xd4ɠ1\x8cm\r\xe7hG\xf0\xde\x1f\x9d\f0#\x9d\xcc\xe1G9Q\x82\xfe\ts\x19\xedD(\x1e\xe3D\xb4\x1b\xeb$\xcf\x18\xc7\x01\x8ew\x02\xfa'\xc0e&:\xb905\x89\x8dO\x86\xe6\xa78A,\xa6\xc2\x18\xa69\x85\xeeL\xa7;\xcdp櫓\x16\xd2L\bq\x16%\xfa\xb3\x13@7\xdb\t\n7\x87\x8a\x98\xeb\x94\\n\x1e\xa6=_\x87\xba@\xe7\xb5\xd0\xc97\b\xfc\xe2\x14\x1a\xb2\xc8\t\xb8\\\xecD%a\tg\xf7\xab\x13\xb4\xeb7\xf4\xbd\xd4)\fd\x99\x131`\xb9\x13\x84q\x05\x15\xf2;u\xbb҉\xea\xdd*\x95\xc5j\xedp\x8d\x13\xf8\xbc\xd6ɤq\x9d\x93\xc8\xfe\x87\x8ec\xbdS\xa2\xc3\x06\xa7\xf0\xfe\x8dN\t\x1f9Y\x9b\xd4\n7;\xc1+\xb78\xb9'f\xab\x93\x95\x8dmNd\x15\u06dd(c\xed\x00&\xec\xc4Tw\x11\xc4v;%\x18\xedqr\xb3\xc7^\x98ٟN\xa6\x8b\xaa\xce}N\xc4\xd8\xfd\xb8\xf2\x80S\v\x12\a\x9d\\:<\xa4\x83=\f7>\x02\x179\n\xd4S5|\xae\x03\xea\xaev\xf1\x05\x05\xdc\xc3E\xb0\xfe҅}8tמ.\xbev\xac\x97K\x1fy\xec\r\v\xfd\xdaŲ\xcf7.\tcߺ\xa4\x96\xfd\x9d\x8b\x8c\xb7\x8f\v\xb4\xa7\xaf\vQ\xb6\x9f\vQ\xa2\xbf\x8b\xfcw\x00\xfc\xe4{\x17i\xc4@\x17Wf\x06A\xfb?p\x1c\x83]\f\xf4C\xf4\x96\xa1.\xae9\fs\xf1}2\xc3]\xcc\xcaF\xb8H\xb3~d\u007f#\xd1\xf2(\xea\xe8'\xba\xf6h\x9eƸt\xc1i\xac\xda\xfc8\x97P\xe1\xf1.\xc2\xf4\x04^5\xd1\x05\xc6?I\x1d}2ڛ\xa2\xde:\x95\xd7LS\x8b\x9e\xeeb\x05}\x86Ki\xf8L\x17\xeaV\xb3\xf4\xfb\x9f՜f\xbb\xb0\x9d`\x8e\v\x85\x8d\xb9\x1c\xdc<\xda\xc5|\x9a\xf7\x02\xbdt\xa1\v\x01\xee\x17\x1d\xe2\"\x17+I\x8bU+K\\\xca ~\x85\xac~s\xe1\x11\xb9\xa5.\xa9\a\xa7\x13H\x17\u07be\xb5\xdc%\x11n\x85\v4\xf4w\x176֬\x84\xb9\xaeRW^\x8dOk\\\xa0hk\xd1\xd4:6\xf5\x87\x8b\xb5\xaf\xf5.Ԓ7\xb8\x18a7\xba\x98{m\x82\xd9mvq\xe3\xd6\x16\x17_\xb2\xb3U\x85\xb5\x8d\x10\xbc݅X\xbdÅ\x90\xb4\x13\xa6\xb2\x8b\x92ۭw\xee\xe1%{\xf5\xe3\x9f\f\x03\u007f\xe1\xd2}\x94\xcf~\x9d\xd4\x01\xbd\xe6 o9\xe4\x92\xe8r\u0605H\u007f\xc4%\xbc\xf2\xa8\vk\xf9\xc7x\xc1\xdf.\x89p\xc7]\x12\xb8N\xb8\x18\x84\xfea\xef'iZ\xa7ԚO\xab\x90\xcf0,\x9cu\x81D\x9d\xd3~\xcf3\xf4\\\xd0&.\xba\x90;^ҩ^\x86]\\\xc1\xf1_\x0e\xf8*\xfb\xbf\x961\xb3\xeb\xfc\xfa\x86\x8b\xb5\x87\x9b\x04\x9f[.,\xd7\xdc\x06\xa4\xdcq\xa12\xf5\x9f\v\xd5\xe7\xbb.I<\xee\xf1\x82\xfb\xea[\xb9ܒS\xe4v\xb3\x917\x8aW\xf9\xddb\xc8\x05ܚq\x17\xcc\xfcQ(s\xf5\x03n̰\xb0\x1b\xd5\xda\"n\xf4\xfa\xa0\x1b\x18\xf3\x90\x1b\xfd=\xec\xc6\x18\x8a\xbai\x87\x8f\xb8\xc5B\x8a\xb9\x99m>\xea\x96G\x16\x8a\xe3X\x02ǒn\xd9Y\xfa\x98\x9bfQ\x8aM=\ue9b5\x96vkz_&\xf3GY\xb7h\xed\t\xdcTέ\xcc\xe5I7E[\xdeMw\xca\xd2\xf3Sn\xfe\xa4\x93\x9b\x85\xaag\xf4\xfc\xac\x1b\x9eYA直\xe7\xe7܀\x96Jnf\xbe\xcf\xebՕ\xf5\xfc\x82\x9e_D\xdfUx\xf1KnT\u0aba\xc1-_v+M\u007f\xc5\r\x1e\xfc\xaa\x1b[F^s\v\xb6\xbf\xce\x0f\xd5\xdcHV\xdf\xe0\xa7\xea<\xd5pì\xdetÏ\xder\x83ؾ\xed\xc6\x0f\x97\xd4t\vL\xbf\xe3FX\u007f\x97\xf2\xaf\xe5f`~\xcf-f[\xdb-<\xb2NZfx\x1f\xb8[\xb8\xcd\ana!u\xf1\xffznD\xb7\xfan\xe6y\rܒ\xcb6t\v\xdfo\xc4\u007f5v\x8b\x91\u007f\xe8f\x99\xb3\tGӔ\xa7fn\x16\x0e\x9aC\x91\x1f\xb9a\xdb-TA-\xd1Y+\f\xb1\xb5\x9bl.\x1b\xdf\xd9({\xbb\x1b\x9c\xd5\xe1N\xa7\xa2N72_\x976\xe8\xc6\b\x00#9\xa8\xcd\x1c\xe2Շ)\xbf#n>\xe3qԍծc\xb8\xe1o\xda\xdeq7i\xf8\t\xb7\u058b\xffq\x93\xe8\x9d\xd4\u007f\x9c\x929\x9d\x96\xc3\x19\x18\xf7Y\xb7,z\x9ds\xcb\xee\x9e\xf3n\xae\xd3^p\x83\xc8\\\u0530sIϗ\xddH\x87\xaf\xa0\xbf\u007f9\x96\xabjx\xd7\xdc$j\xd7is7ԁn\xba\x95\x1b\xdd\x028\xdcvs'\xc9\x1d7\xc2\xe9\u007fn\xac^\xdc\xe5<\xee\x11H\xefcX\xb9_\xf6\xf0w\f=\xb2*\xf9\xaaG\xf9\xe4k\x1e\x91\xf9\xeb췚\x87\xd8\xf0\x86\x87j\xaf\xeeA\xad\xa9\x86\a\x9b\b\xde\xf4H\x00x\xcb#v\xfd\xb6\av[\xd3\x03\xc3~\xc7\x03\x9e\xfb.\x87]\xcb#\xb5S\x0f(Wm*\xb1\x8e\a\x0f\xdcs&\x1fx\xc0\x16\xebz\x10K\xeby\xc4\xdc\xeb\xe3\xd8\xc0C\x92\xd5\xd0â_#\x8f.g7\xe6-\x1fz\x88\x8aM<\x82\xacM1\xf4f\x1e\xe6\a\xcd=@\xbe\x8f(\x89\x16\xec\xaa%O\xad8\xbd\xd6zi\xb6\apj\xf3\x00\xd5\xed\x1eRl\x87\xa7\xb0\xec\xc4m\x1f3SF\x96\xd3\x03N\xe7B\x17n\xcf\x03\x8dÝ\xe4?\xe9\xf8\xe7AP\xf4zĨ}\x1eP(\xbf\a\xbf\x06\xe5\xe1Jb\xc0\xc3W/\x06=LdB\x1e\xfaG\x98\x8a\x8bx\xa4:\x10\xf5 Ŏa\"\xa6\xaa6\xee\xa1\x13&<\x92\xdd%9hK\x15\x9d\xf2\xb0|\x9a\xe3\xc1KSڨ(\xdazX%h\xe7A\x92מ\xff\xed\x00qv\xa4\xc6?\xf6\xa0\xc4\xd5I{\xe9\xacR\xe8\xe2Q\xb6\xd8\xd5\xc3\xe8\xdb\xcd\xc3\xca\xd4'\x1e&\x9f\x9fz\x80x\x9fy\x10\x91>\xf70\xdfꎙ\u007fA1\xf4\xf0hU\xebK\xb5\xb8\xaf\xf4\xdc\xd3#Ѩ\x97\a\xcfI\xf5\xf6\b\xbc\u007f\xedњ\xca7\x1e<\x05\xf2-O\xdfy\x00\x1b}x\xea\vQ\xf6\x83\xd8\xfb{$\xa3\x1d\xe0a\xe0\xfeޣ\x8b\xbc\x03=$\x15\x83\xf0\xef\x1f\xa8\xa8\xc1\x1eb\xdc\x10*|(Ac\x98\x8ef8a`\x84N\xf4G=\x8f\U0010090d\xf2\xb0&\xf5\x13]v\xb4\ady\x8c\xb68փLx\x1cm{\xbc\xaah\x02?N\xa4\xb5M\xd2~&\xc37\xa6x\x10c\xa6z\x80\x99\xd3<\x82\xb2\xd3q\x9c\x81\xff\xcf\x14\xff\x98\xa5@\xf6345\xdb\x03R4\xc7#!h.d0\xcf#\xb5\xc0\xf9\x90\xe3\x02\x8aj!\xf5\xf9\x8bG8\xd0\"5\xdb\xc5\x14\xdc\x12\x8f\xc6F\x8f<.\xf1\x1b\x04\xb8ԃ躌\xfe\xbf\x9cw\xaf\xa0\x19\xfe\xee\x11(_I\x17X\xa52^\xad\xe75jkk=,\x19\xacÈ\xfe\x00|\xaeW\xebؠ\xff\xdb\xe8A\xb8\xddD\xc1o\xa6\xd1n\xe1ܷz\x18\x13\xb7y\xf80\xd8v\x0f_\x8f\xb7\xc3\xc3ȴS\xfb٥\xe7\xdd\x1c\xe2\x1e\xb6\xb5\x97\xa7?y\xfa\x8bM\xee\xe3\xa7\xfd\x1e\xdd\xfew\x80\xea9\x98\xf9|\xc8\xc3\xf2\xc0\xe1\f\xc0\x1d\xf1\xb0\xd8pԃ0~L\x87\U000b778f{\xb0\xfaw\xc2\xc3\xcc\xfd\x1f\x0fH\xd2IU\xf3)L\xf9\xb4\xfe\xf3Lz\xaa\xe1D\xd6Y8\xed9O\xbe\xe6\x9dҁ\x93\xa7\v\x1e>\xe9r\x91\x88y\x89\xa7\xcbP\xee\x15h\xfd_\x8f$~W=\xc2Ȯ\x11=\xaf{\xb8\xa0|#c\xda7q\xe5-\x9a\xe5m\x0e\xf8\x8e\x87\xebl\xffy\xf27\x8f\x19\xed\xb3\xee\xf2\xeb{\xbc\xe8\xbeG(J.\xaf(=\xb7Wr\x88<^@r^\xaf\x84\xf5|^:m~\xaf\x16\xdc\nxQ\x1e-\xe8\x05Z\x14\xe2\xb5\x0fxAD\v{e\x01\xbf\x88\x17c{\xd0+*\u007f\xc8+$\xe5a/\xd6H\x8az\xa1\xdbG\xbc\xea\xf3żܽ\xf8\xa8\x17\xa4\xae\xb8W\xea\x8a%\xbc\xe0{%\xd1\xd6c^\xbcN\xa4\x94W\x06\xf9\xb8\x97\xa5\xd4\xd2젌\x97\x8a*\xeb\x157~\x82_\x96\xf3\x8a\xd1?镤\xb1\xbc\x175U\x1c\x9f\xf22\ayڋ\xc7'\x9e\xf1R&\xcfz\xa5\xdaU!3\xb9\x8a\x1c\xc8s^\x8d\xa6\x95\xbc\\\xff{\xdeKmV\xf6\xb2\xa8\xf1\x02\xa7\xfd\xa2\x17\\\xa7\nf\xfa\x92\x97\x9b,\xab\xb2\x8d\x97\xbd0\xabW\xbc\xacҾ\xaa\xfd\xbf\x96\x99\xfb\xeb^<\xbf\\͋\xe2\xd3\x1b\xbc\xa9:\x05Tëy\ue6fc\xe8-\xaf0\x8d\xb7\xbd\x12wkzA\x03\xde\U0004257e\xeb\x95rk-/6辗\x19vm\xaf\x14|\xebx\x85\x12\xbe\xcf&?\xf0JE\xb7.\xe4X\x0f\x12\xa9\xaf\xe3m\xa0#k\xe8-\xd8\xca\xe8\xda1\x1d\xba\x1ayi\xad\x8d\xbdXZ\xf9Ы\x8e\xd0\xc4\v\xa0h\x8av\x9byA֛{\xf9b\U000cff28y\xb4\xf0jB\xdc\xd2\xcb\x04\xab\x95\x17\xe9`k\xaf\xb0\xd8l/W2m\x9c\x83\x1d\x13r\xe0_N\x1d\x8d+#\x1f\xb7W\xb7\x95{\xbc\x84\v/\xc6\ue8da\xfd0+\x83\xb6\x18\xf0f\x1e\xcc\f\u0080C鱤\xa7\x1c\xf6\xf2\xe7\x131ܨj0\xa6\xad\x99\xb4ظ\x97uڄv\x9fTuY^\x16W\xbd\xc8\xder\xbc@\xbc6^\"n[/\x88B;/\xe8G{\x95_\a/\xb7\x15t\xf42\xae~\xece\x89\xab\x93\x9e;{Y'\xef\xc2ۺz\x81\xffݼ$,\x9fxA\x89?\xe5\xe93/^\xf6\xed\x05Ru\xf7\n\x89\xfb\xc2KF\xd3\x03B\xfbҫ\x1b\x13\xbe\xf2f\x16\xc8{\xc2\xe6{yY\x85\xeb\rI|\xedEl\xfb\xc6\v\xfa\xf5\xed\xff\xe4\xf4\x1d\x8d\xb3\x8fW\xd8h_/\xde\xcbя\x93\xec\x0f\xdb\x19\xe0\x15\xba\xf5\xbdWpj \xe58\xc8+\x9b\xdc\u007f\xf0\x12\xb4\a\xc3φx\xb1\xa9k\xa8\x97\xe8;\f\xed\r\xf7\xeav\x1c/\t\xfb\x8f^Y\x99\x18\t\xf5\x8d\xf22)\xf9\xc9\xcbղ\xd1^\x14\x03\xc6x\x15\xbf\xc6\xc24\xc7Q\xc9\xe3\xbd\xcc\xda&\xf0\xe3D/\xf2\xb1I0\xf9\xc9^\xc0\xec\x14/\x8bNS\xbd\xc2)\xa6qZ\xd31\xd2\x19\xda\xc5L\x15\xdc,\x8a\xf6g\xc0\xdal\x85\xb59\xde\xcc/Iy\xc1\xe9\xe7y\x91\xb1·\xfc\x17x\xf1\xac\x87\x17\xb5\x84_\xbc\xe46\x8b\xbc\xa4K\x8b\xbd\xc8N\x97xɉ~\xe5U\xbf\xa9\xf8\x97z%|.\xc3q\xb9\xcac\x85\x17ώ\xff\xee\x95U\xb7\x95\x99\x19\xaf\xa2\x04V{Q@Z\xe3\x95Dr-\x9di\x9d\x17\x14\xef\x0f\x82\xc0zE\xbf\r^f7\x1b\xd9\xdc&/\vi\x9b\xbd\xd8N\xb0E\a\xb0\x95\xedm\xe3i;\xed`\x87W\xb8\xc0N/v\xce\xec\xf2\x82\x80\xed\xf6\"\xb6\xef\xf1\x92\xd1\xec%\x10\xfd\t\xfd\xff\x05m\xec\xa3\x13\xecW\xcf9\x00Q\x1f\xf4J0:\xe4\xc5j\xc7a\x9d\xe1\x91\fn\x1d\x85\xe1\x1c\xe3\xd4\xfe\xce\xd8\xea\xf1t\xc79\xc1\xac\x13^\xeeA\xfe\a&zҫ\xa4\xee\x94\x17\f\xe6\xb4\x17L\xeb\fOguX\xe70\x9e\xf3\xb4\xc4\vj\x83\x17\xd5\x1f/\xa9\x86/\xabj\xaex\x91d\xea\xb7W9\xc1k^D\xbd\xeb\xf4\xa9\x1b\xfaϛ0\xe3[^\xa9\x18\xdcVIޡ\xf4\xff\xf3b\xbd\xec.?\xddSL\xbc\xaf^\x9eˇ\x1d\x87\xb9}\xdc}\x9a\xc7'\x92\xca\xeb\xc3O\x0e\xfb\xf8Xu~\x1f \xa6\x80O\x18@A\x1f\xfa-\x84\xeb\x1e\xf0q\x0fba\x9fH\xa0\b\xbe{\x10LJ|R\x10x؇\x97\x04\x14\xf5!\xca<\x82\xef\x8a\xf1ã<\x15\xf7q8%|\xac\xe0\x95\xf4a\x92\x8f\xf9\x04\x16K\xf9\x10-}\xcc\x1aJ\xfbD\x17e|\xa8B\x96\xf5\xa1\xf0\xf1\x84O\x99{9\x9f\xb0\x89'}̸\xcb\xfbD\x1aY>\x85\xe0\xa7|\xe0\xa6O\xfb\xc0\xfe\x9fA\xab\xcf\xe2\x92\n>\xc1Ԋ>\xca\xff9\xf4Z\xc9G>\xf4\xbcO\x96\xb4*\xfbH\x9a^\xf01b\xbe\x88\xe9U\xc1}/\xf9H\xea\xaa\xfa\x10\xfb^\xf6\xb1T\xfc\x8a\x0f\x9b0^\xf5qU\xe55m\xe1u\x1f\xc0\xabZfTod\xc6^ݧ\x96S\xc3\xc7g\a\xde\xf4\xf17\x863\u07ff\r\xf1\xd6\xc4\xf1\x1d\x1f\xea\xdd\xef\xf2\x92Z>}\xe4ÇrU\xed\xf4?ӆZ\xc7'\xbb\xe5\xde\xc7\xf5\x1f\xf8\xb0\xa8Q7\xadK#jf\xd5\xf3\xe1\xf5\xe4\xf5}\x84\x9b\x06l\xa6\xa1\x0f\x9e\xd4(\xd3ac\x15\xf9\x87\x98f\x13\xfe\xb7)gٌ\xc2l\xeeCQ\x15\xc7\x16>\xc0UK\x1fӼV>\xb1\xf1\xd68f\xfb\xf8ت\xcd\a\xeb\xb3\xfb\x80\x80\x0e~r\xf2\xe4\x82H\xdd8zp\xf4\xe2\xe8\xf3a稟'\xc3\xc7@\x1c\xf01\xfc\x04}\xd8t\x19\xf2\x11\x88ô\xcb\bOQ\x9f\x00V\x8cFb\xfa\xb0\f\x14\xf71h'\xd4Ԓ>,\x15Y*\xf4\x94\x8fN\x97\xe3\xe3F\x866\x19=\xb5\xf5\xd1K۱\xb5\xf6\x87Uv\xd7+\xbf\xf0)\x03\xea\xe1\x93\xc7F\xbe\u052f\xbfRS\xea\xe9\x03\xb8\xf5\xf2\t_\xeb\xed\x03 |\xed\xc3k\xc0\xbe\xf1\xe9\x1b\xdf|\\]\xfd\x0ej\xe8\xe3\x03\xb1\xea듽.\xfd|\x1a+\xfaS\x1b\x03|\xf8\xbdEm{\xa0O`q\x90\x8f\xab\xb1?\xf8\xf8\xb3\xf9>D\x95!\xfa\xedP\x9f\xbcyc\x98\x0f\xaf#\x1b\x8eQ\x8c\xe0\x85?\x029F\xfa\x14?G\xb1\x87\x9f\xf4\xbe\xd1>2\xdd1ln,\xb44\xce\a\xbc\x1c\xefC؞\xa0\x16=\x91\xe2\x99\xe4\x03;\x9b\xac\xf04ŧ\x14n*\xc45\x8dS\x9f\xee\x035\x9c\xa1ҟ\xe9\x03#\x99\xc5o\u007f\xc6\xf0fg\x04:G\xd5;\x97\xed\xcf\xc3L\xe6g\xfe\xbb \xf3\xc7B\xfa\xc9/\xf8\xf7\"\x9f\x96\xd2\x16S\x81K|L\x88\u007fe\x0f\xbf\xe9ǥ4\xe7e>Th\x96\xfb\x98A\xae\xf0i\x80\xfc݇Ű\x95>)\x01\xac\xf2!\xe0\xac\xf6!ڮ\x81E\xac\x85\xb1\xac\xf3\xc9k\xcb\xfe\xf0\xa1 \xbf\xde\a\xa6\xba\xc1\xc7(\xbfч\x02\xeb&\x18\xdbf^\xb2\x85\xa7\xad>F\xb5m>\xec\x97۞\xd6b8k\a\x8e;} j\xbb\xa0\x9a\xdd\xc4\xdd=>,\xc5\xed\xa5~\xfeT\xfb\xfa\xcb\xc7\x15\xa4}\x90\xd9~\x1fX\xe9\x01\xb5\xff\x83>\xae\xc2\x1c\xf2\xa1Px\x98\xa7#\x19S?\x9a\x11\xd21\xe0\xf4\xdf\x18\xe3q\xfc}\x02\xcd\xfd\xe3\x93\xc4\xff\xa4\x0f\xec\xe5\x14\xc1\xe4\xb4\x1aƙL+g}\x8c\xa9\xe7`\x1a\xe7U\xed\x178̋\x98\xc1%\x1fꐗ}\\ȹ\xe2Þ\x84\u007f}X\x15\xb9\xea#i\xbd\xe6cx\xbb\xee\xc3&\xc0\x1b>}T\xe2\xa6\x0f{\xa7o\xe9\x84o+\xf2ߡ:\xfe\xf3\x91\x1b\xddE \xb8\xc7\xd0x\x9f\xe1/\x97\x9f\x0e\x95ۏ\xfe\xf2\xf8ɗ\xf2\xfae\x86\xf9\xfc\xf2DW~\xbf\x9a}\x01\u007f\x86\xa0\x16\xf4K\xd0,\xe4G\xb4\xf4\xc3\x00\n\xfb\x19_\x8a\xf8!\xc0\a\xfdH\x13\x1f\xf2\x83\a>\x9c>ɏa\xf8\xe9ŏ\xf8\x81\xde\xc5\xfcXZy\xd4/\x11\xa9\xb8\x1f\xe9\u007f\t\xbf\x9ajI?\x12L\xbf\xd0\xc1R~\xa4\x99\x8f\xfb\xa5\xdaY\xda/\xb3(\x83\x11\x94\xf5\xcbN\xed'\xfc\xfa|\xa4\x1f\xbf\xca\xefg\x8ePޏh\xe9\a\xa6<\x85\xa1>\xed\x17\x10x\xc6\xcf\xdf\xe3\xf7\x8b\xafU\xf0\x8bB+\xfa\x89\x96\xcf\xf9\x89\u0095\xfc\\\xb2y\xde/\x95\x98\xca~>\xcc\xf1\x02\xeex\xd1/j\xaf\xe2\x17\xdb~\x89MU\xf5c\u007f\xf7\xcb~\x86\xc6W\xfcT\xff\xab~\xa6\x16\xaf\xf9ս_\xf7\v$U\U000c3c3dᗼ\xa1:Z\xab\x81\xe3\x9b~\x18\xf9[\xfeB\x8ds\xda\x19\xe1v\x1d\xb3\xde\xf6\xb3\x94Wӏ:\xe4;~\xa0ѻ\xfe\xbc\x8dͬZ\x98\xd2{~8|m?ܥ\x8e\x1f\xc8\xf1\xbe\x1f\xde\xf0\x01Z\xad\xebG\xa9\xac\x9e\x9f{\xa6\xeb\xfbui\xa6\x81_\x12\xbb\x86~\xd8`#?\x1f\xedPI~\xe8'\xb5o\x92\x19yS?J\x85\xcd\xfc\xa8\xea7\xf7\xb3*\xff\x91\x1f\x11\xb2\x856\xdd\x12\xfd\xb5\xf23\b\xb7\xf6\x03\x04\xb2\xfdyZf\xd9\xfcؘm\xf7\xa3j\xe2P3p\xfa\x19(yrs&\x1e?\xa0ы\xd9\xf9\xfcj\xe0~U\x81\xe1\a\xef\f\xf0\x96\xa0_\xea\xa8!H5\xcc\xdb#~ť(\xac*\xe6G\xf80\xfd\xf2\x00L\xdc/շ\x84\x9f\xa15\xe9\xa7\xe3[~r\xb5\x94\x9f\xb4'\a\xb3h\xe3G!\xa2\xad\x1f\x15\xb6vj\x1f\xed\xfdxʭ\x83_\xf0\xb3#\a\xf1\xb1?OݬNi\x89t\xe9\xd81\xab\xb36\xdeŏ\x80\xdd\xd5\x0f_\xeb旜\xe2\x13Z\xf8\xa7~l_\xfa\xccOP\xfa\xdc\xcf\x00\xdd]\xcf_\xa8\xe9\xf5\x80y|\xe9ǂ\xc5W~\xa6\xc7=9\x9c^~\x81\x91\xde8~\xed\xe7\v\xe20\xeao\xfd\xd8\x11\xf8\x1d\xa5\xd4\xc7/\xf5\xfc\xbe~,A\xf4\xa3\xea\xfa\xd3T\a\xe0_\xdfû\x06Bԃ\xfc\x84\x98\x1f8\xab\xc1ho\x88\x1f\xf9\xd6P?\xaa\x04\xc3p\xe1p\xd5\xf6\b\x85\x8a\x1fUn#\xfd\x1a\u007fG\xb1\x85\x9f\x00!\xa3q\x1cC?\x19\xeb\x17\xe6?ί\x8fK\x8e\xf73\xb9\x9e\xa0\xfe2\x11\xedO\xe2\x1c'\xe3\xda)~\xbc\xc9e*E7MD=ݏ\x95\xa1\x19\xeal3uܳ\xd0\xd1\xcfD\x9f\xd9\xda\xe2\x1c?R\x9c\xb9\x9c\xc6~\xd5ϝ\xfe\u05c8N\xd73hu\xc3ύ\xdc7\xfd\xba\xab\xed\x96_^\x89x[\xb5x\a\xee\xf8\x9f\x9fQ\xf8.'~Ogr\x1f\xa2\xcae\xd0\xe1r\x1bTU\x1e\x03c\xcdk\xd0\xe8\xf2\x19\x10H~C\x1e\xbe.`\xd0\x02\v\xf2\xcbB\x86\xe8\xe4\x01\x1c\v\x1b\xc8 \xf5\xae\a\r\xda\xfbC\x06\x8c\xf4a\xfc\xb3\xa8!F\xff\x88\xc1\xbdz\xc5\f\xca\xefQ\x03\xc0Q\xdc`\xeeQ\xc2@\xfeX\xd2HK\xfe1\x83\f\xa1\x94\x81\x97\xd6>n\b\xa8\x95Ʊ\f:-k\xc8\x02\xd4\x13\x06\xc4Z\xce\x00\x10=i\xe0\t\x8f\xf2\x068S\x96\x019>ep\xcaO\x1bx\xee\xfc\x19\x83\v\x9c\xcf\x1a`\x06\x15\f\x04\x9b\x8a\x06\xca\xff\xcf\xf1Tɀ\xf3=o\x103+\xb3\xa1\x17\fٗ\xf6\"\x8eU\f\xbc*\xd5\x00Y\xadj\xe8o\x12\x1b\xaa\x99W\f\xb1\xdeW\r\t\xe4\xaf\x19b\x1b\xaf\x1b\x19RQ\xcd\x10'y\xc3@$\xaaN\x01\xd40\x94\x0e\xbc\xa9\x82y\xcb\xc0\x8a\xd3\xdb\x066[\xd64\x98\x19\xbfcH\x8d\xf9]\xdeSˠüǖj\x1b\xd0o\x1dm\xe0}\x83\xc1\xe7\x03Cܽ\xae\x81\xfd\xe6\xf5\f\xe4\xd0\xf5)\xe6\x06\x86T\xc4\x1a\x1a\x12V\x1a\xa9r\x1b\x1b\xe0G\x1ff&҄3o\xaa\x03hfpGzs\n\xed#\x03\xe9l\v\x830\xd4\xd2 ;oeH\r\xb0\xb5\x81b\xab\x01\xaf\xb7\x19\b[v\x03\xd6\xef\xe0\xc9ɓ\xcb\xe0[Si.\x1eCX\xaf\xd7\xd0\xfc\xcdg\xe8\x0f\xf5\x1bR42\x8c\xcc\xd6ۀ\x01\xac\x0e\x1at\xa0\x10\x15\x166𪸈\x81zS\xd4\xe0\xab\xe4(/\xd3\xd0\xe7\x1e\ra{\tUY\xd2\x00\xdcX\x14Iʐ|+\xc7\xd0]_mh\xeam\r\xa6\xc1\xed\xd8g{\x95U\aξ\xa3J\xfcc\x83\xb0\xd7\xc9 \r\xedl\b1\xebb\x80xt5P\xe6\xeaf\xb0\xe0\xff\t\xac\xe7S\x1c?\x835\u007fn\xb0~\xdb\xdd`\xa9\xe9\v\x95i\x0f\x03!\xe5KC\xf9\xf9Wl\xaf\xa7\x8a\xa5\x97\xa1X\xd3\x1bm}mHz\xf2\x8d\xc10\xfe-\xbd\xf9;\x03\xd9P\x1f\x83h\xd1\xd7`\xc2\xd3\xcf\xe0\xe3\xfa\xfd\xa9\x9a\x01*\x9e\xefu \x03\xe9\t\x83(\xc3\x1f\x14(\x06g\xfa\x1bB\x81\r\xe5i\x98!p:\x1c\xc7\x11\x06\xa0\xedG\x03\xc0<\xd2\xe0\xcbu\f0\xbb\x9fx\x1a\r\x17\x1ac\xa0\x161\xd6\x10\x98\x1ag\x90N\x8d7\x90\xb6L\xa0sN4@\xea&\xf149#\x84)\x06b\xfdT\xccy\x9a\xa1\x9bYi?3\ff\xc23U\x90\xb3\f\x04L\x9a\xdalv9ǐ\xbc|\xae\xde8\x8f#\x9do\xe8\"\xfd\x02C(\xc9B\x00\xd6/\x06H\xec\"\xbdt\xb1\x01\x80^\xc2)\xfe\xca\x1b\u007f\xd3\x1e\x97\xaaI-\xe3薫\x9cW\x18xz\xfbwEŕ\x06\xf76\xac2P\f]\xcd\xd3\x1a(n-\xbd~\x9d\x01\xfa\xf5\a\x1d{\xbd\xc1\fn\x03<`\xa3\x81\x15\x97M\x18\xddf\x03\xe1q\x8b!o`\xddj`G\xca6\x83\x99\xcev\x03\xe1~\x87\xc17\xcd\x01,w\xf1\xfa\xdd\x04\xcb=\x06\xb6\x9d\xee5\xb0w\xe5O\x9a\xc1_\xb0\xc6}T\xeb~\x03Y\xc5\x01\x83\xcb\x13\a\xd1\xc8!\xfdt\x98\xba<\x02%\x1c\x85\xcb\x1fcg\u007f\xb3\xeb\xe3\x1aTN\xd0d\xff!6\x9f\xe4\xe9\x14\xc7pZa\xea\f\x90\xed,\xaf\x10\x10\xfe\x11\f\xa0\n\x11\x82م\xd9t$\xc0\x10\x16\r\xf0Us\x01\xa4\xd5f\x00\xa5\xe2x\x00\xee\x9b\b\x803$\x03\xf4P+\x80\xdaK*\x80bFN\x00\xb5\xb46\x01<\xd7\xd4\x16Jk\xa7\x8d\xb6\xe7%\x1dhV\x1d1؏1\xd3N\x01\x81\xb0θ\xbaK@P\xb6+\a\xd0- \x19\xee'\xa2\xceO\x03\xc8\x16>\vpO\xc1\xe7\x19'\xe8\x0eS\xfc\x82\xa2\xef\x11P`\xf8R\xb5\xf9U\x80e\x99\x9e\x01q\xe0^\x01T\x97{Ci_\xd3\xed\xbe\xa1\x8b~\v5|\x17\x00\xea\xf6\tpY\xa0o@\xe9W\xbf\x00\xe8N\xff\x00R\x92\x01\x01ɭ\xbf\x87,\a\xd2C\a\xc9\x1di\xd0\xfc!\x80u\xae\xc1\x01\xc8\xd3!\b\xe60Du\x04\xb7\x1d\xa5\xeb\x1c\v\xe8\xafh(\xdc\x1d\xa7\xf6N\x044]\f \x16\x9d\f\xf0\x89\x90S\x01\tz\xa7a\x06gt\xb0g\x03\xa8\xe4\x9c\v 6\x9f'\xb6] \x94^̘\xe9\xa5\x00\xca\x05\x97\x03LO\xae\xe8\xf9\xdf\x00s\xe2\xab\x01l$I\xc7\xc0\x00\xea\xc4\xd7\x03x\x84\xe6F\x00\x1b\xfboR\x9f\xb7\x02`\x17\xb7\x03¾\xee\x04\xb8\xd8\x18\xc0\x13{w\x03x\xec\xc2̺\xc7\xee\xefC\xac\xb9\x822\xda\xdcAܝ'\x88\xf1\xe5\r\xc2\x02\xf3\x051\xfb\xfcAp\xbd\x02<\x15\xe4\xff\n\x05\x91\xa0=\x10\x94U\xec\xc2A.J\x16\t\xd2\x12\x1f\f\xe2w\x12\x83dJ\x0f\a\x05ъ\x06\x19\xb1\x1e\tʦ\x98bA\x96\xe8\x1e\rb\u007fS\xf1 L\xb7DP\xe2G\xc9 \xc2\xd8cAY\x17)\x15\x84\u007f?\x1e,Ԥc\xfb\x98\x99F\xd3\xd2A\xd1L\x19\x0e\xa3l\x90[\xb5\x9e\b\x8a\x99\x96\vҍ\x9f\f\xca\xee\xda\xf2A\x88\"+\br\xf7T\x90\xc9\xe8\xd3:\xaag\x82*\xf5g\x83\x82@\x15\x82\x10U\xc5 J\x90\xcfaȕ\x82B\x8c\x9e\x0f\u009a*\aAp^\bb\a㋐Z\x95 7!\xbc\x14\x94\xac\xbb\xaa\xce\xfe\xe5\xa0b\xdb+A\x84\xa6Wyz-\xc8\u05cd\xbc\x1e\xc4RD\xb5 m\xea\rL\xa7z\x90\xce^#H\v{3(\x9e\xfaV\x90\v\xc9o\a\x19\xaejr\f\xef\x04\x81c\xefr~\xb5\x82\x88\r\xef\x05\xb9)\xb6\xb6ίNP\x02\xc3\xfbA\xb0\xc7\x0f\x82Ȝ\xea\x06\x99^\xd4\v\xa2\xaeS?\br\xd1 (u\xe5\x86AzH\xa3 \xe0\xadqPb܇Aq\xab&A\x04\xa3\xa6A.\xa56\v\xa2\x10\xd3<Ȥ磠\x18z\x8b Yrˠ,(\xb4\xa2\xd6Z\a%Df\aɻl\xf8d\x0fb\xff\xa2\x03\x13t\x06\xf9ȓ\v\x8aw\a\xb1\xe9\xc0C\x81{\x83\xc8\x0e|A\xe4\xca\xfe \xf7\xd0\x18*\xa0\x806\x1a\f\xa2\xa6\x15\n\xc2#ÔL$\x888\x10U\xa1Ƃ |&m-\x1e\x04z%\x82\b\x87ɠ\xc0\x8f\x15\x04\x00\xa4\xa0\x8b\x1c6\xd9&(\xf4\xac-l\xa0\x9dε}\x10A\xa7C\x90\xa5\x87\x8eA}\x8f\\\x90\xaf\xda\xec\x14\x84Cw\x86@\xbb\x04\xf1\x0e\xa0\xaeA\xf1\xb2nAb\xde'\xd4\xe0\xa7A\xd9\x16\xfd\x19z\xf8<(q\xb3{\x90\xa9\xc8\x17\x19\xe3\xe9\x11$\x91\xf92\x88x\xfdU\x10\x01\xa4g\x90\xd9h\xaf )ho:\xe5\xd7A}\xe21HJ\xf1-\x95\xf8]P\x00\xadOP\tG_\xf1\xeeTV?\x18|\xff \x8a\x06\x03\x82\xa8\x14\u007f\x1f\x14\x1e90\b\xdc\x1d\x14DP\xfc!H\xec\x1a\x1c$\f\x0f\x81ʆ\xc2ӆQ\xc1\xc33N4\"\x98y\x89\x1c\x11d$\xae\x1dE\x03\xfbI\xcdwt\xe6\xea1A\xbc/yl\x10\xe4j\\\x10\x01n|\x10\xdccB\x90Qp\"e9\t\xae59\xc8b\xe5\x94 6\x1aL\r\xf2\xf9\x0e\xfa\xe2\xf4 \x9e\xf8\x9f\x01\xe5\xcd\f\xb2\x9c9K\a\xffs\x10I\xd7l*x\x8e\xcai.\x1b\x9f\a\xb3\x9b\x1fD-cAڢ\x8c\x80\x91\xb5\x90\xa6\xf4\v\x01fQ\x10\x11lq\x90\xf5\xee%\xaa\xa6_\xa9\x95߂\xacS,UK[\x16d\xf1f9ռB\x8d\xf5wE\x86\x95t\xc3U\xfa\xf5\xea\xa0p\xa85\x9c\xcc\xda \xd8\xf8\xba \xf2\x90?\x82\\\xec_\x1f\xc4s\xaa\x1b\x82\x12\xa57\x06Q\xb7\xd8\x14D\xc1k3\xa7\xbd%\xc8\xccgk\x90\xdbd\xb6A`\xdb\xe9\xa3;\x88\r;\x83\xfc5E5\xdb\xdd:\x9c=P\xd2\xde \u007f\xf6\xee\xcf +\xe3\u007f\x05ɽ\xf6\x05\xc9#\xf6\xab\xa7\x1d\xe08\x0f\xa6o\xc6NV \xff\xe1\xa0\xe49G`\x13Ga\xceǂR\xcb\xfb;\x88\r\xaff\xd6q\x18\xdb\t\f\ua7e0\x04\xfc\x938\x9e\xca\xd8\xf9\xe9 \xca8g(\x9a\xb3<\x9d\x83\a\x9d\xa7\x96.\x10\x9a/*\xd8^\nj\xb9\xe0r\x90\xaf\x91\xbaB\xf7\xfe\x97pxUUpM\r\xe0:\x00\xe9\x06\x05q\x93q\xe6V\x10\x15\x94\xdbA\xf0\xa7;T\xf8\u007f<\xdd\r\"\x98\xdf\v\x82k\xde'\x92\xe4\n1\x9d\xcc\x1d\x92\xc0\x96'\x84\xaaO\xde\x10ř/ā\xe5\x0f\x11y\v\x84\xb0\xef\xa3`\b\xb7\x16\n\x91$<\x10B)\xabp\x88L\xaaH\b\x01\xf7\xc1\x10\xf9\xd2C!\xa0\xdc\xc3<\x15\rIty$\x04~U,\xc4\xec\xf1\xd1\x10w\xda\x17\x0f\xc1\xeaK\x84`\x81%C\"\xee\xc7B\x98I\xa9\x10\x90\xeb\xf1\x10L\xb7tHxn\x99\x10\xc4R6D\x9b{\"\x04\x8c-\x17B&\xf3d\bor+\x1f\xd2'\x1dC\x94\xe8S!>\xc7\xf3t\bU\xb4gBHɟ\r\xa5y|\x85\x10\xa1\xaeb\b\x16\xfe\\\x88\xae])$\x11\xf7\xf9\x10\x14V9\xc4\xf4\xf9\x85\x10\xc8\u058b!\x90\xba*!ɑ^\nI\xf2V5\x04\xf0y9$\xf4\xf7\x15\x0e\xf7\xd5\x10ޗ\x13B\xd9\xe2\xf5\x10\xb5W-\x045\xbc\x11R\xde\\=D\xf7\xae\x11\xa2\t\xbf)cz+$\b\xfa6GT3D\xb6\xf4N\b\x1a\u007f7\x04\x8dׂ\xe2\xde\vIL\xac\x1d\x92\xe5\xb4:!X\xcd\xfb!\x92\xfb\x0f\xf8\xb1n\b\xd0W/\x04\xb8\xa8O\xb16\baSJC\x8a\xaeQ\bp\xd58$?=\xfc\xa1\x1aF\x93\x10b|\xd3\x10\xabS\xcdBj\xa3\xcdC\x99,\xfa\xa3\x10P\xa6E\x88\xf0\xd62\xc4p\xdd*\xa4\xbb\x83[\x87\x04\xab\xb3C\x82\xc36\xf6d\x0f1::B\xacQ8U\xae.ڎ;D\xf0\xf1\x84\x04ż!<\x19\xe6\xa3m\xfa\xd56\x8d\x10\x92\xfb\x00\x04\x1d\xa4,B\xff\x1bSX\x1b\x8c\x84\xf0\x00R4\x84\x8am,\x84\xbdifH\xf2\x80xH7D%BX-M\x86X\xb6\xb2\xa8\xb4TH8v\x0e?\xb4\t\x01tچPOm\xa7\xa6\xd1>\x84\f\xa8\x03%ۑ\x82\xfa8\xc4\xf4\xa8\x93\xfaLgt\xd6\x05Ǯ!\xe4Y\xdd\xd4(?\t\x917}\x1aҟ\xdeό\xe8\xf3\x10\xaaY\xdd\xe9n_\xa8\xc5\xf4\b!\xb6|\x19\x12\xdc\xf9JG\xdb3\x84p\xd5+\x84w\x88\xf4\xe6\xe9\xeb\x10\b\xc67!\xee_\xd5\xee\xbe\v\xf1U;}B\xc0\xe3\xbe!\x90\xec~!\x81\xca\xfe!\xb0\xc3\x01!Ů\xef3\u007f\f\x841\f\n\x81i\xfe\x10\"\x90\x0e\x0eɂ\xfe\x10\x1d\xd7А\xd6އ\xc1\x0f\x86\x87@\x83F\x84\xc8\v~\f\xa1\x8472\xa4\x11rT\x88\xab\x90\xa1\xcc\x06\xdc\xd1*\xa81\x98\xd7\xd8\x10*\x8a\xe3B\bN\xe3y\x9a\x10B\x00\x9d\b\xf0\x98\xc4\x0f\x939\xf1)!\xddɪ\xf69-\x04n2=$\xe4gFH\u007f\xa3\n7\xce\"\xbc\xfc\x1c\"\x1d\x9c\x1d\xd2g\xb5\xe7\x84\xc0\xca\xe6\x86$\r\x9dGl\x9bO\xd1-\xd0I,\f1r\x12q\x16\xc1,\x17븗\x84\xf8lů\x00\x8a\xdfB`\x94K\xb5\xe7e!\xf2\xf6\xe5\nR+BX\xe8\xf9]\xa1se\b/\xaeY\x15B:\xb2\x1a\xed\xaeQ\xebZ\xab\xe3\\\x17\x12\x16\xfa\aF\xb7>\xc42\xd3\x06\xc8jcH\xdf\xc0J\xcb\xdbL\xd1m\t\xe9V\xd6\x10\xab\xbc\xdbB\x8cr\xdb\ta;8\xc1\x9d!\xee|\xd9E\t\xef\x06\xd0\xec\x01\x96\xec\rIH\xfe\x132\xfb\v^\xb0/$\x04d\u007fH\xe2\xcd\x01\x8a\xe2`\x88\xb4\xe1\x10\x1d\xfapH\xaa\x8bG0\xac\xa3!\xe4\xf0\xc7t\xfc\u007f\x13\xba\x8f\x87\xb8\xc8w\"\x84(\xf4OH~\xb5\xe4$\x1a>\x85\x86O\x87$}:\x83\xbf\xcf\xe2x.$\xf9\xeayx\xf8\x054}\x91xu)\xc4|\xf42\xc6{\x85>\xfa/\xe7w\x95\xb2\xbc\x06\x87\xbb\xaeb\xbfA\xc5\xdd\f\x81'\xdf\"\xce\xdd&\x14\xde\xe1\f\xfe\x83\xf0\xef\xd2\xc7\xee\x85P&\xbaϖs\x85\x81\xf6\xb9ä\ry\xc2PZްxF\xbe0\x9c?\u007f\x18\xceT L{)\x18\xa6\xcb\x15\n#Iy \f\xb6X8,\x11\xa2HXX\u0083a\xd8\xc9Ca\xba\xf1\xc3a\xe9\xbdh\x98\x99\xd3#azV1=?\xca\u058b\xeb\xc7\x12a\x88\xb0d\x18\xdb]\x1f\xd3&J\x85\x91}=\x1ef\x9d\xb8t\x98\xf8]&\f}\x95\r\xd3J\x9f\b\x8b\xa2˅\x11\x13\x9e\f\x03Y\xcbs\x94Ya\xd1\xe1S\x18\xe4\xd3\xec\xf1\x990\x93\xd0gÐX\x850\x19RE\\\xf3\\\x98<\xbeRX\xc2\xdb\xf3a\x1ac\xe50\xdd\xe2\x850\x9f\x8c\xe4X\xab\xe0\x8e\x97\xc2\xfcݘ\xaaa\xc8\xf5\xe50\x9f\xf5\xe0\xe9հ\x04\x88\xd7\xc2X\xd9~=,\xe6^-\x8c\xa7\xa4\xde\b\x93\xdbV\x0f\xa3\x1eP#\x8c\xda\xfa\x9ba\x04\x80\xb7\xc2x,2̊B\xcd0\xfc\xeb\x9d0\x02\xf3\xbbaVRk\x85\x15|\xde\v\x8bQ\xd7ց\xd7\t\x03\xbf\xdf\x0f#m\xfa ,!\xb4nXJ\x90\xf5\xc2RZ\xaa\x1f\x96RC\x830\x11\xa6!\xc4\xd3(\f\xea\xd28,\x96\xf7aX\"[\x93\xb00Ŧ:\xeffl\xady\x98\t\xd4Gaо\x16aF\xf5\x96ad5\xad\xc2\u008f[\x87\x11\xed\xb2\xc3\xe2c\xb60\u007f\x8e\x18\x8d9\xb41'/w\x85\x19&\xdda\x84!OX\x16\xa8\xbda\xdd'\xe1\xd3\xe9\xf8y\xb1\x01\x81\x04(\x88 m$\x14\x16.\x15\x0es\xd3j\x18\xd8\x16\x85\xbccaT\x02M\x9dd\x9cm$\xb4\xffd\x98\x18b\xa9\xe9\xa7\xc2\xe009\x9cc\x1b\xda~\xdb0\x12\xc90\x11\xaf=>u\xc8H\xbc#D\xf4\xb1N\xbfSX`\xb93\xef\xeb\x12&dw\rK\xe9\xad[X\xb7\x14}\x02\v\xfdTG\xf0Y\xfaZy\bR?v\x0f\x13T\xbe\xc0${\xa8\\\xbe\x84@\xbe\x82\x8d\xf5ԙ\xf4\xd2s\xef0x\xd6\xd7a<\x1b\xf8\r&\xfd-\x8e߅IB\xfa\x84\x01*}i\xb0\xfd\xf4\xdb\xfe\xf4\x9b\x01aTп\xa7A\r\xe4i\x10\x8d\xfa\ahq0?\f\t#\x85\x19Jy\x0e\v\xeb\xda\xdcp\x9d\xe4\x880j\x89?\x86\xf1[Va\xc0\xd1(~\xf7\x13\x9a\x19\xad\"\x1a\xa33\x1d\x1b\x96\x9cc\\\x18\xf5\xda\xf1\xb4\xba\ta\xb0։\xb4\x9bIa\xb0\x84ɐ锰\xf2ȩa\xf2\xeei\x90\xeat\x95\xd7\f\xfdvf\x98\xaf˛\xa5\xdf\xff\x1c\x96H>\x9bN7G\xbf\x9c\xab\xe7ya\xc6\xc20\"\xf8\x02\xfdv!\xc7\U0008bdb4(\x8cz\xe8bu\xb5%\x9cگa\xbeP\xf97\xccmi\x18Yڲ0\xf6\x1e.\xa7\xff\xaeH\x1bQ\x97p\xd6\xefan\xa3]\t\x9d\xac\xd2q\xae\x0ecYd\r`q-\xef[\x17\x96\xb8\xf4G\x18\x8bi\xeb1\xeb\r\xda\xeb\xc60S\xc5Mj\xaf\x9b\xf5\xbc%,\x11dkXj\x12\xdb¬\x8cn\x87\xe9\xec`3;ì\xfc\xec\n3P\xec\x0e\xe7\xad\xdb>k\x0f.ً\x11\xfdI\xac\xfa+\x8ce\xde}aR\xb5\xfd\xfcx@\x87{0\xcc\n\xee!\x02\xd6a\xcc\xfa\b\x00\xe5hX\x02\xd71\x1c\xff\xc6\xf18\xa3\xc1\x89\xb0\xfc~\xd4?a\xc4ߓ\x84\x89S\xec\xect\x18\xbb\x02\xceP\x96gì(\x9e\v\x83\xa3\x9d\aB\\\xc0\xf1\"\x8e\x97\xe8\xeb\x97\x19R\xae\x84\xb9C\x15\x8ew\x15\x17\\\xd3Xp\x9dz\xb8\x11\xd6ň\x9b\xeaַ\xf8\xfd\xed07 ݡ{\xff\xc7\xd3\xdd0\xb6\xba\xde\vs5\xfe>f\x95+\x82u\x87\xdc\x11\xa4\x9by\"x\xfbFވ0\x95|\x11\xf8H\xfe\b\xc2q\x81\b\nr\x05#\xea\x0f\x85\"\xe2\x00\x0fD\xa8\xb7\xc2\x11l~+\x12A\x04x0\xa2\x88\xf6P\x84\xea|8\xc2\xdd\x1bE#\xd8*\xf2H\x04k\xec\xc5\"0\xcbG\xd1R\U00048a2aDD0\xa3d\x04f\xfcX\x040W\n\xa3y\\{*\x1dA\x04+\x13a\xf1\xbflD\x88\xc7\x13\x11ο\\\x04\xd1\xee\xc9\b3\x98\xf2\x11R\x95\xac\b#\xebS:\x9c\xa7#\xb0\xc3g\"\xf4\xd4g#\xac\x1eU\x88P2\x159\x99\xe7\"\x88Õ\"\xfc\xf1\xe2\x88\xf0\x90\xca\x11V\x1e^\x88\x88:^\xe4t\xaaDh\x90/E\x98\xd1T\x8d@\v/\xf3\xf4J\x04\xafZ\x8d\x00~^\x8b\xa0p\xfcz\x04^Q-\x82\r9\x19iU\x8f\x00\xe1jDX\x86~3\"\x00\xfc\x96\xce\xe5m\xaa\xa6f\x84[\xe1߉\x90a\xbc\x1b!A\xa9\x15QSx/B#\xab\x1d\xe1\xbaT\x1d\x8e\xe2\xfdH\xe6\a<2\u007f\xd4Uaԋ \x8b\xa8\x8f\x195\x88\x10\xb4\x1aF\x00P\x8d\"0\xe3\xc6\xfc\xf4aD\xd7)\x9bDX\xa4m\x1aa\t\xa8\x19\x15\xd5<\x82@\xfeQDw\x8f\xb5\x10\x1d\xc9k\xc9#D\xf0V\x11!\x83\xadiq\xd9\x11\xa4\x0f\xb6\bl\xddΓ#\x02\x02㌠F\xeaҹ\xb9iz\x1e\x9d\xba\x176\xe2\x8bhb\xe3\xcfX\xa4\x11\x91\xe2m \x82\xd4,\xc8S(\x82\xb5G\xb6\x1ea\x97Q\xaa7\x16a`7\xd9Y<´=\x11!: \xdc\xd2NS\x11\xe119\x11\xc2Q\x1b\f\xa1mD_\xa2\x03\xd3m\x8f\xef:DH\xda;F\x04s>\xd6\xeb;\xd1/:\xab\xc1u\xc1\r])\xdcn\x11\xa9R}\xc2Q|\x1a\x01D\u007f\x16\xd1Z\xe5\xe7\x19\xdb\xe8\x1e\xd1'\x8ab\x85\xbc\x05\xa7\xd62J\xfa\xda*\x8a\x12V\xeb(*\xadQ\x85$[\x945\x1a{\x14\xf9\x82#\x8a\x85ɨ$\xb8\xae(\xf3ewTPۃ\xffx\xa18_\x14\xb6\xed\x8fr\x19\xceP[\t\xa4\xdb\xcaIt\xcc\n\xa6{̱\x8c\xacP\xb4@\xab\x9c`\xba\xd5p\x14\x0f\xd7E\xd2\xdfw\x8c\xa6\xa3\xa4\xf6\x19\x8b\x12\xceͨ\xbc\x9c\"\x1e\xe5\x12N\"*\xe9F2\xaa\xbft\x15e\x92\x90\xa2\xa5\xe6DA&\xdbDA\x1c\xdbFIg\xdaE\x81\xed\xed\xa3\xc0\x8d\x0eQ\xe2f\xc7(\x9c\xf7\xe3(\xde$\xd1)*\xcf$u\xe6ȻDQ\xf2\xed\x1a\x05\x19\xec\x16\xe5\xaa\xc4'4\x89O\xf5\xe3gQ.\xea~N\xcf\xe9\xae\x1f\xbf\x80\xf2{\xd0پ\x8c\"\xe6|\x15E\x15\xb6'\xfe\xd5+\x8aH\xd6\x1bN\xf95\xac\xe3\x1b\xb5\xeco\xa3`Z\xdfEI8\xfb\xd0}\xfbB\xb4\xfd\xe0\x99\xfd\xa3\x88\u007f\x03\xa2xUyT\xf0d`T֗\x06E\x914\xfe@S\x18\xac\xee8\x84S\x1e\x1aE0\x18\x16\xc5\xc6\xfe\xe1\xd1O\x89*U\x9a\x1a-\xd0Đ\xdfL\x9d\x16\xd5$sz\x945\xfe\x19\x9c\xd1\xcc(\xc3\xcb,\xd5\xce\xcfQ\xd9d0;ʍ\xb9s \x82\xb9\x98\xf5<\x8eq~\x94\xf9\xd2\x02\xbdqa\x94/a\xe5i\x11%\xbe\x18B[\x02\xa7\xff\x15m\xfc\x16\x15$^\x8a\xe3\xb2(\b\xea\xf2(J\"+\xa0\x8a\xdf\xe9\xd6+q\xf1*\xc5\xc1\xd5Q2\xe15Q\x89\xd7k\xa3R}[\x17\x15\x18\xff#\x8a\xba\xdez\xbaކ\xa8>\x14\xb81\x8a=|\x9b\xe0\xe6\x9bՎ\xb7`0[\xa3R?\xda\x16\xc5\x0e\xff\xed\xf4\xea\x1dp\x9b\x9dQ\xbc\xf3}W\x14\xab\x9a\xbbi&{TA{ռ\xfe\x8c\x82]\xfe\x15\x05\xc3\xdaG0\xdf\x1feJr *)\xc9Az\xf2\xa1(\xb2\x87Ô\xef\x91(\xeb\x9dG\xa3,\x1b\x1f\x83\x9f\xffMY\x1e'\x10\x9e \xac\xfc\x13e>\t/?\x15\x95({\x9aXv&*e\xa6\xb3\x98\xc79U\xf1y\xcc\xe7\x02\xc5v1*E\xa2KQ\xac\x91\\\xa6\xbf\\\x81\\\xff\x8d\"Y\xbe\x1a\xe5f\xa7k\xec\xf1:\x9c\xf9\x06/\xbc\x19Ent\x8bZ\xb9\xad\xfa\xbd\xc3A\xfdGK\xbe\x1bE\x85\xe5\x1e\xc7s\x9f\x97\xe6\x8aa\x16\xb9c\xe8\"O\f\x96\x9d7\x96\xafAN\x97\xac|1\x06\xf8\xfc1tX \x06k-\x18\xe3\x93ՅbL\xbe\x1f\x88\x010\n\xc7\x18:\x8a\xc4\b\x1c\x0fƄ)<\x14+\xd0\xd2\xe8\"\x15֘\xd8x\xd1\x18\x8a5\x8f\xc4(\xc8b1xã18^\xf1\x98nC*\x11\x13\x95\x96\x8ciXħR\xb8\xff\xf1\x98\x98V\xe9\x98r\xa42zIY\xfc\xf3\x89\x98\xec\x12/\x17\xc3>\x81'cؐZ>F\xebˊ\x01\xb0\x9f\x8a\xd1\xe0\x9f\x8e\x89\xe0\x9f\xe1\x97\xcf\xea5\x15b\x02\xfb\x15c\xfa\x82rtU\x89\x93{>&<\xa1r\f\xb2~!F\xed\xbd\x18\x03\x95\xa8\x12\x93\x17\x1d\xbc\x84c\xd5\x18l\xea\xe5\x98<\x92\xffJ\x8c \xffj\fu\xd3\xd7bX\x15z]\xc5V\rc~#\x06\xceQ=F3\xaf\x11\x13\xc7x3=\x85\xf4\xb8ޢjގ!|ԌI\xc9\xf3\x9d\x18\xdf8\x17#\xb7\xaa\x15\x13sz\x8f\x83\xac\x1d#\x9e\u05c9\x81P\xbf\x1f\xc3R\xe8\a1}\x8fE\xdd\x18\xa2x\xbd\x98Ҽ\xfa1\xa1\x89\rb\xc2\xfe\x1b\xe2\xd8(F\xc2\xd1\x18S\xff0Ɣ\xaaILФ)\a\xd3,\xa6\x8f\x0e5\x8f\x91H|\x14\xe3\x8an\v=\xb7\x8cq\xb9\xa3\x15\xc7\xd4:\x06cˎ\xa1\xfcg\x8b\xc1\xd2\xed1>\x9f\xe4\x88Itv\xc6\xc0\xf8]\xe9q\x19\xed\xe5\xcd\xe41R\x17O,\x1d\xcaҨ\xe7\xa5\xd9\xf9Tn\xfe\x98@\xb6\x11ÊX@\r \x18\xd3w\xce\xc1V\xc21\xd6B#1\xae>Ƹ\xd6\x12\x8be~\xd1*\x96Y\xfc\x8a\xd3\xf2\x121d9\xc9\x188\x85\xa5\x8d\xa6b\b\x8891\xf2\x8e64\xac\xb612\xefv0\xa1\xf61\xb0\xa1\x0e\xd0C\xc7\x18b\xc4\xc7*\x9aN1\xf8[\xe7\x18\xb6\xaf\xc6H\xb8\xba\xd2Ѻň\xe0\x9f`\xc0\x9f\xc6PB\xf8,\x86<\xfa\xf3\x18\x80\xad{L\x1e:\xf8\"\xa69e\x8f\x18\xf8ї:\x9a\xafhi=鰽b\xdc\xc4\xd4[\x9d\xf0\xeb\x18\x99\xe97\xff\x9b\xe9\xb71\xc1\xac\xefbL\x88\xfa\xc4d\x1bD\xdf\x18\xa2P\xbf\x98 S\xff\x98@ր\x98\x00\xce\xf7\xb8x`\fI\xd4 \xb8\xc5\x0f\xd4\xff`\xba\xcc\x10\x8afh\x8c\x14}\x98z\xc4pU\xfe\x88\x18\xd2\xe2\x1fcX8\x1f\x19CX\x19\x15#\x95\xf9)&\x91|\xb4z\xe2\x18\xc0\xc4X\xbdq\\\x8c\x84j|\f\xefޛ\x10\xe3S\x1d1\xe2\xf7\xa4\x18Y\xea䘰\xb4)p\xa0\xa98N\x8b!\xbaN\xe7m3ԂfR\xad\xb3b\x82\xec?DŽ\xfeϦYΉ\xa161WM|\x1eqh~\x8cu\xba\x051D\xa4\x85t\x98_T\xe1\x8b\xd0\xd3b\x05\x8b%\xb1\x82\xf5:Z9\x1dұ1V(\r\xa4\t\xd3J\aH\xba\xdcR\xcajY\f\xd4ly\x8cU\xf2\x15*\xa4ߵӕ1\x06\xc8Uhw5\fa\x8d\xb6\xbe6\xc67į\x8b\x91L\xfc\x11#\x9f]\x1f\xe3\xf3p\x1bp\xf5F\x1c7\xc5\xc0L7ǰ\ak\x8b\xceakL\x1e\x8b\xda\x16\x03\xb5\xdb\x1e\xc3\xf6\xab\x1dj%;c\xd8ĵ+\x86:\xd8\xee\x18S\x84=1\xe5\x1b{i\x16\u007fBO\u007fat\xfbԞ\xf6\xc3c\x0f\xe0x\x10\x06s\x88\x8d\x1cV\xd4?\x12c\x92w4F\xfez,Fv\xf67,\xea8\\\xe1\x04\xc5\xfbO\xa6\xbf\x93\xea٧0\x9d\xd31\xb2\xd331\xa4\x89g\xd1\u05f9\x18y\xfdy Ӆ\x18R⋴\xc5K1n\x1c\xb9\x1c\xe3szW\xd0̿*\xe5\xab\xf0\xcck1\x89\xadש\x90\x1b1\xeco\xba\xc9\xd3-\xbd\xf0v\x8c\x9b\x1e\xee\xd0\xe6\xfe\xe3\xe9n\x8c\xc9\xf1\xbd\f\xeeݏ\x81\xf0\xe42a\xe1\xb9MP\xbf<\xa6\x18q^\x13y|>\x13&\x96ߔ\xa1\x160\x19M\n\x9ax3\x00\x8e\x0f\x98:\xf1\xc2&XF\x11S]\xfcAS\xf9\xddC&\f\xe8a\x938Y\xd4\x14\xc8{\x047\x173\xe1y\x8f\x9a,\a\x1479\xfa\x12\xa68iI\x13K)\x8f\x99\xd4V)S\u007f\xe5\xca\x04[/mj]\xa6\x8cY0m\xfd\x92.\x945\v6ɱ\xccx:x\x9a\xb4\xcer&\x82Ǔ\xa6h\xaa\xbc)\xe9I\x96I\xe3{\xea\u007f\xb7=m\xa6\x1d2\x91\x0e\xa0f:b\xcb/\x0e?k\"\xe5\xaf\xc0qW4\xb15\xee9\xb3@\x13\xfc2q%3m\x14\x91t>i\x02\xc9+\xeb\xf0^0\xa9\xf7\x17\xf9u\x15\x13\xd4\xeb%\x13ʭj\"T\xbcl\n\xd9|\xc5\xccWO\xdeFg\xc2!_\xe3\xe9u\x93+ \xd5L\xc0\xcb\x1b&\u0378\xbaN\xa4\x06\xe4\xff\xa6Iv\xf7\x16\xe6\xf3\xb6\t\x9b\xaa\xc9\xd3;\xa6V\x85\xdeՁ\xd42Y\xfbz\xcf\x14\x9b\xabmJ,\xaec\x82\xfb\xbco\xcar\xd0\a&\u007fL\xa8\xae)(Y\xcf\x04\xad\xaaor\xb3\xab)\x14\xa1\xa1\x89\xb7\x0152\x19\xcf\x1b\x9bBw?d\u007fMLĊ\xa6&<\xa6\x99\x89*^sZ\xcbG\xfc\xd4\xc2\x14N\xd7\xd2\xd4-<&\x8a`\xad)\x98l\nצ\U000f36d2\xa2;L0]'5\xec2%\xa9q\xe3\xe81\t;^\x93n\xe13\x198\xfc&8\xad\x819\x06LD\x91\xa0\x89(\x122\x89\xb3a\x93Q\"\xa2\xe7\xa8I<\x8d\x99\f\x8c\xa6\x8a!\x0e\xe5$L\xc1\x89$\xe7a\xe1\xab\x14\x87\x93cr\x03`\x1b\xf4\xd56\xfde\xba\xafv\xd4^{v\xd9\xc1\x14\\\xe8\x88&>f\x13\x9dL\x14\x15;\x9b\x88w]\xb4\xef\xae&\x98}7\x93[`>1\xb1\x1b\xe9SS6\x13\u007ff\x16HgN\xf2\xdbWf\xa1ƒ)\xb53\xb2\xba\x9bؚ\xfe\x85\x99\xbfI\xc7v9Y=L\x14\xb9\xbf4Q\x97\xfb\xca\x04\r\xedi\"E\xeb\x85\xe1\xf56\xe9\xe9_×\xbf\x81\xb3}k\x16li$\x8cD:p\xd2F\xfb\x98\x92x\xf6\xa5^\xfa\xd1\xf0\xfa\xc3\xd0\x06\xa8\r}o\n\xde\f4\xc1\xe2\a\x99\xf8\x81\x0f\x93\xa1\u007f\xb0I:=\xc4\x14\xe0\x1c\xaaz\x1c\x86\x9e\x86\x9b\xb2{e\x04-\xeaG\x95\xf3H\x93x=\xca\x04/\xf9\xc9$2\x8e\x86\xaf\x8f1Y\x15\x1ak\n\xeb\x1dDZ\x8cg\x03\x13(ɉ\xa6\x16\x8c&\x99`\x14\x93MD\x83)4\xe9\xa9\xea\xd6\xd3L)\x11L7\xb1Ap\x86\xf61\x93S\x9c\xa5C\xfe\xd9D\xb20\x9b&8\xc7\xc4v\xae\xb9\x14\xdf<5\xac\xf9&\x98\xcd\x02\xbde\xa1\xc9H\xf0\x8b\x89퉋L\xae\xeb.\x86\x85/1\xb5\xfa\xff+\xe6\xfd\x9b)\xf0\xbc\x14>\xba\f\xd2Yn\n\x88\xaf0\xc1\x9c\u007f7Q\x83X\xc9!\xae2\x916\xae6\x11kטB\x8bך\xe0q\xebL.\xc5\xff\x91\x16\u007f\xda\x1c\xd6ì6\x98,\xb3m4\x91\xd6n2\x19.6g\xc0v\x8b\x89$i\xab\x8ac\x9b\xa9\xcfC\xd2@w\xc0\xadw\x9a\fg\xbb8\x92݊\xba{\xe8\x99{\xc5\xfe\xda˛u\xd4\xed\xff\xd2q\xec\xa3V\xf6\xab\xaa\x0f\x98H\x18\x0e\x9a\xc2tӗ\x1f2\xf35kgf\x1d&j\x1f1\x91]\x1c\xa5\xa5\x1d\x830\xfe\x86\x18\x8e\xab+\x9f0Q\xa7\xfc\xc7d\xf6tRG|\x8aA\xe84M\xfc\fOgM\xee\x83;g\x82\x03\x9f7\x85L^ \xb6^\xa4\xfe.\x99\xdc\xf7y\x99 p\x05\xb0\xf1\xaf\xa9$\xf9*>^3I̮\x13\x9fn\xc0\xd6o\x9a\x88\x81\xb7(\x8c\xdb&7:\xdea\xe4\xf8\x8f\xa7\xbb&\xaa\xb2\xf7L\xd4b\uf6e8\xe5䊋\xb7\xe7\x8egHi\x9e\xb8\xb8o\xde8\xfd#_\x9c\x1e\x98?N\xd2S .ԣ`\x1cտBq\xaee<\x10\xcf<\xd1]8\x0e\x1aQ$N\xb6\xfd`\x9c\xf1\xfb\xa1\xb8(\xfd\xe18\xa8_\xd18\xf6\n=\x12\x17\x9f.\x16\xd78\xfbh\\ܲx\x1c\x10R\"\xce\x15\xb7\x92q\xf1\xa3\xc7\xe2b\x89\xa5\xe2\xfcy\x8f8M\xb8t\x9c\x19o\x194S6\x8e\x94\xe6\t^S.\x0egz\x92\x9f\xcaǵ\xf6\x97\x15\xc7j\xc6Sq\xa9\x9e<\x1d\xe7\xcf`<\x13\xa7y<\x1b'\x13\xae\x10g \xac\x18\x87柋\xc3\xcd+\xc5E\xf3\xcf\xc7\xc9x*\xc7\tx/\xc45\xe9T\xe1T\x89\xc3L^\x8a\x17l\x90\x93\xe8\xd8>'\xabj\\\xed\xf9e\x19u\x1a\x01_\x89\x139_\x8dKf\xfaZ\x9c\x1b{\xe2\xf0\xe0jqfHo\xc4a\x91յ\xd1\x1aq)X\xbcɹ\xbc\x15\x87\xe5\xbc\x1d\x87\xe6kƉI\xefı\xbd\xf0\xdd8jt\xb5\xe2D\xbd\xf70\xe6\xdaqxa\x9d\xb8>)\x19\x97,\xf8\x838\xb0\xa7.$Q/.̽\xbe\xf6\xde \x8e$\xaea\x1c\x15\xb6Fq\xe0Gc\xfd\xe7\x87q\x16\xb3\x9a\xc4\xd3\x115\x1d5\xa9\xedf\xdaa\xf38<\xef\xa38r\xea\x16q Q\xcb8\xe3M\xab86\xf3\xb7\x8e+\xcf\xcaV=\xda\xe2\xcc\x1f\xecq\x81\\G\xe6\xdfNh\xde\x15G\xb6\xe6\xe6\xc9\x13G\xa0\xf0\xc6\xe1q>ؔ?\x8etƈk\xf5!\xc01\x04\xe3\xac\x0e\x85\xe2\xc8\xfe\xc2Tf$\x9e\xd9\v\x1b\x8d\xf3\xb9\xf9X\x1c\x8cҌ+\x93\x8c\xc7Q\xb2J\xa8\x82\x93q\xe4.V\\\xe0/EY\xe4pzm\xe2p\xb4\xb6qD\xd5v\xe9\xf6:\xb67\xb2ڧ\xfb\xed\x98\xe6^\x1dⲕ\xafc\x1c;\x8d>\xc6H;ő\x0eu\x8es\xe3V\x17\xd8mWZL7\x9e>\x89\x13\xe8?\x8d\v\x00\u007fF\x95\u007f\x1eW\xe7\xef\xce\xe9\u007fA\xcd\xf4\x88\xf3)\xac/\xe3(V|\x05e\xf7\x8cc\xafE\xaf8\xeb\xe8\xbdiI_\xc7I\x19\xbe\xc9\b\xf7[\xaa\xff;\x88\xbc\x0f/\xea\x1bGQ6\x8eU\xb0\xfe\xb0\xb9\x01qP\xa4\xef\xe9\xaf\x03\xe3$@\x83(\xfe\x1f\xe2\xcc\xee\acrC\xd8\xf1и\xe4\xdf\xc3\xe2\xc2Ć\xc7ItGPB?ƹ\xebsd\x9c\x89\xff(\xdc\xf7S\x1cAqt\x1c\x98R-\xc1\x1fF{#A\x02Y\x1d7\xd6H\xc8J\xfb\x9bh\xf1\xad\x04\xdep\x9e\x10\xa6T\x93=\xbe\x93\x00\xaa\xbd\xab\xf7\xd6J\xa0\f\xfd\x9e~\xac͏u\x12\x9ay\xbe\x9f@\xc8\xff \x81\xd2b\xdd\x04\xb4_\x8f3\xae\x9f\x00\x05o\x80\xb15\xd4)7JЀ\x1a\xa3\xff\x0f\x13B~\x9b$\xf0\xab \t@v\xb3\x04\x98Vs\x88\xe6#\x8c\xacEB*_-U\x9e\xad0\xf1։|iꑕ\x8d)ٴQ;\xfe\xe5\xc0w\xce\x04\xa8\xa2+\xa1[_)V\x0f\xba\xf5r\x16>\x8c̟\xe0\x9exC\xdb\x0f$\x80\t\xc1\x84\xee@\rA\x9b\xe1\x84\xec\xf2\x89`\xa4QH-\x86oL\x1c\xe3\t\xbc\xf2$\x01\vN\xeaT-\n4\x95\x90\x97\x95\xe4\xf0C\x1b|h\x9bХ\xa2v\t\x84\x82\xf6\xf4H\xe0ͬ\t\x12\xb8\xaf\x12\xdcu\xd43\xa1iL/\xb6\xd9;\xa1[\xad\xbe\x86$\xbfI\x80\x0f}\x9b@p\xfd.\x81-\a}h\x85}\x13\xdc\xc9\xd8/\x81\xc7$\xfb'\x90\xed\x0eH\b\xca|\x9f \x80\x0fL\x80\xd6\fR\x1d\xfc\x00\xe1\x0fN\xa0\x162\x84b\x1e\x9a\x90|{\x18\x9b\x1e\x9e@eaD\x82/\xd4I\b\xa8\x8f\xc4\x05\xa3\x12do?\xb1\xc5\xd1\tԛ\xc7$X\x9c\x1a\x9b@\xf0\x19\a;\x19O\x03\x9a\x90\x99\xcaD\x1a\xe5\xa4\x04\x1f\x00\x9d\fALI\x00\xab\xa7&\x88\xe3\xd30\xb2\xe9\xecwFB`zfB\xa9\xc4,\x1d\xfd\xcf\xecd6\xfe;'QH|\xbec\xfb\x8eYsU\x03\xf3(\xa5\xf90\xdc\x05\t\xd6v\x16\x12K~\xe1\x18\x16\xa9\\\x16\xa3\xbb%\xf4\x9d_\x13\xc8/\u007fK \x85\xa4Ζ%PH_\x9e \x11]\xc1\xd1\xfe\xce\xd3ʄ0\xacU\xbcm5\x84\xb4\x06\r\xaeE\xd7\xebx\xd5\x1f:\x82\xf5\xf8\xd7\x06\xf5\x90\x8d0\xe0M\t\xa6\x1a\x9b\x13R\x82ْ@\xa2\xb8\x95\xa7m\x80\x87\xed\tT\xf6v`\xb2;a\x8a\xbb\x12\xc2Tv\xe3\xb8\aǽ\t<\xe8\x81\xe3_\xf8f\x9f\"\xfa\xfe\x04\xaa:\a\x88\xca\ay:\x94\x10\xa2t8\xf1\xbf\xe7Տ$\xc0d\x8e&H\x89\x8f%\xf0\xf4\xe6\xdf\x18\xd4\xf1\x04\xb8\xe9\tZ\xe0?\t\xe1\x05'\x13\xba_'\xc1\xc8t\x1a\xeev\x06ןM\xa0vy\x8efx>\x01\xfex\xe1\xff\xfb\xbaHt\xb9\x94\xc02\xe3e\xdcy%\x81\x12ݿ\td\x93W1\x83k\t\xd0\xd0\xeb\x1c\xf2\r\xce\xe3&\xfd\xf3\x16\xe4p\x1b\xc7;\x1c\xdf\u007f\t\xa9\xb1\xddU\x13\xb8\x97\x10.z\x9fM\xe4JJxΝ\x94\xd1\xe5I\x8a\x1b\xe7M2\xd3˗\xd4e\xc9d\xe6\x05\xacI\x91L\xc1$\xc2V\xa1\xa4.K&\xf1\x18ca\xfdX$IN\xf6 \xafz()\xe1\xef\xe1$v:\x15M\xf2\x8d\xe5I\xc9N\x8b%\xb1\xc9\xee\xd1$ܴx\x92\xfb)J$\xb1$\x99\xc4\xfe\xb0ǒ\xa8\xee\x94\xc2w\x8f'A\x14K')\xd42I\x85\xf6\xb2I\xd0\xfd'\x92\xb2\u0378\\\xfa\x0eysN\x12b)\x9f\x94\x1aQV\x92\xa5ɧ\x92,\x9d?\x9d\xa4u?\x83f\x9fM\xc2\xe4+$\x05\x8c+&\xf1ө\xcf%\t?\x95\x92\xb2Z\xf7|R\xaa\u0095\x93b\xf7/\xe8\xbd/\xe2\xbb*\xda\xe2KI8dUH\xf2e\xbd\xe4\x15m\xe4\xd5$\xa0\xe05\x9e^O\xf2'C\xaa%!\xfc7\x92\x8a\xdeՓ\\\x90\xa8\x91d\xcd\xe1\xcd$\xe3\xff[\xc9\xc2i\x91u0,\xb3kǬ\xb7\x93\x92\xc6\xd7L\xe2\a \x93ؓ\xf4n\x12\xe9Z\xad$\x90\xf7\xbd$KD\xb5\x93\x00\xad:IX\xd9\xfbI \xc2\aI\xd9(\\7IfY/IH\xa9\x9f\x84\x1b6H\x12v\x1a&\xc5\r\x1b%\xc1\xaf\x1b'\xc9\xf6>\xccȺI\x12\xd5\xf8\xa6\xec\xb4Y\x12`\xdc\x1c\xa2\xfb(\tCk\xa1zlɮ[Aƭ\x93\xcc]\xb2\x93X\x1e\xb1%\xb9\xa95\xc9\xf8\xe3H\x8a\xaf;qt%\xe1G\xee\xa4\xc4\fOR\x16N\xbdI\xae\xee\xfa\x92\nt\xfe$B\x94\x81\x1b\x02ɂi\x80\x93\r:A\xea<\x94d\x0e\x1a\xa6\b\"\xbc8\xaa}Œ\xc2\xceͤ\xb8F<\xc9%\x93\x84*,\x99ԇ@\x92\xc8/SI`[N\x92\x9bx\xdb$\x91U\xb4M\x92ֵK\n\x9e\xb5Or\xbfs\a=wL\"\t\xfb8\t\xd8\xef\x94\xd4\xf0\xd99ɽ2]\x92\xfa\xecGW\x1a}\xb7$\x17\x92?I\xa6S\x0e\xa9\xb2BZ\x9fѠ?OJh\xeb\x8e\xe3\x17I\x90\x9d\x1ePΗI)\x91\u007fE{\xea\x99$K\xef\xa5M\xf5N\x82f\u007f\x9d$\xb3\xfeF\xcf\xdf\xd2B\xbfK\x82\xef\xf6I\xe2ɘ\xbeIa-\xfd\x92H\x85\xfa'\xf9bV\xe0\xc0\xf7I\x14\x81\a&\x01\xb5\x83\x92\x02\x17?\xa8\xe1\f\x86܇$\xf5\xf9ءI\x86\xe8aI$\x88IĊ\x11\x14\xfe\x8fI\xa0\xd8\xc8$\n\x89\xa3\x92\\e\xf9));\xc8F'Q%\x1c\x93D\x02>\x96=\x8d\x83\x89\x8eO2+\x9d\x90\x9481\x11\x984)\x89\xb7'LN\x92GO\xd1K\xa6&A\xba\xa7a&ӓ\xc2 f\xb0\xa9\x99I\x84\xb9YI\xacI&A\xaeg\xd3F\xe7\xf04\x97\xa7yI\x81\xc6\xf9\xe8e\x01\xccc!\xc4\xfcKR\xaa*\x8b\x92\xc8{\x16SpKt\xb2\xbfr~\xbf%\x99\xe5-MJ\xa4[\xa6\b\xb8\x9c*X\x01\x1b\xfe=\xa9\xbb\x00V&\xf5uV\xab0\xa2\xd5I\x90\xce5t\x93\xb5\xe8q]\x12q揌٬W[ې\x94,d#\x1du\x13\x86\xb89\x89%\x8e-\xea\xa0[\x93`\x8dۀ\x0f\xdb9\xd6\x1d\x18\xd4N5\xdf]\xb4\xccݘԞ$\xc2\xc5^\x8c\xf0O\xc8\xee\xaf$71\xedK\n\x8b\xdcO\a?@\xe79\x98\x14\xb2t(ɼ\xf8pR+\x0eG\x92\xcc+\x8e&\xf1\xe6\x9fc\x18\xe5\xdf0\xe1\xe3h\xf9\x04\x80\xea\x1f\xcc\xf7d\x12u\xacSI\xf0\x8c\xd3I\xe5sg\x92H^\xce&Y\xcd8\x97\xc4\xf6\x85\xf3\xc0\xed\v4\x9b\x8b\x8c\x13\x97\xe8\u007f\x97\x15U\xaf\xc0\xff\xfeU\xb4\xbc\x9a$Q\xb8\x96d\xa5\xf5:۹\x91d\xc2x\x13\xc0|\x8b\x00q\x1b\xe3\xbcC\xf9\xff\x97\x94\x1c\xfc.\xcc\xee\x9e\xfa\xff}F\x84\\\x16\xb7\xb6綤\xa7<\x16~\xc1\xc3\xe2\x06V\x9e\xf2[\xa8\xb2\x14\xb0T \x05-\xdcX\xc8b\"h\xe1\xc7\x01\n[\x8c\xb9E,\x0e\xfcA\v\xcff>d\x89\x84\x1eF\xdbE-a\r\x8fX\xdc\x00Y̒\xc9?jI._\xdcBu\xb5\x84\x05s+\xc9\xf6\x1f\xb3\xc4\x01KY\x82\xba\x8f[(ܗ\xb6 \xd62\x96BdY\v\xc1\xf7\t\v3.gI\x18{\xd2b\xb0*\x8f\x99dY\xd8\xdb\xf5\x94\x05\xf9?\x8d\uf7b1Ĵ\x9e\xb5hu\x15,\xf0ӊ\x968\xd5s\x9cS%\x8b\xf4\xecy\vҫlѸ^\xb0\xf0\xb8\x87\xc5\xf4\xad\x8a\xa5&\xff\x92\x85zLU\x8bo'\xb7\xc4\x0e^\xc1\\_Uپf\t¿n\xd1\xf6\xaaY\x00\xff7,E\xc9\xea\x9cv\rK\xab\x1eoZ\xcc|\u07b2\xb8\"\xf3\xb6\x05\xe4\xaai\xc9s\x99\xefX\xe0\xf7\xefZ\b1\xb5 \xa3\xf7,!\x1f\xb5-@L\x1d\xcc\xf1}\v>\xf6\x81E]\u05f5\x18\x17\xeae$W\xdf\xe2zo\x83\x8cR\x1bZ\xe0,\x8d,zZcK\x9e\x95\xfcPzIf5\xb1\x98\xc86\x85\x1a\x9b\xb1\x9f\xe6\x16\xb9\xe5G\x16\x92\x84\x16\x96\xb8WK\x8b\x05\x85V\x9cbk\xca6\x9b\xb6`\xb3\x00\x02v\xca\xd8a!CrZ\b?.\v\xb1\xd2mq\x85\xcac1\xbczu8>\v\xbe\xee\x871\x18\x96Xv\xc0\x02\xa7\fZ\b\xd5!UQ\x18\xb3\x8fXB\u0896.3Z\xa8#\x98\x16(i\xdcb6\x9e`\x8fIK\x00Ѳ\xb8\xf1$\x05\xa3́T\xdbXL4\xdaZ,j\xb5\xb3\x88\xc5\xed\xd1E\aKbkG\x8b\x14\xf2c\v\x85\xd5N\x16xUgN\xbb\vu\xd0\xd5\xd2\x10\xd2\xcd\xe2\xf3\f\x9fX@\xeeO-\xb0\xd8\xcf2\x1a\xf8\xdcB\x14\xe9n\xe9\xfbu,ҹ\x1e\x96l\xad\xf9\xd2\xe2\v\xca-\xacB\xf6\xb4P.\xea\xc5)\xf4V%\u007f\xadV\xfb\x8d\x85Bͷ\x16\x1f^\xfe\x0e\r\xf4\xb1\b!}\xf5\xa2~\xdaM\u007f\x8bTj\x80\x95\xa7n\xd6\xf7\x96 \xe0@\v\x94k\x90\xc5\xdd[?X($\x0f\xb6$\x9b\x1b\x02q\r\xb5\xc8\xee\x86\xc1\xbb\x87ӹF\xe8\x97?\xd2\x1dFZ\x92\xab\x8c\xa2`~\xb2P\xca\x1a\xad\"\x1dC\x13\x18k\xe1\x99H\v\x11~\xbcZ\xfd\x04KX\xf3D\xba\xf4$\v\xc5\xfa\xc9\n.S,]\x0e\x99jI\xde>\rښn\x11\x14g(\xb0̴X\xa5\x9ee\xe9\xf6\xbf\x9f-!\xb1\xb3-\xd6\x15\xe6dژkI&;\xcf\xe2\v{\xe6c,\v(х\x16B\xe6/\n%\x8b,\t\x9d\x8bq\xc5\x12\xb8\xf7\xaf\x16\xc2\xcco\x96\xae\x00-\xa5\x13,\xb3\x84A,W\xa3]a1]\xfc\x9d\xc0\xb0Ғ\xb7q\xafR\xa9\xae\xb6d\xd1u\r\fz\xad\x85,s\x9d%1\xe5\x0fK\xe2\xd9z\vkp\x1b8\x9e\x8d\x16\nÛ,r\xbe\xcd\n+[,\xae\xf7l\xa5eo\xb34\u007f\xd9n\x81\x13\xec@{;-\x92\xb2]\x16\x82\xdcnKb\xc4\x1e\v+%{1\x99?\xa9\xb0\xbf,V\xf4\xf6Q\x9d\xfb\x89J\a\xb4\x8f\x83\x16\b\xc2!\x8b\x15\xeb\xc3\x16\x19\xc2\x11K\xb2ͣ\x16h\xd71\xf8\xc4ߖ\x84\xc3\xe3\xf8\xfb\x04z\xfb\x87\xd2:\t\xdc=\xa5\xd6z\xdabX=c\x81\xf1\x9c%蟳\x90\xfc\x9d\a\xa2]\xb0X\x1d\xbd\x88\xb6.\xa9=_VǸb\xb1\xe2\xf1\xaf\xfa\xe7U\xe0\xe35\x8bD\xf1:-\xee\x06\x15s\xd3\"\xf7\xbde\x81\xb3\xdcV8\xbc\xa3\xb3\xf8\xcf\xe2~\xf6\xbb\x9c\xf3=\x8e\xe5>ƛ+\x05\n\x92;\xc5v\xf3\xa4\xc0y\xf3\xa6\xe4M\xe7\xf9R\x10J\xfe\x14[/\xa0\xd7\x14LI\x0eU(%h\xf9@\n\xceXX\xffU$U0\r\xb3\x01y:2\x85\xfd\xac)1\x83\x87S\xe2+ES\xb0\xf9GR4\xf6b)&\x8e)\x91p\xf1\x94\xa8\xde\xcc*\x91\x12Q\x94\xd4\xd6\x1eKQ\x14\xa5\xf4\xfcx\n|\xb6t\x8a\xaeT&\x85pYV\x1b|\"\xc5\a\xb4ʡ\x8d'S@\xe3\xf2)\xfa\u007fVJ$\xfe\x14\x06\xf2t\x8aH\xf7L\nk\x91Ϧ\x04o+\xa4\xc4\xfc+\xe2\xf8\\J|\xb4R\n^\xfc<%R9%1\xee\x85\x14\"\xe6\x8b)\t\x1fUx\xc1K)\xa9*VMq\xc9\xfb\xe5\x14T\xf0J\x8a\x80\xfdjJ\u007f\xe7*%\xc2~\x1d\x92\xab\x96\x02o{#E\xfc\xae\xce;j\xa4\xf8\x9e\x00\xbd\xf1\xad\x14u\xf6v\x8an_3\x05T}'\xc5\r\xad)\xe8\xbdV\n\x99\xf5{)\xacD\xd4N!\xc6\xd5I\xa5\xa1\xee\xfd\x14\x02\xe8\a\xbc\xabn\x8a\xc0T/%.S\x1f\xc7\x06\xfcW\xc3\x14m\xa4Q\n\xdbM\x1asN\x1f\xa6P!k\x92\xe2\xaax\xd3\x14\x93\x86f)0\xa6\xe6)!\x13\x1f\xa5\x84.\xb4\x80\x19\xb4L\xa1>\xdaJU\xd1Z\xcf\xd9)\x89\x9a6\x95\xb7=\xa5uyG\n\x8fv\xa4`\x86\xae\x14\xf9\xb6\x9b\xa3\xf7\xa4\xb0\x88\xe0Mi\xd8\xf0\xa5tS\x86?\x85\x92\x8a\x01\xed\x06R\x92\xa6\x04iB!\xde\x19NI \x88\xa4\x94\x93FS\x8c\b1h\xdeL)\x1b\x8f\xa7m\xa9cz\x86\x89\x14\x96\xa5\x93)\x12\x05Kl\\\x9e\x80\xe4\xa0rR\x84\xa26)R϶)p\x94vj\x98\xedS\xd8\x14\xd4!\x85\xc71:Rs\x1f\xa7ȸ:\xa5\xb8c\xa2sJѳK\x8aT\xa2+\x15\xdd-E\x87\xfe$\x85(\xf7)\\\xe4\xb3\x14\xe2\xfc\xe7\x9cJ\xf7\x14\xb6\x01|\xa1\x16\xd2#U\xa0\x05\x9eh\xf8\x92\x8a\xfe\x8a\x9e\xd4S\xa5\xdc\v\x8a\xe8\r\x87\xfb:\x85\n\xc27)\xecj\xf8\x96\x17~\xc7S\x9f\x94\xb0\xe4\xbe)D\xef~\xbc\xb0\xbfNt\x80\xce\xec\xfb\x14\xa8\xea@\xfd8H\r\xe7\x87\x14 |p\x8aU\xa1!)\xee\xb7\x1c\x9a\x11\xf60\x18\xf6\xf0\x14\xc8\xfd\x88\x94\xbcX\xe7ǔ\xe0\xd5\xc8\x14\xd8\u0528\x14\xd2ğR(2\x8dN\x91\xf9\x8d\xa1\x03\x8e\xe5\xa4\xc7\xc1*Ƨ\x80\x97\x13R\xb2\xcbfbJ\x88\xce$\xda\xe4\xe4\x14~\xca#\x85\xed\x9bSS\xc2a\xa6\xa5$\xbeL\xa7\x87\xceH\xe9Z\xe4̔\xe4\x01\xb3\xd8\xea\xcf)\x89\xf9\xb3\xd1\xf6\x9c\x14˺sSX\xf6\x9a\x97Bd\x9e\x9f\u008e\x89\x05\xd4\xfc\xc2\x14\xabe\xbf\xd0\xc3\x16\xe1\xf6\xc58.I\t\xf2\xff\x9a\xc2\x16\x1c\xb6\xbe\x14\xa8\xb0\x8c\x03\\\x9eB\xa6\xb3\"\xc5ױ\xf2\xb42\xc5\x17\x06\xacJ\x91\x1d\xadN1\xf5]\x93\xc2*\xdeڔ\xc4\xdeu)݈\x93B\xa4[\x9f\xb1\xf9\r\x98\xdfFX\xc8&\x80\xd2\xe6\x14\x97\x10\xd52\xb6\xa6\x84\"l\xa3\xcflOa\a\xc2\x0e\xe0\xd1Nܴ+\x85ط;\xc5\xdfoݓ\x02'\xdb\v\xef\xf9SM\xff/:\xf5\xbe\x146\xc4\xee\xa7\x18\x0e\xa4\xb8\x86\xa8\xf6\u007f\x88\xdd\x1e\xa6\x05\x1f!\xe8\x1f\xa5\x95\x1eӱ\xfc\xadv}\x1c\x86x\"\xc5\x17礸\x10v\x92&x*\x85\x1a\xd6i\xfa\xf2\x19\xf8\xf2Yj\xe3\x1c\xb0\xe2<\x86v!\xc5\x05\xe4\x8b\xec\xf6RJi\xfd\xe5\x14^\x81rE\xe3\xc1\xbf)-\xba_\x85l\xae\x01c\xaf\xa7d{\xf6\r\f\xe2&ڼ\x85\xe3mz\xe9\x1du\xc6\xffRȍ\xef*J\xdc\xe3\xec\xefsJ\xb9r\x18\xf1r\xe7\xc8\x00\xf3\xe40\x12\xe7\xcd\x11\xa8˗#t+\u007f\x8e\xbec.G\xb0\xb4`\x8e\xe8\xa9\x10\xfe\xff@\x8e\xf4\\\x18\xc7\"9\x14߃9\xf0\xb9\x87r\xc0z\x1e\xce!\x13)\x9a\x83\x1d5\x8f\xe4`\x92\xc5rಏ\xe6\xa8\x15\x17\xcf\x11s/\x91\x03\x89\x97\xcc\xc1\xf6\xa0Ǵ\xd7R\xda\xc2\xe39x\xa0\xact\x0ea\xbaL\x8eTZ\xca\xe6P\xd9O\xe4\b\x01,\x87\xa1\xfd\x1fOW\x1d(E\xf5\x85\x95\x0e\xc1n\x85G\x18\b\x88\xa2\x12\xa2t\x83t\x83\xe0\xa3{cf\xb6{6\xe8\xee\xee\xc6\x00\x11\x14\x03E,J\x10TB%\x14Q\x10D\xba\u007f\xef|\xdf\xd9\xdf?o\xde\xee\xceܹ\xf7\xc4w\xbes\xee\x9d;\xa5\x1c\"\x9a\xd2\x0e:{\x8eC\xf0\xbb\x8cC\xa5W\xd6\x01\x16V\xceA_/\xef\x80\xe6\x9er\x88\xff>\x8d^<\xe3 \xa1x\xd6A$\xaf\xe0`T{\xce!nU\xd1\x01\xa1Ur\x88\xc5Uv0\xb5y\xde\xc1eNU\x1c\xa0[/8ȳ^t\x80\xbbUu(K})\xfb\xcf\xcb\x0eM#^q\b\x9aUs0\xc6Ww`\u007f\xa4\x1a\x0eݎ\x95\xe2xՑ]-R\xcb\xc1'\x94_s\x80X\xbd\xee\x10\x16_\xdb\xc1$\xbd\x8eC\xed\xa6\xaeʫ\x9e\x83\xa6Z\xdf\xc1 \xdb\xc0\x81<\xae!;\xd5\xc8A\xa6\xddX\xcfj\xe2\xd0\xf7@:`\xbb\xcdxh\x8e\xfe\xb5Pa\xb5\xa4\xf2\xdep\x00\x01Z9\x84̴v\xf0%\x90\xaa\xac\xb6\x0e\x81\xddv\x0eV\x82\xdb;\xe0m\x1d\x1c|\xde\xc3!0\xd6\xc9!\x0f\x04v\x86\xf9tq\x00D\xba:\x00\xcfݴ\v\xddU\x01=\xf4\xf8&\xb4\xda\x13F\xd6\v\xff\xbf\xa5*\xc9u\xa0(\xd8ۡ\x10\xd2\xc7\xc1\x18\xe9@\xa6\xd1\xcf!@\xd6_\x856\xc0A<\x1c\xe8\xd0\xe08\b\xfa\x1c\xec\x10o\x1a\xe2@D\x1a\xea\x00\xf7\x1d\xe6\x80\xc7\x0ewp\xda\xd8A\xc19\x1d\x88G\xae<\xad\xe4\r\xc6\xed\xe0\xd3\b\x86C\x02\xb1\xe9\x00;\xb3\x1c\\h\xe3\xc0ۚ\xbd\x0eqo\x9f\x83\x85d\xbfC\x03\xa3\x1e\x83\xd4C\xc8\xc1\xac3\xec\x10\xf4\x8f8\x90\x1cD)\xe1\x98C2\xa38\xfe&\x1c\xca\x11l\x87\x16\xe5\x92\xd9oR\x0e@aZU\x90q M\x1b\xe1\xc0^l#\x1d\xe0\xeb\xa3\x1cx6u\xb4\x83\v\x8a\xc68$\xd9\x1b\xcb.\x8cSs\x1dOט\xe0@\xa4\x98\xe8@0\x9b\xa4\xd63\xd9!\xe0;\xc5\x01̞\xea\x10 \x9f\xe6`\xda9]\xedu\x86\x8et&t4\xcbQ\xa0\xf5\x90\xbc\f\x92\x864\x87~6\x97\x9f\xe6\x01j\xe6s\xb0\v\xa8\xb4\x85\x0e\xe7\x04Ө\xe8\x14\x16R\x89?Uvr9*\x0fU\xf4V/8\xc5\xea^t\xe2\xe5VNZ\xe7K:\xf2\x97\xf5\x9cW\x9c\xf0\x87jN\x00Eu\xa7\xf8[\r=\xa7\xa6\x13\xd5\xf9WU\x82\xb5\x9c\x98\xd8{\xcd\xc9-\xf6^׳j;aQuح\xba\xce\xec\x02\xa8zNr\xfe\xfaN\xdaU\x03'\x83}C'wdu\"\x907\xe6\xd5M\x9c\x8c\xa8M\x9d\x92]5SI6w\xeak\xae\x9c2?\xd1\xd2\xc9x\xfa\x86\x13k\aZ9\x11\xbb[Sdm\x9c\x85\x9a\xe2i\x97\xb6N)\x91\xb7s\xc2\xca\xda;I\x17;\xf0\u070e\xd0L'\x88\xa5\xb3\x93P\xdaʼnH\xd4\xd5IP\xec\xe6$\xc4w\xd7A\xf7\xa0H\xdf\xe4]z:e!U/\xaa\xe7-v=\x97\x87\xdeN\xae\xae\xea\xe3d\x85U\xef\xdcω\xc8\xd6_\xedg\x00;2Љ\x901\x88\x9f\x06;\x05t\x87\xd0҆\xc2\xee\x879A\xe7\x87;\xb5\xc8\xedpr=\xa0\x93&\xefR\xa3r\xebр1\x98N\x06\x12\xcbI\xa8\xf68\x81\xf7^\xa7n\xf5\xe9s\"G\xf5;\x91&\x05hzA'\n]!\xd5R؉\x82@\x84\x87\xa8\x13x\x1eSό;\x05\x99\x12N\r\xef6m'\xe9īFRN\x8d\x9ai'_\xe7\xe1\x14\x9e2\x02\x165\x12n3\xca\xc9Lv\xb4S\xa0m\x8c\x13\x8b\xc3\xc6\xd2m\xc7Q\x14\xe3\xf9\xe5\x04'\xb3\x9c\x89N\x99w\x9c\xe4$K\x98\xec$Ϙ\xe2\x04\x99\x99\xea$%\x9c\xe6D\x01vzVV3\x9cX\xc05\xd3\t*5+\xfb\xf5\xec\xec?s\xe8zs\x9dʌ\xe7Q\xc5\xf3\x9d\x92f.pbI\xdaB\xa7\xce\xc0/\xa2\xae\x17;%!]\xe2\xe4\xcc\xdeR\xa7D\xeae0\x86\xe5N,\xc3X\xc1\xc3J\x15\xfd*\x15\xe7j'i\xd4\x1a'61\xa7\xad\xbd\xed\xc4\xd4\xd8;Y\x81\xbd\xcb\xcf\xef9\x91\xee\xae\xe3a\xbd\x93S\xff\xef\xab\xec78\xc9b> \xe8ld\xbf6Q\x97\x1f:\x19h?\xe2\xd06;\x11|>V\x9f\xff\x84*\xfe\u0529\x1c\xee3\x0ex\v\x8c\xe6s'\xe7g\xbe\xa0\x19oU\xd8\xfaR\xfd`\x9bS\xe8\xe9WN\xe2\xfe\xd7N\xd6$\xbeqb\x8a\xe2['c\xf9w\xda\xc7\xedj\x8e;\x9cH\x81w\xaa\xd1\xefr\",\xedv\n9\xfd\xde\xc9j\xec\x1e'J\x00{\xd9\xd5\x1f\xd8\xf1}:\xc8\xfdNp\x8e\x1fi\x85?\xd1(~V\xf3>\xe0D 9HM\x1d\xa2 \x0e\xab\xa0\u007f\xc9*\xeeW\x98\xdfo4\xab#t\x9b\xa3Y\x138\xe6\xc4l\xcaq~\xfd\xbb\x13\xd3e\u007fP,'\bd\u007f:\xc9>O:\xb1=+\xcf\xfc\x9b\xa7\x9cr2\xf19\xedD\xc0\xfe\xc7)\xd5\xcd3\xfc\xed\xacS\xa8ٿ\xb0\x90sY\r\xff\xe7\x04S<\x8fpsAE|Qm䒓5\xc5\xcbD\x8e+N̊\\u\x922^sr\x02\xe6\xba\xe2\xd5\rh\xed\xa6\x82\xe9-\xaa\xf6\xb6\x93U\x86;\\\xf2\xe3\x9d.\xe9B>\x17\xa8G~\x97\x10\xc9\x02.\xc0PA\x97\xe6\x02\x88<\xeeB\x00z\u0085\x89\x9b']\xa8\x96\x94r\xc1\xb3K\xa3\x839.\xa4depײ.\xdaB94Yޅ\x97&\xbbPru\xd1p\x9fq1\xa2<\xeb\xd2\x1c\xd3\xc5\xe9\xc4\xe7\\\xfa\x00@E\x17\x9e\x15\xac\x84\xc6+g\xbf}\xde\x05\xf0\xa8\xe2\xa2n^\xe0@^䡪K\xc0\xec%\x8a\xefe\x97\xa0\xf6+.\xd6i\xab\xb9\xf08Au\x97@[\r\x970\x88\x9a\x14ɫ.-j\xd5r\xe9\x84\xc3k.\x9a\xd6\xeb<\xa16\x0fux\xa8\xcbC=\x17\x97hԇ\xfa\x1a\xb8\x90\x185t)\xf26rqy\\c\x17|\xa0\x89\x8b\xabut\xa8\xcd\\\xf4\xfb\xe6.\xfaD\v\x17\xbd\xb7\xa5+\xfb\x9aH\x95Q+\x17Cxk\x97\xa4Qm\\\xa4\x04m]\xf0\xa8v.\xb8d{\x17\x8b\x01\x1d\\,\xecv\x84\xbc:\xb9X\x1c\xef\xac\xc7..\x86ˮ\x14T7\x97\x1a~\xf7\xec?= \xad7](\x12\xf7ta=H/\xde\xe1-\x97xX.\x05\xdf;\xab\x88>.\x14\xe7\xfb\xf2\x8a~jI\xfd]\x02G\x03\\\xc4\xe1\x81l`\x90\v\x1e;\u0605\x12\xfd\x10\x17\b\xd6P\x97\xbe\b\xcb\x05\xa8\x1a\xceA9\\\xe0\x93N\x17\x1f\xe9pa\xe1\xafۅM\xbd\f8\x8f\xe9BnfQ\xb2\x1ej\xc3˃\xcf\xc5\x05=~\x17ʏ\x01\x17\x1et\t\xba\x88\x06!\x17\xc3T\xd8EO\x8d\xb8\xf2\xb5ʉ\xbad6 \x96\x95|\x9c\x0e\x94\x80\x10m\x98r\x12\xff\xa7x\xdb4ԝ\xc1\xdf\x11\xf8a$\u007f\x18\xe5\xd2\xe9\xef\xd1.\xd4\xe8\xc7\xe8M\xc6f\xe55\xce\x05<\x1dOG\x9f\xe0\x12\x8e3Q\ra\x92jv\xb2\v\x91y\x8a\x8bh1\xd5U\xa4\xb5#`I%x\x1a\a8ݥ1q\x86\vLv~\xab\xe4\x96bce\xb7Ү\xe7\xdd\xe0\xb2UܚL\xbf\xe0f\x16\xf8\xa2[*\rU\xdd\xdcB\x807z\x99\x1d~\x85\x87jn\t\xe2\xd51\xde\x1an\xa1\xd65\xddX\x1f\xfc*\xbe\xaa冺^s\xcbnƯ\xbb\xb3Yfm\xb7\xac\x1c\xaa\xe3Vܪ\xeb\xceVr\xeb\xb9eڢ~^\xaf\xe5S\x036\xd50{^#73\xcc\xc6\xd9/\x9a\xb8\xf9P}S7\xe6\xe0\x9a\xb9\x91\x954w\xd3\xcdZ\xb8\t\x15-ݘ\x06}\xc3-e\x88V\xff\xbfWk7\xf6\xa9n\xe3\x06\x19o\xebf\x94h\xc7{\xb6ws\x91N\a\xb7D\x82\x8e\xff\xbf\xa8\x93\x1bU\x8fΔE\x174\xd9\xd5-\x93\x01ݲ\xc2\xeb\xeeFf\xd5\xc3]\xa4\xa31p\x90 śn\xach\xe9\xe9F&\xd7ˍ\xe5Zo\xb9\xb1\xfe\"\xd7-\xc9Ro7j\x93}\xdc\u061d\xa3\xaf\x9b\xe5\xf3~n.k\xe8\xef\xc6\\\xf1\x00\x9c:\xd0M\xee2\xc8-qh0\xadp\b\xe46\xd4\rr6\xcc-H4\\G\xefp\v\xadq\xb2\xdf.\x9c\xe7v+\xb91Т\xe9\xc6~\x02nB\xa2ǭ3\x98z\xf4\xb9\xa5f\xe8w\xcb\xd6(\x01\x18{P\xbb\x17r\xeb\xbb@\xf4\xca\bz\x14\xc5\xfdb83\x0e\xf7I\xe0\xaf\xed\xc6\x06*I\xb7\xb0Д\x0e\"\xedF\xb0ȸ\xb1\xfe`\x84\xder\xa4\x1bu\xeaQ\x90\xeeh7\x9e\x82tc\x9d\xd1X\x1d\xd487c\xd4x5\x80\tn\xc9\xf4&\xe2\xd4In\xe0\xc8d7J\x82SБ\xa9\x94\xcc47\x92\x90\xe9n\xf0\x89\x19n\x99^\x9c\xe9Fmz\x16\x8d|6\xfa:\xc7\r\xa4\x9f\xabN9\x8fڞ\xef֙\x84\x05\xee\xc2͆\xf4\x1b\x9e\xd7\xc4B\x9c\xbe\b\x1d]\xec\x06gY\xe2\x162\xb9\xd4\xcd\xe9\xa2eğ\xe5\xe8\xc5\n7Al%\xef\xb5\xca\r~\xb8Z\xbf]\xa3\xa3_\xebFXx\x1b\xde\xf4\x0e?\xbc\xeb\x06Kz\x0f\xc2[\xe7\xc6\xec\xe7z7\x17\xfb\xbc\xef\x96%\x81\x1b8\xa6\x0f\xdc\xd9\x14`\xa3[ӦM\x18\xe6\x874\x80\x8f\xdcL\xbf7î?vc]\xe3'0\xe0O\xddH\xf8>s\x93\xb4m\xf9\u007fK\x9f\xbb\x11\xe4\xbf\xc8b\xe4V\x1a\xf8\x970\x9bmnΒ}\xe5V\x96\xfb5l\xea\x1b\n\xfc[\b\xe3;\xe8e\xbb[fNwdmo'1g\x97\x1b\x94m7\xbd\xe1{\xb7\x10\x89=\x8ae{ݨP\xfe\x80F\xf6\xe1\xf2\xfd@\xed\x1f9\x98\x9f\xdc`t?\x13X\x0f\xe0.\aݨA\x1frK\"y\x18\xb6\xf8\x8b\x9b\x01\xe6W\xb7\xaez\xd5\x11\x1eq\xe35\x90G\u074c\xe3\xc7\x10S\x8e\xbb\x19\xba~\x87\xa8\xff`x8\xe1&o\xfb\xd3-\xf5\xe5\x93\x1ag\xfer\x93=\xfd\xadfr\x8aN|\x1a\xd6\xf0\x0f\xc7uƍL\xf9\xac\x1bS\x11\xfff\x01\xf7\x1c\xd0\xf9?76g8\x8f\x0f\x17\xdcx\x16D}\xeb\x12\f沛\v\xa9\xae\xc0̮\xb2\xc9k\xd4\xd3\xf5\xbc\xbb\xcbo7\xdcL5oR\xe2\xb7\xe8Q\xb7\x89\vw\x18\xe0\xecw\x1ar}>\x03\xec+\xbfAq\x140\xc8&\n\x1a\x80\xc7B\x06\x84]\xd8\x00b\x171\xc4\xfa\x8a\x1aR:*f\x88\xe4\x8b\x1b\x8c\xb2w\x19\xb8}\t\x035̒\x86\xf4\xf3n\x83ny\x8f\xa1\xc0|\xaf\x81\x8c\xf0>\x03\xbd\xb8\xdf@1\xff\x01\x83\xa4\xf1AC\xa2\xd9C\x86&V\x0f\x1b\xc2\x1c\x1e1\xf8\x9a,C%\xf4\x98!6\xf9\xb8\xc1\"\xfb\x13\x06L\xfeIC\x1e\xa4*e\xa0\x16Y\xda\xc83\xe5\xbcX\x96c`\xed^\x19\x03\xbe]\xd6\x10\v*\xa7\xb7*o\xe0u\x92\x06\xfc\xedi\x83\xa0\xf1\x8c!)\xe7\xb3\x06c\\\x05\x83y\xd6s\x067\xaa3\x80\xb5\x95xIe=\xe9y\x95Y\x15\x83y\xd5\v\xe8\u074b\x06V\x98U5\x10\xfc_2\x00Q/\x1b\xf0\xa9W\fƓj\x06L\xb5:\x0f5\fк\x9a\x06bΫ\x94u-\x03f\xf0\x9a!.\xf9\xba\xc1e\x11\xb5\rXL\x1d\xed@]\x03\xf3\xe3\xf5\f\xf1\xe5\xfa\xfae\x03\x03\xb5݆\x86\xd8O#\x03\x96\xd6\xd8@ͳ\x89\x01\xc8j\n\xd9638k\xd3\xdcȆ\xb1\x16<\xab\xa5\x01\xce\xfd\x86ZB+C\x01\xae\xb5!>\xdc\xc6\xd0iٶ\x06\xb9s;C\x9c\xaf=\xfev`\v\x1d\r\xe4\xf7\x9d\f0\xda\xce\x06HA\x17CL\xb9+\xfev3\x94\x80w7\xa4\x8c\xd2\xc3\x00#~\x13]\xeei\xd0qzQ\x0eo\x19dV\xb9\x069Xo\x83T\xbeO\xdeȼyI\xa5\x91\x17\xaf\x87\xe7\xf4\x83\xc5\xf57$\x90\r0\xe8\x1f\x03\rq\xb9A\x06\xd8\xe6`\x83\xd3ZCTgC\xa9\x9ea\x86\xf8\xeep\xfd\xd2ap\xee\xd2 $\xb8\fDh\xb7\x81j\xaea`+\x14S\x8d\xcf2\x00\xec\x1ej\xdbk(\xae\xfa\f\xdd)\xc0\xc0N\x01h>\xa8͇`\xe2a\x83\xcc/b\x10p\xa2l!FK\x8d\xeb\xb9\t8\x99M\xd1%\r\xdd\xdf\xdc\xe0ʯ\xb4!\xd17\x83[\x8c\xc0ߑ\x10\xdd(C\xe6pG\x1b\x9cS\x19c <\x8c\xcd\x13Jn\xce8\x83\xd3^\xe3\ry\x82`\x02\x1cy\"\xfc`\x92\xa1s\x96\x86 \xf7\x14\x83\xf1f\xaa\x81\xb2\xf64\x03\xecd:\x9a\x9f\x81\xf3g\xe2\xffY\x06s\xf2ٰ\xbd9\x06\x1f\xe1\x99kH\xb0\x9fg\b\xfd\x9bo\xf0\xd1H\x03!h!|c\x11-b\xb1\xba\xc1\x12\x83\xab\xf9\x97\x1a\xc0\xeae\x1c\xedr\x03\x91e\x05?\xad4PJ[\xa5`\xb2\x9a\xbe\xb2\xc6\x00\xa0\xaf5$\b\xbcM\xb7|G\x05\xfa\xae\x8a\xf0\xbd,\xee\xac3\x189\xd6\xd33އ\xf9o0$@~`\xb0\x94\xb4\xd1`\xd5u\x13\xba\xfe\xa1\xca\xfb#X\xd5f\xb8\xe0džL\xc1}b \xb8|J\xaf\xfe\xcc \xa7\xdcbH\\\xf9\x1cg|a\b\xe9\xd8j0\x8544\xaem3\x98\x1e~\x85{\u007fm\b\xf3\xfd\x86\x8d|k`F\xf7;\x83\xd1d\xbb\x81t}\a\xfcd\xa7\xfa\xe8.=\xee\xa6L\xbe7d\x12e\x8f\xc1\xbcb\xaf\x81\xa4\xe8\a\x83\x11k\x9fJj?\xe0\xfdǬa\xfe\xa4R\xf9\xd9`\xd1\xf6\x80\xaa\xec \xd1\xf8\x90\x81:\xefaU\xeb/\x86\x14g~\xa5M\xfe\x06\xb3:B(\xae\xbf%`}6:\x96\xd4!\xa48\xe64=6\xa3\x8a\x1ea\n;\x19\xa9:\x18e\x82\xe0\x8c6\x95Ɍ1A^\xc7Ҫ\xc6iK\xe3Mp\xcf\t\xb0扐\xda$\x935\xbf\xc9b1\xb2Ϲ\xc9\xf2\xe3T\x13(8͔\x19\xef\xe9&Ak\x06M{\xa6\xa9\xef\xcd\xca\x1a\xeblS\xd0tNV\x8fs)\xc9y\xa6\x10\xa1\xf9&9\xd7\x02\x13\t\xdeB\x0e~\x115\xb1ؔ\U0003b13d\\\xaag.\x83L\x97\x9b\x12-V\x98(ޭD7V\x99(\xe8\xad\xd6ެ1\x19\x1d֚X\xcd\xf8\xb6\x89\xe9\xcbwL\x90\xa3w՚߃1\xad3Q\xfc[or\x96\xe0}\xdep\x03\xcc\xef\x03\xf6h#\x84\xb2\x89\x9a\xfc\xd0$\xe5\xf9\x88\x06\xb6\xd9Ģ\x96\x8fMԣ>\x01\x06~\x8a\xae\u007f\xa6\xdaآN\xf4\xb9\tb\xf5\x85\x89\xe5\x8d[M\xac\"\xf8\x12\xbe\xbc\rJ\xfd\x8a*\xf8\x9a\x1e\xf9\r\xbe\xfb\xd6\xc4r\x80\xef\xb2\xe2\xdcnb\xfeo\aŸ\x93}\xdfeJ1o\xb7\xc9\x00\xf9=z\xbb\a\x97\xef\xe5\xe5?\xb0w\xfbT\xd7\xfbMaf?\x9a\x1a\xb8~B\xa7\u007fV\xe4:`\xe2\xb9\xf4\x83\xbc\xf2\x90\xca갉\t\x87_L!\a\xbf\x9a\xa8\x0f\xfdf\"\f\x1e\x81\xdf\x1ee珙\xcc\xf9\x8f\x9b\bp\xbf\x9bd\u007f\u007f\xa07'LYI\xf9\xa7Y\xbca\xbf!\xb9\x03,w\xee0+礩|\xfb/\x93\x15\x94\xbfi\f\xa7L,\xa4?m\xb2\xfc\xf3\x8f\t\x06t\xc6\xe4\xe2᳦T\xcf\xff5\xefj\xd8\xcf\x188H\x9b:g\x16\u007fc\x90;\xfb\xe9\xbf<\x85\xe6Eܜ\xf3\xe8\xde\x05\rK\x17\xe1Y\x97L\xf2\xa0˦p\x98+f\xf1\xa6\xfd\x86X\xa6C\xae̹j\x92O_\xcb\xfa\xeau\x13U\xf4\x1bf\xe1\xf6\xb9\xee\xdc!\xfdrn\xaa\x91\xdd2ɍo\x9b\xa8\xea\xdca\xf1y\xe0;-6\x9e\xcf\"\xed\xcbo\x91\x82\x14\xb0\x88\x1e\x05\xad\xe2\xed\xfb\r\xef\xc3n\xe7\x14\xb2\xa4\v\x85-j\xa6\x88%>^\xd4b\x98.fa2\xa2\xb8%T\xf5.K\x86\\\xc2\xe2=KZ\x8a\x1cw[\x9cm\xbdǂ\xff\xddk\xd1G\xef\xb3ă\xef\xb7$\xc2<`Av\x0fZ\x94\xddCz\xaf\x87-\x84\xa8G,P\xdfG-\x84\x83\xc7,}іEwxB\x8fOZ`\n\xa5,\x15JiKCl\x8e\xc5\xdaG\x99\xec\x17e-&J\xe5\xf4X\xde\x02r?\x95\xfd\xfdiK\x00\xe1\x19\v\xdb\xc4\xcbO\x8d\xb2BjlI\n\xd9\xc4\x02\xc1oj\xc1\xae\x9b\xa1\x1f\xcd->\x87\xd8B\x87\xd0\xd2B`}\x83\x87Vz\xdf\xd6\x16\xa2p\x1b\\\xd2VOm\x87F\xdb[y\x88\xe6\xcc\xe9`\xa1\xda\xdb\xd1R'\xead\x89\x87u\xb6dAH\x17\x8e\xb5+;\xd5\xcdBy\xb1\xbb\x1aa\x0f\x8b\xfb\U000a0c5e\xf8\xdb˒gy\u07b2PIȵ\xf8\x9af\x8c\xb5\x0f\xda\xebk\xc1\xc3\xfbYx\xd5j\u007f\x8c\u007f\x00?\fd7\x06Y\x05[\xf43rs\x06s\xa8C(͡\x96@\xe90\xfc\x1d\x8e;9,pT\xa7%\xbe\xe8b\xff\xdc\xf8ݰ\x80,\xa6\xc5r\xa0\xc5\x16<\x16\x1d\xcek\x91\xb6\xfa,\xc1W\xbf\x05\xfe\x15Ȏ=\x98\xb5\xb0PV\xfea\x8b\x95\x8a\x88\x05\xac\x8dⲘ\x85\xbd \xe2\xbcm\xc2*\xdc!\xd7\x14\xbc\xb0\xf5\xe4$\x1d)\x95m6\x9d\xfd'\xa3\x9d\x1aa\t\x06\x8edOG\xf10\x1a\x8e6\xc6\u0083,c\xe9o\xe3,,c\x18\xcf\xc3\x04Jo\"\xc6<\xc9\xca\x16!&[\x98\x14\x9db1_\x9d\nyO\xa3\x19L\xb7\x18KgX\xcc]fZ\x92\xefϲ\x90\xa3\xceVT\x99c\x81Y͵\x98Oͳ$\xbd\x98\x9f\xd7j\x9eZ\x16X\x82\xba\v-r\xb2E\x16\xb9\xf2b\xba\xcb\x12K\x92⥼\xd52\x8b\xb9(;\xb9\x82m\xae\xb4\xc0?V\xa1O\xab\xd1\xf15hq\xad\xc5\xca\xd2\xdb\xff\x1f\xc6;\xea\x9a\xefZȚ\u07b3P\xd7\\\a\xa9\xac'\xc0\xbcoI\xa6\xb8\x01p\xf7\x81\x85r\xc4F\xd8\xd0&\x8a\xebC\xb5̏,Ἓٓ\x8f-.\xe1\xff\xc4\xc2\xdaY(\xf03\vE\xba-\x96\xc4\xfd\xcfՓ\xbf\xa0\xf3oU\xe4\xfc\x92J\xdef\xe9\xb6\xe8\x96Tᄊ\xb4\xae\xf6\x8d\x02˷\x16Y\xc5w\xeao\xdb-M\xd2vX,\xca\xecĠwYXų\x9b\xde\xf8\xbd\x05\x12\xb1\xc7²\xa9\xbd*\xdc\x1f,\x04\x89}\xec\xf6~\vU\xd5\x1f-\xa9\x02\xfcd\x81\x8d\xffl\xe19\xe6\x03zσ\x16\v;\x87\xf4V\x87-!\x88\xbfX\xfazfH\xee7=\xe7\x88\xc52\xe7QKX\xd31\xe8\xe08\xef\xf4\xbb\x05\x06\xfa\a{s\x02\xa8\xff\xa7\x85\x82\xe7I\v\xa5ؿ,\xad\xd0Z\x8c\xe4\xa7TD\xa71\xb6\u007f4|\x9c\xb1\x94\x1d\x9e\xb5H\x03\xfe\xb5@\x99\xceQ\xd8\xffYB\x95\xcf\xd35.p\xac\x17\xa1\x8dK\xaa\x80˖\x14\x18\xae\xf0\xa7\xab0\x99k\x16\x92\x9e\xeb\x16_KiI\x1d\xfa\xa6\x85\xa5\xa0\xb7\xac\xbc\xf4\xea6\x05z\x87G<\xffN\x0f\x8c-\x9fGD\x96\xdf\x033*\xe0\x91RgA\x0f죐\x87\xb8^\xd8#\x91Ob\xa5\aO\x99\xe0\xeab\x1e\x14\x1c\x8b{h\x86wy\x84\x10\x95\xf0P7%\xf5ʻ=\"\xe2{p\xc1\xbd\x1e\xf0\x99\xfb< q\xf7{(\x9b\a<\xb2\xca\xe8A\x0fl\xe9!\x0fx\xf2\xc3\x1e\x94f=X>\xeb\xc1c[\x8fy\xe0-\x8f{0\xd8'\x0f\xb7\xb0\xf3H\xc9.\xe0\x11h\rz\x98օ\xf0)\xec\xc1\xfb\xab#\xc6)\x9fxX\"\xfb\xd4#y\xe4g\x1e@\xed\x16\x0fvnUS\xfa\x02>\xb1\xd5\x030\xfe\xd2\xc3\x1a\xc56\x8fNU~\xe5A\x9e\xf55z\xff\x8d^\xf2->}\a\xff\xd9\x0es\xdaA\xe1\xef\xc4\x0f\xbb\xea\x058>\x96\xed\xf9\xe3\xec\xc5\x13^\xf1\xff'\xbd\b쥴\x89\xd2z\xcc\xd1\xf1\x94\xf1J\xa6[\xd6\xcb\xea`9/\xb8uy\xaf\x98\xe1S^\xbcd\v\u007f\x9f\xf1r\xbd\xe2\xb3^xB\x05\xaf>\x84\xe9%۫\xe8\x95\xf2F%/#Oe/j$\xcf{\xb9\xc7G\x15\xfc\xf8\x02\x9b~\x11MW\xf5b\xa3s\x15\xf9\xcb\xda\xda+\x1cG\xb5\xec(\xab{Y\x17\xa8\xe1\xc5ҕ\x9a\xda\xf5W\xbdܓ\xbd\x96\x8a\xf05/\xdf\x11\x82\xe1\xd6\xf6\xaa\x97\xd5\x11\x1d\fʩ\xeb\xa5\xf7\xd5\xcbʹ>\x85\xd3\xc0\v\x0fo\xe8\xe5\x04K#/`\xaf\xb1\x97\xac\xa4\t\xa4\xd2ԛ\xdd\xc1\xc7\v\xca\xd7\\\xfb\xd3\u009b\x87\x97-\xbdp\xcf7T\xb9\xad\xbcba\xad\xbd(2\xb6\xf1\"\xe4\xb4\xf5\xd2C\xday\x99)\xb4\xf7\xd2H;xQ@\xee\xc8\x16:y\x89ڝi\x18]\xbcZw\xea\xea\xc5\xfc_7\x19ݠ\x9c\xee^\x92\xd8\x1e\xd9q\xbc\xe9\x15\xc7\xe9\xc9;\xf5\xa2\xc4\xdf\xd2\x0e\xe6z\xb9_Lo~\xdd\xc7+H\xd5\xd7+\x90\xde\x0f\u007f\xfb{\xc5\xdf\x06\xb0\x1f\x03\xbdB\xd5\ay\xc5c\aC=C\xbc\x882C\xbd\x98\xfe\x1e\xe6\xd574{\x05_\x1c\xbc\xc8\xe9\x15z\xea\xf2\"mq{\x89\xd3\x06\x84`zQ\x01\xb4x\xb5\xc7˒\xb8W\x85\xe1\xa3\xfc\xfd\xe8S\xc0\v\x12\x19T\x03\by\xa5\\\x1e\xf6\x02\xc1\"^\x84\xa8\xa8\x17Ō\x18m \xee\x15HHx%\x8e\xda^0\xbe\xa4\xba`\xca\xcb(\x95\xe6\xe5\x19X\xdd\b/+0#\xbdxz{\x94\x97\b4\xda\xcb\xc4l\x8cW2\xa4\xb1^бq\x1c\xcc\xf8\xac\x02&Ћ'\xaa\x95N\xf2\xa2\xa8;Ye;\xc5+\x81m\xaaW\xa9\xdd4\bn\xba\x97\x1cn\x06\\}&,r\x96\x97[\xdd\xcf\xf6\xb2\xa8<\xc7\v~7\x97\xc6>\x8f\xad\xce\xf72\xa4-Ț\xdcB\xaf\x84\xedE^\xc2\xefb/\xa8\xc5\x12/V(-\xf5\x82\x19-\x83\xb4\x97{I\xf3Vx%SYIo_\xe5%\xe1X\xad\b\xb1F\xfb\xb0\xd6K\x8e\xf8\xb6\x17\v\xfc\xdeQ\xe3}\x97@\xf5\x9eW\xe2\xf1:\x88x\xbd\x97I\xd2\xfb\x94\xfb\x06/\xa8\xd9\a\x94\xedF\xbdn\x13.\xf8\xd0+\xb1\xfa#/\x92\xb4\xcd^\x06\x8e\x8fUݟx\xb1\xb1\x9dz\xe1g^!W[\xbc \x8b\x9f\xab¾\xf0\x82\xe2o\xf5\xb2\xc6\xf4\xa5\x17\x95\x9dm\xc4ï\x88\x83_\xab \xbeQ\xd8\xfa\u058b\xca\xf0w\xfaq;\x9caG\x168vz\x91-\xecR\xb3ڭg}϶\xf6\xc0\xd2\xf7j\x8b?(h\xed\xf32~\xed\xa7B~\x84p\u007f\xf2\xa2f\xf3\xb3\x97S\x14\a(\xa7\x83\x14\xf2!\xda\xc7a/\x9fĤ\x84~\x85\x93\xfc\xe6\xe5Z\x82#^)\xf0\x1cew\x8e\xd1\xc1\x8f\xc3R~W\xcd\xfc\xe1E4;AG\xf8S\xbf=\xe9%+\xf8\v8\xff\xb7:\xe0)/\x99\xcei\xc2\xd1?^N휁\xfc\xcf\xea\x8f\xffzY\x8e<\xc7\xc1\xfe\xe7\x05\xcb<\xcf{_\xf0\xb2\xe8qы\xe0\t\x1b\xbb\f\x80\xbf\xe2EȽ\xea\x95t\xf6\x9a\x17ˢ\xae{%7\xbb\xe1թ\x97\x9b\x10\xc9-/\x88\xc5\xed\xac\xac\xef\xf0ѥ\xee\xf4\t \xe4\xf3!\x11\xce\xefC8,\xe0\xc3\xc0\v\xfaD;\x85|\xc2:\n\xfb\x10m\x8b\xf8\xf0\x82\x86\xa2>t\xb2\x98\x8f\xcbÊ\xfb \x8c\xbb|һ\x12>\b\xbb\xa4\x0fXt\xb7\x0f\x13\xfb\xf7\xf8\xf2\xa0\xf7^\x9fd\xac\xf7\xf9\xb0{\x8f\x0f\xd5\xf9\a||\x88\xc4\a\xc0{ȧ\xa5ڇ}\xb0\xf3G|\x88\xf4\x8f\xfa\x10\xbb\x1f㹏\xfb\xe0SO\xf8\xc8\x06\x9e\xf4\t\xa6\x94\xf2\x89˖\xf6!\xca\xe5\xf8\xb0q\x8fO4Z\xd6\a\xe6_\xce\aɔ\xe7\xe1)\x9f\x84\x89\xa7}\xcc\xea\x9e\xf11>=\xeb\x13}T\xf0!\xc1z\xce'H[\xd1\a\x8b\xa9\x04AT\xf6\xb1J\xfd\xbcO^1]\xc5ǂ\xe8\v>ݥ\xc0\xc7pP\xd5\a\x06\xfb\x92O\x96S\xbc\xec\xc3+\x99}\xc2\v\xab\xe1\xff\xea>ZJ\r\x9fl\x85Y\x93\xe2|\x15\xed\xd7\xf2Ѣ_\xf3х_\xe7@k\xe3\xc7:\xbe\"\xf5ܹ\x03r\x87\xf7˩\xeb\x83q\xd7\xf3q=e}\x1fK2\r\xd8׆>Up#ꨱH\xbe\x89\x0f\xf3\x86M}Hכ\xf9đ\x9a\xfb\xe0\xcd-0\xea\x96\x14\xd3\x1b>L\u07b7\xf21.\xb4\xa6\xc4\xdbh\x87\xda\xeaP\xdb\xf9Ġڳ{\x1d|\\%\xd2\xd1G\xd7\xe9\xe4\x03\x1aw\xf6\x11\u07ba\U0002cbbcY7\xfd\xb6;\xbf\xed\xa1Cx\xd3\xc7Ģ\xa7\x0f̾\x97\x8f\xf5\xf0\xb7|\x9cS\xcc\xd5[\xf4\x86F\xfb\xe8\xc9}y\xa3~>\xd2\xcb\xfe*\xbd\x01\xbe\x82Ͱ\x87\x0fMh\x10\x0f\x83E\nC|Ȩ\x87\xfa\xe8\xa4\xc3\xf4\xcaἫ\x83\x83u\xd2\x13\\>0\x027ni\xb0\xbb\xa6\x98\xfb\x90A9\x16\xe4\xe7\xf11\x16y}\x1a }(F\xf8}|\x9c<\xe0\xe3\xfctP\xc7\x18R\xe1\x85y\x9b\x88\x8fS Q\x1f7[\x8b\xf9\xf8\n\xf58|(\xe1c%\xc2\xf6q\xca \xe9c\xa5\xd5\a\xf2\x93\x86=e|Ą\x11\xf4̑>\x86\xb0Qڝ\xd1>\xc9-Ơ\xabc\xa1\xe3qt\xb2\xf1\x1c\xee\x04\xb5\u05c9>d;\x93|Ȣ'\xfbPt\x9a\xe2\x138\x99\x8a\xbeL\xf3aw\x9d\xe9>\xb0\x9e\x19>f\xd43}\\\x92;ˇ\x95\x01\xb3q\xea\x1c\x15\xc9\\\x1f\xd9\xfd<\x8eu\xbe\x0f\x14r\x81vx\xa1O(\xc4\"\xba\xe2b\xc2\xc4\x12\xd5\xc9R\xf5\xb1e>\t\xf0\xcb}\x98\xbd\xa4\xed\xacT\x03[\xa5\xee\xba\xdaG\x18]C;X\xabx\xf6\xb6O\xb8\xc8;4\xf8wU\xe8\xef\xa9P\xd6\xc1\xf1\xd7\xfbP\x1cx߇\xca熼v\xfb\xe5i\xf5\x03\fa#U\xbdI\xd1\xe5C\x9f.\xf8\xa1\xd06\xf3\xf010\xf3\x13\x1f\x8b͟\xfa\xb8\v\xdbg>\x99\xae\xd9\"\x96\xf6\xb9\x0f+~ho[}\xb2\xc0\xfaK\x1fc\xd16\x1f\x97\x8a\u007f\xe5C\xc1\xfek\xa0\xe17\x1c\xe2\xb7>\xbe\xe1\xf5;\x1fJ/\xdb}\x88\x17;t\xc0;9\xd0]\xe8\xe7n\x1f\xa7\xac\xbf'6\xeea\x03{}Hz~\xa0\x16\xf7\x11c\xf7C\x96?\xfa\xa4\xd0\xf7\x13\x87\xf7\xb3\xda\xd5\x01\x1f(\xdf\xc1,\xee\x1eR\xcf;\x8c{\xfc\xe2\x93\xc9\xf1_U\x86\xbf\xc1\x94\x8e\xe0\xefQb\xfc1\x9f\x86\x98\xe3\xaa\xf8\xdfiE\u007f\xb0\xff'|,\xb9\xfd\x89\xd6N\x02\xa2\xff\xc2\xff\u007f\xfbPW8\xa5f~Z\xbb\U000cf3f3\x16g\xd8˳>\x89s\xff\xfa\xc8\xc2\xcf\xf9P\b\xfb\x0f\xe0~\xde\xc7hy\xc1G\xc2tQ\x15|\t\xd0t\x99\xeerE\r\xee\xaa\xda\xec5\x9f\x96#\xaeSh7\x80\xc17\x15\x93n\xc16n\x03m\xef\xf0so\xb9;\xfd\f\xce\xf9\xfc\xe8P~\xbf\xb2\xc6\x02~^SЏ\x00U\xc8O^U\xd8/hQ\xc4O\xd7.\xea\x17\x0f,\xe6\a\f\x17\xf73\xd8\xdc\xe5\x87hJ\xf8E'%\xfd@\xf2\xbb\xfdx\xd4\xd2\x0fۺ\xd7O;\xbe\xcf/t\xe3~\xbfN\xa9<\xe0\x17;y\x10\u007f\x1f\xc2m\x1e\xf6c\xe5\xcf#~\x11\xe8\xa3~\xf1\xf0\xc7\xfc(\xbf?\xee\xd7\xdd\xedpޓ~:c)?\x89Si?\x02T\x8e_L\xb4\f\aV\x96\x87r~<\x91^\xde/\xaf;zJ\a\xf5\xb4_\x03\xca3\xec\xfa\xb3\xaa\xf9\xc9\xe9\xaa\xfb1\x19_Ï\t\xf6\x9a~n\xe4\xe3\a%\xaa\xc5\xc3kh\xf6\xf5\xbc1\xca\xd8j\xfb\xb1ַ\x8e\x1f\xcb\x06\xeb\xfa\xc5\xf1\xeaA@\xf5\xfd\xb2\u0c81_\x1c\xb7\xa1\x1fs*\x8dt\x80\x8d\xf5\u0604#j\x8a\xf3\x9b\xf1Cs?'T[\xf8\xe1Q-\xfd\x9a\xa5\xbeA\x81\xb5\x82\x92Z\xb3+m\xfc\x98-j\xcb+\xdb\xf9\x99\xed\xb6\xf7\v}ꀿ\x1d\xfd\x92\xdbt\xf2\xcb\"\xbf\xce<\xad\x8b\x9f\x13\x16]\xfdH\xaf\xba\xf9\xf1V\x83\xee~1\xf2\x1e~\xbceҏ\xb8\xde\xd3O\xe2\xd0\xcbϔ\x11\xea\xcb\xf5\xb3 \xde\x1b\r\xf7\xf1\x8bo\xf6\x85\xd6\xfb\xf9\xb5\xa0\xd2ߏe=ڛ\x81~\xe6+\x83\xd8\xe8`?ʐC\xfc@\x96\xa1\xec\xd20\x98\xe3p?\xd28\x87\x9f\xe0\xe3\xe4G\x97\x9fY\x94\xdb\x0f\xf2l\xf8\xe9\xf7\xa6\x1f\xe5*ˏ\xa0\xe9\xf1\x8b'y\xfd\xa8K\xf9h\xff~?\xd6\x0e\x05 ܠ_\x92\x8b\x90j9\xecǺ\x90\x88\x9f\x01)\x8aQ\xc4\xfc\xacP\xc4y\xa3\x04\x1b\xb3\xd9\xc3$NI\xf9\t\fi?\"X\xc6\x0f\xb4\x1b\xe1G>3\x92\xca\x18\xe5\x17<\x18\xed\a,\x8d\xf1\vc\x1e\xcb\x0e\x8dӁ\x8d\x87f&\xf8u/;Hk\x92Z\xc4d?+\x15S\xfc\x12S\xa6B\xd9Ө\xa8鰭\x19\x18\xe9L\x1a\xc3,?#\xfelmy\x8e\x9f\xb5蹐\xe7<\np\xbe\x9fa`\x01\xae_\b{\\\x04\xdb\\\xccV\x96\xf8\x19q\x96BRˠ\xcc\xe5\x18\xc5\n\xb4\xb3\x12\x17\xae\xf2\x13\xa8W\xfb\x11\xca\xd6\xf8\xb9\x88y-\x8d\xe3m8\xc5;~V\xfa\xdf\xf5K\x9d\xe0=Jp\x1d~Z\xef\xe7b\x93\xf7\xe9(\x1b0\xbe\x0f\xe8f\x1b\xe9ߛ\xfcX[\xf3!:\xf0\x11\xfen\xf6#\xf5\xfd\x98\xee\xf3\x89\x1f\v\xef>\x05\xca}\xe6\x97\t\xa3-~\xacx\xfc\x1c]\xfc\u008f\xa7\x93\xb6\xe2\x97/!\xfam~Dܯ\xfc\xc8Y\xbe\x86<\xbfQY\u007f\xab\n\xff\xce\xcfh\xbaݏ2\xe7\x0e\x1ev\xfau\xbeq\x97\x1f\xf9\xc4n?\xf7w\xf5#\xde\xed\x01\x9a\xee\xf5\xb3\xa0\xf0\x03\x8dd\x9f\x9f\v\a\xf6\xfb\xf1>\x10~\xf9\x13\x06\xf23\xdc\xe5\x80_Ҥ\x83~L\x97\x1c\x02\xb2\x1e\x86\xa8~\x81\x8c~\xa5\x05\xfd\x06o=\x82\x9f\x8f\xfae\"\xf8\x98\x1a\xeaq`\xd7\xef~\xcd\xfc\xffЎ\x9f\xa0\\\xfeT\xdb9I\x8f\xfe\x8b\xf7\xff\x9b\x87S~\x14XO\xfb%M\xfc\a\xb29C\xb3<\v%\xff\x9bm\xf4\x9c\x9f\xd4\xfb?^w\x9e']\x80\xcc/Ҫ/\xe1\xf2\xcb<\xe1\x8a\x1ft\xea*e\u007f\xcd/L\xeb:\xe4|\x83\x1e\u007f\x93\xeeqKm\xe36\xac\xff\x8e\x80\xd8ם\x01<\t\x95/@֝? ?\x15\bH\xb9\xa4`\x80n_( \x8eW8\x007/\x12\x80\x1a\x8b\x06(\xe7b\x011\xa2\xe2\x01\xed\xf9]\x01\xd1{\x89\x00\xebt%\xb5\x81\xbb\x03x\xcfr\x00\x94\xf2^\xb4v_@\xc0\xe0\xfe\x00\xc4\xf4@\x00\x1d\u007f0\xc0\xcd\"\x1f\n\x90,=\x1c@6\xfcH@\x84\xf3h\x00C}\x8c\x87\xc7ٙ'\x02|\a\xef\x93\x01\xb2\x95R\x011\x89\xd2\x01\x1aUN\x80%\x8b2\x01Qfـ\x18A\xb9\x80е\xf2\x01,\xcbx*\x00\xe7{: \xa2z\x06\xe2x6@*Z\x017}\x0eҨ\x18\x10[\xaa\x14@\xd6V9\x00Y?\x1fИP%@6\xf3B\x00\xef\xbd\xca\n\xa2j\x00\x8e\xf7R\x00U\xaf\x97\x03\xe4m\xaf\x04Dk\xd5Г\xea\xb8C\r\\V3\xa0\xc5R\x8e\xae\x16/~-\x80\xc4\xedu\x9cX;\x00$\xa9\xc3C]\x88\xaf^\x80+;\xeb\a\x00\x00\r\x02\xb0݆8\xbfQ\x80Yz\xe3\x00\xd6\xd8\x04\x88\x9aM\x03x*\xb8\x19\xef\xd3\x1cg\xb6\x80BZB0o\xe0\x9bV\x01F\xef\xd6\xec}\x9b\x00\xbc\xb1m@\x96\x03\xb6\xa3\xcc\xdaCf\x1d\x02ʭ:\x060/\xd6\t\x97wfw\xba\x04\x98\xb2u\rH\xad\xab[@\xb7\xdf\t\x10/{\x04h\xe3o\x06\xf0v\x9d\x9e\xe8D/^\xf9V\x80v\x9a\x8b;\xf6\x0e\xc0x\xfb\x04\x88^}\xa9\x87~\x10b\xff\x00*K\x03p߁\x01<\xb5?\x88\xbd\x1e\x9cUŐ\x00\xb7\xdf\t\x90\xb8\x0fÝ\x86\a\xc8R\x1d\x1c\x8eS\x1bwi\xef\xdc\x01\x01\x03#\x00l4\x03xB\xda\n\xc8\xda!O\x00\xcbK\xbc\x01\xad;\xfa`6\xfe\xec\xc7@\x80\x99]\x10\xdd\v\x05\xb0\x8a+\x1c`98\x12@\x95,\x1a\xd0\xe5\xc115\xf88\xbc&\x11\x00յ)\xcad\x80\xd41\xc5k\xd2j\x97\x99\x00\xd6\x14\x8e\xe0\xb7#\xd5\xd2G\xa1k\xa3\x03p\xf61*\xe9\xb1\x01\xd2\xd5q\x01\xe6\x88\xe3\x03\x12\xe5&\x04\x10\xfc'\xb2\x81I4\x84Ɂ\xec\f\xfc\x14~?5@\xe60Mۚ\xfe\xff\x13f\x04t\nq\xa6\xaawVVγ\x03\xa8\xda\xce\t\xf0\xe1\xe2\xb9\x01y\x82j^\x00\xb5\xa5\xf9\x01A\xdd\x05pυ\x012\xe5E0\xfdŰ\xbb%\x01\xb2\x82\xa5\x01\x94,\x97\x05\xb0\x16d9\x95\xb3\"\x00\xc8[\x89\x06Wa\xa8\xab\x81(k \xe4\xb5\x01\xc1ӷ\xb3\x1ax\x87#x\x97\x87\xf7t \xeb\x02\x9c\x12Y\x8fK\xde\x0f\xb0\xb6\xbfAE\xf3\x01\x9a\xd8\x18`\xbdu\x13T\xfa!\xc4\xf5\x11;\xb4\xf9\xff\xe3\xff8\xa0\xef\x00a\xdf>\r\xf0\x05t\x9f\x05Hm\xb7d\xa5\xf1y\x00\xc9\xce\x17\x01R\xaf\xad\x01L\x12\u007f\xa9\xc2٦\xba\xf9*\xdb\xeb\xaf9\xe2oxڷ\xda\xdaw\xb4\x85\xed\xb0\xc6\x1d\x01\xe4\r;\x03\xe0\x9d\xbb\x02x]\xd9\ue03e\x19\x92?\xee\t\xb0h\xb27\x80-\xcf\xf5\xc7}j\xfa\xfby\xe9\x8f\x01n]\x17`\xe4\xfc\x19\x83?\x10`)\xf8 \x8d\xe8P\x80\xe1\xee\xb0\xf6\xe4\x17\xb5\xb4_Ք\u007f\xd3㑀&GG\x01\b\xc7\x02B\x02\x8e\aP\xb1\xf8];\xf3\x87\xba\xfa\x89\x00\x8b$\u007f\xea\xb5'U\xfa\u007f\xe1ҿ٫S\xfa\xe3逐\xe1\u007f\x88\xb6g\x02,\xbb\x9d\r0\xfb\xffW\x03̹\x80\xa6\xb0\xff\x05XH9\x1f`fx\x81ҿ\x18\xe0\xeek\x97\xb4\xd1\xcb\x01d\xb0W\xf4\xe3U\x8e\xf5\x1a\x0f\xd7\x03R\xbc\xbb\xa1\xa1\xe4&\f\xe5V\x80\xbb\xf00\xe8\xdd\x11d\xed\xe8\xce .\xc8\x17,\xdc\xd14\xacގ\x9c\xfcA\t\xb9\x05\x82\x82B\x05\x83\xf4\x8bBA\xa1\r\x85\x83d\xfaE\xf0[\xd1 q\xbeX\x90FT<\x88\xa7\xfa\xee\n\x8a5\x97\b\xd2/J\x06\xc9J\xef\x0eJ\"pO\x90%\x97{\xb5\xd9\xfb\x82X\u007fx\u007f\x10+W\x83\x12\x99\x1e\f2\xf3{((r|8ȉ\xbcG\x82\x84\xfcG\x83:\xd1\xf8X\x10|\xff\xf1\xa0\xb0\xd7'8\x84'\x83\xf9[\xe5\xe6\x94\nb\x94\xa5\x83\x12Tr\x82ble\x82\xb0\xbc\xb2A\x94\x99\xca\x05\x81:\xe5\x83\xfa~\xe5\xa0h\xf9\xe9\xa0\x04\xc7g\x82R4\u007f6\x88Փ\x15\x82\xa8\v=\x17\x94yЊA\tv\x95p\xbb\xcaA\x9a\xd3\xf3A!\x16U\x82RK}\x01\u05ff\x18\xc4#TU\x83\xc8\"_\n\xf2\xf9Ƞ\xac\xe4{\x85\xdfU\v\xc2j\xab\aQ\xc0\xaf\x11\x94\x82jͼ\xef\xfa\xf9s^Ց\xd7\n\xaa\x1b\xbd\x16\xa4\xb9\xbe\x9e7h\x875\xa4_N\xed q\xb3N\x10\xa5κA\xa0_\xbd\xa0\x18W}\x0e\xbbA\x10\xf0\xd20\b\xc0h\x14\xd4\xfc\x10\xa2m\x92m\xb8i\x10롚\x05i_̓\xc4\xc5\x16A$*-\x83\xacƾA}\xb6\nʞ\x15\xad\x83R\xa3n\x13\xd4D\xba-%\xde.Hgh\x0f\x83\xe8\x00Iu\f\xb2\xf2\xda\t\xb2\xec\x1cTj\xd1%\b@\xed\x1aĬa7t\xa8;\xb4:(\xa7G\x90\x05\x837\x83:\xc3\xd8\x13\xd7\xf6\x82L\xdf\n\x82 \xe7\x06%\xac\xf4\x0e\xcaR\x94>\xd0j\xdf Y^\xbf\xa0\xb8|\xff Aw\x80Jq`\x10Ӫ\x83\xb4\x87\x83i/C\x82\b\x11C\x83\nl\xc3Ԣ\x87S-\x0e\x0e\xcb\x19\x04\x93s\xa9\x95\xba\x83\xba\xc3k\x90+\x85M\xf4\xce\n\"\x97\xf7\x04\xc1a\xbcA\xa6/\xbe \x9c\xcb\x1f$[\v\xe4}\x9d;\xc0\x91\x13T\xc3\x0fq0\xe1`\xbe\xd69\x91 \x01-\xaa\xb7\x89i\xcf\xe3A\xa1\x18\t\n\xca\xce\xeb\x8al\"\x00y\xa5\xf07\x8d\xbf\x19X\xd5\bj}d\x90+\xa3F\x05\xc5\xcfGkCc\xd41\xc7\xc2\x15\xc6\xf1\xd4\xf1Y\x19O\b\x127&\x06Q-\x9e\x14\xe4L\xcf\xe4\xa00\x8a)A)gL\x85Z\xa7\x05Q\x8a\x9a\xae\xa2\x9a\x11\x04\x1e΄rf\x051]1\x1bw\x98\x13$]\x98\xab\x03\x9b\xa7\x864\x9fW,\br_\xbd\x85\xaa\xa9E\n\r\x8b!\xce%\xd0\xe2R\xdcw\x19\x1ck9\xbdvE\x10U֕\xb4\xf9UA\x84\xe0\xd5*\xb35Als\xb2VG\xfcv\x90\x99\xe7;\xea(\xef҄\xdf\vj%a\x9d\xfa\xc3\xfa !\xf8}\x85\xb0\rYX\xf9\x000\xb5\x91ְ\x89\xd6\xf0a\x10\x19\xe6GA\xce&o\x86\x80>\x0eJ@\xfdD\xe1\xe9S\xed\xceg\x10ؖ p\xfe\xf3\xa0\xf2\xc9/\xd4#\xb6\x06\x91w\u007fI$ئ\xe2\xf8*\xa8\xb0\xffu\x90[;|\x13d\xe1\xf6[\xde\xfe\xbb \x03\xcfv\x8acG\x10\xd3u;\x83\xa0\xb1\xbb\x82\f{\xbbU\xe4\xdf\a\x11\xc8\xf7\x04\x11\xe8\xf7\xe6\x8dcА\x9c\x1f\x82\x98\xf6\xddG\xdb\xdb\x1f\x94\xcc\xeb\xc7 \x93\xf8\x9f8\xb8\x9f\xd5^\x0fК\x0f\x061\x83t\x88\xd2=\x9c5\x99_\bo\xbf\x06\xb1\xf2\xf97\xbd\xe7\x11\x1d\xfc\xd1 \xe9\xc0\xb1 \x03\xf4\xf1 wG\xfc\x1d\xf1\xe4\x0f\xf8\xec\t\xd8\xee\x9fA\x12ӓA\xc4\xf9\xbf\x14\x06\xfe\xa6\x85\x9e\xe2\xb8O\a\xb52\xfb\x8f\xc2\xe0\x99 JigU\xd7\xff\x06奰\xe7\xd0\xec\u007fA\xb0\xea\xf3h\xfd\x02@\xfab\x90sޗ覗\x83\x8c\x84W\x82 \xb1W\xb3B\xbf\x16\xc4^\x00׃d67\x82`.7\xe1G\xb7\x82\xa8%\xdeΞ{GH\xcc\xf2\xce\x10\xb6\xad\v\xe1\t\xff\xfc!\x89R\x05Bb5\x05C,h\x14\n\x01\xe9\n\x87duf\x91\x10-\xadh\x88\x02.\x16\x12\v)\x1e\x02r\xdf\x15\x12\xbaX\"\x04\xf5\x94\f\xc1\x95\xee\x0e\x89y\xdd\x13b&~o\b\xeb4\xef\vQ\xb4\xf7\x87\n\xb7\xcf5\xe4\xbd\xfd\x0f\xf0\x87\aC\x12\xe6\x1f\n\x91I<\x1c\x92\x84=7\xe7\x91\x105\xf2hH\xbc鱐\x94\n\x1e\x0fI\x98{\"D\xa4}2DvX*\x04w*\x1dby9'$N]&D\t\x97\r1^\x86`L\xe5Cxf\xe4\xa9\x10\xc9\xde\xd3!\x06\x8fgBj\xe5φ\xe0k\x15B \xfeυ\x90mTԞT\n\x89\rT\x0e\xc1\xaf\x9e\xe7oUB\xb0\xd5\x17B\xd0\xc0\x8b\xa1\x82Ms\xcdܜ\xaa\xfc\xf8R\b8\xfarHP\xe1\x15\\]\r\x92\xa9\x1e\xe2{C0\xb4\x9a:\x9cWCȻj\x85\x84\x92\xbf\x16Ұ\x19\xa2}\xd6\x0e1_\xad\x83Kꆈs\xf5B\xc0\xd7\xfa\xecD\x83\x10l\xab!\x87\xda($\xeao\x1c\x82k4\t\xa1N\xd34D\xa8h\x16\u009eR\xcdCR*h\x01ѶTݾ\x01ݶb\x8b\xadu\x04\x18\xe8\x10\xc2\n\x90\x8e\xfam\xa7P^\x1c\x19\x9c\x97v\x86\xe8\"]\xf4\xf2\xae\x18|7\xfc\xed\xae\xfa\xe9\x11\x022\xbe\x19b\x82\xdb\x13\xbd\xee\xc5q\xbd\xa5B\xc8\r\x15\xc9\x13\xf9pCV\xb0\xaa\x1c\xfap\xac}U<\xfd8\xcc\xfe!\r\xd4\x03BB'\x06\xeaɃBD\xd2\xc1jbC\xf2\xfa%ǡ!\xbca\vF5<\x04hvh?\x9clХ#p\x87$32 )3\x84\x8dw8rO\x88\xe5`o\bUO\x9f~\xf4\x87\x84O\x05B\xdc\xf65\x84J^(D\xdc\x0e\x87\xf0\u0590\x90\x94\xb8\xa2!,\xa5\x8cQ\xdcq\x1dMB\xe47\xac_\x8e\x1d\x12(H\x86P\x19K\x85\x04\xac\xd3!\x04\xbaL\x88\xb5\x84\x11!T\aG\x86P\x8d\x1b\x85\xf3G\x87\xc0\xb4ǰͱ\x18\xe3\xb8\x10\xe3f\xa8h+kH\xee\xb0A\x86#gB(\u007f;G\xceĐp\xe2I8i2\xcdu\n\xccujHXݴ\x90\xd4֦\x03\x05f\xa8;\xcfT-\xcf\xc2E\xb3\xe1\xfesB\xe4\xa1s\xf1ݼ\x90\xe4:\xf3\xf1˂\x10\x91\u007fa\x88\x1cf\x11F\xbf8\x84pI!/\xd5\x06\x97\x85\x10\xa3\x97\x87\xb2[ج\b\xa1ܴ\x92#Y\xc5A\xae\x86\x81\xae\xe1wk\xf3\xb0\xc4\x1ab\rs\xe4\xbc\x1d\xd2W\xb6\xbc\xa3b~\x170\xf0^\xf6\xebu!<{\xb9>\xc4*\xd9\xfb\xe8\xe8\x06v\xe0\x03X\xe4F\x8c{\x13\xfa\xfe!e\xf8\x11;\xb09\xa4)\xd5\xc7\xec\xe1'!V\x98>\r\x91}|F\x1c\xdd\x12*\x94\x87\x99yv\xffy\b\x9b\x13}\xc1\xc3\xd6\x10\xa3ԗj\x85ۨ\xb3\xafB\\U\xf3u\b\xb1\xf0\x1bXط\xda\xf2w\x00\xe3\xed\xea#;\x885;C2װ\v=\xdfM\xd3\xfa\x1e\x83\xdc\x03[\xda\x1bB\xfd\xfd\x87\x90И}!\x94\x80\xf7\x87\x10\n\u007f\xd4.\xfc\x14B\xc0\xfd\xf9\xffR;\x10\xc2\xcb)\x0e\xfe_\xe4\x87\xf4\xcc\xc30\xf5_8\x82_)\xf9\xdfBH\x85\x8f\xa8\xed\x1d\r\xe9\x9c\xd81\x18\xc9q\x9e\xfb;\x0f\u007f\x84P\x13:\x818\xf3gV\t'\xb3\x97\xfc\x15\"\xd3\xfc\x1bpv*\xc4e\x83\xa7\xa9\xd4\u007fT\bgT\x93g\xd9ֿ!>\xeet.\x84\xc8\xfd\x1f\xe4p>\x04\x96{\x01>y\x91\xbf\\Rc\xbcL\x8c\xb8\x82\xa1\\\r1?\xb8\x16B\xb5\xe8::v#\xc4(\u007f3\xa4\xe4\xe0\x16\u007f\xbd\x1dB\xdd\ue3b0\x98ڝaT\xcb\xf3\x85i\xa5\xf9\xc3X_U \f\xd3)\x18\xa6y\x17\n\vn\x15\x0e\v-)\x12\xc6\x14}\xd10j\xa8\xc5\xc2(~\x15\xe7\xe1\xae04P\",Y^ɰ\xf8\xc2\xdda\xechvO\x18\xfb3\xdd\x1bF\x15\xe1\xbe0\xe8\xd7\xfda\xa4\xe0\x0f\x84I\xdb\x1e\fc\xde1\xcc\xc7<\u0080\x82G\xb4\a\x8f\x86Y\x8eE\x9f\x1f\x0f\xf3\x95\xcca\xb0\xa5'ٓRa\xc6\xc902\xa4\x9c\xb0\xb8g\x990\x17\xe2\x96\r#\x14\x97\v\xc3\xeeˇ!\x86\xa7\u0088\xe6O\x87\v\xb6\x184\xf8\x18\x86\xe5\xbe\x12\x06g\xaa\x16\x16\xec\xae\x1ef~Z\x83_\xd6\f3}y5\f\x8c\xaa\x15ֵ\xabh\xee\xf50bH\xed0\xa3[\x9d0\x82|\xdd0\xb1\xbb^\x98\xef\xd6\nklh\x10\xa6Y5\fK\x11\xbaQX\xabg\x8dÀ\xd9&aA\x81\xa6a1\xe9f\x94~\xf30&\xc6Z\x84\vv\x96`\xd82L\xaf\u007f\x83Rm\x15\xe6\xb6\x19\xad9\xa66T\\[v\xbb\x9d\x8a\xa4}\x18\xc9j\x870\xf0\xa4c\x18\xeb\xba:\x855\x11\xed\x1c\x16o\xef\x02Qv\r\x13\xa0\xba\xe9\xb1{\x18\x13v=\xd8\xfa\x9ba\xa9\xda\xf5\fӖ{\x85\x99\x9b\xbc\x15ƴ_n\x18!\xacw\x98\xf9C\x9f0\vD}u\xbc\xfd \xab\xfey\xe7\xe6\xc9z@\x98p<0̂\xf5\xa00}f0mk\bu6\x94w\x1d\xa6\xf7\x19\x1e\x16\x8cr\x841k\xe0\fc5\x89K\x1br\x87%\x8a\x1aaup3\xacي\x15\x06\xab\xf5p\xc8^Z\x8d/L`\xf3\x87\xb9\xe06\x10Fx\n\x86\t\x89!Ud8,\xb8\x1c\tg_CI߉Q+\xf10\xe7$\x12\xda\x01;L\x96\x96\xa4\xf7\xa5\u0098\xfeI\xab\x183a\xe0ሰ0\x9e\x91\xfc0\x8a\xa3\x1b\xad\xe6:\x06\x06:\x16R\x1a\x17f\x96<>\x8c\xf2\xf7\x840\xa6\x9d'\x861\xc71\t\xa7LV3\x98\x02\xe5M\xe5\xc0\xa6\x85A\xec\xa6g\x8djF\x98i\xd0Lx嬼\xd6\x1cCrf\xe7\xf9S\xae\xd1/gNXww\r#\xaa\xcc\v㉸\xf9a\xc1\xb5\x05\x18\xfa°\x02\xe7\"\xb5\xa3Ū\x89%\xea\x0eKØ\x9d\xc4\xdf\xe5a֮W\xe0\xd3J\x8aaU\x98\x94b\xb5\x1a\xc1\x9a0\x1f\xd9Z\x1b\xe6\x16\xaf8\xf7\x1d\xdaػ\xbc\xe4\xbd0\xd3\xfcuanS\xb4>̹\xf7\xf7ì\x86m\bca\xf2\aa\x04\xbd\x8dD\x8cM4\x8a\x0f\xc3Xj\xf3\x11\x9a\xdd\x1cֵ\xact\xefO\xc2\\U\xf2\xa9z\xf6g\xaa\xed-8\xf9\xf30_E\x19\xc6D\xeaV\x15͗a,\x8c\xd9\x16F\x01\xe1\xab06\xe7\x01\xd8|\x13f>\xfamVD\xdf\x11\x9d\xb6\x87\x91\xf5\xed\bc\xd9\xf3\xce0\xd8\xff.\xa0\xf3nm\xf4\xfb0\xa8\xdb\x1e\x88x/l\xfa\x87p!\xa1}Cs\xf6\x855\xd4\xef\x0f\x17\xceS\x92\xec\xba\xf9#\xce\xf8)k\xd0?\xab\xed\x1e\b\vO?\xa8r=\x14\xe6\xea\x8e\xc3:\xa8_0\xa8_\xc3$\x9c\xbfe\xb1\xe7HX\xe2\xd4Q\xf6\xeaX\x98y\xef\xf10k\b\xbf\xd3\x1e\xff\b\xa3\xb4w\x02\x0e\xf5'm\xfed\x98\xdc\xe1\xaf0#\xe5\xdfj֧\xc2L\x10O\xebm\xff\xa1Z\xcf\xc0B\xcf\xf2ÿ\x18\xfc\xb90\xd2\xde\xff\xf4\x9e\xe7y\xaf\va2\xe4\x8b*\x9aKz\x9f\xcb\f\x1cW\x88\x06W\xe15\u05c8a\xd7i\xe97x\xc6ͬs\xde\n3q\xbcM\xf0\xbd#\x82R՝\x11}7e\x84\xed珈,\vD\n\xb6\xca\xf5\xe6\xe6\x14\x8c\x14n\xdd\xd7!\xb4\xbeP\x84\xe3)\x1cAf[$B\x16^4\x02\x9d\x16\x8b\x88ދGh\u007fwE\x84픈\xd0\xfdKF\x84\xee\xdc\x1d\xc1J\xa2{\"\x8c\xd1\xf7F\xa8\xa3\xfb\"X\xb9u\u007f\x84^\xf3@$\xbb\xb2\xe5\xc1\bz\xff\x10{\xf9pD\x9f\xe5\u007f$\"\x10\xf0h\x84\x98\xf8X\x04n\xf1xD\x84\xf9\x04\xafx2Bh*\x15\x01\xb1*\x1d\x91\xbabND \xa0L\x04;藍0\xd9)\x17\xa1e\x94\x8fH\x9c}J\xaf{Z\x05\xf1\f\xdb~6\x92\x87=nGN\x85\b|깈\x10\xf8\x8a\x11\x82F\xa5\x88\xd0\xee\xca\x11\xc1\x83\xe7#\x88\xcfU\"P\xc8\v\xe8\xe7\x8b\xdaV\xd5\b\xc0\xfa\xa5\x88&g/G\xe8\xf3\xafD\xb0\x14\xbbZ\x04\n\xab\x1e\x11s\xaf\x11\x91\xc0V3\xc2J\xc1\xab\x11\xaa\xbfVD(\xd2k\x11\x06\x8e\u05f5\xdd\xda\x11\x01\xad:\x11V\xad\xebF\x00\x85\xf5\"p\x9e\xfaY\x915\x88\x10\x1d\x1aBG\x8d\"X\x8b\xde8\x82U\xefMT\x1dM#Z\x05i\x16\xc1\xc3\x0f\xcdE\xcb\xc3rZ`\x14-\xf3t%\x0fǾ\x11\x01(\xb7\x8a`c\xae\xd6ڗ6\x11\x84\x8f\xb6\x11&\xec\xed\"\\o\xd6>\x02\xdaׁC\xeb\xa8]\xec\x14\x01\xf7\xec\x1c\x01\x9ev\x89\x88\xddwe\u007f\xbbEX+\xe8\x1e!\b\xf5\x88`\x93\xe87\xd5Pz\xca]\xf3\x02jDW\xbcF\x80\x1e\xb9\xecRo\xf6\xa1O\x04+\x05\xfbF\x98<\xf6C\xef\xfbg\x876 \x92\xbf\xe3\xf0\x9c\x81\x11\xa9\x1e\x0f\x8ah%n0\xaf\x1c\x82S\x87Fd\xeet\x98\xdeqxD#\xa5#B\x97vF\xc0\xae]\x11z\xb4;\x02\x1eaD\x18\xea͈\x10eK\xfb灰\xbd\x11,\xae\xf4Q1~|\x17\x88\xb0\f\x15\x84\xa3\x85\xa0\xc1p\x04S\xb2\x115\x8bh\x04\xb48\x16\x91\nm<\x026\x9b\xd0A\xd9\x11\x81\xadd\x84u\xa6\x14L/\r\x93\xc9\xd0\xc8FD\x80\x1b#\xf5\xfcQ\x11\xa50\xa3#`\xcccp۱\x8a\x90\x98o\x8e\x80H~L\xc7\xff$\x82$\xe1\xd3\b(\xd0g\xda\xff-\x11\x90\xe2ϩ\x9b/\x80W[U\f_F\x84\xe5n\x8b\xe8\xf6v\x90\xdb\u05fc\xd37\x11\x8dJߪ<\xbe\x8b\x80\x02oG\x03;\"\xa4\xcf;#\xa4\x1a\xbb`_\xbb#d=\xdfG\x00\xf3{\x14\x85\xf7*d\xfe@\xab\xdd\x17\x11\x9a\xba\x9fN\xf5c\x04D\xf1\xa7\by\xf2\xcf\xf4\x89\x03\x11\xf0Ѓ\xea燲\xeep\x98\n\xfe%\x02\xbe\xf8\xab\x9a\xffo\x11\x92\xbc#\x1a'\x8eFH\xf6\x8eEH \x8f\xd3S\u007f\xc7\xf0\xfe\xa0C\x9c \xc4\xfe\t͝\x8cH\b\xfb\v\xff\xff\r#=\x15!\r9\x1da҉/\xcf\xc0\xfe\xcfF\xc0!\xfeU\xac8\x17QN\xf0_\x04l\xe4|ֽ/\xd0\x0e.F\x18|/Eȭ.+$^\x89\x90\xb4]eG\xaeE\xc0\x8d\xaek0\xba\xa1Fp3B\x96t\x8b\x16w\x1b\xdeqGTw\xe6\x89\n\xd7\xc9\x17\x15\xaa\x91?\xaa\xaeQ J\b)\x18\xe5}\vEa\xff\x85\xa32\xc4\"Q\x06\xf8\xa2Ql\x02\x1b\x85\x89\x16\x8fB\xe6wE\xc5%JD\xc13KF\xc9M\xee\x8e2\xe4\xdf\x13\xa51\xdd\x1b\x05Q\xb8O{p\u007fT7\x1a\x88\nsy0*\xbd{H/y8\n\x1e\xf3H\x94A\xfe\xd1(\xa2\xf5cQ1\x9fǣ\x12\x19\x9f\x882\xec=\x19eH+\x15հQ:\x8a\xf8\x99\x13%\n\x94\x89\nҔ\x8d\x8a\x89\x95\xd3ᕏ\x02\xb6\x9e\x8a2V=\x1dE4{&\xcaկQ\xc2F\x85(\xe2\xe2sQ\x04\x9c\x8aQ\x84\x9fJQ8B\xe5(1\xff\xf9(\xc3C\x95(\x83\xc7\vQ\xb5\xb5\x17\xa3DĪQ@\xefK:ԗ\xa34\xbaW\xa2ĜjQ\xa4\xe4\xd5\xd9j\x8d(=\xba&\xbf}5\x8aU\xb6\xb5\xf8\xe9\xb5h\x91\x16\xb9\xb9C\xfa\xb9\xf3\x92Ҩ v\xed(K\xe7u\xa2\xa8\xf2ԍ\xf2\x8d#\xdaF}\x1dE\x03=6\x8cr\x01v\xa3(xI\xe3('\x99\x9aD\x11\xac\x9aF\xc1\x8d\x9bEu\xb3\x98\xe6Pq\x8b(\x1f\xd1k\xa9m\xbcA\x01\xb5\xe2ɭ\xa1\xb06\xdaP\xdb()};=\xb6\xd7~t\xd0\xcf\x1d\xa3\x98o\xec\xc4^v\x8e\xc2\x15\xbb@\x9f]\xa3B\x11\xbaEe\x06\xb5{T8W\x8f(\x90\xe9ͨ$\xcc=\xa3\x98\v\xee\x85_ޢ]\xe4j뽣Rc\xec\x13\x05}\xec\v+\xed\x17\xa5\xdf\xf6G\xdb\x03\xa2\b\xd8\x03\xa3H\x9e\x06E9\xe378\n\xe4\x1f\xc2\xeb\x86F\tGâؕ'\n\x04sD\xe5Ih':\xe5\x8ab\xf3 w\x14\xd0h\xc0\xd4ͨ@\xb1\x15\x95՝\x9e(\xdcϋ\xce\xf8p\x89\x1fV\x17\x88r!J0\no\x0eE\x85\x83\x85\xa3\x82\x14\x11\xb5\x98h\x94\xf0\x13c\x1bq\xfc\x98\xd01ؐLR{\x9d\xa2\xd0Ҹs\x06'\x8e\xc0ߑQnv0*\xca\xd2\xc5\xe8(&f\xc6D\x95@\x8c\x8d\xca\xea\xd3qQL\xaf\x8dד&D\x11V'\xf20)\x8a@1\x19C\x98B\x0f\x9a\xaagN\x83\xe4\xa7g[\x9b\x11\xe5f\xfc3y֬(\xc1n6\n\x02\xf7\xbe:\xf1\x06\xca\xe0\x03\xfd\xb81\xca0\xb7\x89V\xff\xa1\xb6\xf8Q\x14{\x01o\xce\xde\xf7cřOp\xdfO\xa3,\xfb}\x86\x8en\x89\xea\x9a\xd6\xcfՓ\xbe\xe0-\xb6F\x19\u05ff\x8c\xa28\xb1\x8d\x87\xaf\xa2\xc8w\xbf\x86\xe1~C?\xfd6\x8a\x1d\t\xbeCsۣ\xf2\x80\xc7\x0e\xfc\xbf\x13V\xb0K\x85\xbf\x9b\xd6\xf3=mwOT\xca\\{1\xc6\x1f\b-\xfb\xb2\b\xbf\x1f\xdf\xfe\x88\xbf?\xc1\xcb\u007f\x8e\x92\x00\x1f \x92\x1f\xe4\xe1P\x94a\xf0pT\xa8\xe5/\xda\xe1_\xb3\xf8\xf6\x1b\x14|\x84=>\x1aEP;\x16E0:\x1e\x05=\xf9\x9d\x83\xfa\x83\x06qB\x91\xf7\xcf(\x83\xf2\xc9(*g\u007fE9\xa7\xfbw\x94\x11\xebT\x14\x91\xea4\xfb\xf0\x0f\x91\xedLT8\xd4Y\xfc\xfd\x970r.*ϭ\xfc\xa7\xf8}\x1e\x12\xb9\xa0\xfa\xba\x88\xd1_\"\xd0\\\xa6\xff_\xa1\x18\xaf\xeaP\xaf\xe1\xf2\xebT\xff\r\\}\x93\xb7\xbc\xa5\xfd\xbb\x1d\x05\xff\xbb#\x86u\"w\xc60i\x97/\xc6gDbXE[ \x06\\*\x18\xc3\xf4L\xa1\x18^\xf9\x1cC\x84+\xc2CQ\x1e\x8a\xc5\xc0R\x8a\xf3pWL\x1e\xb0/\x11\x93ղ\xb99%cL\xee\xefƷ\xf7İ\x01ֽ1M\xb7\xee\x8b\xc1\xf4\ue3f1d\xf4@LB\xf6\x831\x1a\xe2C1\x82\xcb\xc31L\xc0=\x12C<~4&+@\x1e\x8b\x89u<\x1e\xe3\x9e<1\x01\xac'c\x98L.\x15â\x9b\xd21\x81֜\x98ȴ\f\u007f)\xcbA\x96\x8b\x819\x96\x8fa\xa3\xf4\x18\xfd\xe6\xe9\x98<5\xfdL\f3\xb1\xcf\xc6\xe0\x01\x158\xba\xe7b\x9cƮ\x18\x93\xd9\xdfJ<\xa52\xae~\x9e-V\x89aM\xe6\v1 ͋1\xe1\xfcUc\\\xac\xf5\x12\xc6\xfd2e\xf8\x8a\x8e\xb3ZL\x1e^\xae\x1e\x93\x84\xa7F\x8c\xeb\xc8jƸ\t,GY\x8b#{-\x86\xb2\xf3\xeb<Ԏ\xd1H먀\xea\xc6\xe0\r\xf5\xa8\xb5\xfa1T\xf0\x1b\xf0܆1\xb2\x87F1<<\xd88F?j\x12\xd3j}Sv\xb6YL\x16 6\x8f1ڷ\x88qҰ%\x1b~#\xc6Ǣ[\xc5X\xe0l\x8d\xb1\xb4\x89\xc9\xfa\xae\xb6Tv\xbb\x18\"L{v\xa1C\x8c\x16ڑ\x1a\xeb\x14S\xb2\xd79\x86\xfd\x04\xba\xc4\xf0\xb8O\xd7\x18yp7\xa8\xa8{LbF\x8f\x98\xb8ۛ1\xd4\xc5z\xc6@\xe3{ńV\xbe\x15#\vȍ1\xb9\xeb\x1d\x93\t\xcd!\xb9\xa6#\xa7\x0f\xef\xdaW\xa5\xda/\x86E\xb4zހ\x18\xa6r\aƊu0,w\xeep\xe1\x15\x83\xf8\xdd`=e\x88vwh\x8c\xe05\x8c?\x0f\u05ef\x1dzt\xea鮘8\x95;;(C\x15g\xea\xed-^\xed\xa1\x1a\xbc\x14\xa1\x8f\xda\xf0\xab$\x031Tꂰ\x9e\x90^\x18\xd6cD\xa5\x1f\xc58b\xf8\x1b\x8f14&`\xe2vL\xea!ɘ\xf8s\n\xff\xa7\xf1}F\xcf\x1a\xa1Ǒ1L\x93\x8d\u0089\xa3c\xb2D`\fn96\x86\x92ظ\x18\x9e\x91\x1d\x1f\xc3\fք\x98\xac$\x9a\b\rL\x8a1,M\x8e\xe9\xac\xfe\x14\xb415\x86\xe4kZ\x8c\x989=&\x04uF\x8c\xa9\xcf\xcc\x18cά\x98\xcc\xd2ώ\x91\xb9̉1\xfc͍!\xc1\x9a\x17\xc3L\xd0\xfc\x98,{]\x10S\x1a\xb60&\x91w\x11e\xb58\x06\xe8[\x12\x93\xf0\xb04\x06\xc8]\x16C\x9c\xb0\x1f\xa2\xfdQ\xa5\xf8\x93B\xc4\xcf1\x12\x8b\x031\x14\x86\x0eRև\x88\xa3\x87\xb3\xe6\xfe\v\x9b\xfd5\x86\n\xebo1Y\x88\u007f\x04=;\x1a\x93\x12ޱ\x98$Z\xc7a.\xbf\xc7\xf8\f%\x1c\xf8D\x8c,\xebO5\xef\x931\xae\x99\xfa+\xef\x82ܜ\xbfcB\xb2O\xa9(O\xc7d\xee\xff\x9f\x18\xc8\xec\x19\xed\xe7Yq\xacܜ\u007f\xd1\xf4\xb9\x98\xee\xf9\xfe_\f\x137\xe7a\xbc\x17\xb4͋\xec\xe4%\xb5\xd3\xcb1}\x1bݕ\xec?W\x01a\xd7b\xf9\x1a\xe5\\\x8f\xb1\n~#\xc6\x10}3\xcfGQ\x8d\x85\xa8nǰB玸\xd6h\xef\x8c\x13\x03\xf3\xc5q\x87\xfcq\x10\x83\x02qP\u0382q(\xb8\x10\xbf,\xccOE\xe2\x12\a\x8aƱ\x17L\xb18\x96\xfdċ\xb7\xee=ȟ\x97\xe5\xe4\x1aV\xce]q\xc0W\x898\xe7sK\xc6\xe5\x8d\xc0w\xc7I>\xef\x89K\xb8\xbd7\x8e2\xd5}q\xa1\xc9\xf7\xc7\xf9 \xc1\x03q\xb2\xe1\a\xe3\xe0\x12\x0f\xc5\xc5H\x1e\x8eÒ\x1f\x893[y4\x0eG\u007f,\xcet\xec\xf18\xe5\xfbD\x1c\xc0\xf0d\x9c\xf5\x84Rq\xd4xK\xc7\x01\xcf9q\xf2\xc22q\xe2QY\x0e\xae\\\x9c\xb5\x99\xf2q\x9a\xefS\x1c\xde\xd3q\xd9\x1a\xec\x998\xe8\xeb\xb3q)\xb7V\x88\x83\x0e?\x17\xc7\xc6G\x15\xe3\x98Y\xac\x14\xc73\x94\x95\xb3\x82|>oHy\xadV\x89\x8b)\xbe\x10\xc7r\xab\x17yjո\xac\x92\xc8K&\xf3Nq\xf8s^\x8e\x8b\x1f\xbe\x12\x17\x88\xa8\x16\x87\xb9W\x8fK\xd6Q#N`\xae\x19W\a{\x95\x82\xaf\x15\a\x17~-\xae\xd3\x1a\xaf\xc7\xe9a\xb5\xd1P\x9d8\x1f\x92\xa8\x1bG\xfc\xaf\x17\xa7\xda\xeb\xc7\x11s\x1a\xc4\xf9\xea\xca8\x17\xe55\x8a\xc3\x1b\x1b\xc7\xe9tM\xd8\xe9\xa6*\xc6f\xbcQ\xf3\xb8\xd0\xd5\x16q\xb1˖qI\xa7ވs^SE\xd5:\xce*H\x1b\f\xb6-\xfe\xb6\x8bK\xd4k\x1f\x87\x9bw\x88+\xc9\xeeH]v\x8aӎ;\xa3\xc7]ص\xaeqr\xc7nq>\v\xdc=.\xabYzP;o\xc6ɯzƕR\xf5\xa2\x81\xbe\x95'\x92\xbc\xa1\xe7Rn\xbd\xe3Bo\xfa\xc4\x05\xe2\xfb\xa2\xa7\xfd\xe2\xb4\xfe\xfe\xb4\xb0\x01q\x81Áq}\x96cP\x1c\t\xe1\xe08\xc8Ȑ\xb8\"\xdaP\x9aϰx\x9e\xfb\f\x8fcɕ#.\xcbr\x9dq\x00\xa8+N\\vǁp\x86Z\x9f\x89ƭ8\x00\xc5\x13g\xed\xc4\x1b\x97\xb8\xef\x8bk$\xf0C8\x818\xa1(\x18\x17\xf0\n\xc5Y\xa4\tDž\xa4D\xe2\x9c\x1c\x88\xc6\xf1`L,\xce\xf2Y<\xae\v\u007f\xe2\x02$6NMƱ\xa6*\x15'\xb9K\xc7%Tf\xe2\xacʌ\x88\vb\x8c\x84\xd6F\xc1wF\xc7I\u007f\xc6\xc0I\xc7B\xf6\xe3h\xe5\xe3\xe3\xc8\x01'\xa0\xf1\x89qTU&A\x98\x93\xb3=\x9f\x82ߦRW\xd3\xe2Ĭ\xe9\x94䠜\x19qR\xf8\x99qM,fa\xa0\xb3\xb5ks\x00\x12s\xe3\x12]\xe6eU8\x1f-.P\xe9-\x8c\xb38\xb1\b\xdf.\xa6z\x97\xc8\xf5\xeeܜ\xa5\xea\x9c\xcb\xd4%\x96Ǚm\xaf\x88\xb3\f\xbd\x12\x82\\\x15\xc7j\x82\xd5:\xce5t\x97\xb5q@\xdc\xdbq\x82\xe5;*\xdfw\xe3\xc8\x1a\xde\xe3\x8d\xd6i/\xd6+8\xbc\x0f\xe3\xdb\xc0\x16>\x88cS\xa0\x8dqͽ6\xc5Q=\xfc0\x8e\xa0\xfd\x91v|s\x1c唏\xe3|3\xdf't\xadO\x15\xf6>ST\xdb\x12\xc7Kt?ׁ|\x01\xf3\xd8\x1a\xe7\xf3\xa7_\xc6Q\xd2\xdc\x16\a\x91\xff\n\xba\xfb:\xce\x1a\xc27\xf0\xc2o\xf5\xba\xef\xe2(cmgk;\x00\x1e;\x81\xa5\xbb\xd8\xe7\xddT\xe2\xf7q\x14\xef\xf7ą\xc9썃\xc0\xff\xa0ػO\xadp\xbf\"Ə\xea+?\xc5\xf9x\xccϸ\xe3\x818\xa2\xd4A\xa8\xe5\x10[8\xac-\xfc\x12G%\xe3\u05f8\xc4\xc7\xdf\xf4\xcb#\x8a\xdbG\xa1\x93c\xfa\xed\xf1\xb8\xee;\xa0v\xfcG\\\x18҉\xb8\x86\xb9?\xf5\xb4\x93q\xe4y\u007fe\xbf\xff;.Q\xea\x94j\xe7t\x1c\xa4\xf3\x9f8\xab\xa6g`\xc8gi\xbb\xff\xea\x97\xe7ԛ\xfe\xe3\xb9\xe7\xa9\xdf\v<\\\x84S\\R\xff\xbd\x1c\a%\xb9\xc2߮\x12֯\xc5A5\xae\xc7\xc9\x1an\xc41;pSeu\v>~;\x0e\x96wG\x82YeB\xbe˗\xd0\x1aA\xfe\x84Xy\x01\xfc-\x98\xc0ՅpFa\xfc-\x92\xa0\x94\x8b&\x04 \x8b\xf1\x84\xe2\tĒ\xbb\x12x(\xbe\x04\x0f%\x13\x85\xbb\xe6\xf6u\xe4\x11\xfa\xbby\xd6=\t$\xdb\xf7&`h\xf7%Pƺ\x9f_>\x90 \x84?\x98\x80\xd9=\x94\x90\xa9\x9b\x87\xf1\xf7\x91\x84\x06\xcb\x04f\xa7\x1e\xe3\xe5\x8f'\x14\x04\x9fHp\xe7\xaa'\x13\xa8T\x94J\x88\xe5\x97N0\xa6\xe4$\x90?\x97I\x90\xed\x96M\xd0=\xca%\xc44\xcb'\x10ٟJH\xaa\xfat\x02r{&\x01\xb7z6\x81y\x82\nٛ<\x97 K\xad\x98 \x95\xad\xc4\xdf+'\xb8\x01A\xa2p\xd3~\x86l\xd8R%\xa1\x18\xfcB\x82:z1Q\xb0\x81\\P5\xc1\xcc\xee\xa5\x04\xea\x10/'$K}%\x81:u\xb5\x84\xc0[\xf5\x04UT#!:\xae\x99\xbd\xf3\xab\t\xe0q\xad\x046{M0\xb5|=A\xfc\xaa\r-\xd5\xe18\xea&\x04\xb2\xea%P魟`9\xbaABBqÄnb\a\x156N\xf0\x89\x8c&\t2\x88\xa6\xbc\xbeY\x02\xe1\xa09z\xd3\"\xc1=\x1cZ&\xb8$\xf2\r\xa8\xbbUB\xf3\x8d\xd6\tN\x04\xb4I0\xe8\xb5M\xe8[*\x13(F\xb4O\xc02;\xb0\xe1\x8e\tƀN\t\x98]g\b\xbfK\x02\b\xd0U\xe5\xd3-\x81$\xa7{\x02y{\x8f\x04\xe6^\xde̻\x8b\xc3=(\xa7'\r\xb5W\x82\xa8\xf9V\x9ea9\xfa[\xc3\xfb\xe5\xe4&\xb8\xb0\xb87m\xa2\x0f\x84\xd4\x17\xed\xf7K \xf8\xf7W=\fH\xc0\xf3\a\xea\xb0\x06%\x04k\x06\xe3\xfc!\xf8;4\xc1\xfaٰDv\x06}x\xa2@^\xfe\x9e\xe3H(OqjS.=\xba\x13R\x922\x12\xc0\x17\x13·\x12\xe4\xf1\x1e~\xe9\xe5\xc1DZ\xf9y\b\xa0{\xc1\x84\xa4{!\xd5@8\x01\x1e\x18I\xc8\xde\x1a\xd1\x04\xaa/\xb1\x04\xa9lb\x8b\xce\x1e\xb5uE\x8f\r;{\xdc\x06v=aӳ\x9e\xb4\x89\x0f\xa5l\xb2\x98Ҷ`@\x8e\r\xc6P\x06\xbd,k#\xbb,g\x8b'\x94G/\x9f\xb2\x91l=m\xcbJ\xf6gl\xe5\a\xcfڲ\x88\xb3\x82ͪ\xab\xadD\xa7\xa2M\xac\xa8\xc4aV\xb6\tZ\xcf\xeb\xb1\n\x84\xf9\x02n\xfb\xa2\rK\xa8\x8a۾d+\xe1~\xd9\x06\xbc\xbc\xc2\xfeW\xb3\x11*\xaa\xdb2\x89UC\xc7V\xd3\x16\x16\xf8j\xb6#\xb5\xf4\x96\xafٺ\x8b\x9d\xad\xb1\xb76\xc5W\x87\xf7\xa9k\x83BֳY2\xabo\xa3L\xd1\xc0\xe6\x1cuC\x1b\xf5\x89F\xb6\x14y\x1b\xabZ\x9a\xd8\xe48M\xf5\xa4f6\x90\xbb\xb9\xfe\xdc\u0096\xeaDK\x1b\xa9\xa4\xcd@؊\xe3nm\x03\xc2\xda\xd8\xfa\x0e.[\xa6\x02\xdb\xd9\x1a5\xdb۴\xc1\x0ePYG\x1bu\xacN6\xaaӝmС.vv\x9dzWt\xa9\x9b\x8d\xf0\xdf\xdd\xc6B\x83\x1e\xb6\x18蛶\x90\x87\x9e6'\x11zQpoق\x83\xb9\xb6\x06D\x8a\xa0\x8fJ\xae\xaf\x8dUI\xfdԒ\xfa\xdb\xe0\xbd\x03\xf4\xe3@Jh\x10\xfb3\xd8\xc6\x03BC\xa8\x88\xa16\n#\xc3lz\xdfp\x9b\xbc\xcaa\xc3G\x9d\xb6\xd4\x12]6\x1c\xc6m\x03\x15\r\x1b\xc5\x02\x13\x1a\xb7(\x0f\x0f\x1b\xf3\xdaR\xe7\xf7a\x10~[\x9e\v\v\xd8@\xd7 \\$dK\b\n\xdb\b0\x11\x1e\xa2\xb6\x16$bj\xbaq\x18h\xc2\xceK\x0f\xf2\x82\xa1-\xfc'i\xb3О\x82XӸq\x86\xca\x1f\x01?\x1c\x89\x1fF\xfd_\xb4\xa3a\xdecl\xb0\xaf\xb16\x8b\xad6\xa6\x8b\xc6ۘm\x9f\xa0w\x9bh\x93FM\xb2\x05^&\xdb\xc0\x8e)6aw\xaa\x9a\xc94\xb5\x8b\xe96\x8a\xf83lě\x996\x1e\xa7\x9ce\x83\x03̶\x19\xe9\xe7\xd8|\xfe|\xae\x8d\x9a\xce<\x1bQ|\xbe\x8d\x9a\xea\x02\x1b\xd1a!\u007f[D\xd5/\xb69s\xbd\x84?.\xb5\xb1>f\x99MF\xb7\xdc&J\xae\xb0\xc9\xe9Vb\xf4\xab켰\xb1\x1ac_c#Ʈ\xb5\x11F߶Q1x\xc7\x16L\u007f\xd7榮6\x1eEZg35[o\x83\x90\xbfoK\x82\xb3\xc1.\xd4\xd1\xc8\x1d\x90\x97C\xea\xaf\x1bm\xf0\xa8M\xeċjA\x1f\xe9qs^\xf3V\x9f\x9c\x8fm\xa6\xbb\x9f\xa8\x87~\xaa\xc7\xcf\x00\x1d[8\xe6\xcfUj_@\xf7[m\xc9\xc1\xbe\xb4\x89\xe6\xdb\xd4\u007f\xbe\xb2\xb1*\xf6k[\xd0\xf9\x1b\x1b\x19\xa4-D\xe0;\xe8c;\ro\a%\xbd\xd3\x06\xeaﲱ\x84y7l\xed{[2\x88=\x80\x9a\xbd6\x12\xad\x1fl\x94\x00\xf6AP\xfbmT\x99~\xb45\xb2\xfed3\v\xfb\xd9\xe6\xac\xc1\x01\x9b\x85\xa6\x836\x97\xb0\x1c\xb2\xb1\x97\xc9a\x1bK\xb9~\x01\xe2\xff\n\xeb\xfa\r\xc6{Ė\xc0v\x94\xea\xad\xc7g\x92,\xd3<\x9b\x942q\x85$\xb0幤\x10\xa9\x8aI\xe5ʕ\xd8\xcb\xcaI\x89\x86\xcf\xe3o\x95$\xe2c\x92N\xf6b\x92\xb3\xbfU\x93\xe4r/%\xe1\xb5/'\x914&\xc51\xab\xa9\x94\xab\xeb\xfdj\xa0\x99\x9aIVK_M\x82\x91\xd4J\x8a\x05\xbc\x96\xcc\x03\x83\xd79\xc4\xda\xda\xcd:I\xb8q\xdd$\xea\x8e\xf5\x92\x1a\x84\xeb'\x99?4Hb\x8e\xa1!\x0f\x8d\x92b#\x8d\x93\xb0\xe6&I\x14\x17\x9b&Ŋ\x9b%Q~k\x8e\xfb\xb4H\x8a\v\xb7LҔ\xde\xc0\x88Z%\xc5[['\xe9\xeam\x92\x98\xfen\x9b$\xa8\xb6K2\xa8\xb4\xd7c\x87$\xe6\xd9;R\xbf\x9d\x92\xe2P\x9d\x93\xc0\xf1.I\xf1\xe0\xaeY\tvK\xb2r\xdb=)L\xa8G\x12\xee\xf3\xa6ޥgR\xca\xf0\xbd\x92\x1at\xdf\xd2ss\x93\xe2]\xbd\x93\x88\xf7}\x92\x04\x9a\xbeIzC\xbf$\x89R\u007f\x1aހ\xa4\xb8\xf1@~\x18\x94\x94\xfa\xc0\xe0\xa4Č!0\xfe\xa1IV{\x86%\x81\xd0Ó\xac\x95:\x92\f\x8aI\xc0\x91+\xa9\xcb\\\x93$\x11\x06[3\x93\x04l+\xc9y\xc8$\xe3\x827\x89\b\xed\x83X\xfdI@p\x006\x1dLb\xed[(\xc9L;̛D\xd44\xa2I\x84\xa4X\x12q4\x9e\x84\xc7&\x92\x82*vR\v\x95\xc9$\v(\xa9d\xf6\xa1\xb8t\x12\xcc2\x93d\xce;\"\x89\xdd\x1cG\xb2K\xa3hᣳF1&\x89\x9c|,\xfb?.\x89\a\u007f\xc7\xf3\xa4\tI\x94p'&\x11\xdf'\xb1ߓ\xd56\xa7\xf0\xe3T\xf6mZ\x92\x15\xa9\xe9IF\xaa\x19I\x99D\x9a\xa9^6\vH2;\x89zʜ$\xf70\x98\xab\x83\x9c\x97\x14\x84\x9d\x0f3\\\x00\t-L\xb2\x00\xb2(\tα8)y\xe1\x12X\xcc\xd2$֠,\x83\x9b,כ\xaeP\xfd\xaeL\xcaZ\xd1UIy\xf2su\x12av\x8d\xded-\x9bz\x1b\x8e\xf4N\x92e\xcfw\x93Xu\xff\x1elg\x1d\xfe\xaeOb\x9dk\x92\xf9\xf3\x06t\xe7\x83$\xd2\u038d\x1c馤\xce\xde\u007f\xa8\xbe\xf0\x11lgs\x12\xe9\xd0\xc7I&o\x9f$\xf37\x1a\x9e\xf3)\x8c\xf5\xb3$f\xe2\xb7$A\xbd>\xd7N\u007f\x91$\xc3\xdfJ!\u007f\x89An\xe3\xf0\xbe\xc2}\xbfN\"0\xaaD\xbfM\x92\xed}\x97\xe4D\xf9v\xda\xfa\x0e\x8es'\xb5\xb1+ɒ\xf6n\x02\xc2\xf7I\xe1\xd4{\x92`={\xd56\u007f t\uf8e9\xedO\xa2\x00\xfdcRh\xdbOj\x86?'\xb1P\xf4@R66=\x98D\"q\b\xb0{Xƒ\x17\x1bi\xb6\xbf\xd2N~\x83\x04\x8e@\x8fG\x93xN\xf5\x98\xf6\xfa8\x04\xfe;\xcf\xfbC\xf1\xe9DR\xb8˟I\x92\xa5\x93\n\xf2\u007f\x11\xd6\xfeN\x92\xf0\x9f\"6\x9cN\xb2\"\xf2\x0fP\xe8\x8cb\xe8Yu\xbf\u007f!\xa8s\x1aX\xfe# \x9fO2B\xaa\xa1^$\x80\\\xa2\x85_Nb\xe6\xe2J\x12\xa4\xff*\xbaw\r\xc1\xe6:Fq#\xc9\xfa\xfcM\b\xe4\x16\x10\xeevR2\xf0;R\xc2i\xefL\xe9|W\xbe\x14D\x9c?\xa5\x8eT \x85\xf5\x9d\x05S\xc0\xb7B)\x06\xed\xc2)i\xb4H\x8a\x13\x10ES\x90k\xb1\x14\x18D\xf1\x14R\xc7\x14\xf6\x1fHɍJ\xa6P[\xbd;%\xef*\x92\xcc\x11gܛB\xbd\xe7\xbe\x14\x88\xfc\xfd\xbc\xcf\x03)\x01\xb1\aq\xc2C)\xd8\xc0\xc3),py$\x85gP\x1eM1\xcc<\x96¸\x1fO\t\xb6=\x91\x92\nǓ)1\xcbR)x~\xe9\x94L\x1b\xe6\xa44\xbd*\x93\x02\xf9)\x9b\x12'*\x97\x1d\\y\\\xf1T\x8aR\u007f:\xc5L\xf6\x99\x14\x92\x93gS\x80\xc4\n)\xc0\xc4s)\xbaEE\n\xa2R\n\xa0U\x99?>\x9f\x02\bUI\x91\x80\xbf\x80N\xbd\x98\x02\x03\xa8\x9aBI\xe8\xa5\x14\x9d\xf9唬z|%E0\xae\x96*\x9cG\xd9\x1cC\x1c9\xd5S:]W#\x85T\xa4f\x8a&\xf1j\n\xec\xa6\x16[y-%Ŷ\xd7S\xa2\xc4\xda)\xec|N9ԅB\xeaQ\x96\xf5SZ!h\x90B\xe6\xdf0E\xbcj\x94\x92٥\xc6)\x02h\x93\x147fhʋ\x9a\xa5\x98\xf56O\xa1\x00Ղ\x87\x96)\xac\xa2z#%\x06\xd5*\xc5\xec\xadu\n\xa8\xd3&\x05:\xd7V%\xd3.\x85\xac\xab}\nx\xd2!\x85\xc8\xdb1\x05\xce\xdd)%a\xb63\xac\xa1K\niaWJ\xb9[*/\xd0wOq~\xa8G\n4\xeb\xcd\x14jZ=S\x98\x00\ue552|\xfa\xad\x94\xf8|n\n\x98՛\xf2\xee\x93b\x15\xbd/\xfb\xda/%5\xad\xfe)A\x9c\x01)\x89\xe4\x03\xd9Р\x14\xd9\xe9\xe0\x94\xa4aCR\xf4ġ)Y\xdf2,E.2<%.\xe7H\xb1\xb6\xe1\xe4 \\)8\xb8;%1\xcd\xd0q\x9a\xfc\xcdJ\x01\xf7<\xea\x11^HȗB)ҟb1*\x00\xad\x04S\xa4\n!\xdc0\x9c\xe2\xa4T\x84\x92\x8d\xaa=\xc7\xd8j\x1c\xcd$\xd0\x19;\x05\x80M\xc2%R\xfc\x90\x86\x01d\xa8\xf4\x11\x14\xe1H~\x1a\x85\x9b\x8dNI\xba2&\xa5\xa4cl\x8a\x13C\xe3\xe8l\xe3S\x02\t\x13R\xdc\rrb\xd6\x0f&\xa5\x80n\x93Sd\x1dS\xb2\xb68U\x8dpZJ\xb8\xe0\xf4\x14\x83Ό\x94$\xf93SR&\x98\x95\"2\xcfN\x81T́e\xceM1\xf1\x98G\x11\xcd\xd7V\x16\xd0\x1a\x17\xa68\u05fc(\x05\x00[\x9c\x92p\xb0\x84\xd7/\xa5[-SQ/Oa\xb5\xe0\n\x15\xe0ʔ\xf0\xd3U)\xa4\xaa\xabi\xb6kR\xc0\xfb\xb5y\xa2\x90T1\x85\xa8\xf3\x0e\x9by\x97\xa7\xbc\x97\xc2c\xa2\xebRX\"\xb6\x9e\xd2z?\xc5%\x19\x1bRL\x9e>\xa0\xf5n\x84\x99mR`\xfb0\x85\xfc\xe5#\xe8\u007fs\n\x93\x14\x1f\xab\x93\u007f\x92b\xc0\xfb4%\x85\x95\xcfRR\"ܒb$\xf8<\x85\xac\xed\v\x05\x96\xadjc_\xa2\x9dm\xb0\xe7\xaft\x88_\xc3\\\xbf\xa1A\u007fK\x91|\x97b\xa5u{\x8a\xa1d\a`jg\n\xc1iW\na`w\x8a\x11\xf9\xfb\x14ˡ{RZhۛB\x99\xef\x87\x14\xc3\xe2>\x9a\xf0~\xb8\xfe\x8f\xfa\xe5O\x00\xe7\x9f\xe1\x8e\a`\x12\aэC\xd4\xc2a \xcb/\xf8\xe1ה$\xb0\xbf\xd1X\x8f\xe8@\x8e\x02\x9f\x8f\xa5Pl>\x9eB\xe0\xfd]}\xf8\x0f*\xe4D\n\xc10\xc5\xf4\xe7\xa4\n\xf4/\x9a\xc0\xdfTө\x14R\xb6\xd3)Į\u007f\xb2#8\xa30s\x96\x9a\xfa7\x05\xf2p\x8e\xc6\xfe\x1f\xc7s\x9e\x12\xbe@\xaf\xb9\xc8//\xa1ߗ\xa9\xfc+\x04\xa9\xabp\x98kD\xd1\xebT\xe1\r\xf5\xb9\x9b\xaa\xca[)\xa4u\xb7S\xc8/\xeeH#ۺ3-`\x91/\rh\xc9\xcfC\x81\xb4(\xb0`\x9aK\\\n\xa5\xb1\xddkZdY$\x8d1\x14M\xb3hP,\xcd\a<\xd20\xb9\xbb\xd2\xe2\xd4%Ұƒiqӻ\xd3\xfa(\xf2=i}\xbe#-\xf2\xba/\xafi\xa9\\\u070fF\x1fȞ\xf4`\x1a\xe3{(\x8db\xc1\xc3i\x01\x84G\xd2܉\xf3Ѵ\xa8\xe91m\xe6q\xdcꉴ\xb0\xce'\xd3\xf4\xbbRz,\x9dF\xb0\xcaI\xabw\x97I\xd3Z˦\tz\xe5\xd2\x04\xc6\xf2i\xc8\xfd\xa94\x1e\xbcz:M\x80{&-\x10\xfel\x1aڭ\x90\x86\x1e\x9fK\x8baVL\xc30+\xa5aÕ\xf9\xe9y\f\xb3J\x9a\xc8\xfbB\xbaH\x8b\\S\x16K漘\x86)U\xe5\xe1\xa54b\xc8\xcbifW\xaf\xa4aR\xd5\u0603\xeal\xb1F\x9apR3\xcdu\xaf\xaf\xa6\xf1>\x10\xdc\xe05\xf4\xe0u6V[O\xa8\x93\xe6\x1ev8\xa3\x1e\x1b\xa9\x0fe5H\xd3\xeb\x1a\xa6\xf1Hb#ʵ1/o\x92f\xd2\xd34M+o\x06\xc96O\x13A[\xa4QEi\x99F\x11\uf374\x84\xf8V\xf8\xdb\x1aM\xb7I\xe3\x05\x17m\xf1\xa1]Z\xa0\xbe\xbd6\xd4!\xcd\xd8\xdf1\r\x93섫:\xa7\xc5㺤\xc1q\xba\xa6%\\u\xc3W\xdd\xf1\xb7\a\xday\x13\xa7\xf6\x84R{\xa5\x11\x01\xdeJ3N\xe7Bǽ\xd3(\f\xf5I#\xda\xf6M\x83\x9c\xf4S\x81\xf5\xd7\xe3\x00\x8a``\x1a\xf3\xbf\x83\xd2\x12\\\x06\xa7\xe1%C\xd2Z\x98\x1e\x9a\x06\xc9\x1c\x96&\xe4\f\x87\xec\x1c\xfcҙ\xd6z\xa6+\r:\xee\xa6،\xb4\xa0\x80\x99\x06=\xb3\xd2\xe0x\x1et՛\xc6$\x86/-\t\xb0?M\xf4\x0e\xa4\xe1\xc0\xc14\xc9H(-ip8\xcd\xc2i\x1aq3\x9af\xc9?\xc6\xfbġ\x80DZ\x18\x93\x9d\u0588\x96Ls\xfa+\x95\xce#\x0e鴤\xb9\x994\xea\xd8#T\xcc#Ө\x1e\x8e\xe2a4]wL\x9a\xf3\xb9c\xd3\x12\xa1\xc6Ѷ\xc7\xf30!\r\xa67\x11\xde=)\x8d9\xa8\xc9t\x96)\xf8nj\x9aդiiF\xc0\xe9i\xf0\x8a\x19\x1c\xd1\xcc4\xcab\xb3p\xea\xec\xb42\xce9ia#s\xd3\x12\x8e祥t9?ͪւ4H\xccB\x1e\x16\xa59\xe9\xb68\xcdգK\xd2\xc0\xa8\xa5\xb0\x88e\xec\xcc\xf24\xe2\xc2\n|\xb7\x92\xa3]\x95\x06O\\\x9dַF*\x00\xacMK z;\x9d\xbfC\xbf\x9cw\xa8\xbew\xd3\xe0`\xef\xa51\xf9\xb4.ͬb=\x9by\x9f?nHK*\xfbA\x1a\f~#Lk\x13\xdc\xecC\xdc\xf3#\xf6c3\x9b\xf88\x8dy\x94O\xd22a\xf6)\xd0\xe83\xbd\xfd\x964қ\xcfՌ\xbe\xa0\xb7lMs\xd2\xec˴\xc4\xfaml\xec+\x00\xca״\x9bo\xd2(j}\xab`\xf3\x1dNܞF)m\a>\xecT\xb4څn\xedΚ\xe4\xf7heO\x1a\x0f\x9a\xed\x85M\xfd\x00\x99\xef\xa3r\xf6\xf3\xf0\xa3\x02\xf3O\x18\xce\xcfi\xae\x1b=\x90\x96%]\aӘE:Į\x1f\x86\xd1\xfd\xa2\xe3\xf9U\\Ǒ\xf3\x9b:\xdd\x11\xdc\xfc(N9\xa6\x82<\x0eW\xf9=O\x80\xb99\u007fp4'p\u009f\xaa\uf4c0\xf6\xbf\xd2\x1a\xde\xfeN#@\x9fJ#C=\xadj\xff\x87\xc8w&\x8d4\xe8l\xba@\xa3\xdey\xa1\x8f_\x9eK\xa3d\xf3_\x1a\xc4\xf9<\xb0\xe5\x02\xac\xedb\x9a\xd5\xfcK\x1c\xc2e*\xfcJ\x9au\xf6\xabi\xd2\xd0k\xbc\xfez\x9a\xbb\x8c\xdfH\xa3\xe4\u007f3\x8d]On\x89\x1fݦ\xe2\xef\xc8\x00\x14\xee\xcc0>\xe6\xcb\x10\x95\xf3g\xc8\v\vdHy\nfD\x88\x852\xfaZ\x8f\f\x00\xa0HF\xe2eQ\xfcT,#b*\x9ea\xb2|WF\\\xaeD\x06\xe0W2\xa3\x9b\xb6f`w\xf7d`\xd9\xf7f\xa0\xe9\xfb2\xac\x92f\xf4\x99\x8d\f3\x94\a3\xec\xf8C\x19\xe8\xf2\xe1\f\n\x80\x8fd \x9cG3\xacz?\x96A\xee\xf0xFl\xf7\x89\x8c\x84\x85'3\"\xa3R\xf8[:\x83\xd9\xc3\f<\xbdL\x06v\\6C(*\x97шX>#\xa2}*#\x00\xf9t\x06U\xf6g0\x94g3\x98\xa3\xad\x90aN\xff\\\x06U\xe3\x8a\x19T\xed+e\x80v\x953\x90\xe1\xf3\xb8Q\x95\f\xe1\xe6\x05\xf6\xeaŌ\xb8J\xd5\f\xc2\xdaK\x19\xbc\x16\xe5\xe5\x8c\x18\xc9+*\x8fj\x19\x89\xf8\xd53\fA52\x84\xb2\x9a\x19\x80\u05eb\x19q\xeaZ\x19>\x86\xf8\x1a\x9by=\xa3k\xf7y\x9e\xe7\xbe?\xe3\x9a\xef\xeb\xfa\x8c;\anm\x01$~a\x8e\xe4\x85\x16\xe5\b\x94ZL\xe1YB\xab\xb1T\xfb\xbf,\x87!\xc0\xf2\x1c\xba\xd1\x159\xe2NVB]W\xa1+\xabs4\x1f\x9a\x03P\xb9\x96\x8c[Gʬ\xcfQo\xbf!\apac\x92q\x9brtG\xf5\xcf\x1c\xe6\xe6\x1c:\x90-Tҭ\xec\xc5/\xec\xfa6\x90g;\xca_\xa9\x85;r\x10\xf4\xfcF9\xde\t\xee\xee\xcaa8\xb9\x1bµ\x87\xd4؛C\x8c\xf9{Nᶩ\xc3S\x87\xa5\x8fJOٗ\xa3ɼ?r\xe8\xf5\xf6\xe7(x:\x90#\xae\xe8`\x0e\x12+\x87 E\x87\xc9\xf1#9\x82\x18\x8e\xb2_\xc7r\x98\x9d<\xae\xd7\x13\xda\xfb\x93\xa0Ω\x1c8\xf5\xd39L)\xfe\x99\x83t\xf3_9\xf0gg\xd0ճ\x10\xa9s9\x9a\xcc?\x9f\xd4\xf9\v4\x87\x17s\xb0|\xe0R\x0e`\xd4e^\xaePV\xae\x92\x92\xd7\xd4\f]צo\xe4p\xbd\xcd\xcd\x1c8\xc1\xbfu\xd8\xff\xe4\xc0\xf1\xff\x9bT\xe9[9\b\xb2nchw()ws\x14+\xdc\xcba4r\x1f\x04|@\xc3\xf1P+~\x04\xa9\xfc/\x87\xf31\x8fs$\xc7\xf1D;\xf1\x14.$\x97A4-\xb7Ai\x99\xc7\x00_\x9f\xd7\x00\xb9\xc8g\x80@\xe47P\x9c\v\x18\x88d\v\x1a\xa4\xa9B\x06\x99\x04+l\xa0\x05,b\xa0V>c\x80\xd9)\x8a\x1f\x9f5\xa07\xc5\f\xe4Xq~|\u0380\xad\x1a\x06*j\t\x03E\xb1\xa4\x81V\xe8\x05\x03\"\x82\x17\r\xb4\x84\xa5\f\x88__2p\xf5Oi\x03\xcco\x19\x03\x16%\xbfl\x10\xad,k@\x1a\xe8\x15\x03·W\r\x88{\xca\xf1\xc6\xf2\x06\xb1i)\x06\xf1\x9c\x15\xd0\xed\x8a\x06\xa6\x9a_çJ\x06\bJe\x03\x82\xd0\xd7\r\xa2To\x18D\xf1\xab\x18Ȍ\xaa\x1cЛ\x06Ɠ\xd5\xf0Xu\xfdT\xc3@0\xf1\x96A6(\xd64pf\xf7m\x83j\xf1;\x06\x01y\xb5\f\x9co\xae\xadd|\xd7\x00\x0e\xd61\x88P\xd55\xc0o\xbdg\x10!\xacg\xa0\xa7\xac\x8f\x1e4\xe0O\r\rЉF\x06\b\xd4\xfb\x1cWc\xf6\xea\x03\x03|~\x13\x12\xb6\xa9A%\xf2C\x03\x96&43`\xa9Xs\x83\xcc\xef\xb40 \xc3\xd4Ҡ\xca\xfd\x91A\xb4\xa6\x95A\x12=\xad\r\xe2\tې\x8emѯv\x06\x82\xb0\xf6\x068\xb4\x0e\x06\xacP\xe8h\xa0-\xee\xc4!t6\x10\xd9vQ!\xe8j\x00\xd4\xeaf \x88\xean`\xec\xddC\xa9Փ}\xef\xa5?\xf76H0\xd1\xc7 6\xf5c\x03=\xa4\x013۟\x1aT\xf2\xfb\xf2\xeb~\xfc\xba\xbf\x81\xdb\xd6R\r\xccU\f\x00\xd1\x06\x1aD\xc6\a\xa1L3H\xde\xff3\x03\xb0\xcb`\x03\xf6h\x18\xb8(=݀\x85LCq\xdf0\x03\xf5\xe3s\x03-\xe5p\x83\xf8\xc5\x11\x06\xa4\xfc3\f\x88a2\rj\xedF\xb2ۣ\f2\xdd4:I\xbf,\x03\xd0]\xb6!o\x97\xf4\x941\xc9o\xc7&\xff\x19G\x96\x8c\x87\xacO\xe0\x87/\f\x88\x11\xbe4\xc0\x1e}e\xc0\x8a\x9c\xaf\xa9c\xdf\x18\x90\x01\xfb\xd6\x00,7Q\xe9<\xc9\x00\x8c\xf0\x9d*\xded\x83\x98\xfe\xef\rL\xe9\xff`\x80m\xc9a\xad\x06\x03\xf0\xb0рD\x8fI9c6`\xfd\xaeŀP\xdaj\xc0\xde\"\x9b\x01\xf9\x0e\xbb\x01\x93\xca\x0e\x83\xb8@\xa7\x81\xf0\xdae@\xfa\xcam\x10\xbf\xee\x81~y\xc9U\x9f\x01sK~\x03\xf1r\x00\x84\f\x1a$V\r\x19$\\\n\x1b\xc4=E\f\x12~DA\xd0\x18\t\x1a瀧\xf02\x95\xfd\xfd\xd1\x00\v;\r\xd5\xfcd\x80K\x98\xce\xce\xcf\x00\xa5g\x1a0;0K\xa5e\xb6\x81fk\x0e\x98>׀\xfc\xdc<60\x1f\"\xbb \xf1X\">D_\x16\x19x\xd8\xd5b\xf4c\t\x1aYj`ph\x90U\x90\xcbI\xfd\x15\x06\xf5m+I\xbeU\x06\x1c\x92\xbb\x1aʱ\x86\x8c_\v\x1dYG\x93\xb8\xde \xb9\xd4\rT\xbf\x8d\x06\xb8\x87M\x06X\xf7\x9f\r\x98\x8e\xd9l@ز\xc5P\xa4\xad\x9c~;$}xF\xcaV\xe1簄o4$W>m3\xd0lo\xa7&\xfdj\x00\xea\xdea\xc0N\xc9ߔ\xc3;I\xf9]\xec\xdbn\u07b3Ǡ\x96\u007f/L\xd1\xefj]\xf6\x19\x18\xcf\xfc\x91\xa0k\x82l\xfb\r\x125\x1e\xc0\xc0\x0fB\x11\x0e)\xe3\x0e\x1b\xe0\x85\x8f\xd0\xf2\x1d5\x00\xac\x1d3\x88o;\x8e\xdbO@\x89N\xfe\xaf\xab\xa7\f\x8cTN\x1b0\xf7\xf3'\x9f\xf8\v\xad\x9fQ\xb3\u007fV\xaf\xe7@\xdc\xf3j\xd3/\x18\xb0\x80\xf8\xa2\xb2\xee\x12$\xed2yvŀp\xe3\xaaJ\xfa5\x15\xd8\xebd\xd2\r\x83.V\xb9i`*\xfbo\x03\u0588\xfd\xa3\xda\xfc\xafA\xe3\x84[\xc9\x1bo\xd3\xd8\xdd\xe1\xe5\xae\x01>\xf9\x9e\xd6~\x9f\xcc{`\x00\x0eyH\x9b\xf6\bV\xf6?\xc8\xcec\xca\xe6\x13\x88\xfdS(m.#Nd5\xe2\x87&A%\x1f\x9bd\x8d\xe0'\x94\x8cO9о&\xc9W\xf43\xc1\xb5\xf47q. \x15$\x19@\xc6\x0fD\x93\x83L\x1a\v\xa7\x81h\x9f\x99`R\x06S؆\xa8\x9c\xa6\xf3ۡ\xa6|\x89x2e\x18\u007f\xfc\x9c\x14\x1cn\x82\u058ePBe\x98\x00\xb32)\x99#M\xd0\xfaQ&\xac\xeb\x1bmRg\x9fe\x82Q\xccV~\x8d1\x11\xbb\x8e51\x0e\x1eg\x12\xeb6^\xd91\xc1D\xd3\xfc\x85H藬\xfe+\xea\xd8\xd7I\x9a|c\x02\xec\xfc\xd6$\x11\xc8D\x13\xd3\v\x93Lt$\xdfQF&\x9b\x90\xf0\xf8\x9e\xf4\xf9\xc1\xa4\xa7\x88昰\xbd\xc6`\x92\f\xa8\xd1$\xa6\xd1db:\xd2\f=\xb1P|\xadT/\x1b\xc4\xcenbN\xd6!}r&\xabr\xc9'7i\xe511E\xee5\xc1(\xfaL\x82\n\xfc&\xe2\x92\x00\x15#hb|\x1e2q\xcdC\xd8\x04\xcf\x141\U00048ae8I\x96\a\xc6Х\xb8*\xd8\x14\x93\x065SI\xe0\x1fU[\xa6\xa1\xfb?\xa1\x9cn\xc2\xf2\x88\x19\xaa\xb83M\x02ff\x91p\xb3MLq\xcd1q5\xe8\\U\x8fy\xfay\xbeI\\\xe4\x02S\xa1ީ\xa3夸\x94\x85&\x8d\x1b\x16\x99\x18\xdd,f\xc3KL\x92\nY\nY\\fbnr\xb9vr\x85\thl\xa5\x89S\x0e\xabL\xccz\xac6!\xd6XCv\xac5\xc9\xd9z\xeb \x84\xebM\x12\xc8n\xa0e٨\x86o\x93I\xf2\xb0?\x9bx\xd4\xc5f%\xdd\x16\xb5-[M\xccq\xfc\x02\x1em\x83y\xdbn\x02\xca\xf9\xd5\xc4\x03\x19vP\xca~\x83\xd2\xed4q\xfed\x97\x89~uw\xd2\x10\xec1I\x06n\xaf\t\xfb6~7\x11v\xef31\x8d\xf6\x87Iç\xfd\xfa\xd8\x01J\xcfA\x13\x92o\x87L\x98&:\xacr|\xc4D\\u\xd4D\xd0~\xccDPt\x1c,\xcd,\x06\xf3'3|\xf9t\xfc4\x83\xaa4\xd3L\x9c=\x8b\xaa<[\xfb6G\xf92\xd7,fl\x9e\x19hm\xbe\x19\bj\x01:\xb1\x90\x1f\x16\xa1\xb2ŬyIR\u007f\x96\x92\xe0ˠ\x91\xcb\xcd\xe2\x89V\x98\x05]\xaf4\vR^\x05\xcdY-$[c\x86/YkVH\xb3\xceL\xf7\xbd\xdeLӻ\x81\xaa\xb4\xd1L\xf0\xbc\x89z\xf2sR\xa56\x9b\x05\xb4n1\v\x88\xdbj&p\xfc\xc5,\xb8p\x1bua{\xb2\xe2_\xa9\";`\xf5~3\xd3\xff\xef4\x8bW\xd9E\x13\xbcی\x97Z\x99ŷ\xef5\x13\x8c\xfen\x16\x10\xba\x0f#\xfe\x03\xe5~\xb3\u009e\x03\x94\x98\x83l\xe7\x90\x19P\xec0?\x1d!q\x8f\x92\f\xc7̊^\x8e\x9b\xb9\xdcF\x85\xec$\xf5\xe1\x94\x19X鴙{\xf5\xcd\x1a*\x9a9\xb7H2\x9fE\xdb\xe7\x92\xc3>o\x06\xb2\xbc`Vdy\xd1\flz\xc9\xcc`\x11佢zr\x95}\xb9f\x16\x90t\x1dzqC\r\xc4M|\xf7\xb7\x19\xc0\xe9\x1f3\xd0ٿ\xec\xf3\xad\xe40o\x9b\t\x91\xee(c\xeeB\xbf\xef\xa9\x1d\xbf\xcf\x11= \x05\x1f\x9a\xe1\xfb\x1eA\x10\xffS\xd3\xfb\xd8\f\xfc\xf3\xc4,\xc8\xe9)5#\x97E\xba\x91\xdbBl\x95\xc7Bz\xe4\xb5\x10\x02\xe5\xb3PQ\xf2[\x14\x86\x14\xb0\x10\xf5\x14\xb4\xc0*\x15\xb2\xc0V\x15\xd6NJX\xf0N\x0e\v\\mQ\v\xd5\xe8Y\v`G1\x8b\xba\xce\xe2\x16\x9a\x82\xe7,p`\xcf[\xe0\tKX\xc4x\x94\xb4\xa0S/X\x12\xf2\xf8\"zV\xcaB\xe3\xf0\x92\xf6\xa4\xb4E\x80D\x19\x8b`\x85\x97-P\xb0\xb2\x16\xbc*قE7\x16\u009ar\x16!|y\x8b\xf8\xb3\x14\v\x95\xb4\x82E\x04\xae\"\x9b}\xcd\x02KP\xc9B\xa7[\xd9\x02iy\xddBk\xf7\x06*\xabb\x81{\xaaj\x81\vz\xd3\x02;PM\xbb_\xddB\xafH\n\xbce\x81e\xafi!;߶\xc0\x92\xbcc\x11C_\xcb\x02M\xa9\xcd\u07be\xabMԱ\xd0d\xd4U2\xbdg\x11\xfd\xa9\xa7\xbfַ\xd0\x184\xb0`\rICV\xd1H\xbf}\xdf\x02/\xd8X?~`\x11W\xd7\x04eS\v\x8cև\x16N\x8f7\xe3\x9d\xcd-\"\a-,L\x02\xb6\xb4`\xf1\xdeG\x16\xb5\x11\xad,bZZ\x93\x04m,b`\xdbZ\x98Zjg\xc1\x8a\x81\xf6\x16Q\xbe\x0e\x16\xe4\x1e;Z\b\xd1:Yh\x18:[\x10\x9ft\xe1\xa5+\x87ٍ\x97\ueb34\x87\x05Ɍ\x9e\x16Ht/\vB\xeaސ\x96>\xfc\xf01>|\xa2\xc4\xfd\xd4\"\xc1e_\vv7\xf6\x13i\xe8o\x91\x1cP\xaaE\xd5l\x80\x85\xd6x\xa0>0Ȃ|\u007f\x9a\x05\xda\xf8\x99E,\xc7`\vva\x80,\xe9\x16\xccC\x0f\xb5\xc0S\r\x83h}n\x81\xc6\f\xb7pK\xa2\x05`)\x03\xb7gZ\xc4я\xb4`\xf5\xc4(mk4\xebȂ\xb8e[\xb8\\g\x8c\x05\x19\x8b\xb1\xe8\xfe8\x92`\xbc\x05I\xeb\t\x16N\x06~A\x1e|i\x11\a\xfc\x95E\"\x8d\xaf\xf1\xff7\x16ؙo\xf1\xd5D\v\x94~\x92j\xdew\x10\xdd\xc9\x16,\xb5\xb1`\xde\xe1\a\xedG\x8e\x05\x93\x13\x06\v\x12\xa6(M\xb8\xdb̆,\x16\xa4@\xad`\xa4\xcd\"\x99);\xf8\xe7\xc0\xb0\x9d\x1c\xaf\xcb\xc2\xd9\t7\xef\xf6\xa0G^\x8c\xde'\x04\xf7[\xc4W\x04Pq\x90\xec\vQ\xd6\xc3ڏ\b\x852j\xc1\x84F\xccBC\x1e\xb7\x10\x9fN\x01\xf5\xa7Z0\xd5\xf6\xa3\x85)\xaei\x16Y\xe7\xf1\x13\x885\xdd¥\xa73(b3-X\xad>\x8b\xf2;ۂT\xd4\x1c\xb68\xd7B$9\xcf\"\xd0s>\xa9\xbc\xc0\"\xb1\xf6B2q\x11\xe5l1ƹ\x046b)~_f\x81\xf1^\xaeva\x85\x85\x90a\xa5\x05\v\xc7VY\x90\xf2^mQ(\xb6Ƣ\xb6v\xad\x05\xa6r\x9d\x05\vCף\xc3\x1b,\x00\xe6\x1bI\xb0M \xfc\xcfhp\xb3E\x12s[,p\xbd[)\xe4\xbfP\x14\xb7i\xc3\xdbѧ_I\xfb\x1d\xb0N\xbf\x89\xcdHO\xd9i!\x96\xdb\xc5\av[\xb89k\x8fJ\xf6^\v\xf1\xd4\xef\x16\x9e\xeb\xa6d\xfe\xc3\x02o\xbc\x9f2y\x80\x97\x83\x16d\xf7\x0e\xf1\xb7\xc3\x16\x8d\xb6\x8eh\x95G-\xf4C\xc7,\x98\x138n\x01\x929\x01\x19;\xa9f\xe8\x94%\x99/\xb50Y\xfb\xa7\x05\xf3t\u007fY\xb8\x8b\xfe\x8c*\xffY\x12\xf0\x9c\xf6\xf2<\xfd\xc1\x050\xfd\"\xb9v\xc9\xc2H\xe3\xb2^\xaf\x90oW-\x82S\xaeYt\x95\xd0u\x98\xa6\x1b4\xb57-\x8a\x11\xfe\xb6ps\xd5?\x16̄\xfdK\x8d\xbae\xc1۔n\xb3\xffw\xd4\xfeܵp\xb9\xd6=T|?\xc9\xcb\a\x16콰(J\u007f\x84\xae\xfdG\x95{l\xc1\x19\x8fO OO\xd5V\xe6\xb2\xc2\xf9\xe4\xb6b6%\x8f\x95\x04\xc9k\xd5\n\xf2Y\xd1\xfd\xfcV\x02\xe1\x02V\xc6S\x05\xad\xe8a!+\x83\x8f\xc2V\x8c\xbd\x88\x15\xb4}\xc6\n+X\xd4\xca\x03Q\xad\x84rŬ\x90\xf8\xe2Vr\xf69+\xc6\xfe\xbc\x15\x89\xba\x12V\x12\xb8\xa4\x95L{\xc1*\x12\xf6\xa2U\xa8T\xca\n\x03\xfc\x12k-\xcdZ\xcbXuO\xa2\x95ֽ,\xebyE\x9f\u007f\xd5\n\xf5,g\xa5ܔ\xb7\n\x19R\xacT\xd2\nV\xeaeE+\xd4\xf45\xabУ\x92\xf6\xa02\t\xf1\xbaU9\xf5\x86\x15\xaaY\x85t\xa8j\xe5&\f\x8e\xb7\x9a\x15\xda[\xddJ\xf5\xaaa\x05\x99߲B9kZ\xa9\xbeo[E#߱Rdja`\xb5\xadP\xdcw\xadP\xb4:Vhk]\xab\xaa\xe1{V\xe8g=+T\xae\xbe\x15J\xd9\xc0*\x9a\xd7Њh\xd1\n\x1dz\x9f}jl\x85z}`\x85\x066\xb1\x8a\xca5\xb5B+?\xb4b\a\x86\x12\xa59~ja\x85Ƶ$\xfd?\xb2ByZ)\xa1Z[!dm\xacХ\xb6 [;p\xa1\xbd\x15\vQɋ\x8eV\u0557NVQ\xa3\xce\x18T\x17\xab\xbe\t\xd9J\xa5\xe9f\x85\x0eu'\xadz\xb0\xe6\x9eV\x8ao/\x15\xa8\xdeh\xa2OR\xdc>\xb6BD?\x01K>%\xc7\xfbR\xaa\xfaQ\xe4\xfa\xabȥ\xaaX\rPy\x1aH\x01\x18d\x85\xb9J\xb3\xe2\x95T\x1c\xc6`+\xb2*C\xac\xaaf\xe9\xf8q\xa8UQ\xf10P\xf6\xf3\xe4\xc7\xe1V \x9e\x11V`\x90\f+\x17-fZ\x810G\xf22\xca*^f\xb4\x15\xf35Y\x18B\xb6\x95\x88}\f\xfb1\xd6*\xe8b\x9cvr\xbcU\x17\xa2O\xb0\"\xd7\xf8\x85\nۗV\x81\xfc_Y\xe1R\xbe\xe6o\xdfp\x04\xdf⧉\xaa\x8f\x93\xf4\xfa\x9d\x15\xb0r\xb2U\xdc\xd4\xf7V\xa6\a~\xb0\x8aoαJ\x02\xc0`%\xc02R\bMV\xec\xb60[\x05\x1aX\xac@\xe2V6`\xb3½٭\b\x1c\x1cVdT\x9ch\xd5ee\n\xd7mŤ\xafNJ%#^\x8e\xccg\xc5\xf4\xbaߊ7!\x83\x94A\x1d{\xc8*X3lE\\\x19A\x1f\xa3*\xf71+v\xecǕ\x9cS\xac\xcc/N\xb5\xe2H\x90\x1f!\xa7\xd3\xd0˟\xac\x04\xae\xd3)\x993 \xb43\xad\x922\x9a\x85\x1bf\xb3\xffs\xac\n\xad\xe7Z\t?\xe7\xe9u\xbe\x15 w\x81\x15\x89\x85\x85xr\x11\xad\xc6b\x8a\xd2\x12^\x96Z%P[f\x955B˭\xb0\xb5+\xac\x92\xf0Zi\x95Xa\x95\x15k\xc6W\x93;k\xc0\xe5\xb5ʇu:\xac\xf5Vƅ\x1b\xa8\x8a\x1b\xad\xb2[r\x13\x89\xfe3*\xde\fA\xd8¯\xb6Z5#\xf6\x8b\x15\x11\xed6+6;n\x87V\xffj\xe5\x11\x8a;\xac\xba!Ê\xd5U;\xad\x82\nw\x91\xf1\xbbѿ=|z/\x15\xffw\xf0l\x9f\x15\x8b\xa7\xfe\x10\xaa\xa5\xa6\xec'\xfb\x0f\x80\a\a\xf9\xec!\xf6\xf10\x06rĊ\xf9\x92\xa3\xb8ᘊ\xe9q\xab\x00\xc0\x13V\x01O'\xf1\xcb)\b\xfai+N\t\xfb\x13\xdd\xfc\v\x86\xe0\fm\xd4Y\x15\xe4sV\xba\xf3\xf3\x94\x98\vl\xfebR\xad/Y\x91\xed\xbf\xcc\xcf\xe9)Wh\xf1\xae&\xd5\xe2\x9a\x15\xbb\xa5\xae[\x15\xe8\xde \x8boB,\xfe\xb6rb\xe1\x1f\xf6\xff_\x8e\xfa\x96\xca\xe8m\x1a\xf1;ʐ\xbbV\xc9\xd4\xdcSQ\xb8\x0f\xc3\xf4@;\xf9\x90\x9d{\x84\x01\xfc\x87\xf1=\xc6\xffOh՞Z\xe5\\\x88\\6\xe8En\x1b\x93LylX{\x99\xd7\xc6\xfcf>\x9b\x90(\xbf\r\xfd+`\xc3Z\xa3\x826\x84~\x85l\xa8\xa5\xb0\x8d\x93\x14El\x9c\xfdy\xc6F\xd2\x14\xb51\x1b\xf3\xac\x8d}+f\x83H\x16\xb7I\x87\x9f\xb3\xb1\xfb\xcf\xdbDZJ\xd8\xe4L\x8a\x926\x86\x856Ʊ/ڠ\xbd\xa5l\xd2\xe3\x97ث\xd26\x19D\x19\x94/ې\xc9(k\xc3\xda\x1a\x1b\xb7\x1b\xbfjcN\xbc\x1cn)\xcfn\xa7\xd8\xe0\x89+\xd8\x18\xe9W\xb4\x89\x86\xbc\x86\x81U\xb2\x89JT\xb6a\xbb\xcc\xebh\xea\r\x9b(z\x15\x1b\x91\u007fU\x1b_Ϩ\x1f\xabٸZ\xb9\xba\r\xbc\xa9a\xd3\x04\xc1[6n#\xa9\xc9\xef߶\xe1@7\x1b\xe8_\xcb\x06\xbd\xaam\xe3J\xd7w\x95Nul\x9aj\xafk\x13s\xf6\x9e\rf\xb8\x9e\x8d\nWߦ'07PJ5\xb4\xc1n5\xb2Ѡ\xbc\x8f\x016\xb6\x89l\u007f\x80A4\xb1A\xea\x9b\xda\xf4`p\x1b\xf6:4\xb3!E\xd0\x1ccnaCڢ\xa5\r\x1bI?Қ[ٰ\x9c\xb3\xb5\r\xdb\x04\xdb\xd8\xc4µ\x05\x97\xda\xd9T}\xdb\xdbhe;\xe80;\xa2\xbaN\xa0Wg\xb2\xa6\x8b\r\xf1sW\x1b\x96\xb3u\xd3\a\xba\xdbD {\xd8t\x1dVO0\xab\x97\x8dP\xac7(\xddGG\xf4\xb1\r\x1a\xf6\x89\r\xe6\xf6St\xa3\xaf\rz\xd2\x0f\r\xf5'mS\x93\x9d\x1a\x00\xba\rd\xbb\x83\x94Ai6\xe6H?\xb3Q\x89\x06\xdb`\x15\x87\xd8hk\xd2mX\xf83\x94\x14\x18\x06\"~nc\x14<\x99ԏ\x91Iv\x8d\";GC~\xb20\x84l0`\x8c\x8d/:\xe6e\x9c\rہǃ\x90\x13T\a\xbe\xd0\xeb\x976I\x19|\xa5t\xf8\x9a5~\x93h\x1f\xdb\xf4m\x8a\x8b&\xb2\xef\x93P\xc5w\xa0\xe4d\x94\xdf\xdb8\xb9\x88\xee\xe7\xb0\u007f\x06\xad\xda\xc8\xcaL\xaa}f\x90\xceb\x93ē\xd5\x06\xa3lSZ\xd8\xd9C\x87\r\xde\xceI\xea\xbalb\x00\xdd\xfc\xe0\xb11\x1d\xe3e\x13>\x1b\x17\xca\xf9\xa9\xa8\x01\x1b\xa1h\x90\xf5\x84\x94la\xfe\x1a\xb1\xf1\x15jQ\x1b\x92$1\x1b\x122q\x1b\xf3\x9dS\xf8q*e\xe7G\x8cp\x9a\r\xee\x90j?]\x891C\xab\x99\ty\x98Ey\x98M\x12\xcfa\xc3sm\xccKͳ\x11\xe6η!\xbf\xb7\xc0V\xb0k\xda\xe0\xd4Qi)\vQ\xf1\"\xc8\xecb\xea\xe4\x12^\x96\xea#\xcbԆ-\xb7\x15\xe8\x906*5;e\x85\x8d\x8bll\x12]\xac\x02\rW\x83\xdakTZ\xd7\xda\nv\xcf\x1a\x9d=,-e\x1d\xed\xdaz\x1b\xc0\xdb\x06[\xe1\x04\xd2\xe5/\x1bm|]\xfe&\xb4\xff\xb3\r\x93'\x9bmؗ\xb0\xc5\x06\x97\xb6\x95\x84\xfe\xc5V\xb0w\xea\xe0\u052c\xb4\x94m\xe8\xe5v\xaa\xe4\xaf\xff\xfbz\a\f\xcao6,t\xdci\x93\xd4\xee.\x1b|\xcan\x1bV*\xed!\xd5\xf7\x92ſ۰\xe6a\x1f4\xe4\x0f\x1bC\x87\xfd\x94\xe7\x036@\xe5\x836\xfa\xc0CIu:Ls~ĆL\xcdQ\xb5CǨ\x95\xc7myZ\xa4\x9c\xb0I\n\xe3$L\xf6)\x1b\xc0\xfai\x1b\xf7\x05\xfc\xc9J\xffb\x13gl\xea\a\xcfژ\xbb:g\x93\x99\x84\xf3\xa0\xc3\x05\x9b☋\xe8\xdd%\x1b\xbd\xffe6t\xc5&SFWm\x84\xe7\xd7X\xdf\xf5\xa4Fܰ\xe5k*\xabP\xd5\n\xffmC\xd4\xf3\x8fM\x92j\xff\xda\x04*ܲ\x01\x16ܦ\x86ܱq\x01\xe5]\xe9\xfe=\x9b\x00\x8b\xfb6\xa2\xf6\a\xa4\xfcC\x1b\xc0\xd3#\x9b \xa0\xfflxՔ\x8d\xb9\xd6'6\x04-OmLs\xe7\xb2K\\\x93ۮ.<\x8f]\xc4!\xaf\x9d\xce.\x9f]\xcf\xfb\xcco\x17\vW\xc0\x8e\x83\xa3\n\xda\xe9q\n\xd9\xd9fa;\"\xdb\"v4\xfd\x8c\x1dh\xbd\xa8]\xb3\xae\xcfڅ\xc7\xc5\xec\\\xf9]\xdc\xce͋v\xa6a\x9e\xb7#\x1a(a\x87\x97(i\x87G{\xc1\x8eu\xa8v\xf6\xb7\x94\xb6\xf2\x92]\xf0Li;\xe9Z\x86O\xbcl\xa7A.\x9bl\xed\x15\xbb\xe0\xccW\xed\b\xa2\xca\xd99\x87^\xdeN\x98\x9ab\xc7\xca\xdc\nvl3\xa8h\xc7\xcb\x19\xed$z%;\x93\x97\x95\xedX8\xfc\xba\x9d\xd6\xe4\r;\xfdN\x15;\xc3\xc0\xaav\xf0\xe6M;\xbct5;NǪ\x9el\xbd\x86\x9dr\xf3\x96\x1d^\xaa\xa6]4\xecm;\xe7{߱ӒԲkj\xa3\xb6\x1do\x83x\xd7\x0e\xf8Q\xc7.ӱuI\x9f\xf7씰zvHo}P\xa4\x01\xc6\xd6\x10\xff7\xb2#\xbd\xf7\xbe\x1d\xa7\xe56V2|\x00Z7\xe1oM혋\xf9\xd0.b\xd4\xccN\xd1knG<\xd4\xc2\xce\x18\xba%\xf8\xfa\x91\x1d\x11P+;\x03\x91\xd6v\x95\xf36vh_[;\xe6\x03\xda\xd9y\xa0\xd7\xc7v\xccw~\x02\xc1\xfc\x14#ꫤ\xeb\xa7d\xe9oǤI\xaa\x1d\xa1\xe9\x00\xbb\x18\xf7\x81(\aa@il\xf03\xf6t\xb0]\f\xcb\x10;\fK\xba\x9dfc\xa8]\xd4t\x98\x1d\n\xfeyr\xc4\xc3\xed\xf2\x12\r27C\x99\x99\xa9\x8d\x8e\xb4\x8b&\x8e\xb2\x8bJ\x8dF3Y*\x9aٔ\xfc1\x18\xc4X;\xa6\x17\x95\xde\xe3ѫ\tv\xa8\xe3\x17*\xd2_ڡ\x82_Qo\xbe\xe6\xd3\xdf(=\xbf\xd5J'\xaa\x96MBS\xdf鯓)\xf7\xdfC\b~H\xca]\x8eJ\xab\x81\xd2i\xa4\xf8\x9b(\xcaf\xd5\x02K\xf2n\xab\xaa\x83\r\xf2d\xa7\x14:P\xa3\x13\x1cpQ\x80\xdc\x14>\x0f\xa9\xecU\x91\xf1Q\x82\xfc\xca\xf6\x00\xba\x17$\xa5C\xa4{\xd8\x0e;\x1d\x81\xe4E\xed\xd8Ǐ2n\x97D\xed\x14;\xd68N\xb53\xdf\xf2\xa3]vOMC\xf9\x13n\x9bnG\x14;Î\xa5\xdf3\xf5\xbeYz\x9d\xad\xd79vx\xa8\xb9\xfaq\x1e\uf78f\x1a\x16\xe8\x97\v\xf5\xba\xc8N\xbb\xbf\xd8.\xab\x92\x97ع\xd2y\xa9^\x97)\xb3\x96+aV\xe8u\xa5\xbd`\xd7\xec\x01r\x8e\xe4*;\xcf\xf9^\xad\xf5\xad\xd1\xeb\xda\x04\x89\xd23S\xd6\xd9\xf3\xb6\xceLYo'\xf0\xd9`\x97ue\x1b\xedD\x19\x9b\xec|\x97\xb1ڗ\xcd\x10\xe8-(\xb7\xdaq\xaa\x8d\x1d\xc9\xd1m\x90\x9e\xed4Q\xbfڑ\xa1܁\x1b~\xb3\xcb\xca\xef\x9d\xca\xc6]v\xeeӰs2k\x8f\x9d\x89\x93\xbdv\xf1\xb0\xbfӞ\xee\xb3#+\xf4\x87\x9dY\xea\xfdP\x80\x03Tƃv\x01M\x87\xd0\xc7\xc3\"\xeeGT\a\x8fR\xb4\x8e\xd9\vv\xcb\xc8J\x1b\x9e\x91r\x9c\xb5\x9cPƟ\xa458e'\x14=mG\x14\xf2'9\xff\x17\xac\xf3\x19;\xa3\xb9\xb3\x14\xe9s\x18\xd2y\xbb\xae\xe8\xbf\xc0\x9e_T^\\\xb2\xc35^\x86\x9e_\x81:^\xb5\xcb!c\xd7t\xa4\xd7\xed\x80\xfe7\xec\x92E\xbaIk\xf67e\xf2\x1f;pƿ\t+\x92\x96\x99r\xcb\xce \xef6\xe5\xfe\x8e\x9d+\xe1\xeeҖ\u07b3\xcb|\xd8};\x91\xf3\x03H\xf8C;6\x1b\xf9\u0601\xd8\xf3\x13\x8aϧ\x0e\t*\xfaB\x1a\xfa\xb1\xcb\xfd\x95\x10\xa9\xe0\xe6\x00\xdc0СKn\x1c0\x92i\xac\xf13\aQ\xcc`\x87\xa6Ň8\x04\x97\xa6s\x9cC\x1dr\xa0\xe30V\xfa9*\x1bN\xd1\x18A\xa9\xca \x013\xd1\xf8H\a\x80\xff(\xde>\x9a\xbc\xcfr\xc0\x01d;\xb0\xf4h\x8c\x03\x1bQ\xc6j_Ʃ\"\x8c\aq'`\xc4_@.\xbft\xd0r~\xe5\x10\xf4\xf95\xbb\xf3\r\x18\xfa-{>\xd1\x01\x838Ɂ\x00\xeb;\xb2p\xb2\x8a\xd6\xf7\x0e\xfa\xa2\x1f\x1c\\\f\x97\xe3\x10\x93bp\xf0|/\xa3\xf2ȤW\xb3C<\x8d\x05\x82lU\xd2\xd9؊\x9d\xa2\xe4\xc0oNt\xd0\xe5\xe0\xc2@\xb7\x83\xe1\xb4ǁcm\x1c\xccv\xf8\x1c\f7\xfc\x0e\xcc^\x060\xb2\xa0\x83;\x91C\x0eq6a\x87B\xeb\bY\x11u(\xea\x8f9\xc4\xe3\xc6\x1d\x8c\xa6\xa680\v6\xd5\xc1L\xe4\x8f\x0e.\xb7\x9f\xe6\x90\xe0\xe4'\a\x1c\xeat\aC\xc2\x19\x0eN\xfc\xcf\xd4\xde\xcfr`?\xe1l\a\xe68\xe6\x90Fs\xf5\xa6y\xa0\xf0|Pv\x01%x!{\xbbȁ\xb4\xe5b\xca\xe7\x12\x90{\xa9\x03\xce~\x99\x83\xc7\xce,w\x10\xb6\xafp\x00X\xact\xc8ΝU\xe0\xffj\ar\xe8k\x1c\xb2\xf6a-\xf9\xbe.9\xb6\xf5\x0e\x80\xad\r4d\x1b\xc9\xd0M\x0e\x01P?\x83F\x9b\x1d\x98\xbe\xd8\xe2\x10H\xb8\xd5!Q\xf0/\x0e8\x8dm\x0e1\xd0\xdb)\xed\xbfҰ\xeePj\xfc\xe6 \nډ\av\xb1\x91\xddT\xf9=\x0e\x06\xbb{\x1dL\xa7:x\xa4\xeb>\x87\xe6\xb2\xfep\x14\xe8\x98%\xe7E\xee\xa7\xfe\x1e\xa0\xfe\x1fL\xda\xc2C4\xa3\x87)\xcfG`\xa6\x8e\x82E\xc7@\xc1\xe3\xf8\xff\x84\x03\xab\\N:0\x17\u007fJ\xdb<\xcd6\xfft\xe8\xcb\xfc\x1d\b^\xcf8\xe8\x9a\xcf:$\xa7r\x0e}>OB^\x80\x84]dO.\xc1#\\VWp\x05\x02v\xd5!H隃\x80\xf1:\xcd\xcb\r5\x977\x1d\x98\x8b\xf9\x9b\x1c\xf8ǡ\x87\x9d\xd2\x18߂\x13\xba\xed\xa0\x93\xbdC\x8e\xdfE\x13\xf7\x1c\x9a\x98\xbd\xef@.\xe1\x01\x84\xe2\xa1\xca\xf2#\aS-\xffA\xee\x1f;d\xba\xe8\t\x89\xf4ԁ\x1cv.'\x8e\xb4\xcd\xed\xc4\x18\xf28\x13\xc6.\xafS\xb8\x99\xcf\xc9\xed\xa1\xf9\xf1\xa9\x80\x13\xc3*\xe8\x04\xef\n9a\xc6\v;\xb5\xed\"\xc9\u007f\x9eq\xe2h\x8d\xa2N\xa6\x1e\x9eur\xa5z1\xa7Щ\xb8St\xe79',\xe0\xf3N\x01\xaa%\x9c\x18nI\xa7t\xfa\x05\xa7\xf0\xe4\xc5d]\xa5\xd8\xe4KN\xbe\x94\xd8\xc9\x11\x95q\x8aH\xbf\xec\x94e\x00e\x9d\fn^q\n\x1b_u\xd2\xe0\x94sb\x92\xa3\xbcS\xf1\u007f\x8aS\xc0{\x05')Qщѿ\xe6TkY\xc9\t\x04UY\u007f~\xdd)3\xe1o8i\x18\xaa\xa0\xb1\xaaNh\xea\x9b\xf8P\xcd\xc9\xd4[u'\xac}\rg2\xad\xeaD\x96\xa1\xa6\x93\xc6\xe3m'\x94\xe7\x1d\xa7\x80\x9fZN\xb0\xa6\xb6\x93\a\x15\xbc\xeb\x14\xf5\xaa\xe3\xc4F\xbd\xbaN\xca\xf4{N\xba\xe8zzS}R\xa6\x81S\xb5\xaf\xa1\x93\xae\xbb\x91\x13\x13$\xef;\x89D\x1b;!\v\x1f8E\xc0\x9aplM\xf5\xb7\x0fyk3'\xc3\xeb\xe6NZ\xd6\x16`FKm\xef#\xde\xd4ʉ\x1d\x1b\xac\xad\x8d\x93k\x03\xdb:aE\xda9\x99\xe6n\xef\x84\x1d\xe9\xe0\xa4\xc4vt\x8aLur\x12\x8fv\x86\x98tq\"\xea\xecʎts\"(\xe8N\xd2\xf4 \x15z\x82½\x9c@E\xbd\x9dt\xc3}\x9c\x88-?v>\x93\xc0 i#2\x86gde\xa4|\xe2\x84q\xfd\x94r\xd0\xd7\t\xcb\xd6\xcf\xc9e\x00\xfd\x9d\x98MIu\x024\x0epbG\xfa@'\x8c\xe0 \xa7\x04)iN\xf1v\x9f\x81\x03\x83\x9d\xcc1\x0eq\"\b\xbd\xc0I\x17\xb3\x10\xb4]\xc4\xe1,FǗ85l\xc4s\xcbP\xe3rX\xa3\x15\xfa\xd0J\xfc\xb2*ɐ\xd50bk\x9cpekul\xebȑ\xf5\xaai\x1b@\x80\x8d(7%\x1f\xfc\x99Vd\xb3V\xbb\x05}ي{~\xe1\xe3ۜ\x043\u06dd\x98\xc8\xf9\xd5\t\x0f\xbb\x83\xc2\xf8\x1b?\xed\xe4e\x17:\xba۩\x89\xfe=\xb0({\x9d\x9a\f\xf8\x1d\xbf\xees2`\xe4e?u\xf9\x00Fs\xd0\xc9E]\x87\x9c\xc0\xaf\x87\x9d\x9c$>\xa2z\u007f\x14\xa49\xc6'\x8e;e\x0e\xfe\x04L\xecIU\xd7SԈ\xd3NIS\xfe\xe9Է-\xe2\x963NDag\xb5\x85sʱ\xf3j_/8q6\xc3E\xa7\"\xf4Kp\x03\x97i\x84\xaf\x80\xadW\x9dX\xfbz\x8d\xba|\xddɼ\xf7\rX\xb8\x9bN°\xbf\x9drx\xc6?N\x01-\xff:e\xa1\xc3-\xd0\xf36\x86w\xc7ɅnwI\xac{\xd0\xcb\xfb\xb8\xe1\x81S\x8e4y\xe8$z}\xe4,\xdcz\xf4\x90\xf4\xf1\xd9\xc3\x13\x11\xa3\x93sL\x8f\x9d⥟\x80\xa2O\xa9ع\\2\xce\xdc.¸<.]\x88\xe3\xa2z\xe4s\xc1\x94\xe5w!\x9f]\xc0\x05^\x16taW\xbfK\xea*\xec\x12\xbcW\xc4\x05\xfe?\xe3Jxآ.\x84SϺ\x80\xbd\x8b\xb9\x10!\x14w\xa1\xb1\xe7\\\xec\xdb\xf3.\xe4>J\xb8\x04:\x95t!\xa7\xf5\x82\x8b\x0e\xefE\x17\x8ei)\xe5\x82\xd5|\xc9\x05\x95*\x8d;˸\xb0T\xe1e\xb4\\\xd6\x05\x8c\xf1\x8a\x8bٮW\xd9B9\x17\xa0Ly\x17\xa8\x93\xe2\x12\x92Up\xa9(Uta\x9e\xe35\x17\xb0\\%\x97й\xb2\v \xf4u\x17߯\xe8\"\xba\xad\xe2*\xd8*u\x80\xbc2\xb1\xaa\xab@\xebQ\x92F|\xd3U\xa0\xc3\xe0\xd4\xd4a)\xd5\\0\xdd\xd5]\x98\xbb\xa8\xe1\x12&\xbf\xe5\x12\x10S\xd3%\xccx\x9bm\xbf\xe3\xc2\xdb\xc7j\xb9\xc4^\xd7\x16ʼ\xeb\xa2\n\xd5q\x11\xac\xd6E\xef\xde\xc3\r\xf5\xc0\x86\xfa\x18Y\x03\x97\x88JC\x97\xb0\xbe\x91\v\xc6\xff}\x97\xe0\xa1\xc6.:D\x17\xa7\xff\x9a\xb8\x80⚺(\xb8\x1f\xb2\xddf\xbc4wa\x91O\v\x17^\x8e\xe1\xa2\x01\xfd\x88\xbf\xb5r!\xe5\xdd\xda\xc5\xf8\xa6\x8d\x8b*\xd2օ\xc5\b\xed\\\xa2\x14\xed]X\x85\xea\xd2\x05^\x1d]<\b\x9c\x15tv\tB\xec\xe2\x02Z\xee\xea\x02\x02\xed撬Ow\x97\xa8W\x0f\x17\xbdKO\xe5w/HLo\xb4\x93\x9e\xd2Dž\x00\xf1c\xfd\xf1\x13\xfc\xf8\xa9K\xf4\xba/\x05\xad\x1f\xe8\xd0\xdf\xc5Dt*\xa5e\x00\x1a\x1d\xe8B\xf2c\x10\xe5*ͅ\xf4\xcag.E*\x83]\xb2=d\b\xb8\x91Nn\x0fu!qJZ}\x8e߇\xbb\xe0\xadG\xb8\x18\x9ed\x80\x0f\x99\xa0\xf7H\x97b\x92Q.y\xb1\xf8h\x17\xa0c\x96\x8b\xfa\x93\xad\xe3\x1a\xa3\xea1V\x85o\x9c\x8b\x86o\xb709\xbf[:V\xc0\xadӷ\x05\xdd8h\xa8\x90\x9b\x01fa7\x9c@\x117z\xf3\x8c\x9bswE\xdd\"\xd7ϺE\v\x8a\xb9I\x99\xe2n\xc9y?\xe7fN\xf7y7T\xbc\x84;OӔ\x92\xee\xfcm\xf1\xc6~\xb7$\xca^t\x03ߖr\v\xa2}\xc9\r\x04]\xda\xcd׀\x95q\x8b/z٭\xa4/\xebF\x9a\xf3\x157\xec\xe0\xabn\xae\f.\xe7Fڴ\xbc\x1bH1\xc5MXT\xc1-\x10\xa4\xa2\x9b\x1c~\xcdM\x01\xa8\x84o+\xbbE _w\x03k\xbd\xe1fJ\xae\x8a\x1b\x81OU\xb7\x92\xeaM7c\x97jn\x81\"\xd5\u074c\xe8j\xb8Aз\xdc\xe2\xe3j\xba\xa1;o\xbba\xb3\xdfq\xd3m\xd5\x02\x19k\xbb5~ħ:n\xc0\xa4\xban.\xfb}/\xf1xjJ=7\xf2\x05\xf5\xdd\xd8}\xd0\xc0]\xb0m\xea\x84Ԅcn\xe8\x16\xdf\xd8\xc8\rl\xf6\xbe\x1b\"\xdf؍\xc8\xef\x037_=\x9c VZJS\xa5\xf4\x87\xfc\xb2\x99\x1b\x8e\xbf\xb9[\x81e\v~\xddҍÿ?rc긕\x9b)\x91\xd6nq\"mtTm݀\x1e\xed\xb4\xc2\xf6\xe0E\a\xb7\x88_Gr\xa4\x93\x12\xbb\xb3\x1bo\xebwcz\xb5\xab[\x8c_7w\x02\nt\xe77=܄[=\xddb[z\xb9\x11(\xf4vS\xab\xfb\xb8\xe9\xfe>vs\xbd\xc7'n\xe4i?\x057\xfa\xbai\xba\xfa\xb9\xa9\x9b\xfdݚ\xbdMe\a\x06\xa0\xe1\x81nz\xf6An\x18\xe147\x16X}\xe6\xe6\xfaTmg\x88\x1b\t\x8fte\xe0P7<\xd407A\xed\xe7z\x1d\xee\x86\v\x18\xe1\x06 \xcc\xd0\xf1e\xba\x19w\x8ft\v\xa4\x1cEi\x1f\xed\xd6\xd7ghdz\xf5\xf3\x187\xe7$Ʋ\xc1qn\t\xc7ƻi\x8f&\xb8\x01\xa7\xbepý\u007f\xa9\xc2\xf1\x95\x9ba\xc3\xd7n5\xb0\xdf@Ŀu\xc34OD\xab\x93\xdc<\x0e\u038d\xb9\xed\xc9n1\xfb߳\x9a\x1f\xc8\xd3\x1c\xdeap3P4B\x91Ln\xe6\x1b\xcd$\xabEykuc\xfa\xc0\x061\xb6\xbbaL\x1cnYX\xe4Dk.7\xb6j\xba\xdd\xac\xe7e\x03/\x1b\xdd\x12:l\x82\xc2\xff\xcc\xfb6\xbbe\xe7\xe4\x16\x90{\xab\x9b{f~!\xaf\xb7\xa9\xddٮ\xf2\xf2\xab\xf2k\x87\x9bo8\xfd\xcd-3\x03;\xddX\x86\xb6\xcb-8i7\x87\xb5\a\x94\xddK\xbd\xf8\x9d\xb4\xda\a}\xfeCe{\xbfJ\xf3\x01\x10\xe0 zt\b\xf5\x1dV5;\x92\xe4\xe7Q7V\x0e\x1f\x83a<\x9e4~'\x94V'\xd9\xfc)7\x13\x00\xa7\xdd\xf4\xc3\u007f\xba\xe9\x97\xffrs\x1e\xec\x8cڵ\xb3\xb4\x84\xe7ܘ\x998ρ^\xd0\xce\\ts]\xd7%\x9a\xb2˪DW\xdcH\xad]\x85۹Fٽ\x0e\xde\xdcp3v\xb9I\xf2\xfe\xed\xd6\xf5\xab\xfc\xf8//\xb7\x92\xce\xe16Fy\x87\x86\xf6.,\xd3=\xb7x\xe3\xfbnL\x9c=H\x8e\xf8\xa1[\x10\xfd#7_\xbdH>=fW\x9f\xb8\xf1n\x85\xa7n\xf5չ\xe7ar\xf4y\x0f\x94\xbe\x84\aP\xb3\xa4\a\xcb2^\xf0\xc0Ͻ\xe8\x01\x15Ky\xb0\x8c\xd5CZ\x96\xf6\xa8U)\xe3aN\xf4e\x8f8\xe1\xb2\x1e*\xda+\xac\xe1U6Z\xce\x03\xc5/\xef\x11S\x9d\xe2\x11RU\xf0\x00\xcdT\xf4p\xeb?/\x95<\xf4\xa8\x95=\x84ۯ{\xa0\x96oh\x9bU<\xd8WQ\x95\x04x\xd3#\\\xa8\xe6\xa1\nU\xf7\x80\xf45\xf0\x88\x1a4\xf1\x88!m\xea\xe1\x82\xce\x0f=H\n5\xf3\x10(5\xf7\x00y\xb5P\xae\xb6\xf4\x10\xb6|\x04\xf2\xb6\xf2\xc0b\xb4\xf6\x88\x99mせm\xeb\xe1\xcc@;\x0f\xa6\x8d\xda+\x89;Pb:z\xf2w\xc0\x11\xe3\x1e\tc:+\xa9\xba赫\x88C\xc2\xd1w\xf3\xc0\x8bu\xf7\x00\xce\xf6\xf0ऱ\x9e\x1eQ\x84^$Bo\xb4\xdf\xc7\xc3Ŋ\x1f{4\x96\xfbģqԧ\x1e\x02\xb0\xbe\x1e\x99R\xeb\xe7\x11\xbf\xdd\xdfCۜ\xea\xa1w\x18\x00\x96\f\xf4PE\ay\x10\x13\xa7\xe1\xcb\xcf\xc8\xe1\xc1\xbc\f\xf1PA\xd3=\t\x87>\x147\f\xf3\x00\xdb\u007f\xae\x1d\x1f\xeeANs\x84\a\x87\xc4闙\x1eDM#=\xb4\r\xa3\x92\xb2=Z\u007f\xcf\xf2\x882g{h\xee\xc6x\xb8\xdfj,i:\x8e\xe3\x1c\xef!\xe0\x9f\xe0\x91\xa5|_xxH\x9c\a\xe6\xee+\x1d\xfd\xd7\x1e\x86D\xdfx\x90C\xfc\x96\x15L\xa40OR\xcd\xfa\xce\x03\v4\x99\x1d\xfd\xde\x03\x88\xf7\x83\a\xe1P\x0e\xc4\xc0ࡏ0\xaaX\x9b<\x84\x14f\x8f\x98\x05\x8bʃ\xd5#\xe0Ǧ\xa2i\xf7h\x06̡:\xe0\x04_\\\xd4v\xb7>\xe3\xf1\x00iy=\x92\xb5\xf2a\xd4~\x0f\x93[\x01\x0fQMЃLM\xc8#\b/\xecA\x8a&\x02\xb9\x8dz\x90^\x8ay\x984\x8a'5y\x8aG\x9c\xcaT\n\xf2\x8f\x1ez\xd1i\x1e$\x10~\xd2\xeeM'\afx\x90M\x9a\xe9A\x9c:\xcb#>v\xb6\ai\x859\x1e\x9aҹ\x1e\xa6\xc5\xe6Q\x88\xe7{\x00~\x16x\x90\xa1Z葔\xcd\"(\xebb\xadz\x89G\xcd\xebR\xfdb\x99G\x90\xefrH\xc0\n\x11\x94\x95\xa0\xdb*\x8ch5jX\xe3A\xcec\xad\xf2m\x9dGR\x14\xeb=HQl\xf0\xc0\xdfn\xf40\xe3\xb3Ƀ\x10\xf8gj\xf9fԺ\xc5èd\xab\xca\xf1/\xda\xf26\xda\xdf\xed\x14\xe0_=L\xb8z\xe8=\u007f\xf3\x00\x02\xee\x84\xd1\xd8\xe5\x91t\xc9n\x8f\x84#{h+\xf6*\x03~\xf7 \xcc\xdeG\x93\xfa\x87G\xf2\x1a\xfb=\f\xde\x0e\xc0X\x1ed\x97\x0ey\xd4\a\x1cf\x8f\x8f\xc0\xf2\x1c\xa5\xf1?F\x8d=\xae\x96焇ٌ\x93ЙS*\x0e\xa7=\b\xfe\xff\xa4\xb9\xfc\xcb\x03,|\x86v\xe6\xacG\xf7{x\x18\f\x9fO\xf4R\\\xa5~}\xd1\x03/vI\xdd\xc7e\x0f\xa0\xcf\x15\xf6\xe4*\xb9}\xcd#\x90庇\x19\x8c\x1bI>\xdd\xf4H6\xe1ou(\xff@\xe4\xffUռ\xe5\xd1<\xccmՖ;\x1e\x89\xdb\ueca3\xf7<\x92\xbe\xb8\xcf\x0e> \x81\x1e\xc2-<\x82(\xfd\xe7A\xb8\xf2\xd8#!\xeb\x135\xe6O=\xc4\x13\xb9\xbcL5\xe4\xf6\u009f\xe6\xf1\x8a\x11\xcb\xeb\xd5N\xe5\xf3\"\x86\xce\xef\x85\xc1.\xe0E\x04\\\xd0\v\xa6\x17\xf2\xc2\xf5\x16\xf6\"\x96*\xe2E\xec\xfd\x8c\x97\x00\xa3\xa8\x17\xf6\xe7Y/X_\xcc\vR\x16\xf7\xea\x19\x00^D\xd6\xcf{Ł\x95\xf02)Q\xd2Kiy\xc1+Z\xf5\xa27\x11o\x96\xf2\xaa\xe7\u007f\xc9\vY(\xede`P\x86M\xbe\xecE\xe0W\xd6\xcb\xe0\xd2+@\xe8U\xaf\x04X\xe5\xbc\b\x93\xcb{\x11\xa1\xa6x\x15\x1cU\xf0\x8ajW\xf4\x8a\"\xbc慍\xaa\xe4%\x0e\xae\xec\xa5\xdfx\xdd\xcb\xd8\xd2\v9\xa9\xe2%[\xabz\xe9\x16\xdf\xf4B\xfb\xaay\x11ZW\xf7¡\xd7\xf0\xd2\x1e\xbd\xa5\xa3\xab\x89\x01\xbc\xede\x18\xf9\x8eWps-/\xe2\x9d\xda^=b\x9c\xf4\xa8\x93\x1c_]/\xe3\x91\xf7\xbc\t\xbd\xac\xe7\x85s\xa9綾m\xe0U\x83\xd2\xd0\xcb \xa6\x91\x17@\xfa}\xaf\x82\xef\xc6^\xba\xd8\x0f\xbc\xe2&\x9bxŕ4\xf5\"\xce\xf8\xd0\v<\xd7\f}h\ue17fo\xc1\x9fZz\x05\x98~\xe4\xa5Mm\xe5\x15\x05n\xed\x15\xc9l\xe3\x85}n륨\xb5ӱ\xb7\xe7\xd7\x1d\xbcb\xd6:\x92\xaf\x9d\xbc@\xf1\x9d\xbd\f`\xbaxq\x9a\x9c\x17\xd2\xde\xcd\v\xff\xda\xdd˰\xa4\x87\x97n\xac\xa7V\xdb\xcb\v\x80ڛl\xe8\xe3%D\xfc\xd8K\xbc\xfa\x89\x97\xf8\xf4S\xaf\xa0\xe3\xbe^\x81\xe1\xfd\xbc\xb4\x18\xfd\xd9v*\xa9?\xc0\v72\xd0K\xe45\xc8+r\x9f慓\xf4\x025\r\xf6¥\f\xc1/\xe9^\xfa\xab\xa1I\xd2\x0f\xf3\x12p}N\xd6\x0e\xf7\u00ad\x8dP\x9afx\tm2\xbdԚ\x91\x18\xe1(rh\xb4\x0e)\xcb+><\xdbK]\x1d\xe3U7:6)v\xe3\x92\xff\x8c\xf7bno\x82W\x00\xfd\x17^\xac\xd1\xfb\xd2+\x8e\xf3+\xed\xfe\xd7^\xc9A~\x93|\xe0[/\x1c\xd3D\xaf\x847\x93\xbc8\xf0|D\xcaw^\xfa\xb2\xc9\xec\xf2\xf7\xbc\xe9\a/\xa6Dr\xbcbH\r^$Č\xf8`\xf2\x02\x1c\x9b)t\x16/=\x8aUIn\xf32\xf8\xb6\x8bR&\x1c%ov\xaa\xe4\xbb\xf4\xeaV\xe1\xf6x\x11X{\xbd\x80\xfb\xbe\x04\xbb\xb2Ge\xa7\xf8\xbdH6\x06\xbc0\x95A/lmH\x1f\t{\tu\"|&\ua957\x88y\x19P\xc7\xd1\xc7)l}\xaaW2\xfe?z\t9\xa6A\x1e\u007fB9\xdd+o0\x9cA{4S\xfb<ˋu,\xb3٩9^\xb1\xa0s\xa9\xf4\xf3\u052ċ(,\xf0\xd2\\/\xf4\xc2 /\x82\x8a.\xf6\xc2\xdd-\xe1e\xa9\xf2o\x19\x18\xb2܋(cE\x92\x13+A\xf3\xf4\x94U\xac}5\x89\xbd\x86\r\xaf\xe5\xa7u\xa2\xbd\xeb\xbdX\xf2\xbd\xc1+\xcex\xa3\x17ˁ7%E\xe2g/\\\xe0\xe6\xe4\xe7-hk\xab\x17~\xe1\x17\u07bc\xcd\v\x88\xb0\xdd+\x16\xfeW/b\xc5\x1d^\x18\xfa\u07fcx1\xd4N/\xb6\x92\xee\xa2\\\xef\x86\xc2\xef\xf1\x02\t\xee\xf5\x16\xec4dl\xb6\xf8K\xb5\x95\xfb\xa8\xb6\u007fx\x05\x02\xef\xa7\b\x1c\x00\x95\x0f\xb2\x9aCނ\xcdx\x90\xf8a%\xfb\x11r\xf3(\f\xea1/p\xf1qU\xdb\x13z\xcfI/\xe7\x8aOy\xb1\x1a\xfd4,\xeb\x9f^D\r\u007f)%\xcfxŏ\x9f\xf5\xd2מS\x95:\x8f\x9e\\\xe0`/\xb2ۗ(\u0097\x93\x12~E%\xfc*\t{\x8d\xd2|\x1d\x92r\x83O\xde\xfc_\xb7\xff\xa6\xe8\xfcCR\xfd\xab\x02{KE\xe4\xb6J\xe1\x1d\xb2\xea\xaeJ\xff=\xb6x\x9f\x12\xfb\x80\x12\xfb\x90\xe2\xf4\x88-\xfc\x87\x8e>\xe6sO FOI\xbf\\>\x91\xc5\xdc>\x91\xcb<>\xbc\xd9\xdf\a\xb1\xc8烂\xe7\xf7q\x92\xd2G\x11,\xe8\x13\x0e\x15\xf2\x89D\x14\xf6aDE|*W\xcf\xf8\x84pE}h\xf1Y\x1fd\xa7\x18\xef)\xeeK\x88\xd3s>\xd2\xf2y\x1f\x98]\xc2'\x02S\xd2\a:\xbf\xe0\x838\xbc\xe8\x03\x1fK\xa1;/\xf9\xc8\xf6\xd2>\xe9|\x19\xfe\xf4\xb2\x0fL*\xeb#\a^\xf1a!\x0f\xcar\xbe\xbc\xed\xd2R\xca\xfb`)S|p\xda\x15|\xf4\xc4\x15}\x82\x1e^\xf3\x89ɫ\xe4\xc3\n\x90\xca>\b\xe2\xeb>\x86\xc5o\xf8 )U\xa4\xa7U}:A\xf7\xa6\x0f\x02\\͇\x15\x13\xd5}\xc4\x195|\x98ex\xcbǭ\x015}\xdc\x17\xe9\x13\x11y\xc7Gk_\xcbG\x90[[\xab\u007f\x97\xad\xd5\xf1\xd1I\xd5\xf5!\xaa~ϧ\x00\xaf\x9e4[\x1f\x14i\xe0\x13?\xd1\xd0'~\xa2\x91\x8f\x13\x95>\"\xd5\xc6>ڛ\x0f|\tDф\xc3h\xcaˇ>A\xc0\xcd|\x9c\x17k\x0e\x82\xb4\xf0I\x80\xd0҇\xdd\x1d>\xc6U\xad|L\x8e\xb6\xf6\x11\x8b\xb6\xf1\x01\x8e\xb4\xf5\xc1\xbb\xb6\xf3\x89'm\xef\xd3\xc5\x10\x1d|&\xd1\x06*\x11\a\xf9`AӴ_\x9f\xf9\x10H\f\xf6\xc1J\f!\x93\xd2\xf5ǡd\xe10^>\xf7a\xad\xd4p\xc8\xc3\bJL\x86\x0f\xd3\x12\x99d\xd4H\x9f\x98\xd5Q>B\xaa\xd1J\xb5,\xf08[\xd90Ƈ<\xfcXmb\x1c\b=>9\x82\t\xfa\xf5\x17\xac\xf0K\x1f0\xedW*\x0f_\xfb\xb8\x97\xe0\x1b\x1d\xf8\xb7>\x85\xc5\x13\xa91\x93\xf8\xd4w \xefd\x9f\xa0\xcb\xef\xf1\xff\x0f\xca\xc8\x1c\x1f\xdfa̋\x91\x836q(f\x1f\xf2 \x16\x9f\xd8]\xabO\xc1\x95\x8d2g\xe7\x8f\x0e6\xe0$\xe7\\l\xd5Mm\xf4@\xff\xbc\xa4\xa0\x0f\xaa\xe3g;\x01\x9f\x00\xb3 4=\xe4\xd3w\x17C\xcc\">]\x1f\x17\xf5a\x89H\xcc'\xc8 \x8e;\xa7\xb0\xad\xa9>X\xc8\x1f}X\x10<\xcd\a\xb7\xf4\x93\x0fK\xeb\xa7\xfb\x88]f\x80\xc23\xd9\xc7Y\xbc\xcc\xc6\xc0\xe7(=\xe7\xfa\x90\\\x99\xe7\x93\xf8j>dq\x01z\xb0\x90\r/B\x93\x8b\xd9\xe4\x12ѫ\xa5\x1c\xd52\xa5\xdcrܰ\xc2'\xd1\xc1J\x94\xabP\xae\xf6\x117\xaf\x81\x19\\K\x01\\\xe7\xe3\x0e\x8b\xf5>\x04\xb4\x1b|8~b#\x04g\x13M\xd2Ϥ\xddf55[|\x12\xc1m\xf5\xe9\x01\x15\xbf\xe0\xe36\xf4p\xbb\x0f\xaf\xeeW۵\x83-\xfc\xe6Ct\xbc\x93\r\xec\xf2\xc9Ε\xdd>b\xc7=\x90½\x94\xf3\xdf}\x92\xda\xdf\xe7\x93\x15\x01\u007f\xf8\x805\xf7\x832\a|\\TtЧ\x8btH\xb6\xc3>\xb8\x9a#>@\xab\xa3\xbe\x82]\xe9d\x8e\xf9\xe8\xf7\x8e\xb3\xda\x13\xa8\xf0\xa4\xb6x\n\x1d=\r\x12\xfd\xa9\xf5\xfe\xe5\x03J=\x03*\x9d%\x05\xce\xf9\xb0;\xe7<\x1e\xbe\x80\x87.\xa2\xbc\x84.]Fy\x857]\xf5\tξ\xe6\xc3\x1b:\xae\xfb\x04\xd9\xdc\xf0I<~\x93\xbe\xe2or\xf4\x1f\x1f\xf7Q\xfcK\xb9\xbb\x85\xe6n\xa3\xbc\xe3â\xaf\xbb\xaax\xf7|@\xb6\xf7!\xdf\x0f|\x00\"\x0f}\fR\x1e\xa9\xad\xfc\xcfG_\xfdX\x8d\xcf\x13\x88\xf1S\x1f\x13-\xb9\xfc\x92\x13\xcb\xed\x97\x1e\xe7\xf1K_\xf2\xfa\xa9\xe2\xf9\xfc\f\"\xf3\xfb\xe1N\v\xf8\x89\xb6\n\xfais\n\xf9a@\n\xfb\x11y\x14\xf1\xb3C\xcf\xf8\x05_\x14\xf5\xeb\xa9\x00~P\xbc\x98\x1f\x00\xad\xb8\x1f\xb1\xcas~\xcem<\xef窑\x12~\bhI\xbf\x88\xf1\v\xfa\xe4\x8b~lP-\xe5\x87j\xbc䇾\x94\xf6\xf3\x8d\x84e\xfc\x8c\xb8^\xf6\xcbH\xcajӯ\xf8\x93|}U\xbf)\xe7\x87I-\xef'jHaC\x15\xfcb\xda+\xfa\xb1\x82\xfe5?H\\\xc9\x0f\xc6V\xf6\x93t\xaf\xfb\x11漁\xfa\xab\xf8\xa1\xf0U9\x967YI5?\xe6!\xfd\"\xfd5\xfcb\n\xde\xf2#\xa5R\xd3O\xf5}\xdbO%}\xc7/\xfc\xaf\xe5\xc7,\xa4\x9fz\xf7\xae\x1f{?\xea\x80\xe8u\xfdd\xf6{~\xda\xc3z~,\xd5\xf1c\xa9\x0e\x9bn\xc8\xe17B\x9b\xef\xe3\xa9\xc6\xec\xfe\a\xda\xe1&zm\xea\x87<|\xe8\x17Yi\xc6\x1e7G\xf7Z\x90\xf8-\xd9\xf4GړVJ\xa9ָ\xa7\x8d\x9fq~[<\xde\xce\x0fqj\xcf\xc6;\xf8\xf1\xb2F\x94\x9d\xfct\xae\x9d\xfd̺v\xd1kW?]~7?\xf1Jw\x15\x95\x1e\xfa}O\xbf:\xf9^\xfa@o\xfd\xa1\x8f^?\xf6Sd?\xd1ϟjE}\xd9\xf9~\xbc\xf4\xf7#k\x94ꗰj\x80\x9fk0\a\xeau\x90\x1f[\x83\xd3\xfc\x92 \xfaL\x9f\x1f\xec\x87\xdd\x1b\x82/\xd3\xfdbӇ\xfa\x19\xe0\x0f\xf3\xf3\x00r\xbf\xe6T\xfdX\xe32\xc2/\xd0#\xc3/\x18/\x13R0\x92?\x8c\xf2#\xab7ڏ\x8cB\x96\x1fj\x9d\xedG\xc6n\f87\x96\x022\xce/\xd3n\xe3\xfd\xa2\xf0\x13 q_\xf8\x05\xc8|\xe9\x97T\xf8W~\xc0\xa9\xaf!?\xdf\xf8\x11*|\xeb\x87\x13\x9d\xe8\a\x8c\x99\xe4G\xc0\xfd\x9d\xca\xeed\x0e\xeb{\x15\x92\x1f\x12\x03\xcb\x18\x9e\x91\x92\xc3\xc6\f\xbc\xd9\xc8\x1aL\x90\x10\xb3\x1f\v&,~\xb8>\x946?\xce\\\xb7\xfb\xb9\x0e\xc3\xe1/\xd86cHꄴ\x14':\xe5\xf2\x13\xa5\xb8U\xd3=~\xcc\xeayU\xdb|~\x18S\xbf\x9fӂ\x01\xbd;\xe8g\x04\x1f\xf2s\x1dA\xd8\xcf\x104\xe2\x17\xb0\x1a\xf5\xab3\x8c\xa9\xcc\xc4\xfd\xc0\xb7S\xfcbϧ\xfa%\xc8\xfe\x91=\x9d\xe6Ǥ\xf5O~\xe6\x1d\xa6\x8363\xfcH\x16\xcf\xe4e\x16\xc4o\xb6\x1a\xa690WsQ\xd3<\xe5\xdf|?\x03\xd0\x05`\xe0B\xfdv\x91?o\xc7\x11)\x8bI\x9e%~\xb8\x99\xa5\xe8\xdf2?R\xb9\xcbم\x15~\xa4\xbaWBBV\xf9\x05\x96\xadf\u007f\xd7\xf8\xf5D\x00?\xdf\xda\xe8\a\xe6[\xaf4\xd8@9\xd8\b\xc2o\xd2F\u007f\xf6+x\xdc\xec\xd7\xe3\xc6A\xe5\xad\xd4\xca_\xd4>l\xf3\xd3Yn\x87\xac\xfd\xea\x97\x1d%;\xb4\x86\xdf\xfc\x88\x0fv\xd2\n\xec\xa2\x04\xee\xf6\vf\xdcC\xb3\xbb\xd7\xcf<\xce\xef\xe8\xf1>\xde\xf8\x87\xf6j\xbf\x1fn\xef\x80_Ò\x83\xd4\xe4C\xa4\xf3a?\xa0\xe9\x11?R\xb5G\xf9\xe81\xd4s\x9cD9Az\x9d$\xbdN\xd1R\x9ef%\u007f\x828\u007f\xf1\xa93T\xaf\xb3\x18\xc29\f\xe1<\xfe\xbf\xc0\xdf/\xb2\xe7\x97\xd0\xf3\xcb\xec\xd5\x15\xfet\x95\xb5^cS\xd7\xfd\b\xb5n\xf0rSI\xf47\x99\xf3\x8f~\xfc\x17T\xbeEɿ\xed\x17\xb7{\x87\xb5\xdc\xf5s{\xce=\xbf\xc4?\xf7\xfdLQ<\xf0s\x16\xe9\xa1\xca\xf1#\xde\xfc\x9f\xfe\xfc\x98\x15=\xe1\xe5\xa9_\xa3\xf8\\\x01\xc1\x18\xb9\x038c<\xa0\xaf\xdf\b\xd0l\xe5\v@L\xf2\a\xf4\xde\x02\x01\x9epW0\x80\xa1\x15\n\x88K-\x1c\x10\xf9-\x82\xff\x9f\t\b\xdc)\x1a`B\xf0\xd9\x00\xa2\xefb\x01q\x95\xc5\x03\xdc\x04\xf0\\@\xfc\xc4\xf3\x01\xa8\\\x89\x00\xccC\xc9\x00f!^\b\x88,\xbf\x18\x80\u007f)Ŷ_\nH\x94S:\xa0\xdb\xff\x03\xb2U\xed\xe5\x00\xadf\xd9\x00\x9c\xc0+\x01Q\x96W\x03\x14\x86r\x81\x04\xfe+/EJ\x00\x94\xaf\x10\x00\b\xae\x18\xc0R\xb3\xd7\x02\\tU\t\xbd\xae\xac\x9f^\x0f`Q\xf9\x1b\x01\x80\xe9*\x01n\xfe\xaf\x1a\xe0\x0e\x9b7\xd9N\xb5\x80\xb0\xb5z\x00&\xa8F\x00\xa1\xc7[\x01HDM\x8e\xf4m\xfe\xf6N@\xd8R+@\x9b\\;\xa0\xce\xe0\xdd\x00\xf9R'\x00\xdcW\x17\x84\u007f\x8f\xa4\xac\xa7C\xaa\x1f\x006n\xc0K\xc3\x00N\xa8k\x14@\n\xfc}~\xd98\x80\xb7o\xa0l\x12`\xb4\xd2T\x19\xf7!\xefl\x16\xe0\x1eG\xd6\xdd\"@-k\x19\x90\x05\xf8\x1f\x050\xf3\xde*\xa0\xdbT[\a`\xe8ۀ\x1em\x038\xc0\xad]@\xa2\x8f\xf6B\xc4\x0eRtd}\x9d\x02\x88\xf0;\a\x10\x90w\t\x10?v\r\xe8&\x9an\xbc\xab{\x80\xe2\xdb#\x80x\xbc'*\xee\x15` \xd7;\xc0\x85\x19}\x02t\x80\x1f\xeb\xf5\x93\x80ڐO\x03\xb2\x17\xa2/)\xde/\xc0\xc4b\xff\x00\xf35\xa9\xa8k@\x00\xc9ׁ\x10\xabA\x01\x84\x16i\x01\xe4r?S!\x18\f9\x1c\x12\x80\xe6\xa7\ahy\x86\x92W\xc3\x02z\xb8x@&\x1e\x86\a\xe8wF\x04\x80\x842\xb4\xf3\x99\xa4\xfcȀ\xc0\x99Q\x01\x98\xa7\xd1\x01D\\Y\x01N\x8fdCe\xc6(\xe5Ǫʌ#\xcd\xc7'Uf\x82\xaa\xcc\x17Џ/Q~E\xe1\xff\x1a\x9d\xfc\x86\xb2\xff-F3\x91\xfa0I\x15\xe8;ՙ\xc9Й\xefљ\x1fT\x15r\xa0\x18\x06\x95\x1b#\x85\xdcD\x014\xab\xe8Y\xd8\x19\xab\n\x9e-\xc9s;\xc5\xdd\x01r:9T\x17\xa9㦐y\xf8\xa4W\x9f\xf4\xe9\xd5\x0f\x11\n@<\x82\xca\xff\x90HH8)\x04\x11\nAT\xbe\x8c\x91`q\xf2k\x8a\xb2z\xaa\x8a\xc0\x8fd\xd94\xb2\xfa'\xe5\xcatpe\x06\xfb4SI=+@\xbc6;\xc0\x9c\xf5\x9c@\xc1\x8e\xa32\xe4M\x1bs\xa1\x93\xf3\x02\xc0\xbf\xf3\xb5\x8e\x05z\xdb\u0080@\x93E\x01A+\x8b\x03\x98\xf5\\\x12\xc0&\xef\xa54\x06\xcb\x02t\xe9\xcb\x03\xba\xdd1 .ve@L\xfe\xaa\x80\xac\xbeXM\x1b\xb2&@8\xb26\x00\x04\xb3.\x80I\x8c\xf5\x01$\xd46\x88\xd2d\xa4l\f`ZvS\x00\b\xfb\xe7\x80`\xd8\xcd*\xc0[T\x80\xb7\xea\xf5\x17\u07b4M;\xba]\xaf\xbf\xeau\x87>\xf6[\x00>hg@\x02\xa8]J\x84\xddz\xd3\x1e\xfd\xbcW\xfb\xf6\xbb\x8e~\x9f\xfe\xfe\aF\xbf\x1fC:\x80\xc1\x1cd\xb7\x0fq\x10\x87ه#ڥ\xa3\xfa\xd81\xbd\x1e\x0f\x00\x83\x9e\xe0\xa8N\xf2\xd3)^N\a\xf8\x02\x0e^\xfe\n\xe0\x05\ng\x02\xe2\xaeΪ>\x9cC\x8b\xe7\x03\xc0x\x17\xb4k\x17\x03XSu)\xa9\x1c\x97\x03\b~\xae\x04\xe06\xafBʯ\x05\xe8\xe9\xaf\a\xf8\xae\xc6\x00\xdc\xd5Mv\xe3o^\xfea=\xff\xf2\xb7[\x01._\x854\xdf\tpq\xfc]0\xf1\x1e\xd5\xe2~\x00^\xf7\x01G\xfc0 \x01\xf7\xa3\x00\xe6\x01\xffC?\x1f\a\x10\x02<သ\x06\x90\xfd\xca\x15\x84\x96\xe4\x0e\xa2wy\x82\u0529\xbcA=#'\bU\xcb\x1f$\xdc+\x10\x04Q\v\x069'[((m\x14\x0e&7?\x06u%\x8e^\x8b\x06%\x89\xf1l\x10\xbaR,(\xee\xa2xP\xba\xff\\\x10\xb4|>(3Z%\x82\xf9:$\xa8]2\x98Х\x17\x822\xd3\xfdb\x10\xae\xa3T\x10ٱ\x97\x82\xb2ιtP\xc8V&\x88\xae\xbf\xccn\x94\r\xc2R\xbf\x12\xc4\xcc\xe7\xab\xfc\xad\\\x90~\xa0|\x90Y\x8f\x14\xedz\x85 m^E4\xf1ZP\xccZ\xa5 \xe6\xa7*\a\xc1\xef׃\xc9\xe3T\x83P\x87*A=\x15Gz\xf6f0\u007f\a\xf9P\x8dmV\x0f\x8a[\xab\x11\xd4\x14\xd4[A\x90\xb9f\x10\xd6\xe5m\xed\xc2;A\xac\x82\xac\x15\x14\xcf];\xc8x\xfd\xdd \x92\x02u\xd8FݠX\xc7\xf7\x82\x88Z\xea\x05i\x10\xeb\a\x89N\x1b\x80>\r\x83\x98\xd1m\x14D\xb8\x18\x84\vn\x1c\x04\x8f?\bBԛ\x04\xc1\xf8\xa6\x18ӇA\xe0\xa1fA\tR\x9akM-\x820N-\x83\".\x1f\x81\x94\xad\x82\x98\x1an\x1dD\xe8\xd3&\x88)\xa5\xb6\xac\xbe]P\xed\\\xfb \xb3x\x1d\x82\x10ӎA\x80\x96N`b\xe7\xa0hB\x97 \x14\xbe\x8f\x83\x8cw?\xa1\xa8|\x8a\xbe\xf7\r\x12g\xf7K>\xdb?\x88\xdcPj\x90K\x1f\x06$8\"_\x0f$\xdf\a\x05\xa9\x92i\xe8\xd6gA\xa8\xe4`%\xfa\x90 T0\x1d4\x1cJQ\x1f\x062|Α\r\x0fB\xe5F\x04\xa1k\x19\xca\xc0LV=2\b\xbd\x19\x15\x14%\x1a\x1d\x84\xdad\x81\x06ِ\xf01\xa4\xc1\xd8dG\xc7Qi\xc6C\xe2'\xa8&}\x81\a\xbeTi\xfc\n\xac\xfd\x9a\x12\xfe\x8d\bط\xe8\xceD*\xc3$j\xc0w\x94\xecɔ\xb9\xefU\x82\u007fP\xb9̡\xd4\x18\xc83#$\xc9D\x890+\xed,\x10\t+\xe8iC\x93vJ\x8e\x83\xdcw\x92\xfb.\x8a\x87\x9bB\xe0Ir߫\x14\xf6\x05\xb9j\xd2ϖ\x02\xecU09\xdc\x10y\x19\x0e\x8a\a\x8a\x04%\xef\x13\x85\xa0\xc5\xd0b<(\xab}\xa6\x04\xe1j\xa7R\xd5~T\x02O\vJ \xfbSP\xd2\x15Ӄ\xe2\xe4f\xe8 g\x06\x91B\x9b\x15\x04\xbc\x9a\xcd&\xe6\x04\x01_\xe6*W\xe7\x05e\xceu>\b\xb7 H?\xb1\x90\xed,\n\n\xc8^L)X\xc2\xcbR\xb2zY\x10xiy\x10\xf6tE\x10\xc9ʕA\xa4\xbfV\xb1\xb9\xd5A\xd9\xec\xb5&(\xaee-Eb\x1d\xfb\xb3\x9e\xb7o\xa0\"l\f\nV\xd9\x14\xe4:\x1b\x8cv3eeK\x90\x9b\x99\xb7\xb2\xe9_\xc0\xfcmA\x99\a\xd9\x1e\xe4\xeb\x8a\xf1aGP\xc1\xcaoxzg\x90i\xbc]A\x02\xc9\xddAF5{\x82\xdc\xec\xb37(~\xeewv}_P\xd6B\xfd\x81\xaf\xf6\a%\xc1t \xc8\xdd'\a)\x80\x87\x82\x04Q\x87\x83L\xdc\x1c\t\x02\x1d\x1c\x05\xa1\x8f\xa9\x91>N\x19?\x01\x8e\x9ddwO\xf1r\x1a\x02\xff'%\xe6/\x10\xfbL\x90A\xc3Y\xaa\xf79\x92\xe3|\x90\v\b.\x04yD\xc5\xc5 3{\x97H\xea\xcbA\x02\x9c+A\xc6!W\x93\x83\xbe\x06\xf5\xb9N#p\x03\x14\xb8ɱ\xfdM\xaa\xffC\x95\xffW\x1e\xcc\xceN\xb9E\xb2\xdf\x0e\"\x82\xbcÎ\xdd\x05\x01\xee\xa9\xed\xbc\x1f\x04\xd0\u007f\x10䲣\x87A]\xb0\xff\x88r\xf1\x1f\x84\xf1q\x90\x88\xe8I\x100\xf0)\xb5-W(\xa1\x86\xb9Cj\xc8\xf2\x84 \nyC\"\x9b\xf9Bؽ\x11\xd2\x03\xc6C\xe4F\xc1\x10\x82\xedB!Ҥp\b\x13\x8cEB \xcd3!\x04)EC\\\x12\xf9lH0e\xb1\x10\x82D\x94υ`\xec\x9e\x0fA#J\x84\x00\xafJ\xf2\xcb\x17B\xf0\xe8/\x86\xe0\xe7J\x85$e\xf5\x926S:\xc4%\xbfe\xf4\xf3\xcb!\x02\xff\xb2\xac蕐\xfa\xa4WCԱr!d(ʇDMRB\x02j+\x84\xf4T\xd5\x10\x10\xe5k\xda\xc7J!\xe8w\xe5\x102\n\xaf\x87\x84\xfbo\x84\x80!\xab\x84 \x11UyǛ!X\x99j\xdar\xf5$\xcdj\x84 \x0eo\x85\xc0\x98\x9a!\xa6B\xdf\x0eQ*\xde\t\x89\xf5\xad\x15\u0092\xe4\xda!\xc9(\xbc\xcb\xe1\xd6\tQ\xdc\xeb\x860}\xf5\x1eiQ/D\xe7S?$\xf9\xcb\x06\xac\xbba(\x99\x16n\x04\x9e\xbc\x8fJ\x1b\x87 '\x1f\x84ԃ7\t\x89\xc5k\x1a\x92\xa9\x9a\x0fC\x00\x1b\xcdBD\x80͕|-B\xa2\u007f-C\xf0\x88\xac\xbb\x15H\xd4:$\xd1K\x9b\x10V\x89\xb5\r\x89P\xb6\v\t\x04i\x1fb\xa2\xaaC\bY\xec\x8e!\xda\xd8N!\x846\x9d9\xe8.$T\xd7\x10O\x00\xef\x16\x02\xc2\xe8\x1e\xa2\x13\xe8\x11\x02N\xe8\xc9a\xf7b\xaf{\x87\xe8\x13\xfb\x844m\x1a\xc2\v7Bb\xba?eu}C0|\xfdH\x9f\xfe|<5D\xe30\x00\x84\x18\xa8T\x1e\x14R\xb3\x9c\x16\x82#\xfc\x1f\xbd\x06\x87DO\x86\x80^\xe9!N\xd5\f\x05i\x87\x85\b\x86?\x0f\x89\x8a\x0f\a\x15F\xb0\xe1\x8c\x10483\x04\xd39\x124\x1b\x15\x12\xeb8\x1a\x94\xc9B\xdb\xd9!ڝ1!ؒ\xb1\x90\x9cq!13\xe3\xd1\xea\x04v\xfc\x8b\x10\x94\xfbK\xd6\xfdUH\xec\xd7\xd7!تo0\xe8oC\xb0P\x13\x95ғС\xefB\xb0\x05\x93\x95\x86ߓ3?\x90x9!\x18\x0f\x83*\x83Q\x87b\xc2\xc0\xccI\xc1\xb4\x90bV\xea\xb4-\x04\x1ba\x0fA\xed\x1d\xd0F'J\x17\xb4\u052dz\xeeQ\xbd\xf0\x82\xfd>ʑ_[\nPf\x82Ԉ\x10E6\fM\x8d@\xee\xa2\x14\x88\x98*I\\\xa5y\x8a\xca\xe1T\xf6\xffG\x15\xc7i*M?\x91R\xd3\xc1\xbc\x19\xffc\xde\xcc$Wg\x85\xc4\xcd\xcf\x0e\x01=\xce\xe1e./\xf3\xc0\xb8\xf9!\x9cȶ\x00\xf4\\\x18\xc2\xfcҢ\x10\xd28\x8bC\xb0\x9bKBpQK!\xfa\xcb\xc8\xd9\xe5\xb0\v+B\xe25W\x86$9\xb1\x8a\x84]\x1db\xaeaM\biõ!\xac\xda[\x17\x92\xc4\xe2\xfa\x10\xcc\xe7\x86\x10\x0f\x86٨\x94ل\x8a\u007f\x06)7\x87dc\xec\x16\xf4lk\b\x19\xe7_Bȹn\x83\xfclWN\xff\xaa\xb6b\a\xbe\xfd-$q\xc5ΐ\xf8\xd0\x11)\xbb(\xfc\xbb\xa1\xd3{B\f\x1a\xf7\xb2\x96\xdfCX\x15\xb2\x0f\xd6\xe4\x0f\x15\xc3\xfdl\xe8\x00\xc6t\x90O\x1f\xd2\xca\x0eC`\x8f\x84\x80\xa9\x8f\xf2rL\xc7x<\x84\x99\x88\x13\xfa\xf1d\b\xcb4O\x85\xb0$\xfa\xb4J֟\xb4\xf2\u007f\xf1r\x06m\x9c\rqQĹ\x10P\xd5\xf9\x10^\xbd}!\x84\xb5\x8f\x17CpZ\x97\xf8\xc0ev\xe7JH\x96\xa7\\\r1\xf9~M5\xf9zH\xd2]7\xf0\xdbMV\xf27\x1a\xf8'\x84\xf9\x82\u007fC\xe2\xe5o\xb1\xde\xdbЯ;!q\xa1wCt\xc0\xf7\xa0\xa0\xf7C\x9c\x11x\xc0\xee<\xa4\t\u007f\x04\x91\xfaO\x9bz\f\x19OMy\x12bR\xe0i\b\x93z\xb9\xc2\xd2\\\xee\xb0hO\x9e0\xba\x9a7L-ȇ\x9f\xf2\x87\xf9|\x810\xfdm\xc1\xb0.C-\x14\xa6O)\xac\xb7\x17\t3%\xf4L\x98n\xa8h\x18\xb8\xf9ٰ\x04N\xc5\xc22SP<\x8c\xc4\xf0saQ\xbd\xe7\xc3\\\xbeW\"L\xb0R\x92\xad\xbf\xa0\xed\xbd\x18\x16\xee\x97\n\x03\xa1\xbe\x14\x06^-\xcdK\x99DK؏\x11\x16\xc3]6\x8c\xdc\xc7+a\xaaݫz-\x17\xe6\xf1\x16\xe5ô|)a\x02\xb4\nan&\xa8\xc8\xe6^\xe3ӕ\xc2<\xf2\xb8r\x18\x00\xfdu^\xde\bCت\x84\x99L\xab\x1a\x16S\xfa&\u007f\xab\x16\x06\xbe\xa8\xceO5xy\x8b\x03\xac\x19֔\xfd\xdba\x1c1\x8e\xb2\x16h\\;\xcc<\xc0\xbbaaf\x1d\xedl\xdd0\xe6#\xdeSR\xd6\vÒ\xd4\xe7\xb7\rº?\xa1!\xeai\xc4o\xdf\x0fc\x06\xa1qX\x98\xfc\x01(\xda$\f\x10\xd14\f\v\xf5a\x18AD\xb3\xb0\xa0\xf4\xe6aI\xab\xb5\xe03-A\xb7\x8f\xc20\x91\xad\xc2T\xc8\xd6a\x05Nm\xd0J\xdb0T\xbd\x1d*n\x1f\xe6\x11\x86\x1d\x92\xf7t\fs\x1f\xa3\xb2\xbas\x186\xa5K\x98\x96\xaekX\xecA70\xb0;\xfa\xd7\x03-\xf6\fsr\xb8\x17[\xee\x1dV7\x88\x06?\x0ec\xd1\xc3'a\xc4j\x9fⱾ\xe1|-F\xa5\xa7\xf4\vS\xbc\xfb\x87\xe1FR\xc3\\\x1d0\x00\xf7\fDՃ\xc2\t(\x97&\xc5ga\xc8\xf5\xe00s\x8cC\xc2\f\x04љ\xa1$а0a\xe9\xe7aĀ\xc3\xc3\x04##\xd0팰؋\xcc0\xd0\xffH\b\xef(|5:,S\x15Yaj~v\x18\x01ʘ\xb0L\x10\x8e\r# \x18\x17.\xd8!uxꄄ\x13\f\xe7\xef\x961(#eBX2\x01_\x84\x81\xba\xbe\fcU)\xe5\xe6\xeb0^;\x15&`\xff\x96#\x9b\x18\x16c8)\x8cɲ\xef\xc2L\xd3O\x86\xa4|\x8f\xce\xfd\x80!\xe7\x90\xfa\x86\xb0xZ\xa3RÄg\xcd\xec\x89%\x8c\xb3R\xadh\xc4\x16֣\xc4Ì\xa2\x1ca\xf8\\g\x18^\xc1\x85\xea\xdda,\x12\xf0\xa0JoX\\\x8e/\\\xb0m\xea\xd0\xf4a\xa9)\xfe0\xb3?\x810\x02\x99`Xf\xdeB\xa4e8\x8c\x95U\x9102\x1fѰz\xadXX\xacT<,\xd1\xde\x14vwj\x98\xb6\xef\xc700\xc1\xb40\x9c\xfcOԿ\xe9a8\xc7\x19\xda\xd2̰8\xb3Y\x10\xbe\xd9aF\xd0sX\xcd\xdc0Q\xc1\xbc\xb0\xa4u\xe6S\x19\x16\x84\x19D.\f\x8b\x9bZ\x14F\x0ebq\xe2\xc1\x8cQ\xa9)K\u0089\xd0 +-ei\x18\xd6~\x99HSB\xaa\x96\xd3>\xad\b\x03\x14\xac\x84\xb1[E\x03\xb3Zub\rX\xbe\x96\x12\xb5.\f\x10\xb1\x1eҺ!\x8c\xb0}c\x18g\x01l\"\xb9\u007f\x0e\xd3/n\x0e\v|\xd8\x12\x16h\xb0\x95\xcc\xfc%\xcc9\xd9m\xa0\xf6\xf602忒Y;`\x18~c+;y\xd9\x15\x86\xa3\xda\x1df\x9edO8\u007f\xf7\xc1\x89!\xed\r\x17h:Z6;\xfd\x1e.\xd25{\x80\xbc\x959\xf1a_\xb8pۄԍ\x90\xe3\xe0\xfe\b3\x1d\xb3?,a\xf9\x81\xb0\xf8\x97\x83\xa0\xe3\xa10S\xf9\x87\x93<:\xc21\x1c\rs1\xdb1\xc8\xd6q\x15\xa7\x13a,\x8e?\tQ8\x15f\xfcs:\xcc0\xef\xcf0B\x9d\xbf\xc2\b@Π\xa9\xb3`ٹ0\x9c\xdeyh\xcc\x05ZËIkx)L\xbc{9\x8c\x05jWT\xf8\xaf\x86\x81\x80\xae\x81\f\xd7u\xc47\xd4\x14\xde\f\xf3\xe5\xfd*\xc3\xff\x84\x13\x00)u\xa0\xbcq#\\\xa0y\xc6\xd0\xc4s\xb7\u0085\xbaf\x0fK\x1b\x9d\xf8\xf7v\x18p\xf4\x8e\xea\xf7]Z\xc0{\xfc\xf6>E\xf4\x81j\xc1C\x8a\xe1#8\xa6\xff\xb4\xb5Ǡ\xc1\x930'\xa1\x9f\xea5W\x84.$w\x84\x1e/OD\x8ep\xcd\x1b\x81<\xe6\xe3%\u007f\x04g\xc5E\xf8\xee\x8d\b\x02\xaaB\x11\xac&/\x1c\xd1\x00\xadH\x84\x1e\xef\x99\b_E\x15\x81h<\xcbK\xb1\bmi\xf1\x88(\xfas\x91\x84){>\u0088\xbdDD\x84\xa6d\x04\x93X/\xe8}/F`TJE`9^\x8a\x88\xa1*\x1d)\xd4>{TFBkS\xcaDp\xb8\xddˑ\x82\xadRG\xa5&\x94\xb8l\x04\x16\xed\x15}\xfc\xd5\b\xa6)\xcaEDH\xcbGh\xd4R\"\x00\xb5\x15\"p?\x15#\x02\xc6_\x8b\x80z\x95x\xa9\x1c\xe1Z\xd3H\x9e>)oD\x18\x80T\x89\x88=\xa8\x1aA\xe8\xfafD4\xb0Z\x84\xf0\xa4z\x84\xfe\xadFD$\xf0-v\xa1&\xbb\xf6v\xa4p\xab\u052c\xd4!\x89\xbf\x94w\x942\xb5\"\x02\xa4kG$\x8f\xf6n\x04Z\\'\x82\xb5\xbeu#\u0099\xf7\"\xb4!\xf5\"bJ\xeb\xebX\x1a\xb0\xdb\r#P\xdeF\x11\xe4MI\xd5\xc6\x11\x82\xb8\x0f\xf0x\x13\x94M#\xe0\xfc\x87\x11\x9d\x9bk\xc6[\x9bG4\v\xd6\"B\x15j\x19\xd1\xe0\xf2\xa3\b\xd7'\xb7\x8a`\x99@\xeb\b^O\xd1&\x82M\x0emѕv\x11U\xaa\xf6\x111\xc3\x1d\"z\x9ax\x04\xd1T\xa7\x88\x18\x84\xceI9\xe8\x12\xc1\xc6\u052e\x11\x06\b\xdd\xf4\xda=\x02wԃ\xf5\xf6\x8c \xe8\xec\xc5\x1azGx\xfag\x1f\f\xee\xe3H\xbe\x16\xa3\x13\xbe2ѯ\xf1\t9\xfb4\x02_\xd47\xc24a\xbf\b\x04\xbd\u007f\x84\x80'5\x82\xf7r\r \x91\x06F\xe8t\aE\x105\xa4E`??\x8b\xe8Z\xcf\xc1\x11Q\xc2!\x11\xd5\xd8\xf4\xffǣ\xa1\x91\x84ꥧ'\f\xea\xb0H\x81\xf6\xd9Y\xa3\xb3S>\x8f`\xae\x11T\x1d\x11\x11?\x9c\x11A\xee!\xf3\u007f\xf7\x8eD\x85\xa3\"\xb0\xf2\xa3\xf1!+\x82\xad\x99\xd9\x11\xe2\xbe1Iҍ\x15\x99\x1f\x17\xc1\xdaS\x1d\xca\x04<\xf0ED_L\x05\x1d\xfb*\x02\xa0\xf05Z\xfd&\x02\x13\xfam\x04^~\"\x1e\x9e\xa4\xd2\xfc]D\x90\xcf䈸\xe0\xef\xc1\x96\x1f\"t\xa99\x11=`\x1c\xf7\x1bY\x87)\x02\x17h\x86\xb2Yp\xbf5\x02\x17i#A\xed\x11\xf1\xa6\x8e\b\xbd'\t\xe7\x8a\xc0\v\xba#p-\x1e\xda\x02oD\x9c\x9f/B_懵\b\xb0\x8e\xa02%\x84އUL\":\xc0hD\xfcM,I\x908y?%B\xb72\x15\xc4\xf8QUe\x9a\n\xffO\xf8v:\xd5s\x86\xea\xc7\xcc\b\x1cҬ\b\x9c\xc9\xec\b\xdc͜\b<\xdd\\4=O\x85|~\x84^aA\x84\xc6x!4uQ\x04&yq\x04\x06~I\x04F}iR*\x96E\xb0k1\"f\u007f\x85\x92re\x84~cU\x846~u\x846x\r;\xb66\"\x8eh\x1d\x05u=\xed\xe2\x06X\xba\x8d\xc9Z7\xf1Οi$6\x93\x94[h\xf4\xb6\x8ah\xfcB=\xdd\x06\x06mO*ӯj\x94w$\xd5\xf9\xb7\b\xad\xf6N\n\xfc.\x98\x94\xdd\x18\xd6\x1eX\xaa\xbd\xb4a\xbf\xd3`\xedSi\xf9C\xe9\xb9\x1f\xc6\xe7\x80ڍ\x83T\xf9CT\xf9ô0Gh\x92\x8e*\t\x8f\xb1\xabǡ\x9a'\xa8\xbd'U\xa7OQ\x8bOS\xe3\xff\xa4v\xfcE\xdd;\x03ΝU\x85<\xa7\"\u007f\x1e\x04\xcdH\xb9\x10\x11\u007fz\x11\x83\xbd\x84;/G\xe0N\xafD\x04\xf8\\\xa5\x0f\xb9\x86߯+\xf1o\x80\xb57#̌\xff\x1d\xc9\xd7!=#\xe5\x1f\xb6\xf6/\xc9{K\u007f\xbc\x1d\xe1V\xc7;\x14\xf1\xbb\x11b\xe0{\x11\xb8\xdb\xfbp'\x0f\"@<\x0f\xd1\xc6#\xf2\xee?\xb2\xe7\xb1R\xeb\tk}\n\xcd\xcc\x15\xc5\xc2\xd8\xdc\xd1\xfc\xbd\xa57y\xa2 E^^\xf2EE{\xf2G\xe9J\vD\xa9\xfc\x05\xa3h\xbeP\x14\xa3)\x1c\x95%\xc6E\xa2\x1aa>\x13%k\x8aF\xd9\xe7g\xa3h\xbbXT\x8e\x81(\x1e\x95\x9d\x93\xcfE\x91Lz>*\x99\xa5\x12Q\xcap\xc9(\f\xcc\vQ\xbcx#\n\aY\x8aϾ\x14\x15J\x96\x8eRD\xcaD1ڗ\xa3\xe2\xb3\xcaFI\x82W\xa2x\xe7FT\xccz\xb9(\x81`yޘ\x12Ed_!*(\xb9b\x14f㵨(C\xa5\xa8n\b\xac\x1c\xc5i8Q\u074b\x11\xa5\x1f\xac\x82\x81U\x8d\"\x19\xf8&n\xa9\x16M\x98\xdc\xf4\xc1\xe9)գ\\\x84P#\xca$\xd4[Qq\xc95\xa3bCގ\"\x92\u007f'*9\xe9Z\xecDm\xd2\xea\xdd(\x97EՉ҆ԍ\xc2AFah\xebE\xe1\xe2\xeaG\x11L5\x88\x8a(5\x8c2\x8am\x14\x05\xd4~?*\xb6\xbbq\x14ǹ|\x00\n4\xe1\xedM\xb5\xc6\x0f\xa3\xc8&4\x8b\x12\xfc5g\xf3-\xf8x\xcbh\xa1D\xc87H\x80\xf4Gф\xa1\x1b\x96\x9e\xd2*1<ِ\x11\xe5\xce\xf26dM[\xf4\xab\x1d\xc6\xdc^\xb9߁<\xe9\x18\x15I\xee\x84\xf1v\x8e2.\xee\x82\x1b\xbbF\xc5\xfcv\x8b\xc2\xfeu\xe7\xa5GT\xccEϨhY\xaf(LYo0\xa2OTR\xfc\x1fGix>\x89\n\x90\xff4\x9a0\x18}\xa5\xe8\x17\xd5m\xfe\xfd\xa3\"өhm@\x94\xd6i`\x14@vP\xb4P\xeba\xa9\xa3\xb2\a\xa7\xa6\xa4E\x13QO\x02Mf\xa7|\x16\x15\xe708J\x971$\x8a8'\x1d254*qͰ(\xe7n>\x8f2c1<\nu\x19\x11%\xe6Ɉb\x15^f\x94\xba9\x12Ս\x8ab\xa5\xfd\xe8\xa8\xee\xe6\xc7\x00\xb21\x801\x90\x91\xb1*\x85\xe3\xa2b\xb0\xc6C\\'D\xf16\u007f\x95\x8f/\xa3\\\xa8\xf9\x95~\xfe:\n\xeb\xfcMT]\xf8\xb7xr\xa2\x92c\x12x\xff\x1d\xca\xc9\xfa\xdd\xf7\x90\xf0\x1f8\xf6\x9c(1\xbd\x01\x8f\x19\xa3\f\x06LQ\xfa\x1c3:h\x812X\xa3\x05Z\x8f\xceN@I[\xb4h\xdb\xf4a\xd9\xe9Y\xa9\x83\xe4\x14\x17;8\xec \x81\x9cQĈ\xae(2\x02\xee(a\x8b'\n@\xec\x05\xdd|Q\xd8q?\x18\x15\x00W\x82\xf8?$\xfc\nG\xe1Q#Q伢\xa0wL{\x15\a\xa1\xa6P\x01\xa6F\xb1-Q\xe95-\xca\\\xe4OQ̆O\x8f\"\xd31\x03\xb5\xcfT\r\x9b\x15E\xe2~vT֝\xce\xc1\xc8\xe6F\vu\x1b\x9d=XN\xc1\x9c\x17\xe5Y\n\xf3\xd5\xea,\x80b/\xd4g\x17i;\x8b\xa3\x9cIZ\x12\xe5*\xf8\xa5Q\x18\xc0e\xe8\xcc\xf2(6\"\xac\x88r\x12~e\x14\x10}U\x14xwu\x14\xa8z\r\xa8\xb5\x16\x95\xafS1X\x1f\xe5ތ\rQ\xe4\x066\x82?\x9bP\xfe\x1c\x15/\xbb9\n_\xb5\x85#ߊ*~\x81ll\x8br\xfd\xc6\xf6(N\x17\xfd\x15\x84܁\xf27<\xba\x134\xdb\x15\x15,\xbf[5{O\x14\xd1\xe5^}\xf6\xf7(w\f\xecC\x8d\u007fD\x15\a\xef\x8f\"\xb8=\x10\x15\az\x90=8\x04A:\f\v|\x84<>J\xbbp,\xca<\xedq5y'\xa2\xc8מ\x84֞\x8a&\xf3ڧ\xa3ܼ\xfb'\xf4\xfc/h\xe3\x19z\x88\xb3Q\xf8\xe5sQ:\xf4\xf3Q\x99T\xb8\xa0]\xbe\x88\x86/E1\x15p\x19\x95^Q\xd6\\\x8d\n\xba\xbe\x16U@p=\n\x18}C\x1f\xbc\xa9\xfd\xfa\x9b\xb4\xfb'\n\xa4\xf6o\x14\xbe\xf4V\x94\xc0\xeb\xb6^\xef\x80Xw\xa3X\x9c\u007f/\n\xa7}\x1f=}\xa0\x8d=\x84\x1a?\x8a\xf2\xf4\xa1\xff\xf4\xb9\xc7Q\xc0\x84'\xe8\xe4Sx\xba\\1\xe8C\xee\x18\xcce\x9e\x98hWޘ\xfc\x9e/&\xec\xcb\x1f\x03u\vĤ\xf6\x821\x82\x80B1\xd1\xf4\xc21z\x8f\"1\xa9\xe8\x99\x18\x13\x96Ec\x00\x0f\xcf\xc6d\xd9|\xb1\x18\xbbS<\xc6p\xf9\xb9\x98$\xf2\x9f\x8fa\x8fc\t\xd4Y2\x86\x15h/\xc4\xe0a_\x8cI\xbfK\xc5DL_\x8aq\xf7@\xe9X\x92+e\xf8\xe0\xcbZk\xd9\x18\xb1\xc8+1\xd1\xfbWc\"\x16\xe5b4\xeb\xe5c\xc4')1P\xb0\x02\x06S1F\xedx-FTQ)\xc6h1&r\xf2zL\f\xdb\x1b1\xaaW\x15\xf6\xa7j\x8c\x00\xe0͘(B\xb5\x18\x8dPu\xf4\xb2\x06\x1ex+F\xdf[S\xa9\xf1v\x8c\xde\xfd\x9d\x18\xe4\xad\x16\xfaV[\x1b~7\x06\x06ԉ\xc1\xb1ԍ\x89\xe8\xbc\xc7\x1b\xeb\xc5ē֏\xc1\x936\x88\xc1\xa75\x8c\xd1y6\x8aѷ\xbd\x1f\x13\xff\xd7X\x87\xf8A\x8c\x9e\xb2IL\xa4\xb3iL|ч B\xb3\x18\xbdT\xf3\x98ؕ\x16\xb1\x84\xbdj\tb\u007f\x14\xa3 \xb4\x8a\x89\xe6\xb5ƃmb\xb0\xf5mc\xb4\x81\xedbb\xfc\xda\xc7`\xad;\xc4\xe0\x1c:\xc6\xe8::\xc5\xe83:\xc7h\xe8\xba\xc4h~\xbb\xea\xf0\xba\xc5DĻ\xa3\xd5\x1e\xe0aOi\xbb\x17\x88\xd7;\x06{\xda'&\xf6\xe2\xe3\x18\f\xdf'1\xb1q\x9f\xc6\xc4\x02\xf4\x8dAu\xfb\xc5h\xb1\xfaǸU\x1f\x8c\x1b\x80;\x06\xc6\xf4\xd5\xfd\xa8:\rR\xfa\x99\xca\xc2`\xca\xe9\x90\x18\xd5(]\xafCcT\xafa\x14\x83\xcfA\x85\xe1`߈\x18Md\x86\nu\xa6\xd64\x92\x02轸Hh\xbd8U\xb5>oh\x10\a&h\b\xda6\x8a\xc3/\xbc\x1fg\xa64\x0e\xec\xf9\x01\x1ak\x82\xb2i\x1c9\xab\x0fQS\xb3\xb8\x98\x8f\xe6q$\xc9Z\xc4\xe1F[\xc6\xe9R>ⷭ\xe2\x9crm\x1d\xe72\xc26 a\xdb8\x97.\xb7\x8b\x8b\xa1j\x0f\xe6t\xc0\xff\x1dQv\xc2]\x9d\xf1\u007f\x978\x14\xb0k\x9c\x96\xb5\x9b^\xbb\xc7\xc5/\xf5\x88\v,\xe8\x19\xc7\x01\xaf\xbd\xe2X\xda\xd0;\x0eS\xd5'\x0e\xb3\xff1\t\xf7\t\xda\xf8\x94u\xf5U\xba\xf5\x03\xa1\xfaǙ K\x8d\xd3^\x0e\xd0\xeb\xc08\xd4tP\x9c\xd83\x8d\xb5\u007fƶ\x06ǹ\x11?\x0e;\x9eN\xb2\r\x8d\xf3@\xb8aq8\xf4\xcf\xe3p\x80\xacfD\\\xd4*#.\x9e \x93]\x1b\x19\xe7;\xfa\xc1\xf7\xd1q\x98\xb6,eNv\\`Ҙx£\x8f\x8d\xcbK\xb6\xc7\xe1\xf9\xf1\xda\xc2\x04>\xfaE\x9c\xb6\xe3K\xb6\xf1U\x1c\xe6\xefk\x10\xe5\x1b\x8e\xf5[\xa5\xd7D\xd0k\x12{\xff\x1d\x06>Y\a\xfa=\t\xf6\x83\xd2!\a\xa42\xf0N#\xc6`\xd2f\xcd\xe8\xaa\x05\x1d\xb2Ɖ\x18mq\xaeڰ\xc7u\v\xa2~vR\xbc\\z\x9b[\xaf\x1e\xbd\xcd\x1b\xc7\xd6\x1a_\\\xd2o~\xedI\x00\x9f\x82zkHo\r\xf3\xd6H\x1c\xe9\xd5(e3F\xcb\x10\xe7\x97S\xe2\x00\xabS\xe3\xdc$\xf4#\x06;-\x8e\x18\xe2'2n:F2#\x9e7\xe1\x8af\xa2\x9c\x85r6\xca9(碜\x87r>\xca\x05(\x17\xa2\\\x84r1\xca%(\x97\xa2\\\x86r9\xca\x15(W\xa2\\\x85r5\xca5(ע\\\x87r=\xca\r(7\xa2܄\xf2g\x94\x9bQnA\xb9\x15\xe5/(\xb7\xa1\u070e\xf2W\x94;P\xfe\x86r'\xca](w\xa3܃r/\xca\xdfQ\xeeC\xf9\a\xca\xfd(\x0f\xa0<\x88\xf2\x10\xca\xc3(\x8f\xa0<\x8a\xf2\x18\xca\xe3(O\xa0<\x89\xf2\x14\xca\xd3(\xffD\xf9\x17\xca3(Ϣ<\x87\xf2<\xca\v(/\xa2\xbc\x84\xf22\xca+(\xaf\xa2\xbc\x86\xf2:\xca\x1b(o\xa2\xfc\x1b\xe5?(\xffEy\v\xe5m\x94wP\xdeEy\x0f\xe5}\x94\x0fP>D\xf9\b\xe5\u007f(\x1f\xa3|\x822ה<\xe9Y\xb9\x13Ÿ%OF\xd6s\x89b\xdc\xf3Srg\x94H\xfc\x93YrJ\x9e\xb4q/Lɝ\xf6\xe2\x94\xab\xb3\x94\xe3\xba$\xee\x19\xdfU\xfe\xcd언'\xd1\xe9\xee\xf2aT\x8f\xc4\b\x12,\xe8\x89˸^\x89\x81\fH\xef\x8d\x0f\x99}\xa6\xe4\x1f l\xf8?\x9a\xce:\xc0\x8d\x9b\x89\xe2\xfd\x0e\x9223333\xb7i\x03\xc5\x14\x92\xa2\xe5\xddH^/(\x1e9\xb7N\x99\x99\x99sP\x0esRfffffn?\xcd\x1b\xdd?\xf3{\xef͊\xbc\xb6\xef\xec&\xcd\x11\xc2\xf2H\xc4\xf1Qb\xed\xd1l+\xee\x18\xa0<\x96GV*0V\xf1%\xfe U\xb6\xcd\"\x12kc\xb6\x85\x1b\x05\x94\x9aG\x14\x06\xc6\xd6\x18q\x99p\x16\xd7al\x8a\xd1.\x03ʜ[\xcd\x02\xc6Z\xcc\xd8(G\xc36\x1a\x8c\x96#\xa0t|e\xab\tcnj\xeb\xc8\xfd\xf9\xba\x80\xb2\x1c\xd7\xeeт\xb1c\xc7u\xe6|\xae\xe3`\xe3\xe3\xc5\xda\x13\xd8V܉@y\x12\x8f\xa8\x9c\fcOa\x14\xeeT\xa0<\x8d[\xc5\xe90\xf6\fFӝ\t\x94gq\xaby6\x8c=\x87'\xf6\x9b=\x17\xb6q\x1e\xa3\xe5\xce\a\xca\v\xf8\xcaօ0\xf6\"\xbe\xd2ߚ\x8ba\x1b\x97\x8c\xeb0Y\xcd]\n\x94\x97\x8dk\xf7\xb8\x1c\xc6^1\xae\xd3#.\xaf\x84\x8d\xaf\x12k\xaff[q\xd7\x00\xe5\xb5<\xa2r\x1d\x8c\xbd\x9e/\xf1\xf7\xe4\x06\xb6\xcd\xe2F\xb1\xf6&\xb6\x85\x1b\a\x94\xdd<\xa2聱\xbd\xb8\xd2\xf5\x01\xe5\xcd\xdcj\xde\x02co\xc5\xe8Fy\x1bl\xe3vF\xab\xbc\x83/i\xdd\tc\xc7\xf3%\xfe,\x13`\x1b\x13ǵ\xfb\xa3L\xe2ZN\x1eזզ\xb0\xb4S\xc7u\xf01\xa6\xb1\x89\xa7\xc3\xd8\x19\xdeT\xdcL\xae\xe5,\u007fie6K;\xc7w\x9b\x85\x9b\v\x94w\xf9\xacY\xdc\rc\xef\xf1\xa6p\xf7r-\xef\xf3#\x8a\xfbY\xda\a|\x8d\xcb\a}\x10?ė\xbb\x87\xb9\x96\x8f\xf8\xa0\xf9(K\xfb\x18\x8fo\x94\x8f\xb3i<\xe1k\xcb=ɵ|\xca_\xd3z\x9a\xa5}f\\\xfb\xa8\x9a{\x96k\xf9ܸ\xb6Q\xb5\xe7Y\xda\x17|\xad\xb8\x17\xb9\x96/\xf9\xb8\xf22K\xfb\x8a\xafE\xf9\xaa\x0f\x8a\xd7X\xda\xd7}m\xba7\xb8\x96o\xfa\xb8\xf9\x16K\xfb\xf6\xb8\x8eQ~\xe5w\xd84\xde\xf5\xb5\xe5\xde\xe3Z\xbe\xef\xafi}\xc0\xd2~8\xae}L\xcd}ĵ\xfcx\\ۘ\xda',\xed\xa7\xe3:\xc6\xf8\x97\xe5g@\xf99g\xf1\x170\xf6Ko*\xee+\xae\xe5\xd7~D\xe5\x1b\x96\xf6[_\v\xf7\x1d\xd7\xf2{\x1f\x17?\xb0\xb4?\xfa\x1a\x97?q\xb5?\xfb\xdat\xbfp-\u007f\xf5\x974\u007fci\u007f\xf7\xf3\xfam\xfe\xc1\xa6\xf1\xa7\xaf-\xf7\x17\xd7\xf2o\u007fM\xeb\x1f\x96\xf6_\u007f\x8d\xbf\xd1\xff\xb1i\xcc\xd3\xdd\x1e\xf9\x9f \\˶\ueda8\xd6\xce\xd2vtwD~\xb3\x9dl\xe2\x010v\xa07\x157/\xd7r>\u007fie~\x96v\x01\xdf\xf57xAo\x9a\xc5B\xbe\x16na\xae\xe5\"\xfe\x9abQ\x96v1_\xe3rq\x1f\xc4K\xb0\xb4K\xf2\xd5n)\xae\xe5\xd2>n.\xc3\xd2.\xcbs5\xca\xe5\xd84\x96\xefnw5\xb7\x02\xd7r\xc5\xee6W[\x89\xa5]\xb9\xbb\xc3\xf9\xad\xad\xc2\xc6\xff\xe2\xc4Ʈ\xe6Mŭε\\\xc3_ZY\x93\xa5]\xcbw\xfdSpm\xa0\\\xc7g\xcdb]\x18\xbb\x9e7\x85[\x9fk\xb9\x81\x1fQl\xc8\xd2n\xe4k\\n\xec\x83x\x13\x96vS\x1e\xe46\xe3Zn\xee\xe3\xe6\x16,\xed\x96\xf7+\x9f\xedM\xb38\aƞ\xebM\xe1\xce\xe3Z\x9e\xef/-.`i/\xf45./\xf2A|1K{\t\x0fr\x97r-/\xf3q\xf3r\x96\xf6\n\x9e\xa5Q^ɦq\x95\xdfbZsW\x03\xe55~\xf7i\xedZ\x18{\x9d?u\xea7x=l|\x83X{#ۊ\xbb\t(\xc7\xf1\x88J7\x8c\xed\xe1K\xfcn{\xd96\x8b>\xb1\xf6f\xb6Ey\v_Z\xdc\ncoc\xc4\xe5\xed\x9c\xc5w\xc0\xd8;1̍\a\xca\t\xdcjN\x84\xb1\x930U\xa3\x9c\fۘ\xc2h\xb9\xa9@9\x8d\xaflM\x87\xb13\xf8J\xffn5\x13\xb61\xab\xbb\xdd\x1fo6\xd7rNw[Z\x9b\xcb\xd2\xde\xd5\xdd\xe1\xcf\xe2\xee\x06\xca{8\x8b\uf171\xf7ySq\xf7s-\x1f\xf0#*\x0f\xb2\xb4\x0f\xf9\xae\u007fkx\x18(\x1f\xf1Y\xb3x\x14\xc6>\xe6M\xe1\x1e\xe7Z>\xe1G\x14O\xb2\xb4O\xf9\x1a\x97O\xfb ~\x86\xa5}\x96\a\xb9縖\xcf\xfb\xb8\xf9\x02K\xfb\"\xcf\xd2(_b\xd3x\xd9ז{\x85k\xf9\xaa\xbf\xa6\xf5\x1aK\xfb\xba\xbf\xc6\x1f\xea\r6\x8d7\xbb\xdbuͽŵ|\xbb\xbbM\xd7\xdeai\xdf\xed\xee\xd0\xfeL\xef\x01\xe5\xfb\x9c\xc5\x1f\xc0\xd8\x0f\xbd\xa9\xb8\x8f\xb8\x96\x1f\xfb\x11\x95OX\xdaO}ן\xe93\xa0\xfc\xdcg\xcd\xe2\v\x18\xfb\xa57\x85\xfb\x8ak\xf9\xb5\x1fQ|\xc3\xd2~\xebk\xec\xbe\xe3Z~\xef\xe3\xf8\a\x96\xf6G\x1e\xea~\xe2Z\xfe\xec\xe3\xe6/,\xed\xaf\x96v~_c\xb7\x00\xd7rA\x1f\xc7\v\xb1\xb4\v\xf3P\xb7\b\xd7rQ\x1f7\x17ci\x17\xe7\xb9\x1a\xe5\x12l\x1aK\xf6th\xff\xf0.\x05\x94K\xf7\xb4{,\xd3ө\xf9A]\x16a\xbc\x9cX\xbb<ۊ[\x01(W\xe4K++\xc1ؕ\xf9\x12\xffخ\",W\xe5\xb8Y\xac&֮ζpk\x00\xe5\x9a<\xb2X\vƮ͈\xdd:@\xb9.\xb7\xe2\xf5`\xec\xfa\x98\xc4m\x00\x94\x1br\xab\xb9\x11\x8c\xdd\x18\x137\xcaM`\x1b\x9b\xf6tf\xbc\xe1\xcdz:\x98\x9b3*n\v\xa0ܲ\xa7\xddc+\x18\xbb5_\xe97\xb8\r\xdbf\xb1\xadX\xbb\x1d\xdb\xc2m\x0f\x94;\xf0\x88bG\x18\xbb\x13#.w\xe6,\xde\x05\xc6\xee\x8a\xd1n7\xa0ܝ[\xcd=`잘\xb1Q\xee\x05\xdbػ\xa7Ô57\b(\xf7\xe9i\xf7\xd8\x17\xc6\x0e\xee\xe9\xf4\x88\xdd\x10a9\x14q\x88\xbbY\xda\x1e\x1e\xe4z\xb9\x96}>n\xde\xcc\xd2\xde³4\xca[\xd94n\xf3\xb5\xe5n\xe7Z\xde\xe1\xafi\xdd\xc9Ҏ\xf7\xd7\xf0g\x186\x8d\x89=\xedU\xff\x11\x86k9\xb9\xa7\xadZ\x9b\xc2\xd2N\xed\xe9\xa8\xfag\xe54\xa0\x9c\xceY<\x03\xc6\xce\xf4\xa6\xe2fq-g\xfb\x11\x959,\xed\\\xdf\xe5\x8f0\xde\xf8\x8f00\xf6\x1eo\xfcG\x18\xae\xe5}\xfe\xd2\xe2~\x96\xf6\x01_\xfdG\x18\x1f\xc4\x0f\xb1\xb4\x0f\xf3 \xf7\b\xd7\xf2Q\x1f7\x1fci\x1f\xe7Y\x1a\xe5\x13l\x1aO\xfa\xdarOq-\x9f\xf6״\x9eai\x9f\xf5\xd7\xf8\xc3<Ǧ\xf1\xbc?\x99\xbf'/\x00\xe5\x8b\xfe\x80ck/\xc1ؗ{:=b\xf7\x8a\xb0|\x15q\xfc\x9aX\xfb:ۊ{\x03(\xdf䑕\xb7`\xecی\xa2|\x87\xb3\xe2]\x18\xfb\x1e\xc3\xff\xbc\xe1,\xfe\x00\xc6~\xc8h\x96\x1fq\xd6\xfc\x18\xc6~\xc2\xd3\xfb#|\n\xdb\xf8\x8c\xd1r\x9f\x03\xe5\x17|e\xebK\x18\xfb\x15_\xe9\x0f\xf25l\xe3\x1b\xff\xea\xf0'\xf9\x16(\xbf\U000ef631\xb5\xefa\xec\x0f\xfe\xf5\xc6'\xf8\x116\xfeI\xac\xfd\x99m\xc5\xfd\x02\x94\xbf\xf2\x88\xcao0\xf6w\xbe\xc4ߛ?\xd86\x8b?\x19E\xf9\x17`\xfff\xf8\x9fE< \xfe\x17W\x94\xff\xb1i\xce\xd3\xcb\xc6\xfe\xaf\x97G7\xca6\xd8F;\xa3\xe5:\x80\xb2\xb3\xd7_\xd9\x1a\x00c\a\xf2\x95\xfe\f\xf3\xc26\xe6\xebm\xa7\x9a\x9b\x9fk\xb9@o\x1b\xd5\x16di\x17\xea\xed \xbf\xfd\x85\xd9ċ\xc0\xd8E\xbd\xa9\xb8Ÿ\x96\x8b\xfbK+K\xb0\xb4K\xfa\xae\xdf\xf7R\xde4\x8b\xa5a\xec2\xde\x14nY\xae\xe5r\xfe\xd2by\x96v\x05_\xe3rE\x1f\xc4+\xb1\xb4+\xf3 \xb7\n\xd7rU\x1f7WciW\xe7Y\x1a\xe5\x1al\x1ak\xfa\xdarkq-\xd7\xf6״\xd6ai\xd7\xf5\xd7\xf8c\xacǦ\xb1\xbe7\xfe\x18\x1b\x00\xe5\x86>\xa3\xdaF0v\xe3\xdeN\xe2\xa3l\x02\x1bo*\xd6nƶ\xe26\a\xca-xDeK\x18\xbb\x15\xa3p[\x03\xe56\xdc*\xb6\x85\xb1\xdb1\xe2r{\xce\xe2\x1d`쎌\xa6\xdb\t(w\xe6Vs\x17\x18\xbb+\xa3\xe5v\x03\xcaݹ\xd5\xda\x03\xc6\xee\xc9\xfb\xf0\xfb\xdf\v\xb6\xb1wo\xc7X\xff\x1e:\b(\xf7\xe9m\xf7\xd8\x17\xc6\x0e\xee\xed\x1c\xcb\xef\xa2C\xd86\x8b\xa1b\xed0\xb6\x85\xdb\x0f(\xf7\xe7\x11\xc5\x010\xf6@F\xec\x0e\x02ʃ\xb9\x15\x0f\x87\xb1\x87`\x12w(P\x1eƭ\xe6\xe10v\x04&n\x94#a\x1bG0Z\xeeH\xa0<\x8a\xafl\x1d\rc\x8f\xe1+\xfdޏ\x85mTz;\xaa~\xef\n(\xab\xbd\xed\x1e\x11\x8c\x8d{;\xab\xfc\xf3`\x94\xb0\xd4\x1c7\v#\xd6\xd6\xd8\x16.\x01\xca:\x8f,R\x18\x9b1b\x97\x03e\xc1\xad\xd8\xc2\xd8ј\xa4lp\xd6$\x18\xeb0c\xa3l\xc26\xc60Z\xae\v(K\xbe\xb2Ղ\xb1c\xf9J\xbf\xf9\xe3`\x1b\xc7\xf7v4\x1a\x95\xf2\x84\xdev\x8f\x13{;\x1b\r\xbf͓8l\x16'3\nw\nP\x9eʗ\x14\xa7\xc1\xd8\xd3\x19\xb1;\x03(\xcf\xe4V|\x16\x8c=\x1b\x83\xdd9@y.\xb7\x9a\xe7\xc1\xd8\xf31\u007f\xa3\xbc\x00\xb6q!\xa3\xe5.\x02ʋ\xf9\xca\xd6%0\xf6R\xbe\xd2\xef\xf22\xd8\xc6\xe5\xfe\xc5\xda\xf0?\x9c\x80\xf2J\xffznT\xae\x82\xb1W3\xfc\xcf'Ίka\xecu\x8c\xd8]\x0f\x947p+\xbe\x11\xc6\xde\xc4h\xbaq@\xd9ͭf\x0f\x8c\xed\xf5\xef\f\xbc\xbb>\xd8\xc6͌\x96\xbb\x05(o\xe5+[\xb7\xc1\xd8\xdb\xf9J\xbf\xbb;`\x1bw\xfa\xe7\xb0\u007f\x02\x8c\a\xca\t\xfein*\x13a\xec$\xff4\xe7\x1b?\x99m\xb3\x98\"\xd6Ne[\xb8i@9\x9dG\x143`\xecLF\xecf\x01\xe5ln\xc5s`\xec\\L\xe2\xee\x02ʻ\xb9ռ\a\xc6ދ\x89\x1b\xe5}\xb0\x8d\xfb\x19-\xf7\x00P>\xc8W\xb6\x1e\x82\xb1\x0f\xf3\x95~\xef\x8f\xc06\x1e\xf5\x8fz\xc5=Ƶ|\xbc\xb7\xadQy\x82\xa5}\xd2?\xee~\xdbOy\xd3,\x9e\x86\xb1\xcfxS\xb8g\xb9\x96\xcf\xf9K\x8b\xe7Y\xda\x17|\x8d\xcb\x17}\x10\xbf\xc4Ҿ̃\xdc+\\\xcbW}\xdc|\x8d\xa5}\x9dg\xf1\x9f\x94\xd84\xde\xf4\xb5\xe5\xde\xe2Z\xbe\xed\xafi\xbd\xc3Ҿ\xeb\xaf\xf1{{\x8fM\xe3\xfd\xde\xf6\xa4\xe6>\xe0Z~\xd8ۖ\xd4>bi?\xee\xedH\xfc\xcf\xc8O\x80\xf2S\xce\xe2\xcf`\xec\xe7\x1e\xfe\xd5\xf6\x05P~\xe9[\xcd\xe2+\x18\xfb\xb57\x85\xfb\x86k\xf9\xad\x9f\xac\xf8\x8e\xa5\xfd\x9e\xafq?p-\u007f\xf4q\xf3'\x96\xf6g\x1e\xd4(\u007fa\xd3\xf8\xd5ז\xfb\x8dk\xf9\xbb\xbf\xa6\xf5\aK\xfb\xa7\xbf\xc6\xef\xf5/6\x8d\xbf{\xdbG\xd7\xdc?\\\xcb\u007f{\xdbF\xd7\xfeci\xe7\xe9\xeb\x18\xed\xf7\xfa?\xa0l\xeb\xf3Y\xdc\x0ec;<\xfc^;\x81r\x80o5\x8b\x810v^o\n7\x1f\xd7r\xfe\xbe\xb6\xd1\xc5\x02,\xed\x82|\x8d[\x88k\xb9\xb0\x8f\x9b\x8b\xb0\xb4\x8b\xf2\xa0F\xb9\x18\x9b\xc6⾶\xdc\x12\\\xcb%\xfd5\xad\xa5Xڥ\xfd5~\xaf˰i,\xdbב\xf8\av9\xa0\\\xbe\xaf\xddc\x05\x18\xbbb_g\xc2\x0f\xeeJ\xc2re\xc4\xf1*b\xed\xaaL\xbf\xdb\xd58n\x16\xab\x8b\xb5k\xb0-ܚ@\xb9\x16OX\xac\rc\xd7\xc1\x95n]\xa0\\\x8f[\xcd\xf5a\xec\x06\x18\xdd(7\x84ml\xc4h\xb9\x8d\x81r\x13\xbe\xb2\xb5)\x8cݬ\xaf#\xf7\x1b\xde\x1c(\xb7\xe8k\xf7\xd8\x12\xc6n\xd5י\xf3\x86\xb7\x16\x96\xdb \x8e\xb7\x15k\xb7c\xfa\ro\xcfq\xb3\u0601Q\xb8\x1d\x81r'\x9e\xa8\xd8\x19\xc6\xee\x82+\xca]9k\xee\x06cw\xc7\xe8F\xb9\alcOF\xcb\xed\x05\x94{\xf3\x95\xadA0v\x1f\xbe\xd2?\xc0\xfb\xc26\x06{\xb4jn\bP\x0e\xf5W\xb6j\xc3`\xec~\xfeʖ\xdf\xf0\xfe\xc2\xf2\x00\xc4\xf1\x81b\xedAL\xbf\xe1\x839n\x16\xc3\xc5\xdaC\xd8\x16\xeeP\xa0<\x8c',\x0e\x87\xb1#p\xa5\x1b\t\x94Gp\xaby$\x8c=\xaa\xaf\xdd\u007f\xa0;\x9akyL_[Y;\x96\xa5\xad\xf4u\xf0\x879\x05\x94U\xce\xe2\b\xc6\xc6\x1e\xfc)\xc9g\xfeC\x92\xaf\xfe3\x12ײ\xe6\x87\x17\tK[\xf7\xb5\xe5R\xaee\xe6\xe3V\xce\xd2\x16~\xa8\u007f\x04,\x9b\xc6\xe8\xbev\u007f\xfe\x06ג\xfaڼfi\x9b}\x1d|\xf61@\xd9\xc5Y\\\xc2ؖ\x87\u007f9\x8c\x05\xca\xe3|\xabY\x1c\x0fcO\xf0\xa6p'r-O\xf2\x93\x15'\xb3\xb4\xa7\xf05\xeeT\xae\xe5i>n\x9e\xceҞ\xc1\x83\x1a\xe5\x99l\x1ag\xf9\xdargs-\xcf\xf1״\xceei\xcf\xf3\xd7\xf8\xbd\x9eϦqA\x1f\xff\xe7\xd7\vQ/B\xbd\xb8\xaf\xfd\xc0\xc2]\xd2\xd76\xb4vi_\xfb\x90\x9a\xbb\xac\xafc?\xbf\xfd\xcb\xfb\xda\xf7h\xd9+\xfa\xda\x0f\xa6ڕ}\x1d\x83\xfc\xa7ū\xfa\xda\a\xc5\xf6꾶a\xb5k\xfa:\xf6\xf1\x0f\xf7\xb5}\xedC[\x8d\xeb\xfa:vWMw}_\xfb\xb0\xc2\xde\xd0\xd76\xa2\xb8\xb1\xaf\xfd\x80\xa6\xbb\x89/j\x16\xe3\xfaڇW\\w_۠J\x0f\x96\xecE\xed\xeb\xeb\xd83\xf2?y\xfa\xdawo6n\xe1\x15\x9aŭ\xbcvao\xebk\x1b\u07bc\xbd\xafm\u007f{G_\xc7`\xff\x92\xba\xb3\xaf}d\xe1\xc6\xfbY[nB_\xfb>Y1\xb1\xaf}\x84\xff\x94\xd4\xd7~h\xb31\xd9oҴ\xa6x\x1d۩}m#+\xd3\xfa\xda\x06\x17ӱʌ\xbe\xf6\xc1Ik\xa6\xdfy\xe1f\xf1d\xb5xv_\xdbaŜ\xbe\xb6=\x9bs\xfb\xf8\x8f\x0e5\xee\xf2\xa7\xa8\xc5w\xf7\xb5\xedѺ\xa7\x8f\xff\xa4\x88\xbd\xd7\x1f\xbef\xef\xe3\xfd\x17\xf6~\xbe\xaa\xe2\x1e\xc0|\x0f\xb2)\xecC\xfe\x02\x13?\xdc\xd79\x92?\xc2<\x82֣}mC\xe2\xc7 \x1fG}\x02\xf5IԧP\x9fF}\x06\xf5Y\xd4\xe7P\x9fG}\x01\xf5EԗP_F}\x05\xf5U\xd4\xd7P_G}\x03\xf5MԷP\xdfF}\a\xf5]\xd4\xf7P\xdfG\xfd\x00\xf5CԏP?F\xfd\x04\xf5S\xd4\xcfP?G\xfd\x02\xf5K\u052fP\xbfF\xfd\x06\xf5[\xd4\xefP\xbfG\xfd\x01\xf5GԟP\u007fF\xfd\x05\xf5W\xd4\xdfP\u007fG\xfd\x03\xf5OԿP\xffF\xfd\a\xf5_\xd4yƷ\xe9\xca\xffƷ\xeb\x8an\x1b\xdf\xe1\xabn\a\xa8\x83\xb3\xbc\x93M\x9e\f\x00\xcc@\u03a2y\xb9\xa6\xf3q\x94\xea\xf9\x81l\x01@-\b\xd0B\x80[\x18\xb0\x8b\x00fQ\x1e\x96-\xc6U-Α\xa2%\xd8Вl\x88\x96\xc2\x1aziΒe\xb8V\x97\xe5Z_\x8e\xab[\x9e\xab]\x81\xabY\x91k\xbc\x12\x0f\x88\xf5\xca\xe3;\x19z\x15!\xad\x8a8_\r6OV\x17\x9a5\x10Gk\x02\xe9ZHS\xbd\xb60[G\xa8\xd6\x15\xd2zB\xb7\xbe\xd0n 4\x1bbx\xb6\x11\xa06F\xaah\x13X\xda\x14\x96h3YRo\x8e8\xd9\x02\xa8n\tԷ\x02\xdcր\xdd\x060\xdb\xfa\x03\xb5*\xdbyӪ\xe8\xed\xfdp\x0f\xbd\x83\x90vD\x9c\xef\x04\x9b';\v\xcd.\x88\xa3]\x81t7\xa4\xa9\xde]\x98\xed!T{\ni/\xa1\xdb[h\a\t\xcd>\x18\x9e\xed\v\xa8\xc1H\x15\r\x81\xa5\xa1\xb0D\xc3dI\xbd\x1f\xe2d\u007f\xa0z\x00P?\x10p\a\x01\xf6`\xc0\f\a\xe2C00և\x8e\x1f\x00\xeaÂ\xa0å\x93\x8f\x90 OF\x06a\x8e\x90Nt\xa40=J\x1a\xa9>:\x88\xec\x98 ԱAP%\b\xa7\x82\xb0\xd5 L$\xd3d\xb1P\x8d\x92\x86\"-\x01\x19\t\xfc\aٰ\x03\x9dH'\xa9\v\xab\xa9\xb0\x9e\t].\xb4\x85\xd0X\u007f\xf7\xe2b\xb4?r\\\xe8\x86\x0f=4\t\xc9!Λ\xb0y2Fh\xba\x10G%\x90\xb6\x90\xa6z\xac0;N\xa8\x8e\x17\xd2\tBw\xa2О$4'cxv\n\xa0NE\xaa\xe84X:\x1d\x96\xe8\fYR\x9f\x8989\v\xa8\x9e\r\xd4\xcf\x01ܹ\x80=\x0f0\xe7\xfb7\x85\xf8\x02>\x95\xbe\x90\x13\xad/\x02\xe8b\xce\xf2K\xd8\xe4ɥ\x80\xb9\x8c\xb3\xe8r\xae\xe9\x15\x1c\xa5\xfaJ \xbb\nPW\x03t\r\xe0\xae\x05\xecu\x80\xb9\x9e\x87e7pU7r\xa4\xe8&64\x8e\rQ7\xd6\xd0=\x9c%\xbd\\\xab}\\\xeb7su\xb7p\xb5\xb7r5\xb7\xf1S..n\xe7\x9b\xe2\x1f\xf8;\xf8n\xf2\x8d\xb83\b\x1a/\x9d|\x82\x04y21\b3I:\xd1da:E\x1a\xa9\x9e\x1aD6-\b5=\b\x9a\x11\x84\x9b\x19\x84\x9d\x15\x84\x99-\xd3ds\x84j\xae4\x14\xdd%\x01\xdd-\x01\xd1=a\a\xfa^\xe9$\xf7\t\xab\xf7\v\xeb\x0f\b݃B\xfb\x90\xd0<\xcco\x18\xf1#8\xb2~\x14\xa1֏\t\xe9q\xc4\xf9\x13\xb0y\xf2\xa4\xd0<\x858z\x1aH\x9fA\x9a\xeag\x85\xd9sB\xf5\xbc\x90^\x10\xba\x17\x85\xf6%\xa1y\x19óW\x00\xf5*RE\xaf\xc1\xd2\xeb\xb0DoȒ\xfaM\xc4\xc9[@\xf5m\xa0\xfe\x0e\xe0\xde\x05\xec{\x80y\xdf?\xe5\x8a\x0f\xfc\xa9\n\xfd\xa1O\xfc}\xfb\b\xa0\x8f9\xcb?a\x93'\x9f\x02\xe63\u03a2Ϲ\xa6_p\x94\xea/\x81\xec+@}\r\xd07\x80\xfb\x16\xb0\xdf\x01\xe6{\x1e\x96\xfd\xc0U\xfdȑ\xa2\x9f\xd8\xd0\xcfl\x88~\xc1\x1a\xfaWΒ߸V\u007f\xe7Z\xff\x83\xab\xfb\x93\xab\xfd\x8b\xab\xf9\xdb\u05ee\xca?~@WE\xff\xeb\xcf\xec\xa1\xff\x13\xd2<\x138\xce\xff7\x81m\x9e\xb4\tM;\xe2\xa8\x03H;\x91\xa6z\x800\x1b(T\xf3\ni>\xa1\x9b_h\x17\x10\x9a\x051<[\bP\v#U\xb4\b,-\nK\xb4\x98,\xa9\x17G\x9c,\x01T\x97\x04\xeaK\x01ni\xc0.\x03\x98e\x81x9\f\x8c\xf5\xf2\x13\x06\x80z\x85 hE\xe9\xe4+I\x90'+\aaV\x91N\xb4\xaa0]M\x1a\xa9^=\x88l\x8d ԚA\xd0ZA\xb8\xb5\x83\xb0\xeb\x04a֕i\xb2\xf5\x84j}i(\xda@\x02\xdaP\x02\xa2\x8d\xc2\x0e\xf4\xc6\xd2I6\x11V7\x15\xd67\x13\xbaͅv\v\xa1\xd9r\x82\xbf\x87\xf1V\xfe\xc8E\xac\xb7\xf6\xa1\x87\xdeFH\xdb\"η\x83͓\xed\x85f\a\xc4ю@\xba\x13\xd2T\xef,\xccv\x11\xaa]\x85\xb4\x9b\xd0\xed.\xb4{\b͞\x18\x9e\xed\x05\xa8\xbd\x91*\x1a\x04K\xfb\xc0\x12\xed+K\xea\xc1\x88\x93!@u(P\x1f\x06\xb8\xfd\x00\xbb?`\x0e\xf0\aj\x15\az\xd3*\xf4A~\xb8\x87>XH\xc3\x11\xe7\x87\xc0\xe6ɡBs\x18\xe2\xe8p \x1d\x814\xd5#\x85\xd9\x11Bu\xa4\x90\x8e\x12\xba\xa3\x85\xf6\x18\xa19\x16ó\n\xa0\x14REUX\x8a`\x89bYR\x8fB\x9ch\xa0j\x80z\rp\t`\xeb\x80I'\xb4\xe9f\xe6O\xd5ԹO\x9aZ\x17\x00Y\xce\xf2\xd1l\xf2\xa4\x01\x18\xe2,r\\\xd3&G\xa9\x1e\x03d]\x80*\x01j\x01n,`\x8f\x03\xcc\xf1<,;\x81\xab:\x91#E'\xb1\xa1\x93\xd9\x10\x9d\x825\xf4\xa9\x9c%\xa7q\xad\x9eε~\x06Ww&W{\x16Ws6\xbf\x86\xe2\xe2\x1c~\x96\xf9\x1f;\xe7\xf2ӓ\u007f\x0e\x9d\x17\x04\x9d/\x9d\xfc\x02\t\xf2\xe4\xc2 \xccE҉.\x16\xa6\x97H#\u0557\x06\x91]\x16\x84\xba<\b\xba\"\bwe\x10\xf6\xaa \xcc\xd52Mv\x8dP]+\rE\xd7I@\xd7K@tC\u0601\xbeQ:\xc9M\xc2\xea8a\xbd[\xe8z\x84\xb6Wh\xfa\xfc\x91\xbb\xe2\x9bqd}\vB\xado\x15\xd2m\x88\xf3\xdba\xf3\xe4\x0e\xa1\xb9\x13q4\x1eH' M\xf5Da6I\xa8&\vi\x8a\xd0M\x15\xdaiB3\x1dó\x19\x80\x9a\x89T\xd1,X\x9a\rK4G\x96\xd4s\x11'w\x01ջ\x81\xfa=\x80\xbb\x17\xb0\xf7\x01\xe6~>P\xed\x0165\xfd \x0f\xafi\xfd\x90\x90\x1eF\x9c?\x02\x9b'\x8f\n\xcdc\x88\xa3ǁ\xf4\t\xa4\xa9~R\x98=%TO\v\xe9\x19\xa1{Vh\x9f\x13\x9a\xe71<{\x01P/\"U\xf4\x12,\xbd\fK\xf4\x8a,\xa9_E\x9c\xbc\x06T_\a\xeao\x00\xeeM\xc0\xbe\x05\x98\xb7\xf9M\xa1\xf9\x0e\xbf\xa0\x9a\xfa]~\t\xfa\x97\xd1{Bz\x1fq\xfe\x01l\x9e|(4\x1f!\x8e>\x06\xd2O\x90\xa6\xfaSa\xf6\x99P}.\xa4/\x84\xeeK\xa1\xfdJh\xbe\xc6\xf0\xec\x1b@}\x8bT\xd1w\xb0\xf4=,\xd1\x0f\xb2\xa4\xfe\x11q\xf2\x13P\xfd\x19\xa8\xff\x02\xb8_\x01\xfb\x1b`~\xf7\a\x8a\x9b\u007fx\x137\xf5\x9f~\xb8\x87\xfeKH\u007f#\xce\xff\x81͓\u007f\x85\xe6?\xc4\xd1<\x13\x19\xe9\xff&r\x9a\xea6a\xd6.T\x1dB\xea\x14\xba\x01B;Ph\xe6\xc5\xf0l>@͏T\xd1\x02\xb0\xb4 ,\xd1B`\xae\x17F\x9c,\x02T\x17\x05\xea\x8b\x01nq\xc0.\x01\x98%'\xfa;T[ʛVM/\xed\x87{\xe8e\x84\xb4,\xe2|9\xd8\xe2d\x03\xa0\xba!P\xdf\bp\x1b\x03v\x13\xc0l:\xb1M\xd76\xf3\xa7\xaa\xe9\xcd}\xe2O\xb3\x05@[r\x96o\xc5&O\xb6\x06\xcc6\x9cE\xdbrM\xb7\xe3(\xd5\xdb\x03\xd9\x0e\x80\xda\x11\xa0\x9d\x00\xb73`w\x01̮<,ۍ\xabڝ#E{\xb0\xa1=\xd9\x10\xed\x855\xf4ޜ%\x83\xb8V\xf7\xe1Zߗ\xab\x1b\xcc\xd5\x0e\xe1j\x86N\xe4?\xd73l\"\xff\xb9\x1e\xbd\x9f?3\u007f\x17\xb2\xbf\x90\x0e@\x9c\x1f\b\x9b'\a\t\xcd\xc1\x88\xa3\xe1@z\b\xd2T\x1f*\xcc\x0e\x13\xaaÅ4B\xe8F\n\xed\x11Bs$\x86gG\x01\xeah\xa4\x8a\x8e\x81\xa5ca\x89*\xb2\xa4V\x88\x93*P\x8d\x80z\f\xb8Q\x80Հ1@\\\xc3\xc0X'\x13\a\x80\xba\x1e\x04\xa5\xd2\xc93\t\xf2$\x0f\xc2\x14҉\xac0\x1d-\x8dT7\x82\xc8(\b傠f\x10nL\x10\xb6+\bS\xca4YK\xa8\xc6JC\xd1q\x12\xd0\xf1\x12\x10\x9d\x10v\xa0O\x94Nr\x92\xb0z\xb2\xb0~\x8aН*\xb4\xa7\t\xcd\xe9|\xd8V\xe5\f\xb6\xad\x8a>\x93\xe7\xe1\xefP\xce\n\x82ΖN~\x8e\x04yrn\x10\xe6<\xe9D\xe7\v\xd3\v\xa4\x91\xea\v\x83\xc8.\nB]\x1c\x04]\x12\x84\xbb4\b{Y\x10\xe6r\x99&\xbbB\xa8\xae\x94\x86\xa2\xab$\xa0\xab% \xba&\xec@_+\x9d\xe4:a\xf5za\xfd\x06\xa1\xbbQho\x12\x9aq¸[&\x88u\xcfā\"to\xbf\xa2\xbe\xd0\xcco\x0eQ\x9e\xdcү̭\xa1\x19\xdd\x16Dz{\xe8\xa5\xfa\x8e~\x95\xddٯ\xd4\xf8~E\x13\xfa\x95\x9bد\xec\xa4~e&\x87\xe9\xb2)A\xa8\xa9\xa1\xa7hZ\x88hz\x88\x88f\xf4oH\xcf\f\xcddV\x10\xd5\xd9A\xd4\xe7\x04\xe1\xe6\x06a\xef\n\xc2\xdc\xcdw=.\xee\xe1\xc7\xc3\xfffu/\xe7\xfc\xab\xd6}A\xd0\xfd\xd2\xc9\x1f\x90 O\x1e\f\xc2<$\x9d\xe8aa\xfa\x884R\xfdh\x10\xd9cA\xa8ǃ\xa0'\x82pO\x06a\x9f\n\xc2<-\xd3d\xcf\bճ\xd2P\xf4\x9c\x04\xf4\xbc\x04D/\x84\x1d\xe8\x17\xa5\x93\xbc$\xac\xbe,\xac\xbf\"t\xaf\n\xedkB\xf3:\xbfA\xc5o\xe0\xc8\xfaM\x84Z\xbf%\xa4\xb7\x11\xe7\xef\xc0\xe6ɻB\xf3\x1e\xe2\xe8} \xfd\x00i\xaa?\x14f\x1f\t\xd5\xc7B\xfaD\xe8>\x15\xdaτ\xe6s\fϾ\x00ԗH\x15}\x05K_\xc3\x12}#K\xeao\x11'\xdf\x01\xd5\xef\x81\xfa\x0f\x80\xfb\x11\xb0?\x01\xe6g<\x8d\xe3\xe2\x17\xdcN\u007f\xbb~\xc5Ӂo\xe0o\xfd\x8a~\x0f\xcd\xfc\x8f\x10\xe5ɟ\xfd\xca\xfc\x15\x9a\xd1\xdfA\xa4\xff\x84^\xaa\xff\xedW\xd9\u007f\xfdJ\xcd3)(\xfa_\xbfrm\xfdʶ\xf7+\xd31I\xa6\xcb:\x83P\x03BO\xd1\xc0\x10Ѽ!\"\x9a/\xa8\\\xcf\x1f\x9a\xc9\x02AT\x17\f\xa2\xbeP\x10n\xe1 \xec\"A\x98E'\xf1\x9bW\xbc\xd8$<\x1ezqɵ^\"\bZR:\xf9R\x12\xe4\xc9\xd2A\x98e\xa4\x13-+L\x97\x93F\xaa\x97\x0f\"[!\b\xb5b\x10\xb4R\x10n\xe5 \xec*A\x98Ue\x9al5\xa1Z]\x1a\x8a\u0590\x80֔\x80h\xad\xb0\x03\xbd\xb6t\x92u\x84\xd5u\x85\xf5\xf5\x84n}\xa1\xdd@h6\x9c\xc4\u007f\nv#>r\xa17\xe6\xd0\xdf\xefM\x84\xb4)\xe2|3\xd8<\xd9\\h\xb6@\x1cm\t\xa4[!M\xf5\xd6\xc2l\x1b\xa1\xdaVH\xdb\t\xdd\xf6B\xbb\x83\xd0\xec\x88\xe1\xd9N\x80\xda\x19\xa9\xa2]`iWX\xa2\xdddI\xbd;\xe2d\x0f\xa0\xba'P\xdf\vp{\x03v\x10`\xf6atU\xf6\xe5\x81]\x15=\x98\x1f\x18\xfe\x1ehH\x104T:\xf90\t\xf2d\xbf \xcc\xfe҉\x0e\x10\xa6\aJ#\xd5\a\x05\x91\x1d\x1c\x84\x1a\x1e\x04\x1d\x12\x84;4\b{X\x10\xe6p\x99&\x1b!T#\xa5\xa1\xe8\b\t\xe8H\t\x88\x8e\n;\xd0GK'9FX=VX\xaf\b\x9d\x12ڪ\xd0D\xc28\x96\tb=\x8a\x9f\xfb\xf8\x8eH\xf7+2\xa1\x99\xd7B\x94'I\xbf2\xf5Ќ\xd2 \xfcG>\xe9\xa5:\xefWYѯ\x94\xedW4\xba_\xb9F\xbf\xb2\u052f\x8c\v\xd3e\xcd Ԙ\xd0S\xd4\x15\"*CD\xd4\xeaߐ\x1e\x1b\x9a\xc9qAT\x8f\x0f\xa2~B\x10\xee\xc4 \xecIA\x98\x93q\xf3\xe3S\xf0t\x89\xf5\xa9\x9c\xf3\xf7G\xa7\x05A\xa7K'?C\x82<93\bs\x96t\xa2\xb3\x85\xe99\xd2H\xf5\xb9Ad\xe7\x05\xa1\xce\x0f\x82.\b\xc2]\x18\x84\xbd(\bs\xb1L\x93]\"T\x97JC\xd1e\x12\xd0\xe5\x12\x10]\x11v\xa0\xaf\x94Nr\x95\xb0z\xb5\xb0~\x8d\xd0]+\xb4\xd7\t\xcd\xf5x\x83*n\xc0K\xb8\xd07\xe2\xb5\xef_\xb67\x05A㤓wK\x90'=A\x98^\xe9D}\xc2\xf4fi\xa4\xfa\x96 \xb2[\x83P\xb7\x05A\xb7\a\xe1\xee\b\xc2\xde\x19\x84\x19/\xd3d\x13\x84j\xa24\x14M\x92\x80&K@4%\xec@O\x95N2MX\x9d.\xac\xcf\x10\xba\x99B;Khf\xf3\x1bTs\x0e\x1f\xb9\xa9\xe7r\xe8?_\xde%\xa4\xbb\x11\xe7\xf7\xc0\xe6ɽBs\x1f\xe2\xe8~ }\x00i\xaa\x1f\x14f\x0f\t\xd5\xc3BzD\xe8\x1e\x15\xdaDŽ\xe6q\fϞ\x00ԓH\x15=\x05KO\xc3\x12=#K\xeag\x11'\xcf\x01\xd5\xe7\x81\xfa\v\x80{\x11\xb0/\x01\xe6e\xbcf\xe3\xe2\x15\b\xbbB\x10fE\x99&[I\xa8V\x96\x86\xa2U$\xa0U% Z-\xec@\xaf.\x9dd\rauMa}-\xa1[[h\xd7\x11\x9au\xf9\xb0\xad\xe6zl[M\xbd>\xcf\xc3\xdfsm\x10\x04m(\x9d|#\t\xf2d\xe3 \xcc&҉6\x15\xa6\x9bI#՛\a\x91m\x11\x84\xda2\b\xda*\b\xb7u\x10v\x9b ̶2M\xb6\x9dPm/\rE;H@;J@\xb4S\u0601\xdeY:\xc9.\xc2\xea\xae\xc2\xfanB\xb7\xbb\xd0\xee!4{\xf2a\xe3\xe6^l\xe3\xa6ޛ\xe7\xe1\xef\xc0\x06\x05A\xfbH'\xdfW\x82<\x19\x1c\x84\x19\"\x9dh\xa80\x1d&\x8dT\xef\x17D\xb6\u007f\x10\xea\x80 \xe8\xc0 \xdcAA\u0603\x830\xc3e\x9a\xec\x10\xa1:T\x1a\x8a\x0e\x93\x80\x0e\x97\x80hD\u0601\x1e)\x9d\xe4\ba\xf5Ha\xfd(\xa1;Zh\x8f\x11\x9acqgk\x15\x9c\xbd\xa6\x15\x1e4\xff4\xae\x06A\x91t\xf2X\x82<\x19\x15\x84\xd1҉\x8c0\xadI#\xd5I\x10Y=\b\x95\x06AY\x10.\x0f\xc2\x16A\x18+\xd3d\xa3\x85\xaa!\rE$\x019\t\x88\x9aa\az\x8ct\x92.a\xb5\x14\xd6[B7Vh\x8f\x13\x9a\xe3'\xf3_C;\x81\x8f\\\xd3'r\xe8Oz\x92\x90NF\x9c\x9f\x02\x9b'\xa7\n\xcdi\x88\xa3Ӂ\xf4\f\xa4\xa9>S\x98\x9d%Tg\v\xe9\x1c\xa1;Wh\xcf\x13\x9a\xf31<\xbb\x00P\x17\"Ut\x11,]\fKt\x89,\xa9/E\x9c\\\x06T/\a\xeaW\x00\xeeJ\xc0^\x05\x98\xab'\xb7\xe5\x95k&\xb7\xe7\x15}\xed\xe4\x0e_\xf5u\x00]\xcfY~\x03\x9b<\xb9\x1107q\x16\x8d\xe3\x9avs\x94\xea\x1e \xeb\x05T\x1f@7\x03\xee\x16\xc0\xde\n\x98\xdbxXv;Wu\aG\x8a\xeedC\xe3\xd9\x10M\xc0\x1az\"g\xc9$\xae\xd5\xc9\\\xebS\xb8\xba\xa9\\\xed4\xaef:\xd7x\x06\x0f\x88\xf5\xccɝ\f=KH\xb3\x11\xe7s`\xf3d\xae\xd0܅8\xba\x1bH\xefA\x9a\xea{\x85\xd9}Bu\xbf\x90\x1e\x10\xba\a\x85\xf6!\xa1y\x18óG\x00\xf5(RE\x8f\xc1\xd2\xe3\xb0DOȒ\xfaI\xc4\xc9S@\xf5i\xa0\xfe\f\xe0\x9e\x05\xecs\x80y\xde\x1f\xa8Uy\xc1\x9bVE\xbf\xe8\x87\xf37c/\t\xe9e\xc4\xf9+\xb0y\xf2\xaaм\x868z\x1dH\xdf@\x9a\xea7\x85\xd9[B\xf5\xb6\x90\xde\x11\xbaw\x85\xf6=\xa1y\x1fó\x0f\x00\xf5!RE\x1f\xc1\xd2ǰD\x9fȒ\xfaS\xc4\xc9g@\xf5s\xa0\xfe\x05\xe0\xbe\x04\xecW\x80\xf9\x1a\x88\xbf\xc1\xc0X\u007f;y\x00\xa8\xbf\v\x82\xbe\x97N\xfe\x83\x04y\xf2c\x10\xe6'\xe9D?\v\xd3_\xa4\x91\xea_\x83\xc8~\vB\xfd\x1e\x04\xfd\x11\x84\xfb3\b\xfbW\x10\xe6o\x99&\xfbG\xa8\xfe\x95\x86\xa2\xff$\xa0y\xa6 \xfa\x9f\x88\\\xb7MA'i\x17V;\x84\xf5N\xa1\x1b \xb4\x03\x85f\xde)\xedy\\\xcc7\xa5\xc3W=\xbf\x0f\xf9\x17\xb7\x05\x84\xb4 \xe2|!\xd8\x01p\x13\x01;\t0\x93\x81x\n\x06\xc6z\xaa\u007fz⛣iA\xd0t\xe9\xe43$ȓ\x99A\x98Y҉f\v\xd39\xd2H\xf5\xdc \xb2\xbb\x82Pw\aA\xf7\x04\xe1\xee\r\xc2\xde\x17\x84\xb9_\xa6\xc9\x1e\x10\xaa\a\xa5\xa1\xe8!\t\xe8a\t\x88\x1e\t;ЏJ'yLX}\\X\u007fB\xe8\x9e\x14ڧ\x84\xe6i\xbe\x87\xf13|\xbbc\xfd\xac\x0f\xf9ۡ\xe7\x84\xf4<\xe2\xfc\x05\xd8\x1ap\r\xc0\x12`\xdcT\xfe+bM~A5\xf5\x98\xa9\xfc\x17̴\xee\x12R\x898o\xc1\xe6\xc9X\xa19\x0eqt<\x90\x9e\x804\xd5'\n\xb3\x93\x84\xead!\x9d\"t\xa7\n\xediBs:\x86gg\x00\xeaL\xa4\x8a\u0382\xa5\xb3a\x89Α%\xf5\xb9\x88\x93\xf3\x80\xea\xf9@\xfd\x02\xc0]\b؋\x00s\xb1?Pܼě\xb8\xa9/\xf5\xc3\xf9\x9b\x95˄t9\xe2\xfc\n\xd8<\xb9Rh\xaeB\x1c]\r\xa4\xd7 M\xf5\xb5\xc2\xec:\xa1\xba^H7\bݍB{\x93Ќ\xc3\xf0\xac\x1bP=H\x15\xf5\xc2R\x1f,\xd1Ͳ\xa4\xbe\x05qr+P\xbd\r\xa8\xdf\x0e\xb8;\x00{'`\xc6\xf3\x1d\xaaM\xe0\xd3\xd5\xf4D~<\xfcSn\x92\x90&#Χ\xc0\xe6\xc9T\xa1\x99\x868\x9a\x0e\xa43\x90\xa6z\xa60\x9b%T\xb3\x854G\xe8\xe6\n\xed]Bs7\x86g\xf7\x00\xea^\xa4\x8a\ue0e5\xfba\x89\x1e\x90%\xf5\x83\x88\x93\x87\x80\xea\xc3@\xfd\x11\xc0=\n\xd8\xc7\x00\xf3\xb8\u007fۮ=\xe1OU\xd3O\xfağ\xe6)\x80\x9e\xe6,\u007f\x86M\x9e<\v\x98\xe78\x8b\x9e皾\xc0Q\xaa_\x04\xb2\x97\x00\xf52@\xaf\x00\xeeU\xc0\xbe\x06\x98\xd7yX\xf6\x06W\xf5&G\x8a\xdebCo\xb3!z\ak\xe8w9K\xde\xe3Z}\x9fk\xfd\x03\xae\xeeC\xae\xf6#\xae\xe6\xe3\xa9mQ哩\xedQE\u007f:\xb5\xc3W\xfd\x19@\x9fs\x96\u007f\xc1&O\xbe\x04\xccW\x9cE_sM\xbf\xe1(\xd5\xdf\x02\xd9w\x80\xfa\x1e\xa0\x1f\x00\xf7#`\u007f\x02\xcc\xcf<,\xfb\x85\xab\xfa\x95#E\xbf\xb1\xa1\xdf\xd9\x10\xfd\x815\xf4\x9f\x9c%\u007fq\xad\xfe͵\xfe\x0fW\xf7/W\xfb\x1fW3\xcf4_\xe3\xffM\xf3\x03b\xdd6\xad\x93\xa1ۅԁ8\xef\x84͓\x01B3\x10q4/\x90·4\xd5\xf3\v\xb3\x05\x84jA!-$t\v\v\xed\"B\xb3(\x86g\x8b\x01jq\xa4\x8a\x96\x80\xa5%a\x89\x96\x92%\xf5҈\x93e\x80\xea\xb2@}9\xc0-\x0f\xd8\x15\x00\xb3\xa2?P\xab\xb2\x927\xad\x8a^\xd9\x0f\xe7/BV\x11Ҫ\x88\xf3\xd5`\xf3du\xa1Y\x03q\xb4&\x90\xae\x854\xd5k\v\xb3u\x84j]!\xad't\xeb\v\xed\x06B\xb3!\x86g\x1b\x01jc\xa4\x8a6\x81\xa5Ma\x896\x93%\xf5戓-\x80\xea\x96@}+\xc0m\r\xd8m\x00\xb3-\x10o\x87\x81\xb1\xde~\xda\x00P\xef\x10\x04\xed(\x9d|'\t\xf2d\xe7 \xcc.҉v\x15\xa6\xbbI#ջ\a\x91\xed\x11\x84\xda3\b\xda+\b\xb7w\x10vP\x10f\x1f\x99&\xdbW\xa8\x06KC\xd1\x10\th\xa8\x04D\xc3\xc2\x0e\xf4~\xd2I\xf6\x17V\x0f\x10\xd6\x0f\x14\xba\x83\x84\xf6`\xa1\x19\xee\xef^\\\x1c\xe2\x8f\xec\u007f\xcf9ԇ\xfc{\xcfaB:\x1cq>\x026OF\n\xcd\x11\x88\xa3#\x81\xf4(\xa4\xa9>Z\x98\x1d#T\xc7\n\xa9\"tJh\xabB\x13ax\x16\x03j\x14RE\x1a\x96\f,QM\x96\xd4\t\xe2\xa4\x0eTS\xa0\x9e\x01.\al\x01\x18;\xad-\x8aG\xf3\xa9t\x83\x13\xad\t \xc7Y\xded\x93'c\x00\xd3\xc5YTrM[\x1c\xa5z,\x90\x1d\a\xa8\xe3\x01:\x01p'\x02\xf6$\xc0\x9c\xccòS\xb8\xaaS9Rt\x1a\x1b:\x9d\r\xd1\x19XC\x9f\xc9Yr\x16\xd7\xea\xd9\\\xeb\xe7pu\xe7r\xb5\xe7q5\xe7\xf3S...\xe0\x9b\xe2\x1f\xf8\v\xf9n\xf2\x8d\xb8(\b\xbaX:\xf9%\x12\xe4ɥA\x98ˤ\x13].L\xaf\x90F\xaa\xaf\f\"\xbb*\buu\x10tM\x10\xee\xda \xecuA\x98\xebe\x9a\xec\x06\xa1\xbaQ\x1a\x8an\x92\x80\xc6I@\xd4\x1dv\xa0{\xa4\x93\xf4\n\xab}\xc2\xfa\xcdBw\x8b\xd0\xde*4\xb7\xf1\x1bF|;\x8e\xac\xef@\xa8\xf5\x9dB\x1a\x8f8\x9f\x00\x9b'\x13\x85f\x12\xe2h2\x90NA\x9a\xea\xa9\xc2l\x9aPM\x17\xd2\f\xa1\x9b)\xb4\xb3\x84f6\x86gs\x005\x17\xa9\xa2\xbb`\xe9nX\xa2{dI}/\xe2\xe4>\xa0z?P\u007f\x00p\x0f\x02\xf6!\xc0<\xec\x9fr\xc5#\xfeT\x85~\xd4'\xfe\xbe=\x06\xd0\xe3\x9c\xe5O\xb0ɓ'\x01\xf3\x14g\xd1\xd3\\\xd3g8J\xf5\xb3@\xf6\x1c\xa0\x9e\a\xe8\x05\xc0\xbd\bؗ\x00\xf32\x0f\xcb^\xe1\xaa^\xe5H\xd1kl\xe8u6Do`\r\xfd&g\xc9[\\\xabos\xad\xbf\xc3ս\xcbվ\xc7ռ\xefkW\xe5\x03?\xa0\xab\xa2?\xf4g\xe6/B>\x12\xd2Lj\xf3O`\xf3\xe4S\xa1\xf9\fq\xf49\x90~\x814\xd5_\n\xb3\xaf\x84\xeak!}#t\xdf\n\xedwB\xf3=\x86g?\x00\xeaG\xa4\x8a~\x82\xa5\x9fa\x89~\x91%\xf5\xaf\x88\x93߀\xea\xef@\xfd\x0f\xc0\xfd\tؿ\x00\xf37\x10\xff\x83\x81\xb1\xfe\xd7?=\xf1E\xc8\u007fA\xd0<\xd3\xd1\xc9\xff7\x1dA\x9e\xb4\x05aڥ\x13u\b\xd3Ni\xa4z@\x10\xd9\xc0 ԼA\xd0|A\xb8\xf9\x83\xb0\v\x04a\x16\x94i\xb2\x85\x84jai(ZD\x02ZT\x02\xa2\xc5\xc2\x0e\xf4\xe2\xd2I\x96\x10V\x97\x14֗\x12\xba\xa5\x85v\x19\xa1Yv\xba\xbf\x87\xf1r\xd3\xfd\xed\x8e\xf5\xf2>\xe4/BV\x10Ҋ\x88\xf3\x95`\xf3de\xa1Y\x05q\xb4*\x90\xae\x864ի\v\xb35\x84jM!\xad%tk\v\xed:B\xb3.\x86g\xeb\x01j}\xa4\x8a6\x80\xa5\ra\x896\x92%\xf5ƈ\x93M\x80\xea\xa6@}3\xc0m\x0e\xd8-\x00\xb3\xa5?P\xab\xd8ʛV\xa1\xb7\xf6\xc3\xf9\x8b\x90m\x84\xb4-\xe2|;\xd8<\xd9^hv@\x1c\xed\b\xa4;!M\xf5\xce\xc2l\x17\xa1\xdaUH\xbb\t\xdd\xeeB\xbb\x87\xd0\xec\x89\xe1\xd9^\x80\xda\x1b\xa9\xa2A\xb0\xb4\x0f,Ѿ\xb2\xa4\x1e\x8c8\x19\x02T\x87\x02\xf5a\x80\xdb\x0f\xb0\xfb\x03\xe6\x80\xe9mQ\xf3@\u007f\xaa\xa6>\xc8'\xfe\x03\xcf\xc1\x00\r\xe7,?\x84M\x9e\x1c\n\x98\xc38\x8b\x0e皎\xe0(\xd5#\x81\xec\b@\x1d\t\xd0Q\x80;\x1a\xb0\xc7\x00\xe6X\x1e\x96U\xb8*ő\xa2*\x1b\x8a\xd8\x10\xc5XC\x8f\xe2,\xd1\\\xab\x86k\xbd\xc6\xd5%\\m\x9d\xabI\xfd\xa5\xfc\xf5\x03?\xcb\xfc\x8f\x9d\x9c\x9f\x9e\xfcs\xa8\b\x82\xact\xf2\xd1\x12\xe4I#\bC҉\x9c0mJ#\xd5c\x82Ⱥ\x82Pe\x10\xd4\n\u008d\r\xc2\x1e\x17\x849^\xa6\xc9N\x10\xaa\x13\xa5\xa1\xe8$\t\xe8d\t\x88N\t;ЧJ'9MX=]X?C\xe8\xce\x14ڳ\x84\xe6l\u007f\xe4\xae\xf8\x1c\x1cY\x9f\x8bP\xeb\xf3\x84t>\xe2\xfc\x02\xd8<\xb9Ph.B\x1c]\f\xa4\x97 M\xf5\xa5\xc2\xec2\xa1\xba\\HW\bݕB{\x95\xd0\\\x8d\xe1\xd95\x80\xba\x16\xa9\xa2\xeb`\xe9zX\xa2\x1bdI}#\xe2\xe4&\xa0:\x0e\xa8w\x03\xae\a\xb0\xbd\x80\xe9\xe3\x03\xd5nfSӷ\xf0p\xff9\xeeV!݆8\xbf\x1d6O\xee\x10\x9a;\x11G\xe3\x81t\x02\xd2TO\x14f\x93\x84j\xb2\x90\xa6\b\xddT\xa1\x9d&4\xd31<\x9b\x01\xa8\x99H\x15͂\xa5ٰDsdI=\x17qr\x17P\xbd\x1b\xa8\xdf\x03\xb8{\x01{\x1f`\xee\xe77\x85\xe6\x03\xfc\x82j\xea\a\xf9%\xe8_F\x0f\t\xe9a\xc4\xf9#\xb0y\xf2\xa8\xd0<\x868z\x1cH\x9f@\x9a\xea'\x85\xd9SB\xf5\xb4\x90\x9e\x11\xbag\x85\xf69\xa1y\x1eó\x17\x00\xf5\"RE/\xc1\xd2˰D\xafȒ\xfaU\xc4\xc9k@\xf5u\xa0\xfe\x06\xe0\xde\x04\xec[\x80y\xdb\x1f(n\xbe\xe3M\xdc\xd4\xef\xfa\xe1\xfcE\xc8{Bz\x1fq\xfe\x01l\x9e|(4\x1f!\x8e>\x06\xd2O\x90\xa6\xfaSa\xf6\x99P}.\xa4/\x84\xeeK\xa1\xfdJh\xbe\xc6\xf0\xec\x1b@}\x8bT\xd1w\xb0\xf4=,\xd1\x0f\xb2\xa4\xfe\x11q\xf2\x13P\xfd\x19\xa8\xff\x02\xb8_\x01\xfb\x1b`~\xe7;T\xfb\x83OW\xd3\u007f\xf2\xe3\xe1\x9fr\u007f\t\xe9o\xc4\xf9?\xb0y\xf2\xaf\xd0\xfc\x878\x9ag\x06#\xfd\xdf\fNS\xdd&\xccڅ\xaaCH\x9dB7@h\a\nͼ\x18\x9e\xcd\a\xa8\xf9\x91*Z\x00\x96\x16\x84%Z\b\xcc\xf5\u0088\x93E\x80\xea\xa2@}1\xc0-\x0e\xd8%\x00\xb3䌶\xa8\xb6Ԍ\xf6\xa8\xa6\x97\xf6\t\xff\xa51\x80\x96\xe5,_\x8eM\x9e,\x0f\x98\x158\x8bV䚮\xc4Q\xaaW\x06\xb2U\x00\xb5*@\xab\x01nu\xc0\xae\x01\x985yX\xb6\x16W\xb56G\x8a\xd6aC\xeb\xb2!Z\x0fk\xe8\xf59K6\xe0Zݐk}#\xaenc\xaev\x13\xaef\xd3\x19\xfc?\xb5\xdfl\x06\xffO\xed\xf5\xe6\xfe\xcc\xfc]\xc8\x16B\xda\x12q\xbe\x15l\x9el-4\xdb \x8e\xb6\x05\xd2퐦z{a\xb6\x83P\xed(\xa4\x9d\x84ng\xa1\xddEhv\xc5\xf0l7@\xed\x8eT\xd1\x1e\xb0\xb4',\xd1^\xb2\xa4\xde\x1bq2\b\xa8\xee\x03\xd4\xf7\x05\xdc`\xc0\x0e\x01\xccP \x1e\x86\x81\xb1\xdeo\xc6\x00P\xef\x1f\x04\x1d \x9d\xfc@\t\xf2\xe4\xa0 \xcc\xc1҉\x86\v\xd3C\xa4\x91\xeaC\x83\xc8\x0e\vB\x1d\x1e\x04\x8d\b\u008d\f\xc2\x1e\x11\x849R\xa6Ɏ\x12\xaa\xa3\xa5\xa1\xe8\x18\t\xe8X\t\x88*a\aZI'\xa9\n\xab\x91\xb0\x1e\v\xdd(\xa1\xd5Bc\xf8\xb0\xadJ\x8dm\xab\xa2\x13\x9e\x87\xbfC\xa9\aA\xa9t\xf2L\x82<Ƀ0\x85t\"+LGK#Ս 2\nB\xb9 \xa8\x19\x84\x1b\x13\x84\xed\n\u00942M\xd6\x12\xaa\xb1\xd2Pt\x9c\x04t\xbc\x04D'\x84\x1d\xe8\x13\xa5\x93\x9c$\xac\x9e,\xac\x9f\"t\xa7\n\xediBs\xba0>C&\x88\xf5\x993\x06\x8a\xd0g\xf5+:;4\xf3sB\x94'\xe7\xf6+s^hF\xe7\a\x91^\x10z\xa9\xbe\xb0_e\x17\xf5+uq\xbf\xa2K\xfa\x95\xbb\xb4_\xd9\xcb\xfa\x95\xb9\x11\xb9\x9e_:\xc9\x02\xc2\xea\x82\xc2\xfaBB\xb7\xb0\xd0.\"4\x8b\xce\xe4\u007f\nf\xb1\x99\xfcO\xc1\xe8\xc59\xf4\xf7{\t!-\x898_\n6O\x96\x16\x9ae\x10G\xcb\x02\xe9rHS\xbd\xbc0[A\xa8V\x14\xd2JB\xb7\xb2Ю\"4\xabbx\xb6\x1a\xa0VG\xaah\rXZ\x13\x96h-YR\xaf\x8d8Y\a\xa8\xae\v\xd4\xd7\x03\xdc\xfa\x80\xdd\x000\x1b2\xba*\x1b\xf1\xc0\xae\x8aޘ\x1f\x18\xfe\x1eh\x93 hS\xe9\xe4\x9bI\x90'\x9b\aa\xb6\x90N\xb4\xa50\xddJ\x1a\xa9\xde:\x88l\x9b ԶA\xd0vA\xb8탰;\x04av\x94i\xb2\x9d\x84jgi(\xdaE\x02\xdaU\x02\xa2\xdd\xc2\x0e\xf4\xee\xd2I\xf6\x10V\xf7\x14\xd6\xf7\x12\xba\xbd\x85v\x90\xd0\xec#\x8c\xf7\x95\tb=x\xe6@\x11zH\xbf\xa2\xa1\xa1\x99\x0f\vQ\x9e\xec\u05ef\xcc\xfe\xa1\x19\x1d\x10Dz`\xe8\xa5\xfa\xa0~\x95\x1dܯ\xd4\xf0~E\x87\xf4+wh\xbf\xb2\x87\xf5+sx\x98.\x1b\x11\x84\x1a\x19z\x8a\x8e\b\x11\x1d\x19\"\xa2\xa3\xfa7\xa4\x8f\x0e\xcd\xe4\x98 \xaa\xc7\x06Q\xaf\x04\xe1T\x10\xb6\x1a\x84\x89p\xf3\xe3\x18O\x97X\x8f✿?\xd2A\x90\x91N^\x93 O\x92 L]:Q*L3i\xa4:\x0f\"+\x82P6\b\x1a\x1d\x84k\x04a)\b\xe3d\x9a\xac)Tc\xa4\xa1\xa8K\x02*% j\x85\x1d\xe8\xb1\xd2I\x8e\x13V\x8f\x17\xd6O\x10\xba\x13\x85\xf6$\xa19\x99\x0f\xdb*N\xc1K\xb8Ч\xe2\xb5\xef_\xb6\xa7\x05A\xa7K'?C\x82<93\bs\x96t\xa2\xb3\x85\xe99\xd2H\xf5\xb9Ad\xe7\x05\xa1\xce\x0f\x82.\b\xc2]\x18\x84\xbd(\bs\xb1L\x93]\"T\x97JC\xd1e\x12\xd0\xe5\x12\x10]\x11v\xa0\xaf\x94Nr\x95\xb0z\xb5\xb0~\x8d\xd0]+\xb4\xd7\t\xcd\xf5\xfc\x06ռ\x81\x8f\xdc\xd47r\xe8?_\xde$\xa4q\x88\xf3n\xd8<\xe9\x11\x9a^\xc4Q\x1f\x90ތ4շ\b\xb3[\x85\xea6!\xdd.tw\b\xed\x9dB3\x1eó\t\x80\x9a\x88T\xd1$X\x9a\fK4E\x96\xd4S\x11'Ӏ\xeat\xa0>\x03p3\x01;\v0\xb3\U0005a34b9x\xee\xfa\x1f\xaas\xf1\xdc石w\xf5+\xba;4\xf3{B\x94'\xf7\xf6+s_hF\xf7\a\x91>\x10z\xa9~\xb0_e\x0f\xf5+\xf5p\xbf\xa2G\xfa\x95{\xb4_\xd9\xc7\xfa\x95y\x95\x86\xa2\xcf$\xa0\xcf% \xfa\"\xec@\u007f)\x9d\xe4+a\xf5ka\xfd\x1b\xa1\xfbVh\xbf\x13\x9a\xefq\xd8\xda\x0f\xb05\xfd#\xe6\xf1\x1f\xc5\u007f\n\x82~\x96N\xfe\x8b\x04y\xf2k\x10\xe67\xe9D\xbf\v\xd3?\xa4\x91\xea?\x83\xc8\xfe\nB\xfd\x1d\x04\xfd\x13\x84\xfb7\b\xfb_\x10f\x9eY\x98&\xfb\x9fP\xb5\xcdBCQ\xbb\x04\xd4!\x01Q\xa7\x88\\\x0f\x90N2PX\x9dWX\x9fO\xe8\xe6\x17\xda\x05\x84f\xc1Y\xfc\x06\xd5\\\x88m\xab\xa9\x17\xe6y\xf8{\xaeE\x82\xa0E\xa5\x93/&A\x9e,\x1e\x84YB:ђ\xc2t)i\xa4z\xe9 \xb2e\x82P\xcb\x06A\xcb\x05\xe1\x96\x0f®\x10\x84YQ\xa6\xc9V\x12\xaa\x95\xa5\xa1h\x15\thU\t\x88V\v;ЫK'YCX]SX_K\xe8\xd6\x16\xdau\x84f]>l\xdc\\\x8fm\xdc\xd4\xeb\xf3<\xfc\x1d\xd8\x06AІ\xd2\xc97\x92 O6\x0e\xc2l\"\x9dhSa\xba\x994R\xbdy\x10\xd9\x16A\xa8-\x83\xa0\xad\x82p[\aa\xb7\t\xc2l+\xd3d\xdb\t\xd5\xf6\xd2P\xb4\x83\x04\xb4\xa3\x04D;\x85\x1d蝥\x93\xec\"\xac\xee*\xac\xef&t\xbb\v\xed\x1eB\xb3'\xeelm/\x9c\xbd\xa6\xf7ƃ\xe6\x9fƃ\x82\xa0}\xa4\x93\xef+A\x9e\f\x0e\xc2\f\x91N4T\x98\x0e\x93F\xaa\xf7\v\"\xdb?\bu@\x10t`\x10\xee\xa0 \xec\xc1A\x98\xe12Mv\x88P\x1d*\rE\x87I@\x87K@4\"\xec@\x8f\x94Nr\x84\xb0z\xa4\xb0~\x94\xd0\x1d-\xb4\xc7\bͱ\xb3\xf8\x9fb\xac\xf0\x91kZq\xc8\u007f\xa1LH\x11\xe2<\x86͓QB\xa3\x11G\x06HkHS\x9d\b\xb3\xbaP\xa5Bʄ.\x17\xdaBh,\x86g\xa3\x01\xd5@\xaa\x88`\xc9\xc1\x125eI=\x06q\xd2\x05TK\xa0\xde\x02\xdcX\xc0\x1e\a\x98\xe3g\xb55*'\xccjoT\xf4\x89\xb3:|\xd5'\x01t2g\xf9)l\xf2\xe4T\xc0\x9c\xc6Yt:\xd7\xf4\f\x8eR}&\x90\x9d\x05\xa8\xb3\x01:\ap\xe7\x02\xf6<\xc0\x9c\xcfò\v\xb8\xaa\v9Rt\x11\x1b\xba\x98\r\xd1%XC_\xcaYr\x19\xd7\xea\xe5\\\xebWpuWr\xb5Wq5Ws\x8d\xaf\xe1\x01\xb1\xbevV'C_'\xa4\xeb\x11\xe77\xc0\xe6ɍBs\x13\xe2h\x1c\x90v#Mu\x8f0\xeb\x15\xaa>!\xdd,t\xb7\b\xed\xadBs\x1b\x86g\xb7\x03\xea\x0e\xa4\x8a\ue125\xf1\xb0D\x13dI=\x11q2\t\xa8N\x06\xeaS\x007\x15\xb0\xd3\x003\xdd\x1f\xa8U\x99\xe1M\xab\xa2g\xfa\xe1\xfc\xcd\xd8,!\xcdF\x9cρ͓\xb9Bs\x17\xe2\xe8n \xbd\ai\xaa\xef\x15f\xf7\t\xd5\xfdBz@\xe8\x1e\x14ڇ\x84\xe6a\f\xcf\x1e\x01ԣH\x15=\x06K\x8f\xc3\x12=!K\xea'\x11'O\x01է\x81\xfa3\x80{\x16\xb0\xcf\x01\xe6y ~\x01\x03c\xfd\xe2\xac\x01\xa0~)\bzY:\xf9+\x12\xe4ɫA\x98פ\x13\xbd.LߐF\xaa\xdf\f\"{+\b\xf5v\x10\xf4N\x10\xee\xdd \xec{A\x98\xf7e\x9a\xec\x03\xa1\xfaP\x1a\x8a>\x92\x80>\x96\x80蓰\x03\xfd\xa9t\x92τ\xd5υ\xf5/\x84\xeeK\xa1\xfdJh\xbe\xf6w/.\xbe\xf1G\xf6\xbf\xa7}\xebC\xfe\xc5\xed;!}\x8f8\xff\x016O~\x14\x9a\x9f\x10G?\x03\xe9/HS\xfd\xab0\xfbM\xa8~\x17\xd2\x1fB\xf7\xa7\xd0\xfe%4\u007fcx\xf6\x0f\xa0\xfeE\xaa\xe8?X\x9ag6[\xa2\xff\x81\xb9n\x9b\xcdq\xd2\x0eT;\x80z'\xe0\x06\x00v `\xe6\x9d\xdd\u0588\xe7\x9b\xedO\xa5\xe7\xe7D\xeb\x05\x00Z\x90\xb3|!6y\xb20`\x16\xe1,Z\x94k\xba\x18G\xa9^\x1cȖ\x00Ԓ\x00-\x05\xb8\xa5\x01\xbb\f`\x96\xe5a\xd9r\\\xd5\xf2\x1c)Z\x81\r\xadȆh%\xac\xa1W\xe6,Y\x85kuU\xae\xf5ո\xbaչ\xda5\xb8\x9a5\xfd\xa5\xad\xb8X˟\x96\xbf\x97Z{\xf6\x00P\xaf\x13\x04\xad+\x9d|=\t\xf2d\xfd \xcc\x06҉6\x14\xa6\x1bI#\xd5\x1b\a\x91m\x12\x84\xda4\b\xda,\b\xb7y\x10v\x8b ̖2M\xb6\x95Pm-\rE\xdbH@\xdbJ@\xb4]\u0601\xde^:\xc9\x0e\xc2\xea\x8e\xc2\xfaNB\xb7\xb3\xd0\xee\"4\xbb\xfa#\xb7\xe2\xddpd\xbd;B\xad\xf7\x10Ҟ\x88\xf3\xbd`\xf3do\xa1\x19\x848\xda\aH\xf7E\x9a\xea\xc1\xc2l\x88P\r\x15\xd20\xa1\xdbOh\xf7\x17\x9a\x030<;\x10P\a!Ut0,\r\x87%:D\x96ԇ\"N\x0e\x03\xaa\x87\x03\xf5\x11\x80\x1b\t\xd8#\x00s\xa4\u007f\xca\x15G\xf9S\x15\xfah\x9f\xf8\xfbv\f@\xc7r\x96W\xd8\xe4\x89\x02L\x95\xb3(\xe2\x9a\xc6\x1c\xa5z\x14\x90i@\x19\x80j\x80K\x00[\aL\xcaò\x8c\xab\xca9RT\xb0!ˆh4\xd6\xd0\r\xce\x12\xe2Zu\\\xebM\xaen\fW\xdb\xc5Ք\xbevUZ~@WE\x8f\xf5g\xe6o\x95\x8e\x13\xd2\xf1\x88\xf3\x13`\xf3\xe4D\xa19\tqt2\x90\x9e\x824է\n\xb3ӄ\xeat!\x9d!tg\n\xedYBs6\x86g\xe7\x00\xea\\\xa4\x8a\u0383\xa5\xf3a\x89.\x90%\xf5\x85\x88\x93\x8b\x80\xea\xc5@\xfd\x12\xc0]\n\xd8\xcb\x00s9\x10_\x81\x81\xb1\xbe\xd2?=\xf1\xcd\xd1UA\xd0\xd5\xd2ɯ\x91 O\xae\r\xc2\\'\x9d\xe8zaz\x834R}c\x10\xd9MA\xa8qAPw\x10\xae'\b\xdb\x1b\x84\xe9\x93i\xb2\x9b\x85\xea\x16i(\xbaU\x02\xbaM\x02\xa2\xdb\xc3\x0e\xf4\x1d\xd2I\xee\x14V\xc7\v\xeb\x13\x84n\xa2\xd0N\x12\x9a\xc9|\x0f\xe3)|\xbbc=Շ\xfc\xed\xd04!MG\x9cπ͓\x99B3\vq4\x1bH\xe7 M\xf5\\av\x97P\xdd-\xa4{\x84\xee^\xa1\xbdOh\xee\xc7\xf0\xec\x01@=\x88T\xd1C\xb0\xf40,\xd1#\xb2\xa4~\x14q\xf2\x18P}\x1c\xa8?\x01\xb8'\x01\xfb\x14`\x9e\xe67\x85\xe2\x19~A\x15\xfaY~\t\xfa\x97\xd1sBz\x1eq\xfe\x02l\x9e\xbc(4/!\x8e^\x06\xd2W\x90\xa6\xfaUa\xf6\x9aP\xbd.\xa47\x84\xeeM\xa1}Kh\xde\xc6\xf0\xec\x1d@\xbd\x8bT\xd1{\xb0\xf4>,\xd1\a\xb2\xa4\xfe\x10q\xf2\x11P\xfd\x18\xa8\u007f\x02\xb8O\x01\xfb\x19`>\xf7o\n\xcd/\xfc\xa9\x9a\xfaK\x9f\xf8OP_\x01\xf45g\xf97l\xf2\xe4[\xc0|\xc7Y\xf4=\xd7\xf4\a\x8eR\xfd#\x90\xfd\x04\xa8\x9f\x01\xfa\x05p\xbf\x02\xf67\xc0\xfc\xceò?\xb8\xaa?9R\xf4\x17\x1b\xfa\x9b\r\xd1?XC\xff\xcbY\xf2\x1f\xd7\xea\t\xf2d\xfe \xcc\x02҉\x16\x14\xa6\vI#\xd5\v\a\x91-\x12\x84Z4\bZ,\b\xb7x\x10v\x89 ̒2M\xb6\x94P--\rE\xcbH@\xcbJ@\xb4\\\u0601^^:\xc9\n\xc2\xea\x8a\xc2\xfaJB\xb7\xb2Ю\"4\xab\xfa#wū\xe1\xc8zu\x84Z\xaf!\xa45\x11\xe7k\xc1\xe6\xc9\xdaB\xb3\x0e\xe2h] ]\x0fi\xaa\xd7\x17f\x1b\bՆB\xdaH\xe86\x16\xdaM\x84fS\f\xcf6\x03\xd4\xe6H\x15m\x01K[\xc2\x12m%K\xea\xad\x11'\xdb\x00\xd5m\x81\xfav\x80\xdb\x1e\xb0;\x00fG>Pm'65\xbd3\x0f\xf7\x1f\xf0v\x11Ү\x88\xf3\xdd`\xf3dw\xa1\xd9\x03q\xb4'\x90\xee\x854\xd5{\v\xb3AB\xb5\x8f\x90\xf6\x15\xba\xc1B;Dh\x86bx6\fP\xfb!U\xb4?,\x1d\x00Kt\xa0,\xa9\x0fB\x9c\x1c\fT\x87\x03\xf5C\x00w(`\x0f\x03\xcc\xe1\xfe@\xad\xe6\boZM=\xd2\x0f\xe7o]\x8e\x10ґ\x88\xf3\xa3`\xf3\xe4h\xa19\x06qt,\x90V\x90\xa6Z\t\xb3\xaaPEB\x8a\x85n\x94\xd0j\xa11\x18\x9e\xd5\x00\x95 UT\x87\xa5\x14\x96(\x93%u\x8e8)\x80\xaa\x05\xea\xa3\x01\xd7\x00,\x01\xc6\xf9\x03\xc5ͦ7qS\x8f\xf1\xc3\xf9\x9b\x95.!\x95\x88\xf3\x16l\x9e\x8c\x15\x9a\xe3\x10G\xc7\x03\xe9\tHS}\xa20;I\xa8N\x16\xd2)Bw\xaaО&4\xa7cxv\x06\xa0\xceD\xaa\xe8,X:\x1b\x96\xe8\x1cYR\x9f\x8b89\x0f\xa8\x9e\x0f\xd4/\x00܅\x80\xbd\b0\x17\xf3\x1d\xaa]§\xab\xe9K\xf9\xf1\xf0O\xb9˄t9\xe2\xfc\n\xd8<\xb9Rh\xaeB\x1c]\r\xa4\xd7 M\xf5\xb5\xc2\xec:\xa1\xba^H7\bݍB{\x93Ќ\xc3\xf0\xac\x1bP=H\x15\xf5\xc2R\x1f,\xd1Ͳ\xa4\xbe\x05qr+P\xbd\r\xa8\xdf\x0e\xb8;\x00{'`\xc6\xcfik\xd4&\xf8S\xd5\xf4D\x9f\xf0_\x1a\x03h2g\xf9\x146y2\x150\xd38\x8b\xa6sMgp\x94\xea\x99@6\vP\xb3\x01\x9a\x03\xb8\xb9\x80\xbd\v0w\xf3\xb0\xec\x1e\xae\xea^\x8e\x14\xdddž\xeegC\xf4\x00\xd6\xd0\x0fr\x96<ĵ\xfa0\xd7\xfa#\\ݣ\\\xedc\\\xcd\xe3sڲ\xca\x13sڳ\x8a~rN\x87\xaf\xfa)\x80\x9e\xe6,\u007f\x86M\x9e<\v\x98\xe78\x8b\x9e皾\xc0Q\xaa_\x04\xb2\x97\x00\xf52@\xaf\x00\xeeU\xc0\xbe\x06\x98\xd7yX\xf6\x06W\xf5&G\x8a\xdebCo\xb3!z\ak\xe8w9K\xde\xe3Z}\x9fk\xfd\x03\xae\xeeC\xae\xf6#\xae\xe6c\xae\xf1'< ֟\xce\xe9d\xe8τ\xf49\xe2\xfc\v\xd8<\xf9Rh\xbeB\x1c}\r\xa4\xdf M\xf5\xb7\xc2\xec;\xa1\xfa^H?\bݏB\xfb\x93\xd0\xfc\x8c\xe1\xd9/\x80\xfa\x15\xa9\xa2\xdf`\xe9wX\xa2?dI\xfd'\xe2\xe4/\xa0\xfa7P\xff\ap\xff\x02\xf6?\xc0\xcc3\xb7=kU\xfe7\xb7\xc3W\xdd6\xb7\x93\xa1ۅԁ8\xef\x84͓\x01B3\x10q4/\x90·4\xd5\xf3\v\xb3\x05\x84jA!-$t\v\v\xed\"B\xb3(\x86g\x8b\x01jq\xa4\x8a\x96\x80\xa5%a\x89\x96\x92%\xf5҈\x93e\x80\xea\xb2@}9\xc0-\x0f\xd8\x15\x00\xb3\"\x10\xaf\x84\x81\xb1^y\xee\x00P\xaf\x12\x04\xad*\x9d|5\t\xf2d\xf5 \xcc\x1a҉\xd6\x14\xa6kI#\xd5k\a\x91\xad\x13\x84Z7\bZ/\b\xb7~\x10v\x83 ̆2M\xb6\x91Pm,\rE\x9bH@\x9bJ@\xb4Y\u0601\xde\\:\xc9\x16\xc2\xea\x96\xc2\xfaVB\xb7\xb5\xd0n#4\xdb\xfa\xbb\x17\x17\xdb\xf9#\xfb\xdfs\xb6\xf7!\xff\u07b3\x83\x90vD\x9c\xef\x04\x9b';\v\xcd.\x88\xa3]\x81t7\xa4\xa9\xde]\x98\xed!T{\ni/\xa1\xdb[h\a\t\xcd>\x18\x9e\xed\v\xa8\xc1H\x15\r\x81\xa5\xa1\xb0D\xc3dI\xbd\x1f\xe2d\u007f\xa0z\x00P?\x10p\a\x01\xf6`\xc0\f\x9fۖŇ\xf0\xa9\xf4\xa1\x9ch}\x18@\x87s\x96\x8f`\x93'#\x01s\x04gё\\ӣ8J\xf5\xd1@v\f\xa0\x8e\x05\xa8\x028\x05\xd8*`\"\x1e\x96\xc5\\\xd5(\x8e\x14i6d\xd8\x10հ\x86N8K\xea\\\xab)\xd7z\xc6\xd5\xe5\\m\xc1\xd5X~\xca\xc5\xc5h\xbe)\xfc\xaf\x8a\xf1\xdd\xc4?+\x16\x049\xe9\xe4M\t\xf2dL\x10\xa6K:Q)L[\xd2H\xf5\xd8 \xb2\xe3\x82P\xc7\aA'\x04\xe1N\f\u009e\x14\x849Y\xa6\xc9N\x11\xaaS\xa5\xa1\xe84\t\xe8t\t\x88\xce\b;\xd0gJ'9KX=[X?G\xe8\xce\x15\xda\xf3\x84\xe6|~È/\xc0\x91\xf5\x85\b\xb5\xbeHH\x17#\xce/\x81͓K\x85\xe62\xc4\xd1\xe5@z\x05\xd2T_)̮\x12\xaa\xab\x85t\x8d\xd0]+\xb4\xd7\t\xcd\xf5\x18\x9e\xdd\x00\xa8\x1b\x91*\xba\t\x96\xc6\xc1\x12u˒\xba\aq\xd2\vT\xfb\x80\xfà\xbb\x05\xb0\xb7\x02\xe66\xff\x94+n\xf7\xa7*\xf4\x1d>\xe1\u007f\x85\f\xa0\xf1\x9c\xe5\x13\xd8\xe4\xc9D\xc0L\xe2,\x9a\xcc5\x9d\xc2Q\xaa\xa7\x02\xd94@M\ah\x06\xe0f\x02v\x16`f\xf3\xb0l\x0eW5\x97#Ew\xb1\xa1\xbb\xd9\x10݃5\xf4\xbd\x9c%\xf7q\xad\xdeϵ\xfe\x00W\xf7 W\xfb\x10W\xf3\xb0\xaf]\x95G\xfc\x80\xae\x8a~ԟ\x99\xbf\byLH\x8f#Ο\x80͓'\x85\xe6)\xc4\xd1\xd3@\xfa\f\xd2T?+̞\x13\xaa\xe7\x85\xf4\x82н(\xb4/\t\xcd\xcb\x18\x9e\xbd\x02\xa8W\x91*z\r\x96^\x87%zC\x96\xd4o\"N\xde\x02\xaao\x03\xf5w\x00\xf7.`\xdf\x03\xcc\xfb@\xfc\x01\x06\xc6\xfaC\xff\xf4\xc4\x17!\x1f\x05A\x1fK'\xffD\x82<\xf94\b\xf3\x99t\xa2υ\xe9\x17\xd2H\xf5\x97Ad_\x05\xa1\xbe\x0e\x82\xbe\t\xc2}\x1b\x84\xfd.\b\xf3\xbdL\x93\xfd T?JC\xd1O\x12\xd0\xcf\x12\x10\xfd\x12v\xa0\u007f\x95N\xf2\x9b\xb0\xfa\xbb\xb0\xfe\x87\xd0\xfd)\xb4\u007f\t\xcd\xdf|\x0f\xffO\xd3YGWn3Q\xbc\x9b\xa52333333Sd\xbfJ\x91m\xc5\xed(MSfffffZ\xe82\xef\xb6\xfd\xca\xcc\xcc\xcc\xed\xe7\xb9W\xef\x9f\xf9\xdd\xf9\xcdʲ\x1f%\xcf\xe7\xecI\xeb\x1f}\xba[\xf6\xdfFꍐ\xffH\x99n\x88\xea\xd0o\x88\xb6\xc1w\x90\xae?t>\x00(\a\u0096v\x10Y\r&\xcd\xf4\xa4\xcc@\xc6\x19\xc9z&\xd2͌\xe5\xd5,\x80\x99\x15\xd6\xc8lhev\xb4\"spK;'\xb4\x9f\v\xc8\xe6\x06\x8ay\x808/P\xcf\a\xb8\xf9\x874\x1f\n\xdd\v4M_\xb7]\xb0Y\xae7B\x16\"ea\xe8\xb0\b\xda\xe0\x17%\xddb\xd0\xf9\xe2@\xb9\x04li\x97$\xab\xa5H\xb34)ːqY\xb2^\x8et\xcbcy\xb5\x02`V\x845\xb2\x12ZY\x19\xad\xc8*\xdcҮ\n\xedW\x03\xb2Ձb\r \xae\t\xd4k\x01n\xed!\x1dU\xcf:\xcdU\xf5\xd8u\x1b\xd3|\xe1Y\x0f\x90\xf5Յ\r\xb4\t~C\xc0m\xa4.\xdfXk\xb9\x89\xaa\xd2n\nT\x9b\x01fs@\xb6\x00\xe2\x96@\xbd\x15\xe0\xb6\xd6e\xd56ZͶ\xaa\x8cl\xa7\x8dl\xaf\x8d\xc8\x0e\xd8\xc3\xee\xa8\xce\xef\xa45\xdbYk\xb1\x8bָ\xab\xd6z7\xadn\xf7\xe6\x9f\xf6\xb6\xba\xf7h\xaeV\xef{\xec9d\x10h\xf7JA\xf6\xe6$\xecC\x11\xfc\xbe)\xb8\xfd8\xc9\xf7'\xcb\x038(\xed\x81)T\a\xa5`\x0eNA\x0eI!\x1e\x9aB}X\n\xeep\x1e\xa6\xea$\x8d\xe1\xc0HF!9\x85H+\x9d\x81=\x82\x13o\xc9̑E\x17\x19=Y\x17\xa4+\x9bK\xeemU\xb8d\x1b \xad\xed&\xa5\x86\x0eG\xa2\r\xfe(\xd2\tt\x1e\x81\xb2\a\xb6\xb4G\x93U/i\x8e!\xa5\x8f\x8cǒ\xf5q\xa4;\x1e˫\x13\x00s\"\xac\x91\x93\xd0\xca\xc9hEN\xe1\x96\xf6Th\u007f\x1a\x90\x9d\x0e\x14g\x00\xf1L\xa0>\vpg\xeb\x05u\x9d\xa3M\x97=W\x977\xdf\xe3\xce#\xe5|\xe8p\x01\xda\xe0/$\xddE\xd0\xf9\xc5@y\tli/%\xab\xcbHs9)W\x90\xf1J\xb2\xbe\x8atWcyu\r`\xae\x855r\x1dZ\xb9\x1e\xad\xc8\r\xdc\xd2\xde\b\xedo\x02\xb2\x9b\x81\xe2\x16 \xde\nԷ\x01\xeev\xfdP\xe8\xb9C\xdfP=\xf6N}\v6o\xa3\xbbH\xb9\x1b:܃6\xf8{Iw\x1ft~?P>\x00[\xda\a\xc9\xea!\xd2\x82\xce?\x06\xcaO`K\xfb)Y}F\x9a\xcfI\xf9\x82\x8c_\x92\xf5W\xa4\xfb\x1a˫o\x00\xf3-\xac\x91\xef\xd0\xca\xf7hE~\xe0\x96\xf6Gh\xff\x13\x90\xfd\f\x14\xbf\x00\xf1W\xa0\xfe\rp\xbf7\x1f\xdb]\u007f4W\xd5e\xffl\x8c\xfe\xa71@\xfeV\x17\xfe\xd1&\xf8\u007f\x01\xf7\x9f\xba|\xba\xa1M-\xfb\rmTi;\x80\xaa?`\x06\x002\x10\x88\x83\x80z0\xe0\xa6\xd7e\xd5\fZ͌\xaa\x8c̤\x8d̬\x8d\xc8,\x8a`gU\xe7gӚͮ\xb5\x98Ck\x9cSk=\x97V7\xf7\xd0\x0e\xd39\xcf\xd0\xfe\xa6\xd3\xce;t@S\xed|\x80̯.,\xa0M\xf0\v\x02n!u\xf9\xc2Z\xcbET\x95vQ\xa0Z\f0\x8b\x03\xb2\x04\x10\x97\x04\xea\xa5\x00\xb7\xb4.\xab\x96\xd1j\x96Ued9mdymDV\xc0\x1evEu~%\xad\xd9\xcaZ\x8bU\xb4\xc6U\xb5֫iu\xabkm\xad\xa1\vZv͡\x03\x15v-Rֆ\x0e\xeb\xa0\r~]ҭ\a\x9d\xaf\x0f\x94\x1b\xc0\x96vC\xb2ڈ4\x1b\x93\xb2\t\x197%\xeb\xcdH\xb79\x96W[\x00fKX#[\xa1\x95\xadъl\xc3-\xed\xb6\xd0~; \xdb\x1e(v\x00\xe2\x8e@\xbd\x13\xe0vn.\xa8\xafs\x97\xa6\xe9봻6\xcb\xf5F\xc8n\xa4\xec\x0e\x1d\xf6@\x1b\xfc\x9e\xa4\xdb\v:\xdf\x1b(\xf7\x81-\xed\xbed\xb5\x1fi\xf6'\xe5\x002\x1eH\xd6\a\x91\xee`,\xaf\x0e\x01̡\xb0F\x0eC+\x87\xa3\x15\xe9\xe4\x96\xd6@\xfb\f\xc8r\xa0h\x01\xf1\b\xa0\xb6\x80s@\xab\v\v[\xd6\x0f\x1d\x04\xda\"\x05)9\t\x15E\xf0!\x05\xd7\xcdI^\x93\xe5\x91\x1c\x94\xf6\xa8\x14*I\xc1\xc4\x14\xa4'\x85xt\nuo\n\xee\x18\x1e\xa6\xea#ͱ\x1c\x189\x8eB\x8e\xa7\x109!\x9d\x81=\x91\x13\u007f\x12\x99\x9dL\x16\xa7\x90\xf1T\xb2>\x8dt\xa77\xcf^\xab\xfb\x8c撛\xdfs\xcel\xa4\xfe\xdes\x16)gC\x87s\xd0\x06\u007f.\xe9\u0383\xce\xcf\a\xca\v`K{!Y]D\x9a\x8bI\xb9\x84\x8c\x97\x92\xf5e\xa4\xbb\x1c˫+\x00s%\xac\x91\xab\xd0\xca\xd5hE\xae\xe1\x96\xf6Zh\u007f\x1d\x90]\x0f\x147\x00\xf1F\xa0\xbe\tp77\x1f\n\xad[\xf4\xaa\xec\xadj\xac\xbd\r\x90\xdbՅ;\xb4\t\xfeN\xc0ݥ.\xbf[ky\x8f\xaa\xd2\xde\vT\xf7\x01\xe6~@\x1e\x00\xe2\x83@\xfd\x10\xe0\x1e\xd6e\xd5#Zͣ\xaa\x8c<\xa6\x8d<\xae\x8d\xc8\x13\xd8\xc3>\xa9\xce?\xa55{Zk\xf1\x8c\xd6\xf8\xac\xd6z\x88V7T_r\xad\xeea\xfa\xa4\xe8\xdf\xf8\xd2g\x13\u007f\xe3+\x05\x19\xc1I\x18I\x11\xfc\xa8\x14\xdchN\xf21d9\x96\x83ҎK\xa1\x1a\x9f\x82\x99\x90\x82LL!NJ\xa1\x9e\x9c\x82\x9b\xc2\xc3TSI3\x8d\x03#\xcfS\xc8\v\x14\"/\xa63\xb0\xff\xe3ĿDf/\x93\xc5+d|\x95\xac_#\xdd\xeb\xfa\x81\xd1z\x03\x97l߄\xb4\xf6-Rކ\x0e\xef\xa0\r\xfe]ҽ\a\x9d\xbf\x0f\x94\x1f\xc0\x96\xf6C\xb2\xfa\x884\x1f\x93\xf2\t\x19?%\xeb\xcfH\xf79\x96W_\x00\xe6KX#_\xa1\x95\xafъ|\xc3-\xed\xb7\xd0\xfe; \xfb\x1e(~\x00\xe2\x8f@\xfd\x13\xe0~n^rݿ4W\xd5m\u007fm\x8c\xfei/@~W\x17\xfe\xd0&\xf8?\x01\xf7\x97\xba\xfco\xad\xe5?\xaaJ\xfb/P\xfd\a\x98\xe9\x86)\xa4\x1f\x10;\x80\xba?\xe0\x06\fk\x96U\x03\xb5\x9aA\xaa\x8c\f\xd6F\xa6\xd7Fd\x06E\xb03\xaa\xf33i\xcdf\xd6Z̢5Ϊ\xb5\x9eM\xab\x9b\xbd\xa9\xbd\x9ds4\vz;\xed\x9c\xc3\x06*\xec\\\xa4\xcc\r\x1d\xe6A\x1b\xfc\xbc\xa4\x9b\x0f:\x9f\x1f(\x17\x80-\xed\x82d\xb5\x10i\x16&e\x112.J\u058b\x91nq,\xaf\x96\x00̒\xb0F\x96B+K\xa3\x15Y\x86[\xdae\xa1\xfdr@\xb6\x02(G\u0096v\x14Y\x8d&\xcd\x18Rƒq\x1cY\x8f'\xdd\x04,\xaf&\x02f\x12\xac\x91\xc9he\nZ\x91\xa9\xdc\xd2N\x83\xf6\xcf\x03\xd9\v@\xf1\"\x10\xff\a\xd4/\x01\xeee\xbd\xa0\xaeW\xb4鲯\xea\xf2\xe6{\xdck\xa4\xbc\x0e\x1d\xde@\x1b\xfc\x9b\xa4{\v:\u007f\x1b(߁-\xed\xbbd\xf5\x1ei\xde'\xe5\x032~H\xd6\x1f\x91\xeec,\xaf>\x01̧\xb0F>C+\x9f\xa3\x15\xf9\x82[\xda/\xa1\xfdW@\xf65P|\x03\xc4o\x81\xfa;\xc0}\xaf\x1f\n=?\xe8\x1b\xaa\xc7\xfe\xa8o\xc1\xe6m\xf4\x13)?C\x87_\xd0\x06\xff+\xe9~\x83\xce\u007f\a\xca?`K\xfb'Y\xfdE\x9a\xbfI\xf9\x87\x8c\xff\x92\xf5\u007f\xa4\x9bn\xb8.\xaf\xfa\x01\xa6c\xb8Z#\xfd\xd1\xca\x00\xb4\"\x03\xc1`\aA\xfb\xc1@6=P\xcc\x00\xc4\x19\x81z&\xc0\xcd<\xbc\xf9m\xafg\x96\xa6i\xf5\xd8Y\x9b\xe5z#d6Rf\x87\x0es\xa0\r~N\xd2\xcd\x05\x9d\xcf\r\x94\xf3\xc0\x96v^\xb2\x9a\x8f4\xf3\x93\xb2\x00\x19\x17$\xeb\x85H\xb70\x96W\x8b\x00fQX#\x8b\xa1\x95\xc5ъ,\xc1-\xed\x92\xd0~) [\x1a(\x96\x01\xe2\xb2@\xbd\x1c\xe0\x96o.\xa8\xafk\x05\xbd\xba.\xbb\xa2>\x1e\xcdKn%RV\x86\x0e\xab\xa0\r~Uҭ\x06\x9d\xaf\x0e\x94k\xc0\x96vM\xb2Z\x8b4k\x93\xb2\x0e\x19\xd7%\xeb\xf5H\xb7>\x96W\x1b\x00fCX#\x1b\xa1\x95\x8dъl\xc2-\xed\xa6\xd0~3 \xdb\x1c(\xb6\x00\xe2\x96@\xbd\x15\xe0\xb6\x1e\xdea\xba\xb6i\xae\xaa\xcbn\xdb\x18\xfd\xdfA\x80l\xaf.\xec\xa0M\xf0;\x02n'u\xf9\xceZ\xcb]T\x95vW\xa0\xda\r0\xbb\x03\xb2\a\x10\xf7\x04\xea\xbd\x00\xb7\xb7.\xab\xf6\xd1j\xf6Ued?md\u007fmD\x0e\xc0\x1e\xf6@u\xfe \xad\xd9\xc1Z\x8bC\xb4\xc6C\xb5ևiu\x877\xd5tv6\vL\xa75\xcd5뽐\x8c\x94\x1c:\xb4\xd0\x06\u007f\x04\xe9,t\ue032\v\xb6\xb4\x9e\xac\nҔ\xa4Td\fd\xddM\xba\x1a˫#\x01s\x14\xac\x11A+\x11\xadH\x0f\xb7\xb4GC\xfb^ ;\x06(\xfa\x80x,P\x1f\a\xb8\xe3\x81\xd6\tXز'\x0e\x1f\x04ړR\x90\x939\t\xa7P\x04\u007fj\n\xee4N\xf2\xd3\xc9\xf2\f\x0eJ{f\n\xd5Y)\x98\xb3S\x90sR\x88\xe7\xa6P\x9f\x97\x82;\x9f\x87\xa9. ͅ\x1c\x18\xb9\x88B.\xa6\x10\xb9$\x9d\x81\xbd\x94\x13\u007f\x19\x99]N\x16W\x90\xf1J\xb2\xbe\x8atW\xeb\xc5\xf6u^\xa3m_\xa7\xbdV\x8f\xa3\xf7P\xaeKA\xae\xe7$\xdc@\x11\xfc\x8d)\xb8\x9b8\xc9o&\xcb[8(\xed\xad)T\xb7\xa5`nOA\xeeH!ޙB}W\n\xeen\x1e\xa6\xba\x874\xf7r`\xe4>\n\xb9\x9fB\xe4\x81t\x06\xf6AN\xfcCd\xf60Y\x05\xf7\x82>\xeb\xad\xee\x17\xf5\xf1h~\xb3\xfa\x9fz\xfdU\xeb\xa5\x14\xe4eN\xc2+\x14\xc1\xbf\x9a\x82{\x8d\x93\xfcu\xb2|\x83\x83Ҿ\x99B\xf5V\n\xe6\xed\x14\xe4\x9d\x14\xe2\xbb)\xd4\xef\xa5\xe0\xde\xe7a\xaa\x0fH\xf3!\aF>\xa2\x90\x8f)D>Ig`?\xe5\xc4\u007fFf\x9f\x93\xc5\x17d\xfc\x92\xac\xbf\"\xdd\xd7\xfa\x01\xd5\xfa\x06\x97l\xbf\x85\xb4\xf6;R\xbe\x87\x0e?\xa0\r\xfeG\xd2\xfd\x04\x9d\xff\f\x94\xbf\xc0\x96\xf6W\xb2\xfa\x8d4\xbf\x93\xf2\a\x19\xff$\xeb\xbfH\xf77\x96W\xff\x00\xe6_X#\xff\xa1\x95\xe9\x9e\xd3V\xa4\x1f\x18l\xc7s\xaa}\u007f \x1b\x00\x14\x03\x818\b\xa8\a\x03nz]\xd1\xd7\xea\x9e\xe1\xb9A\xa0\x9d\xf1\xb9\xc1\fv\xa6v\x92\x99\xd30̒T\U00033d93\x9b-\r\xf3\xd9S(\xe7H\xb3\xd2\xce\xd9N\xd5\\\xedd\xe6n'\x99\xa7\x9d\xe2\xbc\xedT\xcf\xd7Nn\xfet\xb8j\x81\x14̂ifd\xa1\xa4d\xe1\xa4D\x16i\x9f\x90]4\r\xfdb)d\x8b\xa7P,\x91B\\2\x85z\xa9\x14\xdc\xd2\xfax\xf4\xb5\x96\xe1\xe3a\x97\xa5\xb7v\xb9\x14dyN\xc2\n\x14\xc1\xaf\x98\x82[\x89\x93|e\xb2\\\x85\x83Ү\x9aB\xb5Z\nf\xf5\x14d\x8d\x14\xe2\x9a)\xd4k\xa5\xe0\xd6\xe6a\xaauH\xb3.\aF֣\x90\xf5)D6Hg`7\xe4\xc4oDf\x1b\x93\xc5&dܔ\xac7#\xdd\xe6\xcf5/\xe3\xee-\xf4\x92\xbb\xed\x96*\xf5\x8fc\x91\xb25t\xd8\x06m\xf0ےn;\xe8|{\xa0\xdc\x01\xb6\xb4;\x92\xd5N\xa4ٙ\x94]ȸ+Y\xefF\xbaݱ\xbc\xda\x030{\xc2\x1a\xd9\v\xad\xec\x8dVd\x1fni\xf7\x85\xf6\xfb\x01\xd9\xfe@q\x00\x10\x0f\x04\xea\x83\x00w\xb0\xa2\xb7\xf3\x10]\xd8\xdbi\x0f\xd5\aF\xef\x03\x1d\x96\x82\x1c\xceI\xe8\xa4\bޤ\xe02N\xf2\x9c,[\x1c\x94\xf6\x88\x14*\x9b\x82q)HW\nѧP\x17)\xb8\x92\x87\xa9*\xd2\x04\x0e\x8ctSHM!rd:\x03{\x14'^\xc8,\x92E\x0f\x19\x8f&\xeb^\xd2\x1dC\xb6\xfax\x80\x96=V_\xfb\xb8Gt\\;\xc9\xf1i\x18NH*\xf8\x13\xdbɝ\x94\x86\xf9\xc9)\x94\xa7\xa4YiOm\xa7\xea\xb4v2\xa7\xb7\x93\x9c\xd1N\xf1\xccv\xaa\xcfj'wv:\\uN\n\xe6\xdc43r^Rr~R\"\x17\xb4O\xc8^\x98\x86\xfe\xa2\x14\xb2\x8bS(.I!^\x9aB}Y\n\xeer<\xf9\xad+\xf0ri\xd9+\xd5\xeb\xfd\xa3\xabR\x90\xab9\t\xd7P\x04\u007fm\n\xee:N\xf2\xeb\xc9\xf2\x06\x0eJ{c\n\xd5M)\x98\x9bS\x90[R\x88\xb7\xa6Pߖ\x82\xbb\x9d\x87\xa9\xee ͝\x1c\x18\xb9\x8bB\xee\xa6\x10\xb9'\x9d\x81\xbd\x97\x13\u007f\x1f\x99\xddO\x16\x0f\x90\xf1A\xb2~\x88t\x0f\xe3\x03\xaa\xfb\x11\xbc\x85\xbb\xed\xa3x\xef7o\xdb\xc7R\x90\xc79\tOP\x04\xffd\n\xee)N\xf2\xa7\xc9\xf2\x19\x0eJ\xfbl\nՐ\x14\xcc\xd0\x14dX\nqx\n\xf5s)\xb8\x11\x01\xe2\xa7@\xfd\x19\xe0>\xc7{\xb6\xd5\xfd\x05^\xbb\xcd\x0f\xd5/\xf1\xdaן\xb3_\xb5\x93|\x9d\x86ᛤ\x82\xff\xb6\x9d\xdcwi\x98\u007f\x9fB\xf9C\x9a\x95\xf6\xc7v\xaa~j'\xf3s;\xc9/\xed\x14\u007fm\xa7\xfa\xb7vr\xbf\xa7\xc3U\u007f\xa4`\xfeL3#\u007f%%\u007f'%\xf2O\xfb\x84\xec\xbfi\xe8\xffK!\x9bn\x04C\xd1/\x85ؑB\xdd?\x057`\x84~R\xb7\x06\x8e\xc0\xe3a\a\xd1[;8\x05\x99\x9e\x930\x03E\xf03\xa6\xe0f\xe2$\x9f\x99,gᠴ\xb3\xa6P͖\x82\x99=\x05\x99#\x858g\n\xf5\\)\xb8\xb9y\x98j\x1e\xd2\xccˁ\x91\xf9(d~\n\x91\x05\xd2\x19\xd8\x059\xf1\v\x91\xd9\xc2d\xb1\b\x19\x17%\xeb\xc5H\xb78.\xb6k\t\xb4]vI\x1c\xa7\xf9*\xbeT\n\xb24'a\x19\x8a\xe0\x97M\xc1-\xc7I\xbe\xd7f)\xc8朄-(\x82\xdf2\x05\xb7\x15'\xf9\xd6d\xb9\r\a\xa5\xdd6\x85j\xbb\x14\xcc\xf6)\xc8\x0e)\xc4\x1dS\xa8wJ\xc1\xed\xcc\xc3T\xbb\x90fW\x0e\x8c\xecF!\xbbS\x88\xec\x91\xce\xc0\xeeɉߋ\xcc\xf6&\x8b}ȸ/Y\xefG\xba\xfd\xf5b[=\ah\xdb\xea\xb1\a\xeaq\xf4\x1e\xd8A)\xc8\xc1\x9c\x84C(\x82?4\x05w\x18'\xf9\xe1d\xd9\xc9AiM\nU\x96\x82\xc9S\x90V\n\xf1\x88\x14j\x9b\x82s\xfa\xa4\xe8_\x15\xd3g\x13\u007fV,\x05ٟ\x93p\x00E\xf0\a\xa6\xe0\x0e\xe2$?\x98,\x0fᠴ\x87\xa6P\x1d\x96\x829<\x05\xe9L!\x9a\x14\xea,\x05\x97\xf30U\x8b4Gp`\xc4R\x88\xa3\x10\xe9Jg`='\xbe \xb3\x92,*2\x06\xb2\xee&]\xdd\\r_\xebH\\\xb2=\n\xd2Z!%B\x87\x1e\xb4\xc1\x1fM\xba^\xe8\xfc\x18\xa0\xec\x83-\xed\xb1du\x1ci\x8e'\xe5\x042\x9eH\xd6'\x91\xeed,\xafN\x01̩\xb0FNC+\xa7\xa3\x159\x83[\xda3\xa1\xfdY@v6P\x9c\x03\xc4s\x81\xfa<\xc0\x9d\u07fc\xe4\xba/h\xae\xaa\xdb^\xd8\x18\xfd+d\x80\\\xac.\\\xa2M\xf0\x97\x02\xee2u\xf9\xe5Z\xcb+T\x95\xf6J\xa0\xba\n0W\x03r\r\x10\xaf\x05\xea\xeb\x00w\xbd.\xabn\xd0jnTe\xe4&m\xe4fmDn\xc1\x1e\xf6Vu\xfe6\xad\xd9\xedZ\x8b;\xb4\xc6;\xb5\xd6wiuw7\xb5\xb7\xf3\x9efAo\xa7\xbd\xb7\xb9f\xbd\xabt\x1f)\xf7C\x87\a\xd0\x06\xff \xe9\x1e\x82\xce\x1f\x06\xcaG`K\xfb(Y=F\x9a\xc7Iy\x82\x8cO\x92\xf5S\xa4{\x1a˫g\x00\xf3,\xac\x91!he(Z\x91a\xdc\xd2\x0e\x87\xf6\xcf\x01\xd9\b\xa0\x18\t\xc4Q@=\x1apc\x80\xd6X,l\xd9q\xcd\xcb\x13w\x8eƧ \x138\t\x13)\x82\x9f\x94\x82\x9b\xccI>\x85,\xa7rP\xdai)Tϧ`^HA^L!\xfe/\x85\xfa\xa5\x14\xdc\xcb'a\x03\x8a\xe07L\xc1m\xc4I\xbe1Yn\xc2Ai7M\xa1\xda,\x05\xb3y\n\xb2E\nq\xcb\x14\xea\xadRp[\xf30\xd56\xa4ٖ\x03#\xdbQ\xc8\xf6\x14\";\xa43\xb0;r\xe2w\"\xb3\x9d\xc9b\x172\xeeJֻ\x91n\xf7\xe6\x92{[{\xe0\x92힐\xd6\xeeE\xca\xde\xd0a\x1f\xb4\xc1\xefK\xba\xfd\xa0\xf3\xfd\x81\xf2\x00\xd8\xd2\x1eHV\a\x91\xe6`R\x0e!\xe3\xa1d}\x18\xe9\x0e\xc7\xf2\xaa\x130\x06\xd6H\x86Vr\xb4\"-ni\x8f\x80\xf6\x16\xc8\x1cPt\x01\xd1\x03u\x01\xb8R/\xa8\xabҦ\xcb\x06]\xde|\xc1\xeb&\xa5\x86\x0eG\xa2\r\xfe(\xd2\tt\x1e\x81\xb2\a\xb6\xb4G\x93U/i\x8e!\xa5\x8f\x8cǒ\xf5q\xa4;\x1e˫\x13\x00s\"\xac\x91\x93\xd0\xca\xc9hEN\xe1\x96\xf6Th\u007f\x1a\x90\x9d\x0e\x14g\x00\xf1L\xa0>\vpg7\x17\xd4\xd7s\x8e\xbe\xa1z\xec\xb9\xfa\x16l\xdeF\xe7\x91r>t\xb8\x00m\xf0\x17\x92\xee\"\xe8\xfcb\xa0\xbc\x04\xb6\xb4\x97\x92\xd5e\xa4\xb9\x9c\x94+\xc8x%Y_E\xba\xab\xb1\xbc\xba\x060\xd7\xc2\x1a\xb9\x0e\xad\\\x8fV\xe4\x06nio\x84\xf67\x01\xd9\xcd@q\v\x10o\x05\xea\xdb\x00w{sA\xad\x9e;\x9a\xa6\xd5c\xefl\x96띕\xbbH\xb9\x1b:܃6\xf8{Iw\x1ft~?P>\x00[\xda\a\xc9\xea!\xd2\xb6\xbb\xdei\xae\xaa˾\xdb\x18\xfdOc\x80\xbc\xaf.|\xa0M\xf0\x1f\x02\xee#u\xf9\xc7Z\xcbOT\x95\xf6S\xa0\xfa\f0\x9f\x03\xf2\x05\x10\xbf\x04\xea\xaf\x00\xf7\xb5.\xab\xbe\xd1j\xbeUe\xe4;m\xe4{mD~\xc0\x1e\xf6Gu\xfe'\xad\xd9\xcfZ\x8b_\xb4\xc6_\xb5ֿiu\xbf7U:\xffh\x16H\xa7\xfd\xb3\xb9f\xbd\x17\xf2\x17)\u007fC\x87\u007f\xd0\x06\xff/\xe9\xfe\x83Χ\x1b\xad(\xfb\x8dV[\xda\x0e\xb2\xeaO\x9a\x01\xa4\f$\xe3 \xb2\x1eL\xba鱼\x9a\x0103\xc2\x1a\x99\t\xaďVd\x160\xd8Y\xa1\xfdl@6;P\xcc\x01\xc49\x81z.\xc0\xcd\r\xb4\xe6\xc1\u0096\x9dw\xf4 \xd0Η\x82\xcc\xcfIX\x80\"\xf8\x05Sp\vq\x92/L\x96\x8bpP\xdaES\xa8\x16K\xc1,\x9e\x82,\x91B\\2\x85z\xa9\x14\xdc\xd2Yn\xc0Ai7L\xa1\xda(\x05\xb3q\n\xb2I\nq\xd3\x14\xea\xcdRp\x9b\xf30\xd5\x16\xa4ْ\x03#[Q\xc8\xd6\x14\"ۤ3\xb0\xdbr\xe2\xb7#\xb3\xed\xc9b\a2\xeeH\xd6;\x91ng\xb2\xb5\v\x0fв\xbb\x8e\x1e\xcc`wk'\xd9=\r\xc3\x1eI\x05\xbfg;\xb9\xbd\xd20\xdf;\x85r\x9f4+\xed\xbe\xedT\xed\xd7Nf\xffv\x92\x03\xda)\x1e\xd8N\xf5A\xed\xe4\x0eN\x87\xab\x0eI\xc1\x1c\x9afF\x0eKJ\x0eO\xaay\xe2\xda'dM\x1a\xfa,\x85,O\xa1h\xa5\x10\x8fH\xa1\xb6)8\xa7\xcfz\xab\xbbK\x1f\x8f\xe67+\xaf^\u007f\xd5*R\x90\x92\x93PQ\x04\x1fRpݜ\xe45Y\x1e\xc9Ai\x8fJ\xa1\x92\x14LLAzR\x88G\xa7P\xf7\xa6\xe0\x8e\xe1a\xaa>\xd2\x1cˁ\x91\xe3(\xe4x\n\x91\x13\xd2\x19\xd8\x139\xf1'\x91\xd9\xc9dq\n\x19O%\xeb\xd3Hw\xfa\xe8\xe6\x03\xaau\x06.ٞ\ti\xedY\xa4\x9c\r\x1d\xceA\x1b\xfc\xb9\xa4;\x0f:?\x1f(/\x80-\xed\x85du\x11i.&\xe5\x122^J֗\x91\xeer,\xaf\xae\x00̕\xb0F\xaeB+W\xa3\x15\xb9\x86[\xdak\xa1\xfdu@v=P\xdc\x00\xc4\x1b\x81\xfa&\xc0\u074c\x97q\xab\xfb\x16<\x9d\xfa\xd7\xc8\xf0r\xc0\x9f#k'\xb9=\r\xc3\x1dI\x05\u007fg;\xb9\xbb\xd20\xbf;\x85\xf2\x9e4+\xed\xbd\xedT\xdd\xd7N\xe6\xfev\x92\a\xda)>\xd8N\xf5C\xed\xe4\x1eN\x87\xab\x1eI\xc1<\x9afF\x1eKJ\x1eOJ\xe4\x89\xf6\t\xd9'\xd3\xd0?\x95B\xf6t\n\xc53)\xc4gS\xa8\x87\xa4\xe0\x86\xe2ë5\x8c\x8f\x87\x1dNo\xeds)\xc8\bN\xc2H\x8a\xe0G\xa5\xe0Fs\x92\x8f!˱\x1c\x94v\\\n\xd5\xf8\x14̄\x14db\nqR\n\xf5\xe4\x14\xdc\x14\x1e\xa6\x9aJ\x9ai\x1c\x18y\x9eB^\xa0\x10y1\x9d\x81\xfd\x1f'\xfe%2{\x99,^!\xe3\xabd\xfd\x1a\xe9^חq\xf7\x1bz\xc9\xdd\xf6M\x95\xfa\xd7\xcbHy\x1b:\xbc\x836\xf8wI\xf7\x1et\xfe>P~\x00[\xda\x0f\xc9\xea#\xd2|L\xca'd\xfc\x94\xac?#\xdd\xe7X^}\x01\x98/a\x8d|\x85V\xbeF+\xf2\r\xb7\xb4\xdfB\xfb\xef\x80\xec{\xa0\xf8\x01\x88?\x02\xf5O\x80\xfbY\xd1\xdb\xf9\x8b.\xec\xed\xb4\xbf\xea\x03\xa3\xf7\x81~KA~\xe7$\xfcA\x11\xfc\x9f)\xb8\xbf8\xc9\xff&\xcb\u007f8(\xed\xbf)T\xff\xa5`\xa6\x1b\xc3 \xfdR\x88\x1d)\xd4\xfdSp\x03\xc6\xe00\xd5@\xd2\f\xe2\xc0\xc8`\n\x99\x9eBd\x06\x86`g\xe4\xc4\xcfDf3\x93\xc5,d\x9c\x95\xacg#\xdd\xecdk\x0e\x1e\xa0e\xe7\x1c3\x98\xc1\xce\xd5N2w\x1a\x86y\x92\n~\xdevr\xf3\xa5a>\u007f\n\xe5\x02iV\xda\x05۩Z\xa8\x9d\xcc\xc2\xed$\x8b\xb4S\\\xb4\x9d\xea\xc5\xda\xc9-\x9e\x0eW-\x91\x82Y2͌,\x95\x94,\x9d\x94\xc82\xed\x13\xb2˦\xa1_.\x85l\xf9\x14\x8a\x15R\x88+\xa6P\xaf\x94\x82[y\x8c>\xf9\xadU\xf4\xf1\xe8n\xd9U\xd5\xeb\xfd\xa3\xd5R\x90\xd59\tkP\x04\xbff\nn-N\xf2\xb5\xc9r\x1d\x0eJ\xbbn\n\xd5z)\x98\xf5S\x90\rR\x88\x1b\xa6Po\x94\x82ۘ\x87\xa96!ͦ\x1c\x18ٌB6\xa7\x10\xd9\"\x9d\x81ݒ\x13\xbf\x15\x99mM\x16ېq[\xb2ގt\xdb\xeb\xc5\xf6u\xef\xa0m_\xb7\xddQ\x8f\xa3\xf7\x96vJAv\xe6$\xecB\x11\xfc\xae)\xb8\xdd8\xc9w'\xcb=8(\xed\x9e)T{\xa5`\xf6NA\xf6I!\xee\x9bB\xbd_\nn\u007f\x1e\xa6:\x804\ar`\xe4 \n9\x98B\xe4\x90t\x06\xf6PN\xfcadv8Yt\x92ѐuF\xba|L\xf3\x01\xd5\xd3\xd2K\xee\xb1G\xa8l\xbe_ZR\x1ct\xe8B\x1b\xbc']\x01\x9d\x97@Y\xc1\x966\x90U7ijR\x8e$\xe3Qd-\xa4\x8bX^\xf5\x00\xe6hX#\xbdh\xe5\x18\xb4\xcd\x19rK{,\xb4?\x0eȎ\a\x8a\x13\x80x\"P\x9f\x04\xb8\x93\xf1\x9emu\x9f\x82\xd7n\xf3C\xf5T\xbc\xf6\xf5\xe7\xeci\xed$\xa7\xa7a8#\xa9\xe0\xcfl'wV\x1a\xe6g\xa7P\x9e\x93f\xa5=\xb7\x9d\xaa\xf3\xdaɜ\xdfNrA;\xc5\v۩\xbe\xa8\x9d\xdc\xc5\xe9p\xd5%)\x98K\xd3\xcc\xc8eI\xc9\xe5I\x89\\\xd1>!{e\x1a\xfa\xabRȮN\xa1\xb8&\x85xm\n\xf5u)\xb8\xeb\xf5\xf1\xe8m\xdd\xc0\xc7\xc3\xdeHo\xedM)\xc8͜\x84[(\x82\xbf5\x05w\x1b'\xf9\xeddy\a\a\xa5\xbd3\x85\xea\xae\x14\xcc\xdd)\xc8=)\xc4{S\xa8\xefK\xc1\xdd\xcf\xc3T\x0f\x90\xe6A\x0e\x8cʉ\u007f\x8c\xcc\x1e'\x8b'\xc8\xf8$Y?E\xba\xa7q\xb1]Ϡ\xed\xb2\xcf\xe28\xcdW\xf1!)\xc8PN\xc20\x8a\xe0\x87\xa7\xe0\x9e\xe3$\x1fA\x96#9(\xed\xa8\x14\xaa\xd1)\x981)\xc8\xd8\x14\xe2\xb8\x14\xea\xf1)\xb8\t\xe6a\xaaOH\xf3)\aF>\xa3\x90\xcf)D\xbeHg`\xbf\xe4\xc4\u007fEf_\x93\xc57d\xfc\x96\xac\xbf#\xdd\xf7z\xb1\xad\x9e\x1f\xb4m\xf5\xd8\x1f\xf58z\x0f\xec\xa7\x14\xe4gN\xc2/\x14\xc1\xff\x9a\x82\xfb\x8d\x93\xfcw\xb2\xfc\x83\x83\xd2\xfe\x99B\xf5W\n\xe6\xef\x14\xe4\x9f\x14\xe2\xbf)\xd4\xff\xa5\xe0\xa6\x1b\x8b\xc3T\xfdH\xd31\x16\x03#\xfd)d\x00\x85\xc8@\x86`\aq\xe2\a\x93\xd9\xf4d1\x03\x19g$\xeb\x99H7\xf3X}f\xbbfѶ\xaf\xcbΪ\xc7\xd1\xfbc\xb3\xa5 \xb3s\x12\xe6\xa0\b~\xce\x14\xdc\\\x9c\xe4s\x93\xe5<\x1c\x94v\xde\x14\xaa\xf9R0\xf3\xa7 \v\xa4\x10\x17L\xa1^(\x05\xb70\x0fS-B\x9aE90\xb2\x18\x85,N!\xb2D:\x03\xbb$'~)2[\x9a,\x96!\xe3\xb2d\xbd\x1c\xe9\x96\x1f\xdb\xfc\xe8\xe9ZA/\xb9ˮ\xa8R\xff\x9f!)+C\x87U\xd0\x06\xbf*\xe9V\x83\xceW\a\xca5`K\xbb&Y\xadE\x9a\xb5IY\x87\x8c\xeb\x92\xf5z\xa4[\x1f˫\r\x00\xb3!\xac\x91\x8d\xd0\xca\xc6hE6\xe1\x96vSh\xbf\x19\x90m\x0e\x14[\x00qK\xa0\xde\np[\x8f\xed\u05f9\xcd؎N\xbb\xed\xd8\xfeͯ\xc4\xdbi\x95\xed\x1b\x11vhb\xf0;ju;5\"߹)\xe5.M_\xda]\xb5V\xbbi5\xbbk\x95=\xb4\xc6=\xb5\xd6{iu{7\xff\xbcڧ)fߦ7\xb2_\x13e\xff&\x8a\x1c\xa0\a\xb5\a6\xc2\x1fԔ\xec\xe0\xa6\x14\x874%\x1eڔ\xfa\xb0\xa6\xb8Û\xd2\xeal\xfea˚\xb1\x03\xf4\xd7\xd7\f\x90\\]hi\x13\xfc\x11\x80\xb3\xear\xa7\xb5\xecRUZ\x0fT\x05`J@* \x06\xa0\xee\x06\\\xad˪#\xb5\x9a\xa3T\x19\x11m$j\xd3\xfc|\xc6\x1e\xf6hu\xbeWkv\x8c֢Ok\xad\xd9\xfdZ\x8b\a\xb4\xc6\a\xb5\xd6\x0fiu\x0f\x8f\xeb\xd7\xf3ȸ\x8e\x1e\xfb\xe8\xb8\xfeͯ\xf4\x8fi\x95\xc7\x1b\x11\x9ehb\xf0OjuO5\"\u007f\xba)\xe53M_\xdag\xb5VC\xb4\x9a\xa1Ze\x98\xd68\\k\xfd\x9cV7\xa2\xf9\xe7\xd5Ȧ\x98QModt\x13eL\x13\x9b_G\xf4\xa0v\\#\xfc\xf8\xa6d\x13\x9aRLlJ\x9cԔzrSܔ\xe65\xdd\xea\x9eڼ\x1e\x9a\x0f\xe6i\xcd+H?\xa7\x9f'\xe5\x05\xe8\xf0\"\xda\xe0\xffG\xba\x97\xa0\xf3\x97\x81\xf2\x15\xd8ҾJV\xaf\x91\xe6uR\xde \xe3\x9bd\xfd\x16\xe9\xde\xc6\xf2\xea\x1d\xc0\xbc\vk\xe4=\xb4\xf2>Z\x91\x0f\xb8\xa5\xfd\x10\xda\u007f\x04d\x1f\x03\xc5'@\xfc\x14\xa8?\x03\xdc\xe7\xcd'K\xeb\v\xbd*\xfb\xa5\x1ak\xbf\x02\xe4ku\xe1\x1bm\x82\xff\x16pߩ˿\xd7Z\xfe\xa0\xaa\xb4?\x02\xd5O\x80\xf9\x19\x90_\x80\xf8+P\xff\x06\xb8\xdfuY\xf5\x87V\xf3\xa7*#\u007fi#\u007fk#\xf2\x0f\xf6\xb0\xff\xaa\xf3\xffiͦ\x1b\xdfԢ\x9f\xd6ء\xb5\xee\xaf\xd5\r\x18\xdf\xd1\xdb5\xb0\x89]v\xd0\xf8\x01\xfau~0 ӫ\v3h\x13\xfc\x8c\x80\x9bI]>\xb3\xd6r\x16U\xa5\x9d\x15\xa8f\x03\xcc\xec\x80\xcc\x01\xc49\x81z.\xc0ͭ˪y\xb4\x9ayU\x19\x99O\x1b\x99_\x1b\x91\x05\xb0\x87]P\x9d_Hk\xb6\xb0\xd6b\x11\xadqQ\xad\xf5bZ\xdd\xe2\xe3;\xfaz\x96\x18\u07ff\xf9\x1e\xbe\xe4\xf8\x01\xfa\xb5|)@\x96V\x17\x96\xd1&\xf8e\x01\xb7\x9c\xba|y\xad\xe5\n\xaaJ\xbb\"P\xad\x04\x98\x95\x01Y\x05\x88\xab\x02\xf5j\x80[]\x97Ukh5k\xaa2\xb2\x966\xb2\xb66\"\xeb`\x0f\xbb\xae:\xbf\x9e\xd6l}\xad\xc5\x06Z\xe3\x86Z덴\xba\x8d\xc7w\xb4z6\x19\u07ff\xf9>\xbd\xe9\xf8\x01\xfa\xf5z3@6W\x17\xb6\xd0&\xf8-\x01\xb7\x95\xba|k\xad\xe56\xaaJ\xbb-Pm\a\x98\xed\x01\xd9\x01\x88;\x02\xf5N\x80\xdbY\x97U\xbbh5\xbb\xaa2\xb2\x9b6\xb2\xbb6\"{`\x0f\xbb\xa7:\xbf\x97\xd6lo\xad\xc5>Z\xe3\xbeZ\xeb\xfd\xb4\xba\xfd\x9bG\xba\xeb\x80\xe6\xfc\xbb\xec\x81ͥ6/\x8f\x83\x009X]8D\x9b\xe0\x0f\x05\xdca\xea\xf2õ\x96\x9d\xaaJk\x80*\x03L\x0eH\v\x88G\x00\xb5\x05\x9c\xd3eU\x97V\xe3U\x19)\xb4\x91R\x1b\x91\n{ؠ\xcewk\xcdj\xadőZ\xe3QZk\xd1\xea\xe2\xf8~]=\xe3;\xba\xec\xd1\xe3\xfb\xeb\u007f\x1b\xd2*\xc74\"\xf451\xf8c\xb5\xba\xe3\x1a\x91\x1fߔ\xf2\x84\xa6/\xed\x89Z\xab\x93\xb4\x9a\x93\xb5\xca)Z\xe3\xa9Z\xebӴ\xbaӛ\u007f^\x9d\xd1\x14sf\xd3\x1b9\xab\x89rv\x13E\xceу\xdas\x1b\xe1\xcfkJv~S\x8a\v\x9a\x12/lJ}QS\xdc\xc5\xe3;|\xe7%\xe3\xfb\xfbN{\xe9\xf8\x01M\xb5\x97\x01r\xb9\xbap\x856\xc1_\t\xb8\xab\xd4\xe5Wk-\xafQU\xdak\x81\xea:\xc0\\\x0f\xc8\r@\xbc\x11\xa8o\x02\xdcͺ\xac\xbaE\xab\xb9U\x95\x91۴\x91۵\x11\xb9\x03{\xd8;\xd5\xf9\xbb\xb4fwk-\xee\xd1\x1a\xef\xd5Zߧ\xd5ݯ\xb5\xf5\x80.h\xd9\a\xc7\x0fT؇Hy\x18:<\x826\xf8GI\xf7\x18t\xfe8P>\x01[\xda'\xc9\xea)\xd2\"\xe5c\xe8\xf0\t\xda\xe0?%\xddg\xd0\xf9\xe7@\xf9\x05li\xbf$\xab\xafH\xf35)ߐ\xf1[\xb2\xfe\x8et\xdfcy\xf5\x03`~\x845\xf2\x13Z\xf9\x19\xad\xc8/\xdc\xd2\xfe\n\xed\u007f\x03\xb2߁\xe2\x0f \xfe\t\xd4\u007f\x01\xee\xef\xe6C\xa1\xe7\x9f\xe6\xaaz쿍i\xbe\x9f\xfc\a\xc8t\x13\x1b\x17\xfaMl\x9a\xe0;\x00\xd7_]>@k9PUi\a\x01\xd5`\xc0L\x0f\xc8\f@\x9c\x11\xa8g\x02\xdc̺\xac\x9aE\xab\x99U\x95\x91ٴ\x91ٵ\x11\x99\x03{\xd89\xd5\xf9\xb9\xb4fsk-\xe6\xd1\x1a\xe7\xd5Zϧ\xd5\xcd\xdf\xfc\xd3\xe6\xbb\xf7\x02\x13\a*\xec\x82\x13\a\x81v\xa1\x14daN\xc2\"\x14\xc1/\x9a\x82[\x8c\x93|q\xb2\\\x82\x83\xd2.\x99B\xb5T\nf\xe9\x14d\x99\x14\xe2\xb2)\xd4˥\xe0\x96\xe7a\xaa\x15H\xb3\"\aFV\xa2\x90\x95)DVIg`W\xe5įFf\xab\x93\xc5\x1ad\\\x93\xac\xd7\"\xdd\xda\xcd%\xf7\xb6\xd6\xc1%\xdbu!\xad]\x8f\x94\xf5\xa1\xc3\x06h\x83ߐt\x1bA\xe7\x1b\x03\xe5&\xb0\xa5ݔ\xac6#\xcd\xe6\xa4lA\xc6-\xc9z+\xd2m\x8d\xe5\xd56\x80\xd9\x16\xd6\xc8vhe{\xb4\";pK\xbb#\xb4\xdf\t\xc8v\x06\x8a]\x80\xb8+P\xef\x06\xb8\xdd\xf5\x82\xba\xf6Ц\xcb\xee\xa9˛\xafk{\x91\xb27t\xd8\am\xf0\xfb\x92n?\xe8|\u007f\xa0<\x00\xb6\xb4\a\x92\xd5A\xa49\x98\x94C\xc8x(Y\x1fF\xbañ\xbc\xea\x04\x8c\x815\x92\xa1\x95\x1c\xadH\x8b[\xda#\xa0\xbd\x052\a\x14]@\xf4@]\x00\xael.\xa8\xaf\xa7j\x9a\xbe\x1e\x1b\x9a\xe5zo\xa2\x9b\x94\x1a:\x1c\x896\xf8\xa3H'\xd0y\x04\xca\x1e\xd8\xd2\x1eMV\xbd\xa49\x86\x94>2\x1eK\xd6Ǒ\xeex,\xafN\x00̉\xb0FNB+'\xa3\x159\x85[\xdaS\xa1\xfdi@v:P\x9c\x01\xc43\x81\xfa,\xc0\x9d\xdd\\P\xab眦i\xf5\xd8s\x9b\xe5z\xdf\xe2\x1e\xcdK\xee.R\xee\x86\x0e\xf7\xa0\r\xfe^\xd2\xdd\a\x9d\xdf\x0f\x94\x0f\xc0\x96\xf6A\xb2z\x884\x0f\x93\xf2\b\x19\x1f%\xeb\xc7H\xf78\x96WO\x00\xe6IX#O\xa1\x95\xa7ъ<\xc3-\xed\xb3\xd0~\b\x90\r\x05\x8aa@\x1c\x0e\xd4\xcf\x01n\xc4\xc4\x0e\xdf5\xb2\xb9\xaa.;\xaa1\xfa\x1f}\x00\x19\xa3.\x8c\xd5&\xf8q\x80\x1b\xaf.\x9f\xa0\xb5\x9c\xa8\xaa\xb4\x93\x80j2`\xa6\x002\x15\x88Ӏ\xfay\xc0\xbd\xa0˪\x17\xb5\x9a\xff\xa92\xf2\x926\xf2\xb26\"\xaf`\x0f\xfb\xaa:\xff\x9a\xd6\xecu\xad\xc5\x1bZ\xe3\x9bZ뷴\xba\xb7\x9b\xea;\xdfi\x16\xf8N\xfbns\xcdz/\xe4=Rއ\x0e\x1f\xa0\r\xfeC\xd2}\x04\x9d\u007f\f\x94\x9f\xc0\x96\xf6S\xb2\xfa\x8c4\x9f\x93\xf2\x05\x19\xbf$\xeb\xafH\xf75\x96W\xdf\x00\xe6[X#ߡ\x95\xefъ\xfc\xc0-\xed\x8f\xd0\xfe' \xfb\x19(~\x01\xe2\xaf@\xfd\x1b\xe0~\aZ\u007f`a\xcb\xfe\xd9|\xc4\xe3>\xc9_)\xc8ߜ\x84\u007f(\x82\xff7\x05\xf7\x1f'\xf9t\x93\xc0\xb2\xdf$\fJۑB\xd5?\x053 \x05\x19\x98B\x1c\x94B=8\x057=\x0fS\xcd@\x9a\x19902\x13\x85\xccL!2\vC\xb0\xb3r\xe2g#\xb3\xd9\xc9b\x0e2\xceI\xd6s\x91n\xeeI\xcd\xc5\xf6uΣm_\xa7\x9dW\x8f\xa3\xf7P\xe6KA\xe6\xe7$,@\x11\xfc\x82)\xb8\x858\xc9\x17&\xcbE8(\xed\xa2)T\x8b\xa5`\x16OA\x96H!.\x99B\xbdT\nni\x1e\xa6Z\x864\xcbr`d9\nY\x9eBd\x85t\x06vEN\xfcJd\xb62Y\xacB\xc6U\xc9z5ҭN\xb6\xd6\xe0\x01Zv\xcdI\x83\x19\xecZ\xed$k\xa7aX'\xa9\xe0\xd7m'\xb7^\x1a\xe6\xeb\xa7Pn\x90f\xa5ݰ\x9d\xaa\x8d\xda\xc9l\xdcN\xb2I;\xc5M۩ެ\x9d\xdc\xe6\xe9p\xd5\x16)\x98-\xd3\xcc\xc8VI\xc9\xd6I\x89l\xd3>!\xbbm\x1a\xfa\xedRȶO\xa1\xd8!\x85\xb8c\n\xf5N)\xb8\x9d\xf5You\uf88fG\xf3\x9bծ\xea\xf5W\xad\xddR\x90\xdd9\t{P\x04\xbfg\nn/N\xf2\xbd\xc9r\x1f\x0eJ\xbbo\n\xd5~)\x98\xfdS\x90\x03R\x88\a\xa6P\x1f\x94\x82;\x98\x87\xa9\x0e!͡\x1c\x189\x8cB\x0e\xa7\x10\xe9Lg`\r'>#\xb3\x9c,Zd<\x82\xac-\xe9ܤ\xe6\x03\xaaՅK\xb6\x1e\xd2ڂ\x94\x12:Th\x83\x0f\xa4\xeb\x86\xcek\xa0<\x12\xb6\xb4G\x91\x95\x90&\x92\xd2Cƣɺ\x97t\xc7`y\xd5\a\x98ca\x8d\x1c\x87V\x8eG+r\x02\xb7\xb4'B\xfb\x93\x80\xecd\xa08\x05\x88\xa7\x02\xf5i\x80;\x1d/\xe3V\xf7\x19x:\xf5oV\xe1倿Z\xd5Nrv\x1a\x86s\x92\n\xfe\xdcvr\xe7\xa5a~~\n\xe5\x05iV\xda\v۩\xba\xa8\x9d\xcc\xc5\xed$\x97\xb4S\xbc\xb4\x9d\xea\xcb\xda\xc9]\x9e\x0eW]\x91\x82\xb92͌\\\x95\x94\\\x9d\x94\xc85\xed\x13\xb2צ\xa1\xbf.\x85\xec\xfa\x14\x8a\x1bR\x887\xa6Pߔ\x82\xbb\x19\x1f^\xad[\xf8x\xd8[魽-\x05\xb9\x9d\x93p\aE\xf0w\xa6\xe0\xee\xe2$\xbf\x9b,\xefᠴ\xf7\xa6Pݗ\x82\xb9?\x05y \x85\xf8`\n\xf5C)\xb8\x87y\x98\xea\x11\xd2<ʁ\x91\xc7(\xe4q\n\x91'\xd2\x19\xd8'9\xf1O\x91\xd9\xd3d\xf1\f\x19\x9f%\xeb!\xa4\x1b\xaa/\xe3\xeeaz\xc9\xddv\xb8J\xfd\xe3X\xa4\x8c\x80\x0e#\xd1\x06?\x8at\xa3\xa1\xf31@9\x16\xb6\xb4\xe3\xc8jJ\xc1|\x9c\x82|\x92B\xfc4\x85\xfa\xb3\x14\xdc\xe7Y\x9f\xfc\xd6\x1c\x93\xf5\xe5Ҳs\xaa\xd7\xfbGs\xa5 ss\x12\xe6\xa1\b~\xde\x14\xdc|\x9c\xe4\xf3\x93\xe5\x02\x1c\x94v\xc1\x14\xaa\x85R0\v\xa7 \x8b\xa4\x10\x17M\xa1^,\x05\xb78\x0fS-A\x9a%90\xb2\x14\x85,M!\xb2L:\x03\xbb,'~92[\x9e,V \xe3\x8ad\xbd\x12\xe9V\u058b\xed\xeb^E۾n\xbb\xaa\x1eG\xef-\xad\x96\x82\xac\xceIX\x83\"\xf85Spkq\x92\xafM\x96\xebpP\xdauS\xa8\xd6K\xc1\xac\x9f\x82l\x90B\xdc0\x85z\xa3\x14\xdc\xc6\x1e\xf6TzkOKAN\xe7$\x9cA\x11\xfc\x99)\xb8\xb38\xc9\xcf&\xcbs8(\xed\xb9)T\xe7\xa5`\xceOA.H!^\x98B}Q\n\xeeb\x1e\xa6\xba\x844\x97r`\xe42\n\xb9\x9cB\xe4\x8at\x06\xf6JN\xfcUdv5Y\\C\xc6k\xc9\xfa:\xd2]\x8f\x8b\xed\xba\x01m\x97\xbd\x11\xc7i\xbe\x8aߔ\x82\xdc\xccI\xb8\x85\"\xf8[Sp\xb7q\x92\xdfN\x96wpP\xda;S\xa8\xeeJ\xc1ܝ\x82ܓB\xbc7\x85\xfa\xbe\x14\xdc\xfd7P\xce\x03[\xday\xc9j>\xd2\xccO\xca\x02d\\\x90\xac\x17\"\xdd\xc2X^-\x02\x98Ea\x8d,\x86V\x16G+\xb2\x04\xb7\xb4KB\xfb\xa5\x80li\xa0X\x06\x88\xcb\x02\xf5r\x80[~JGֹ\u0094\xfeY\xa7]qʀ\xa6ڕ\x00YY]XE\x9b\xe0W\x05\xdcj\xea\xf2յ\x96k\xa8*\xed\x9a@\xb5\x16`\xd6\x06d\x1d \xae\v\xd4\xeb\x01n}]Vm\xa0\xd5l\xa8\xca\xc8F\xda\xc8\xc6ڈl\x82=\xec\xa6\xea\xfcfZ\xb3͵\x16[h\x8d[j\xad\xb7\xd2\xea\xb6\xd6\xda\xdaF\x17\xb4\xec\xb6S\x06*\xecv\xa4l\x0f\x1dv@\x1b\xfc\x8e\xa4\xdb\t:\xdf\x19(w\x81-\xed\xaed\xb5\x1biv'e\x0f2\xeeI\xd6{\x91no,\xaf\xf6\x01̾\xb0F\xf6C+\xfb\xa3\x159\x80[\xda\x03\xa1\xfdA@v0P\x1c\x02\xc4C\x81\xfa0\xc0\x1d\xde\\P_gg\xd3\xf4uZ\xd3,\xd7;c\x19)9th\xa1\r\xfe\b\xd2Y\xe8\xdc\x01e\x17li=Y\x15\xa4)I\xa9\xc8\x18Ⱥ\x9bt5\x96WG\x02\xe6(X#\x82V\"Z\x91\x1eni\x8f\x86\xf6\xbd@v\fP\xf4\x01\xf1X\xa0>\x0ep\xc7\x03\xad\x13\xb0\xb0eO\x9c2\b\xb4'\xa5 's\x12N\xa1\b\xfe\xd4\x14\xdci\x9c䧓\xe5\x19\x1c\x94\xf6\xcc\x14\xaa\xb3R0g\xa7 \xe7\xa4\x10\xcfM\xa1>/\x05w>\x0fS]@\x9a\v90r\x11\x85\\L!rI:\x03{)'\xfe22\xbb\x9c,\xae \xe3\x95d}\x15\xe9\xaen\x9e\xbdV\xf75\xcd%7\xbf\xa7]\xdbH\xfd\xc5\xed:R\xae\x87\x0e7\xa0\r\xfeF\xd2\xdd\x04\x9d\xdf\f\x94\xb7\xc0\x96\xf6V\xb2\xba\x8d4\xb7\x93r\a\x19\xef$\xeb\xbbHw7\x96W\xf7\x00\xe6^X#\xf7\xa1\x95\xfbъ<\xc0-\xed\x83\xd0\xfe! {\x18(\x1e\x01\xe2\xa3@\xfd\x18\xe0\x1eo>\x14ZO\xe8U\xd9'\xd5X\xfb\x14 O\xab\v\xcfh\x13\xfc\xb3\x80\x1b\xa2.\x1f\xaa\xb5\x1c\xa6\xaa\xb4Á\xea9\xc0\x8c\x00d$\x10G\x01\xf5h\xc0\x8d\xd1e\xd5X\xadf\x9c*#㵑\tڈL\xc4\x1ev\x92:?Yk6Ek1Uk\x9c\xa6\xb5~^\xab{A_r\xad\xee\x17\xf5Iѿ\xf1\xa5\xcf&\xfe\xc6W\n\xf22'\xe1\x15\x8a\xe0_M\xc1\xbd\xc6I\xfe:Y\xbe\xc1Ai\xdfL\xa1z+\x05\xf3v\n\xf2N\n\xf1\xdd\x14\xea\xf7Rp\xef\xf30\xd5\a\xa4\xf9\x90\x03#\x1fQ\xc8\xc7\x14\"\x9f\xa43\xb0\x9fr\xe2?#\xb3\xcf\xc9\xe2\v2~I\xd6_\x91\xeek\xfd\xc0h}\x83K\xb6\xdfBZ\xfb\x1d)\xdfC\x87\x1f\xd0\x06\xff#\xe9~\x82\xce\u007f\x06\xca_`K\xfb+Y\xfdF\x9a\xdfI\xf9\x83\x8c\u007f\x92\xf5_\xa4\xfb\x1b˫\u007f\x00\xf3/\xac\x91\xff\xd0\xcatS\xb5\x15\xe9\a\x06\xdb1U\xb5\xef\x0fd\x03\x80b \x10\a\x01\xf5`\xc0M?\xb5#\xeb\x9eaj\xff\xac\xdb\xce\xd8\x18\xfd\xd3^\x80̬.̢M\xf0\xb3\x02n6u\xf9\xecZ\xcb9T\x95vN\xa0\x9a\v0s\x032\x0f\x10\xe7\x05\xea\xf9\x007\xbf.\xab\x16\xd0j\x16Ted!mdamD\x16\xc1\x1evQu~1\xad\xd9\xe2Z\x8b%\xb4\xc6%\xb5\xd6KiuK7\xb5\xb7s\x99fAo\xa7]\xb6\xb9f\xbd\xab\xb4\x1c)\xcbC\x87\x15\xd0\x06\xbf\"\xe9V\x82\xceW\x06\xcaU`K\xbb*Y\xadF\x9a\xd5IY\x83\x8ck\x92\xf5Z\xa4[\x1b˫u\x00\xb3.\xac\x91\xf5\xd0\xca\xfahE6\xe0\x96vCh\xbf\x11\x90m\f\x14\x9b\x00qS\xa0\xde\fp\x9b\x03\xad-\xb0\xb0e\xb7\x9c:\b\xb4[\xa5 [s\x12\xb6\xa1\b~\xdb\x14\xdcv\x9c\xe4ۓ\xe5\x0e\x1c\x94v\xc7\x14\xaa\x9dR0;\xa7 \xbb\xa4\x10wM\xa1\xde-\x05\xb7;\x0fS\xedA\x9a=90\xb2\x17\x85\xecM!\xb2O:\x03\xbb/'~?2۟,\x0e \xe3\x81d}\x10\xe9\x0e\xd6\xe7\xb0u\x88>\xdd-{h#\xf5\xee\xd0a\xa4\x1c\x0e\x1d:\xd1\x06oH\x97A\xe79P\xb6`K{\x04YY\xd28R\xba\xc8\xe8ɺ ]\x89\xe5U\x05\x98\x00k\xa4\x1b\xad\xd4hE\x8e\xe4\x96\xf6(h/@\x16\x81\xa2\a\x88G\x03u/\xe0\x8ei.\xa8\xaf\xbbO\xdfP\xdd\xf6X}\v6o\xa3\xe3H9\x1e:\x9c\x806\xf8\x13Iw\x12t~2P\x9e\x02[\xdaS\xc9\xea4ҜN\xca\x19d<\x93\xac\xcf\"\xdd\xd9X^\x9d\x03\x98sa\x8d\x9c\x87V\xceG+r\x01\xb7\xb4\x17B\xfb\x8b\x80\xecb\xa0\xb8\x04\x88\x97\x02\xf5e\x80\xbb\xbc\xf9P蹢\xb9\xaa\x1e{ec\x9aoPW\x01r\xb5\xbap\x8d6\xc1_\v\xb8\xeb\xd4\xe5\xd7k-oPU\xda\x1b\x81\xea&\xc0\xdc\f\xc8-@\xbc\x15\xa8o\x03\xdc\xed\xba\xac\xbaC\xab\xb9S\x95\x91\xbb\xb4\x91\xbb\xb5\x11\xb9\a{\xd8{\xd5\xf9\xfb\xb4f\xf7k-\x1e\xd0\x1a\x1f\xd4Z?\xa4\xd5=\xac\xef\xa1V\xf7#\xfa*k~\xec<\xaa/O\xfd9\xf4X\n\xf28'\xe1\t\x8a\xe0\x9fL\xc1=\xc5I\xfe4Y>\xc3Ai\x9fM\xa1\x1a\x92\x82\x19\x9a\x82\fK!\x0eO\xa1~.\x057\x82\x87\xa9F\x92f\x14\aFFS\xc8\x18\n\x91\xb1\xe9\f\xec8N\xfcx2\x9b@\x16\x13\xc98\x89\xac'\x93n\x8a~\x02\xb6\xa6\xe2\x92\xed4Hk\x9f'\xe5\x05\xe8\xf0\"\xda\xe0\xffG\xba\x97\xa0\xf3\x97\x81\xf2\x15\xd8ҾJV\xaf\x91\xe6uR\xde \xe3\x9bd\xfd\x16\xe9\xde\xc6\xf2\xea\x1d\xc0\xbc\vk\xe4=\xb4\xf2>Z\x91\x0f\xb8\xa5\xfd\x10\xda\u007f\x04d\x1f\x03\xc5'@\xfc\x14\xa8?\x03\xdc\xe7zA]_h\xd3e\xbf\xd4\xe5\xcd\x17\xbc\xafH\xf9\x1a:|\x836\xf8oI\xf7\x1dt\xfe=P\xfe\x00[\xda\x1f\xc9\xea'\xd2\xfcL\xca/d\xfc\x95\xac\u007f#\xdd\xefX^\xfd\x01\x98?a\x8d\xfc\x85V\xfeF+\xf2\x0f\xb7\xb4\xffB\xfb\xff\x80l\xbai\x8a\xa2\x1f\x10;\x80\xba?\xe0\x06Lk>\x14z\x066M_\x8f\x1d4m\xa0\xc2\x0e&ez\xe80\x03\xda\xe0g$\xddL\xd0\xf9\xcc@9\vlig%\xab\xd9H3;)s\x90qN\xb2\x9e\x8btscy5\x0f`\xe6\x8552\x1fZ\x99\x1f\xad\xc8\x02\xdc\xd2.\b\xed\x17\x02\xb2\x85\x81b\x11 .\nԋ\x01n\xf1\xe6\x82Z=K4M\xab\xc7.\xd9,\xd7;+K\x91\xb24tX\x06m\xf0˒n9\xe8|y\xa0\\\x01\xb6\xb4+\x92\xd5J\xa4Y\x99\x94Uȸ*Y\xafF\xbaձ\xbcZ\x030k\xc2\x1aY\v\xad\xac\x8dVd\x1dniׅ\xf6\xeb\x01\xd9\xfa@\xb1\x01\x107\x04\xea\x8d\x00\xb7\xb1>C]\x9b\xe8\xd5u\xd9M\xf5\xf1h^r\x9b\x91\xb29t\xd8\x02m\xf0[\x92n+\xe8|k\xa0\xdc\x06\xb6\xb4ے\xd5v\xa4ٞ\x94\x1dȸ#Y\xefD\xba\x9d\xb1\xbc\xda\x050\xbb\xc2\x1a\xd9\r\xad\xec\x8eVd\x0fni\xf7\x84\xf6{\x01\xd9\xde@\xb1\x0f\x10\xf7\x05\xea\xfd\x00\xb7\xff\xb4\x8e\xac\xeb\x80檺쁍\xd1\xff\xff\x05\xc8\xc1\xea\xc2!\xda\x04\u007f(\xe0\x0eS\x97\x1f\xae\xb5\xecTUZ\x03T\x19`r@Z@<\x02\xa8-\xe0\x9c.\xab\xba\xb4\x1a\xaf\xcaH\xa1\x8d\x94ڈT\xd8\xc3\x06u\xbe[kVk-\x8e\xd4\x1a\x8f\xd2Z\x8bV\x17\xa7u\x14\x9d=\xd3\xfa\x17\x9d\xf6\xe8i\x03\x9aj{\x019F]\xe8\xd3&\xf8c\x01w\x9c\xba\xfcx\xad\xe5\t\xaaJ{\"P\x9d\x04\x98\x93\x019\x05\x88\xa7\x02\xf5i\x80;]\x97Ugh5g\xaa2r\x966r\xb66\"\xe7`\x0f{\xae:\u007f\x9e\xd6\xec|\xad\xc5\x05Z\xe3\x85Z담\xba\x8b\xb5\xb6.\xd1\x05-{鴁\n{\x19)\x97C\x87+\xd0\x06\u007f%鮂ί\x06\xcak`K{-Y]G\x9a\xebI\xb9\x81\x8c7\x92\xf5M\xa4\xbb\x19˫[\x00s+\xac\x91\xdb\xd0\xca\xedhE\xee\xe0\x96\xf6Nh\u007f\x17\x90\xdd\r\x14\xf7\x00\xf1^\xa0\xbe\x0fp\xf77\x17\xd4\xd7\xf9@\xd3\xf4u\xda\a\x9b\xe5z#\xe4!R\x1e\x86\x0e\x8f\xa0\r\xfeQ\xd2=\x06\x9d?\x0e\x94O\xc0\x96\xf6I\xb2z\x8a4O\x93\xf2\f\x19\x9f%\xeb!\xa4\x1b\x8a\xe5\xd50\xc0\f\x875\xf2\x1cZ\x19\x81Vd$\xb7\xb4\xa3\xa0\xfdh \x1b\x03\x14c\x818\x0e\xa8\xc7\x03n\x02К\x88\x85-;i\xda \xd0NNA\xa6p\x12\xa6R\x04\xff\u007f\x96\xce:\xcem\xa3\tÕ\x0f\xca\xcc\xec6\xcc\r33'M\xdaP\xd3\xe4\xd6vv-K\xb2\x9a\x91s\xbd\xb6)\xf3Wfffff\fC\x1bfN\xcapw\xcd\xe9\xdbyG\u007f\xe4yf\xde\xf5j\xb5\x96\xec\xf3\xb9\xbf\xfen^R\x98\xf92\x92] \xf6\x16ʀ\xa7\x17%\x85\xbf8)Ԓ\xa4\xa0\xa5I\x11-K\x8apyR\x98\x9f\xe40\xfe\xcfb\xb5B\x06\x14\xad\x94\x80VI@\xb4:9\x03\xbdFFܵ\xe2\xcc:qa\xbd8\xda \x0e7\x8a\xcd&{\xf5r\xc5\xcdv\xcb\xf6s\xce\x16\x1b\xf2瞭bچ8؎6pw\x88\xcdN\xc4\xd9]\x90\xb7\x1b\xa9\xa7\xf7\x88\xfd_\xc4\xeaW1\xfd&\x8e~\x17\x87\u007f\x88͟\x98\xee\xff\x05\xa9\xbf\x91*\xfa\a-\xfd\x8b\x96\xa8V\x96\xd4u\x88\xddz(\xf3\x1fT\xd8\vE\rP\x18Cf\x9f\xf9\xa9BΙow\xa5S\xf3m\xa2u\x19D\xe5\x9c\x05\x15\xdc\x04n%d\xf6\xe5,\xbb\x1f\xd3۟#O\x1f\x00\xf9\aB\xea \x88\x0e\x86\xa2C\xa0\xf0P\xc8\x1c\xc6\xd3\xfcÙ\xea\b\x8e\x14\x1d\xc9\r\x1d\xc5\r\xd1\xd1XC\x1fÙ{,3s\x1c\xb3p<3:\x81\x19\x9e\xc84'ه\xd6\xe4\x8a'ϯ`\xe9S\xe6W\xc2\xfaԤ\xa0\xb4\x8c\x04\xa7I\x10\xb8\xa7'\x85i$#\xd9\xc6b\xaf\x89\fx\xbaiR\xf8͒B5O\nj\x91\x14Qˤ\b[%\x85i-\x87\xf1ۈU[\x19P\xd4N\x02:C\x02\xa2\xf6\xc9\x19\xe8\x0e2\xe2v\x14g:\x89\v\x9d\xc5Q\x17q\xd8Ul\xba\xd9-\xd7\xe4\xbac˺\aB\xad{\x8a\xa9\x17\xe2\xa07\xda\xc0\xed#6}\x11g\xfbA^\u007f\xa4\x9e\x1e \xf6\a\x8a\xd5 1\r\x16GC\xc4\xe1P\xb1\x19\x86\xe9\xfepH\x8d@\xaah$Z\x1a\x85\x96h\xb4,\xa9\xc7 v\xc7B\x99qPa<\x14\x9d\t\x85\x13 3\xd1\xderų쮊\xfal\x9b\xf0_\x8e\x82h2g\xc1\x14n\x02w*d\xa6q\x96=\x87\xe9M\xe7\xc8\xd3\xe7B\xfe\fḦ́\xa8\n\x8a\x14\x14f \x93\xe5i~\x8e\xa9fq\xa4HsC\x86\x1b\xa2<\xd6\xd0.gn\x81\x99\xf1\x98\x05\x9f\x19\x05̰\xc84\xa1eu\xd5yvBu\x95\x9em\xf7\xcc_\x84\x90\x98\"\xc4A\tm\xe0\xce\x11\x9bj\xc4\xd9\xf3!\xaf\x06\xa9\xa7/\x10\xfb\x17\x8a\xd5Eb\x9a+\x8e.\x16\x87\x97\x88ͥ\x98\xee_\x06\xa9ˑ*\xba\x02-]\x89\x96\xe8*YR_\x8dؽ\x06\xca\\\v\x15\xae\x83\xa2\xeb\xa1\xf0\u007f\x90\xb9\x01\xca݈\x899}\x93\xbd=\xf1E\xc8\xcdIA\xb7\xc8Hp\xab\x04\x81{[R\x98\xdbe${\x87ػS\x06<}WR\xf8w'\x85\xba')\xe8ޤ\x88\xeeK\x8a\xf0\xfe\xa40\x0f\xc8a\xfc\a\xc5\xea!\x19P\xf4\xb0\x04\xf4\x88\x04D\x8f&g\xa0\x1f\x93\x11\xf7qq\xe6\tq\xe1Iq\xf4\x948|Zl\x9e\xe1k\x98{\x96/wN?gC\xfe\"\xe4y1\xbd\x808x\x11m\xe0\xbe$6/#ξ\x02y\xaf\"\xf5\xf4kb\xffu\xb1zCLo\x8a\xa3\xb7\xc4\xe1\xdbb\xf3\x0e\xa6\xfb\xefB\xea=\xa4\x8a\xdeGK\x1f\xa0%\xfaP\x96\xd4\x1f!v?\x862\x9f@\x85O\xa1\xe83(\xfc\x1c2_\xf0\x9bB\xf1K~A\x15\xf5W\xfc\x12\xb4/\xa3\xaf\xc5\xf4\r\xe2\xe0[\xb4\x81\xfb\x9d\xd8|\x8f8\xfb\x03\xe4\xfd\x88\xd4\xd3\xf3\xc4\xfe|\xb1Z \xa6\x85\xe2h\x918\\,6K0\xdd_\n\xa9eH\x15-GK?\xa1%\xfaY\x96\xd4+\x10\xbb+\xa1\xcc*\xa8\xb0\x1a\x8a\xd6@\xe1ZȬ\xb3o\n\xa5\xf5vW%\xbd\xc1&\xf6\x17\x9e\x8d\x10m\xe2,\xd8\xccM\xe0n\x81\xccVβۘ\xdev\x8e<\xbd\x03\xf2wBj\x17D\xbb\xa1h\x0f\x14\xfe\x02\x99_y\x9a\xff\x1bS\xfdΑ\xa2?\xb8\xa1?\xb9!\xfa\vk\xe8\xbf9s\xffaf\xfee\x16j\x99Q\x1d3\xacg\x9a\xff\xf85\x94+\xee\xe5\xbb\xcc\xfe\xd8i\xe0ۓ\u007f\x0e\xc5IA\xfb,\xc0H\xe0,@\x10\xb8\xa9\xa40e2\x92-\x17{\x152\xe0\xe9ʤ\xf0\xf7M\n\xb5_R\xd0\xfeI\x11\x1d\x90\x14\xe1\x81Ia\x0e\x92\xc3\xf8\a\x8b\xd5!2\xa0\xe8P\t\xe80\t\x88\x0eO\xce@\x1f!#\xee\x91\xe2\xccQ\xe2\xc2\xd1\xe2\xe8\x18qx\xac\xd8\x1c\xb7\xc0\xbe\x03\xe6\x8e_\xc0[\xd6' \xd4\xfaD1\x9d\x8488\x19m\xe0\x9e\"6\xa7\"Φ!\xef4\xa4\x9e>]\xec7\x12\xab\xc6bj\"\x8e\x9a\x8a\xc3fb\xd3\x1c\xd3\xfd\x16\x90j\x89TQ+\xb4\xd4\x1a-Q\x1bYR\xb7E춃2g@\x85\xf6P\xd4\x01\n;B\xa6\x13o(ߙ\x9b\xbc\xee\xc2\xd3\xed\xefq]\xc5\xd4\rq\xd0\x1dm\xe0\xf6\x10\x9b\x9e\x88\xb3\xbd \xaf7RO\xf7\x11\xfb}Ū\x9f\x98\xfa\x8b\xa3\x01\xe2p\xa0\xd8\f\xc2t\u007f0\xa4\x86 U4\x14-\rCK4\\\x96\xd4#\x10\xbb#\xa1\xcc(\xa80\x1a\x8a\xc6@\xe1XȌ\xb3\x1b\xaa)\x8d\xb7MMI\x9fi\xa7\xf3\x17!\x13\xc44\x11qp\x16\xda\xc0=[l&!\xceN\x86\xbc)H==U\xecO\x13\xabs\xc44]\x1c\x9d+\x0eg\x88\xcdLL\xf7\xab \xa5\x90*ʠ\xa5,Z\xa2\x9c,\xa9g!v5\x941P!\x0fE.\x14\x16 \xe3\xd9\r\xe5J\xbemr%\x1d\xd8\xe9\xfcEHQL!\xe2\xe0<\xb4\x81;[l\bq6\x82\xbc\x12RO\xcf\x11\xfb\xd5bu\xbe\x98j\xc4\xd1\x05\xe2\xf0B\xb1\xb9\b\xd3\xfd\xb9\x90\xba\x18\xa9\xa2K\xd0ҥh\x89.\x93%\xf5\xe5\x88\xdd+\xa0̕P\xe1*(\xba\x1a\n\xaf\x81̵|\x85\xf2\xd7\xf1\xee\xf2\xfaz~>\xec-\xf7?1݀8\xb8\x11m\xe0\xde$67#\xce\xde\x02y\xb7\"\xf5\xf4mb\xffv\xb1\xbaCLw\x8a\xa3\xbb\xc4\xe1\xddbs\x0f\xa6\xfb\xf7B\xea>\xa4\x8a\xeeGK\x0f\xa0%zP\x96\xd4\x0f!v\x1f\x862\x8f@\x85G\xa1\xe81(|\x1c2O,H\x15\xf2O\xda]\xe5\xf5S6\xe1\xffi\f\xa2g8\v\x9e\xe5&p\x9f\x83\xcc\xf3\x9ce_`z/r\xe4\xe9\x97 \xffeH\xbd\x02ѫP\xf4\x1a\x14\xbe\x0e\x997x\x9a\xff&S\xbdő\xa2\xb7\xb9\xa1w\xb8!z\x17k\xe8\xf78s\xdfgf>`\x16>dF\x1f1Ï\x99\xe6\x93\x05\xa9\xa8\xea\xd3\x05eQ\x95\xfelA\xb9\xa5\xfe\x1c\xa2/8\v\xbe\xe4&p\xbf\x82\xccלe\xbfaz\xdfr\xe4\xe9\xef \xff{H\xfd\x00яP4\x0f\n\xe7Cf\x01O\xf3\x172\xd5\"\x8e\x14-憖pC\xb4\x14k\xe8e\x9c\xb9˙\x99\x9f\x98\x85\x9f\x99\xd1\nf\xb8\x92iV1s\xabyBN\xafYP\xc1\xd2kŴ\x0eq\xb0\x1em\xe0n\x10\x9b\x8d\x88\xb3\x9b o3ROo\x11\xfb[\xc5j\x9b\x98\xb6\x8b\xa3\x1d\xe2p\xa7\xd8\xec\xc2t\u007f7\xa4\xf6 U\xf4\vZ\xfa\x15-\xd1o\xb2\xa4\xfe\x1d\xb1\xfb\a\x94\xf9\x13*\xfc\x05E\u007fC\xe1?\x90\xf9\xd7n\xa8\xa6\xaa\xd665U\xba\xceN\xe7/B\xea\xc5\xf4\x1f\xe2`/\xda\xc0m\x10\x9b\x18qv\x9f\x85,\xcfYȩ\xa7Sb\xbfL\xac\xca\xc5T!\x8e*\xc5\xe1\xbeb\xb3\x1f\xa6\xfb\xfbC\xea\x00\xa4\x8a\x0eDK\a\xa1%:\x18\x0e\xf4!\x88\xddC\xa1\xccaP\xe1p(:\x02\n\x8f\x84\xccQP\xeehL\xcc\xe9c\x16V\xc2\xfaؤ\xa0\xe3d$8^\x82\xc0=!)̉2\x92=I\xec\x9d,\x03\x9e>%)\xfcS\x93B\xa5\x93\x82NK\x8a\xe8\xf4\xa4\b\x1b%\x85i,\x87\xf1\x9b\x88US\x19P\xd4L\x02j.\x01Q\x8b\xe4\ftK\x19q[\x893\xadŅ6⨭8l'6g,,\x8br\xc5\xf6v\xcb\xf6sN\a\x1b\xf2瞎b\xea\x848\xe8\x8c6p\xbb\x88MW\xc4\xd9n\x90\xd7\x1d\xa9\xa7{\x88\xfd\x9eb\xd5KL\xbd\xc5Q\x1fq\xd8Wl\xfaa\xba\xdf\x1fR\x03\x90*\x1a\x88\x96\x06\xa1%\x1a,K\xea!\x88ݡPf\x18T\x18\x0eE#\xa0p$dF-LE\xb9Ѽ+=\x86\x13\xad\xc7B4\x8e\xb3`<7\x81{&d&p\x96\x9d\xc8\xf4\xce\xe2\xc8\xd3gC\xfe$HM\x86h\n\x14M\x85\xc2i\x909\x87\xa7\xf9ә\xea\\\x8e\x14\xcd\xe0\x86frCT\x855\xb4\xe2\xcc\xcd03Yf!njf1C\xcd4\x86o\xb9\\1\xcf\x17\x85\xff.\x13_M\xfc]\xa6\xa4 OF\x02_\x82\xc0\r\x92\xc2\x14e$\x1b\x8a\xbd\xf3d\xc0ӳ\x93§\xa4PQRP))\xa29I\x11V'\x859_\x0e\xe3\u05c8\xd5\x052\xa0\xe8B\t\xe8\"\t\x88\xe6&g\xa0/\x96\x11\xf7\x12q\xe6Rq\xe12qt\xb98\xbcBl\xae\xb4[\xae\xc9]\x85-\xeb\xab\x11j}\x8d\x98\xaeE\x1c\\\x876p\xaf\x17\x9b\xff!\xce\xde\x00y7\"\xf5\xf4Mb\xfff\xb1\xbaEL\xb7\x8a\xa3\xdb\xc4\xe1\xedbs\a\xa6\xfbwB\xea.\xa4\x8a\xeeFK\xf7\xa0%\xbaW\x96\xd4\xf7!v\xef\x872\x0f@\x85\a\xa1\xe8!(|\x182\x8f\xd8[\xae\xf8\xa8\xddUQ?f\x13\xfesL\x10=\xc1Y\xf0$7\x81\xfb\x14d\x9e\xe6,\xfb\f\xd3{\x96#O?\a\xf9\xcfC\xea\x05\x88^\x84\xa2\x97\xa0\xf0eȼ\xc2\xd3\xfcW\x99\xea5\x8e\x14\xbd\xce\r\xbd\xc1\rћXC\xbfř\xfb63\xf3\x0e\xb3\xf0.3z\x8f\x19\xbe\xcf4\x1fXVW}h'TW\xe9\x8f\xec\x9e\xf9\x8b\x90\x8f\xc5\xf4\t\xe2\xe0S\xb4\x81\xfb\x99\xd8|\x8e8\xfb\x05\xe4}\x89\xd4\xd3_\x89\xfd\xaf\xc5\xea\x1b1}+\x8e\xbe\x13\x87ߋ\xcd\x0f\x98\xee\xff\b\xa9yH\x15\xcdGK\v\xd0\x12-\x94%\xf5\"\xc4\xeeb(\xb3\x04*,\x85\xa2eP\xb8\x1c2?A\xb9\x9f11\xa7W\xd8\xdb\x13_\x84\xacL\nZ%#\xc1j\t\x02wMR\x98\xb52\x92]'\xf6\xd6ˀ\xa77$\x85\xbf1)Ԧ\xa4\xa0\xcdI\x11mI\x8apkR\x98mr\x18\u007f\xbbX\xed\x90\x01E;%\xa0]\x12\x10\xedN\xce@\xef\x91\x11\xf7\x17q\xe6Wq\xe17q\xf4\xbb8\xfcCl\xfe\xe4k\x98\xfb\x8b/wN\xffmC\xfe\"\xe4\x1f1\xfd\x8b8\xa8E\x1b\xb8ubS\x8f8\xfb\x1f\xe4\xedE\xea\xe9\x06\xb1\x1f\x8b\xd5>\x8b`r\xc4QJ\x1c\x96\x89M\xf9\"\x9e\xeeW@\xaa\x12\xa9\xa2}\xd1\xd2~h\x89\xf6\x87\x03}\x00b\xf7@(s\x10T8\x18\x8a\x0e\x81\xc2C!s\xd8\"\xfb\xa6P<\xdc65E}\x84\x9d\xce_\x84\x1c)\xa6\xa3\x10\aG\xa3\r\xdcc\xc4\xe6X\xc4\xd9\xe3 \xefx\xa4\x9e>A\xec\x9f(V'\x89\xe9dqt\x8a83)\xfc\tI\xa1&&\x05\x9d\x95\x14\xd1\xd9I\x11NJ\n3Y\x0e\xe3O\x11\xab\xa92\xa0h\x9a\x04t\x8e\x04Dӓ3\xd0\xe7ʈ;C\x9c\x99).T\x89#%\x0e3b\x93\xb5[\xae\xce\xe5\xb0e=\v\xa1\xd6ZL\x06q\x90G\x1b\xb8\xae\xd8\x14\x10g=\xc8\xf3\x91z:\x10\xfbE\xb1\n\xc5t\x9e8\x9a-\x0eIl\"L\xf7K\x90\x9a\x83TQ5Z:\x1f-Q\x8d,\xa9/@\xec^\be.\x82\ns\xa1\xe8b(\xbc\x042\x97\xf2\x86\xf2\x97q\x93ח\xf3t\xfb{\xdc\x15b\xba\x12qp\x15\xda\xc0\xbdZl\xaeA\x9c\xbd\x16\xf2\xaeC\xea\xe9\xeb\xc5\xfe\xff\xc4\xea\x061\xdd(\x8en\x12\x877\x8b\xcd-\x98\xee\xdf\n\xa9ې*\xba\x1d-݁\x96\xe8NYR߅ؽ\x1b\xca\xdc\x03\x15\ue162\xfb\xa0\xf0~\xc8<\xc0o\n\xa5\a\xf9\x05U\xd2\x0f\xf1Kо\x8c\x1e\x16\xd3#\x88\x83G\xd1\x06\xeecb\xf38\xe2\xec\x13\x90\xf7$RO?%\xf6\x9f\x16\xabg\xc4\xf4\xac8zN\x1c>/6/`\xba\xff\"\xa4^B\xaa\xe8e\xb4\xf4\nZ\xa2WeI\xfd\x1ab\xf7u(\xf3\x06Tx\x13\x8aނ·!\xf3\x8e\xddP\xae\xf4\xaemr%\xfd\x9e\x9d\xce_\x84\xbc/\xa6\x0f\x10\a\x1f\xa2\r\u070f\xc4\xe6c\xc4\xd9O \xefS\xa4\x9e\xfeL\xec\u007f.V_\x88\xe9Kq\xf4\x958\xfcZl\xbe\xc1t\xff[H}\x87T\xd1\xf7h\xe9\a\xb4D?ʒz\x1ebw>\x94Y\x00\x15\x16B\xd1\"(\\\f\x99%|\x85\xf2Kywy\xbd\x8c\x9f\x0f{\xcb-\x17\xd3O\x88\x83\x9f\xd1\x06\xee\n\xb1Y\x898\xbb\n\xf2V#\xf5\xf4\x1a\xb1\xbfV\xac։i\xbd8\xda \x0e7\x8a\xcd&L\xf77Cj\vRE[\xd1\xd26\xb4D\xdbeI\xbd\x03\xb1\xbb\x13\xca\xec\x82\n\xbb\xa1h\x0f\x14\xfe\x02\x99_\xed\xdbv\xfe7\xbb\xab\xbc\xfe\xdd&\xfc\u007f\aA\xf4'g\xc1_\xdc\x04\xeeߐ\xf9\x87\xb3\xec\xbfL\xaf\x96#O\xd7A~=\xa4\xfe\x83h/\x145@a\f\x99}\x16\xdbi\xbe\xc3T\xa9\xc56RT\xc6\r\x95sCT\xc1\nt%g\xee\xbe\xcc\xcc~\xcc\xc2\xfe\xcc\xe8\x00fx \xd3\x1c\xb48\x15V\x1d\xbc\xb8,\xac҇,.\xb7ԇBt\x18g\xc1\xe1\xdc\x04\xee\x11\x909\x92\xb3\xecQL\xefh\x8e<}\f\xe4\x1f\v\xa9\xe3 :\x1e\x8aN\x80\xc2\x13!s\x12O\xf3Of\xaaS8Rt*7\x94\xe6\x86\xe84\xac\xa1O\xe7\xccm\xc4\xcc4f\x16\x9a0\xa3\xa6̰\x19\xd34g\xe6Z\xf0\x84\x9cn\xb9\xb8\x82\xa5[\x89\xa95\xe2\xa0\r\xda\xc0m+6\xed\x10gπ\xbc\xf6H=\xddA\xecw\x14\xabNb\xea,\x8e\xba\x88îb\xd3\r\xd3\xfd\xee\x90\xea\x81TQO\xb4\xd4\v-QoYR\xf7A\xec\xf6\x852\xfd\xa0B\u007f(\x1a\x00\x85\x03!3\xc8n\xa8\xa6j\xb0mj\xaa\xf4\x10;\x9d\xbf\b\x19*\xa6a\x88\x83\xe1h\x03w\x84،D\x9c\x1d\x05y\xa3\x91zz\x8c\xd8\x1f+V\xe3\xc44^\x1c\x9d)\x0e'\x88\xcdDL\xf7ς\xd4\xd9H\x15MBK\x93\xd1\x12M\x91%\xf5T\xc4\xee4(s\x0eT\x98\x0eE\xe7B\xe1\f\xc8̄rU\x98\x98\xd3jq%\xac3IAY\x19\tr\x12\x04\ueb240ZF\xb2F\xec\xe5e\xc0\xd3nR\xf8\x85\xa4P^R\x90\x9f\x14Q\x90\x14a1)L(\x87\xf1\xcf\x13\xab\xd92\xa0\x88$\xa0H\x02\xa2Rr\x06z\x8e\x8c\xb8\xd5\xe2\xcc\xf9\xe2B\x8d8\xba@\x1c^(6\x17٫\x97+ε[\xb6\x9fs.\xb6!\u007f\xee\xb9DL\x97\"\x0e.C\x1b\xb8\x97\x8b\xcd\x15\x88\xb3WB\xdeUH=}\xb5ؿF\xac\xae\x15\xd3u\xe2\xe8zq\xf8?\xb1\xb9\x01\xd3\xfd\x1b!u\x13RE7\xa3\xa5[\xd0\x12\xdd*K\xea\xdb\x10\xbb\xb7C\x99;\xa0\u009dPt\x17\x14\xde\r\x99{\xec\x9bB\xee^ޕ\xbe\x8f\x13\xad\xef\x87\xe8\x01\u0382\a\xb9\t܇ \xf30g\xd9G\x98ޣ\x1cy\xfa1\xc8\u007f\x1cRO@\xf4$\x14=\x05\x85OC\xe6\x19\x9e\xe6?\xcbT\xcfq\xa4\xe8yn\xe8\x05n\x88^\xc4\x1a\xfa%\xceܗ\x99\x99W\x98\x85W\x99\xd1k\xcc\xf0u\xa6y\x83o\xb9\\\xf1M\xbe(\xfc\xf7\x82\xf8j\xe2/\x06%\x05\xbd##\xc1\xbb\x12\x04\xee{Iaޗ\x91\xec\ab\xefC\x19\xf0\xf4GI\xe1\u007f\x9c\x14ꓤ\xa0O\x93\"\xfa,)\xc2ϓ\xc2|!\x87\xf1\xbf\x14\xab\xafd@\xd1\xd7\x12\xd07\x12\x10}\x9b\x9c\x81\xfeNF\xdc\xefř\x1fą\x1f\xc5\xd1\u2c2f\xd8\xf4\xe3k\x98\xebϗ;\xa7\aؐ\xbf\b\x19(\xa6A\x88\x83\xc1h\x03w\x88\xd8\fE\x9c\x1d\x06yÑzz\x84\xd8\x1f)V\xa3\xc44Z\x1c\x8d\x11\x87c\xc5f\x1c\xa6\xfb\xe3!u&RE\x13\xd0\xd2D\xb4Dgɒ\xfal\xc4\xee$(3\x19*L\x81\xa2\xa9P8\r2\xe7\xd8\r\xd5\x14\xa7ۦ\xa6\xa8ϵ\xd3\xf9\x8b\x90\x19b\x9a\x898\xa8B\x1b\xb8Jl2\x88\xb3Y\xc8\xcb!\xf5\xf4,\xb1\xaf\xc5ʈ)/\x8e\\qX\x10\x1b\x0f\xd3}\x1fR\x01REE\xb4\x14\xa2%:O\x96Գ\x11\xbb\x04e\"\xa8P\x82\xa29PX\r\x99\xf3\x97\xa4\xc2R\x8d\xddUI_`\x13\xfb\vυ\x10]\xc4Y0\x97\x9b\xc0\xbd\x182\x97p\x96\xbd\x94\xe9]Ƒ\xa7/\x87\xfc+ u%DWA\xd1\xd5Px\rd\xae\xe5i\xfeuLu=G\x8a\xfe\xc7\r\xdd\xc0\rэXC\xdfę{33s\v\xb3p+3\xba\x8d\x19\xde\xce4w\xf0k(W\xbc\x93\xef2\xfbc\xe7.\xbe=\xf9\xe7\xd0\xddIA\xf7\xc8Hp\xaf\x04\x81{_R\x98\xfbe$\xfb\x80\xd8{P\x06<\xfdPR\xf8\x0f'\x85z$)\xe8Ѥ\x88\x1eK\x8a\xf0\xf1\xa40O\xc8a\xfc'\xc5\xea)\x19P\xf4\xb4\x04\xf4\x8c\x04D\xcf&g\xa0\x9f\x93\x11\xf7yq\xe6\x05q\xe1Eq\xf4\x928|Yl^\xe1w\xc0ܫز~\r\xa1֯\x8b\xe9\r\xc4\xc1\x9bh\x03\xf7-\xb1y\x1bq\xf6\x1d\xc8{\x17\xa9\xa7\xdf\x13\xfb\xef\x8b\xd5\ab\xfaP\x1c}$\x0e?\x16\x9bO0\xdd\xff\x14R\x9f!U\xf49Z\xfa\x02-ї\xb2\xa4\xfe\n\xb1\xfb5\x94\xf9\x06*|\vE\xdfA\xe1\xf7\x90\xf9\x817\x94\xff\x91\x9b\xbc\x9e\xc7\xd3\xed\xefq\xf3Ŵ\x00q\xb0\x10m\xe0.\x12\x9bň\xb3K o)RO/\x13\xfb\xcb\xc5\xea'1\xfd,\x8eV\x88Õb\xb3\n\xd3\xfdՐZ\x83T\xd1Z\xb4\xb4\x0e-\xd1zYRo@\xecn\x842\x9b\xa0\xc2f(\xda\x02\x85[!\xb3\x8d\xdf\x14J\xdb\xf9\x05U\xd2;\xf8%h_F;Ŵ\vq\xb0\x1bm\xe0\xee\x11\x9b_\x10g\u007f\x85\xbcߐz\xfaw\xb1\xff\x87X\xfd)\xa6\xbf\xc4\xd1\xdf\xe2\xf0\x1f\xb1\xf9\x17\xd3\xfdZH\xd5!UT\x8f\x96\xfeCK\xb4W\x96\xd4\r\x88\xdd\x18\xca쳔Up\xa0(\x05\x85e\x90)_j?\xed\x95*l\x93+\xe9ʥ\x15,\xbd\xaf\x98\xf6C\x1c\xec\x8f6p\x0f\x10\x9b\x03\x11g\x0f\x82\xbc\x83\x91z\xfa\x10\xb1\u007f\xa8X\x1d&\xa6\xc3\xc5\xd1\x11\xe2\xf0H\xb19\n\xd3\xfd\xa3!u\fREǢ\xa5\xe3\xd0\x12\x1d/K\xea\x13\x10\xbb'B\x99\x93\xa0\xc2\xc9Pt\n\x14\x9e\n\x99\xb4\xddPM\xfe4\xde]^\x9fn\xa7\xf3\x17!\x8d\xc4\xd4\x18q\xd0\x04m\xe06\x15\x9bf\x88\xb3\xcd!\xaf\x05RO\xb7\x14\xfb\xadĪ\xb5\x98ڈ\xa3\xb6Ⱍ\u061c\x81\xe9~{Hu@\xaa\xa8#Zꄖ\xa8\xb3,\xa9\xbb v\xbbB\x99nP\xa1;\x14\xf5\x80\u009e\x90\xe9\xb54\x15\xe6{\xdb]\xe5u\x1f\x9b\xf0\xff\xe8\x03Q?\u0382\xfe\xdc\x04\xee\x00\xc8\f\xe4,;\x88\xe9\r\xe6\xc8\xd3C \u007f(\xa4\x86A4\x1c\x8aF@\xe1HȌ\xe2i\xfeh\xa6\x1aÑ\xa2\xb1\xdc\xd08n\x88\xc6c\r}&g\xee\x04ff\"\xb3p\x163:\x9b\x19Nb\x9a\xc9KS\xa6j\xca\xd22S\xa5\xa7.-\xb7\xd4\xd3 :\x87\xb3`:7\x81{.dfp\x96\x9d\xc9\xf4\xaa8\xf2\xb4\x82\xfc\f\xa4\xb2\x10\xe5\xa0h\x16\x14j\xc8\x18\x9e\xe6\xe7\x99\xca\xe5HQ\x81\x1b\xf2\xb8!\xf2\xb1\x86\x0e8s\x8b\xccL\xc8,\x9cnjf3Cb\x9a\x88\x99+\U0004471e\xb3\xb4\x82\xa5\xab\xc5t>\xe2\xa0\x06m\xe0^ 6\x17\"\xce^\x04ys\x91z\xfab\xb1\u007f\x89X]*\xa6\xcb\xc4\xd1\xe5\xe2\xf0\n\xb1\xb9\x12\xd3\xfd\xab u5REנ\xa5k\xd1\x12]'K\xea\xeb\x11\xbb\xff\x8327@\x85\x1b\xa1\xe8&(\xbc\x192\xb7\xd8\r\xd5T\xddj\x9b\x9a*}\x9b\x9d\xce_\x84\xdc.\xa6;\x10\aw\xa2\rܻ\xc4\xe6n\xc4\xd9{ \xef^\xa4\x9e\xbeO\xec\xdf/V\x0f\x88\xe9Aq\xf4\x908|Xl\x1e\xc1t\xffQH=\x86T\xd1\xe3h\xe9\t\xb4DOʒ\xfa)\xc4\xee\xd3P\xe6\x19\xa8\xf0,\x14=\a\x85\xcfC\xe6\x05(\xf7\"&\xe6\xf4KK+a\xfdrR\xd0+2\x12\xbc*Aྖ\x14\xe6u\x19ɾ!\xf6ޔ\x01O\xbf\x95\x14\xfe\xdbI\xa1\xdeI\nz7)\xa2\xf7\x92\"|?)\xcc\ar\x18\xffC\xb1\xfaH\x06\x14},\x01}\"\x01ѧ\xc9\x19\xe8\xcfd\xc4\xfd\\\x9c\xf9B\\\xf8R\x1c}%\x0e\xbf\x16\x9bo\xec\xd5\xcb\x15\xbf\xb5[\xb6\x9fs\xbe\xb3!\u007f\xee\xf9^L? \x0e~D\x1b\xb8\xf3\xc4f>\xe2\xec\x02\xc8[\x88\xd4Ӌ\xc4\xfeb\xb1Z\"\xa6\xa5\xe2h\x998\\.6?a\xba\xff3\xa4V U\xb4\x12-\xadBK\xb4Z\x96\xd4k\x10\xbbk\xa1\xcc:\xa8\xb0\x1e\x8a6@\xe1F\xc8l\xb2o\n\xb9ͼ+\xbd\x85\x13\xad\xb7B\xb4\x8d\xb3`;7\x81\xbb\x032;9\xcb\xeebz\xbb9\xf2\xf4\x1e\xc8\xff\x05R\xbfB\xf4\x1b\x14\xfd\x0e\x85\u007f@\xe6O\x9e\xe6\xff\xc5T\u007fs\xa4\xe8\x1fn\xe8_n\x88j\xb1\x86\xae\xe3̭gf\xfec\x16\xf62\xa3\x06f\x183\xcd>\xcb\xec-\x97+:\xcb*X:\xb5\xac\x12\xd6eIA\xe52\x12TH\x10\xb8\x95Ia\xf6\x95\x91\xec~bo\u007f\x19\xf0\xf4\x01I\xe1\x1f\x98\x14ꠤ\xa0\x83\x93\":$)\xc2C\x93\xc2\x1c&\x87\xf1\x0f\x17\xab#d@ё\x12\xd0Q\x12\x10\x1d\x9d\x9c\x81>FF\xdccř\xe3ą\xe3\xc5\xd1\t\xe2\xf0D\xb19i\x99}\xc3ȝ\x8c-\xebS\x10j}\xaa\x98҈\x83\xd3\xd0\x06\xee\xe9b\xd3\bq\xb61\xe45A\xea\xe9\xa6b\xbf\x99X5\x17S\vq\xd4R\x1c\xb6\x12\x9b֘\uedc1T[\xa4\x8aڡ\xa53\xd0\x12\xb5\x97%u\a\xc4nG(\xd3\t*t\x86\xa2.P\xd8\x152ݖ\xa5L\xb1\xbb\xddUQ\xf7\xb0\t\xff\xe5(\x88zq\x16\xf4\xe6&p\xfb@\xa6/g\xd9~L\xaf?G\x9e\x1e\x00\xf9\x03!5\b\xa2\xc1P4\x04\n\x87Bf\x18O\xf3\x873\xd5\b\x8e\x14\x8d\xe4\x86FqC4\x1ak\xe81\x9c\xb9c\x99\x99q\xcc\xc2xft&3\x9c\xc04\x13-\xab\xabβ\x13\xaa\xab\xf4\xd9v\xcf\xfcE\xc8$1MF\x1cLA\x1b\xb8S\xc5f\x1a\xe2\xec9\x907\x1d\xa9\xa7\xcf\x15\xfb3\xc4j\xa6\x98\xaađ\x12\x87\x19\xb1\xc9b\xba\x9f\x83\xd4,\xa4\x8a4Z2h\x89\xf2\xb2\xa4v\x11\xbb\x05(\xe3A\x05\x1f\x8a\x02(,B&\x84r\xe7abN϶\xb7'\xbe\b\xa1\xa4\xa0HF\x82\x92\x04\x81;')L\xb5\x8cd\xcf\x17{52\xe0\xe9\v\x92¿0)\xd4EIAs\x93\"\xba8)\xc2K\x92\xc2\\*\x87\xf1/\x13\xab\xcbe@\xd1\x15\x12Е\x12\x10]\x95\x9c\x81\xbeZF\xdckękŅ\xeb\xc4\xd1\xf5\xe2\xf0\u007fbs\x03_\xc3܍|\xb9s\xfa&\x1b\xf2\x17!7\x8b\xe9\x16\xc4\xc1\xadh\x03\xf76\xb1\xb9\x1dq\xf6\x0eȻ\x13\xa9\xa7\xef\x12\xfbw\x8b\xd5=b\xbaW\x1c\xdd'\x0e\xef\x17\x9b\a0\xdd\u007f\x10R\x0f!U\xf40Zz\x04-ѣ\xb2\xa4~\f\xb1\xfb8\x94y\x02*<\tEOA\xe1Ӑy\x86\xdf\x14\x8a\xcf\xf2\v\xaa\xa8\x9f㗠}\x19=/\xa6\x17\x10\a/\xa2\rܗ\xc4\xe6e\xc4\xd9W \xefU\xa4\x9e~M\xec\xbf.Vo\x88\xe9Mq\xf4\x968|[l\xde\xc1t\xff]H\xbd\x87T\xd1\xfbh\xe9\x03\xb4D\x1fʒ\xfa#\xc4\xee\xc7P\xe6\x13\xa8\xf0)\x14}\x06\x85\x9fC\xe6\v\xfb\xa6P\xfa\xd2\ueaa4\xbf\xb2\x89\xfd\x85\xe7k\x88\xbe\xe1,\xf8\x96\x9b\xc0\xfd\x0e2\xdfs\x96\xfd\x81\xe9\xfdȑ\xa7\xe7A\xfe|H-\x80h!\x14-\x82\xc2ŐY\xc2\xd3\xfc\xa5L\xb5\x8c#E˹\xa1\x9f\xb8!\xfa\x19k\xe8\x15\x9c\xb9+\x99\x99U\xcc\xc2jf\xb4\x86\x19\xaee\x9au\xfc\x1a\xca\x15\xd7\xf3]f\u007f\xecl\xe0ۓ\u007f\x0emL\n\xda$#\xc1f\t\x02wKR\x98\xad2\x92\xdd&\xf6\xb6ˀ\xa7w$\x85\xbf3)\u052e\xa4\xa0\xddI\x11\xedI\x8a\xf0\x97\xa40\xbf\xcaa\xfc\xdf\xc4\xeaw\x19P\xf4\x87\x04\xf4\xa7\x04D\u007f%g\xa0\xff\x96\x11\xf7\x1fq\xe6_q\xa1V\x1cՉ\xc3z\xb1\xf9\x8f\xdf\x01s{\xb1e݀P\xebXL\xfb,\xe78p\x96s\x1b\xb8)\xb1)C\x9c-\x87\xbc\n\xa4\x9e\xae\x14\xfb\xfb\x8a\xd5~b\xda_\x1c\x1d \x0e\x0f\x14\x9b\x830\xdd?\x18R\x87 Ut(Z:\f-\xd1\u1ca4>\x02\xb1{$\x949\n*\x1c\rE\xc7@᱐9n\xb9\xddP\xfexn\xf2\xfa\x04\x9en\u007f\x8f;QL'!\x0eNF\x1b\xb8\xa7\x88ͩ\x88\xb3i\xc8;\r\xa9\xa7O\x17\xfb\x8dĪ\xb1\x98\x9a\x88\xa3\xa6Ⱉ\xd84\xc7t\xbf\x05\xa4Z\"U\xd4\n-\xb5FK\xd4F\x96\xd4m\x11\xbb\xed\xa0\xcc\x19P\xa1=\x14u\x80\u008e\x90\xe9d7TS\xeal\x9b\x9a\x92\xeeb\xa7\xf3\x17!]\xc5\xd4\rq\xd0\x1dm\xe0\xf6\x10\x9b\x9e\x88\xb3\xbd \xaf7RO\xf7\x11\xfb}Ū\x9f\x98\xfa\x8b\xa3\x01\xe2p\xa0\xd8\f\xc2t\u007f0\xa4\x86 U4\x14-\rCK4\\\x96\xd4#\x10\xbb#\xa1\xcc(\xa80\x1a\x8a\xc6@\xe1XȌ\xb3\x1bʕ\xc6\xdb&W\xd2g\xda\xe9\xfcE\xc8\x041MD\x1c\x9c\x856p\xcf\x16\x9bI\x88\xb3\x93!o\nROO\x15\xfb\xd3\xc4\xea\x1c1M\x17G\xe7\x8a\xc3\x19b3\x13\xd3\xfd*H)\xa4\x8a2h)\x8b\x96('K\xeaY\x88]\re\fT\xc8C\x91\v\x85\x05\xc8x|\x85\xf2>\xef.\xaf\x03~>\xec-W\x14S\x8888\x0fm\xe0\xce\x16\x1bB\x9c\x8d \xaf\x84\xd4\xd3s\xc4~\xb5X\x9d/\xa6\x1aqt\x818\xbcPl.\xc2t\u007f.\xa4.F\xaa\xe8\x12\xb4t)Z\xa2\xcbdI}9b\xf7\n(s%T\xb8\n\x8a\xae\x86\xc2k s\xed\xf2\x94\xc9_gw\x95\xd7\xd7ۄ\xffG\x1f\x88n\xe0,\xb8\x91\x9b\xc0\xbd\t27s\x96\xbd\x85\xe9\xddʑ\xa7o\x83\xfc\xdb!u\aDwB\xd1]Px7d\xee\xe1i\xfe\xbdLu\x1fG\x8a\xee\xe7\x86\x1e\xe0\x86\xe8A\xac\xa1\x1f\xe2\xcc}\x98\x99y\x84Yx\x94\x19=\xc6\f\x1fg\x9a'\x96\x97M\xeb;\xfdI\xf0)\xf0i\xf0\x19\xf0Y\xf09\xf0y\xf0\x05\xf0E\xf0%\xf0e\xf0\x15\xf0U\xf05\xf0u\xf0\r\xf0M\xf0-\xf0m\xf0\x1d\xf0]\xf0=\xf0}\xf0\x03\xf0C\xf0#\xf0c\xf0\x13\xf0S\xf03\xf0s\xf0\v\xf0K\xf0+\xf0k\xf0\x1b\xf0[\xf0;\xf0{\xf0\a\xf0Gp\x1e8\x1f\\\x00.\x04\x17\x81\x8b\xc1%\xe0Rp\x19\xb8\x1c\xfc\t\xfc\x19\\\x01\xae\x04W\x81\xab\xc15\xe0Zp\x1d\xb8\x1e\xdc\x00n\x047\x81\x9b\xc1-\xe0Vp\x1b\xb8\x1d\xdc\x01\xee\x04w\x81\xbb\xc1=\xe0/\xe0\xaf\xe0o\xe0\xef\xe0\x1f\xe0\x9f\xe0_\xe0\xdf\xe0?\xe0\xbf`-X\aփ\xff\x81{\xc1\x06p\x9f\xda\xf2\x91U5i\xa7\xb6\xd2*\xd0\xe9Tm\xd9\xc8\\\xba̲\x98.\xb7cE/]\xc1ʤ+\xad\xaa\xf3\xe9}E\xfb\xd5V\x8c\xb4oq\xe9\xfdm[\xf2\xd2\a\xb0\xfc\xf4\x81\xb5ec\xaa\xd2\a\x81\a\x83\x87Ԗ\x8d\xaaJ\x1f\x8a\xfa0\xf0p\xf0\b\xf0H\xf0\xa8\xda\xf21U\x85\xf4ѢcDNJ\x8e\x13\x1d/:At\"+H\x9f$:Yt\x8a\xe8TQZt\x1a\xcbO\x9f.j$j,j\xc2\n\xd3ME\xcdD\xcdk+\xec<\x9dn\x91\xb8e\xe2V\x89['n\xc3\x0f\xafI\xb7\xad\xad\x1c\x83筝\xddI1}\x06\xd8\x1e\xec\x00v\x04;\x81\x9d\xc1.`W\xb0\x1b\xd8\x1d\xec\x01\xf6\xb4\xc7-\x16ҽD\xbdE}D}E\xfdD\xfdYAz\x80=!\xfb\x19'=0\xf1\xa0ă\x13\x0f\xe1\x87դ\x87\x8a\x86\x89\x86\x8bFXU\x97\xd2#E\xa3D\xa3EcDcE\xe3D\xe3EgZ\x95\n\xe9\t\xa2\x89,?}\x96]\xd0\xfe\x88H\x9f\x9dxR\xe2ɉ\xa7$\x9eZ[>\xd1\x1ec\x1an\x8csj\xcbG\xd9\v:]t.+HϨ\xad\x1cſh\xa7g\xda\xc7\x14\xd3U\xb5\x15\xa3\xec\x8f\u07b4\xb2]>\x9d\xa9-\x1f\x97\xabIgYA:W[1\xce>4=˶\xf6\xa0ڶ\xd5\xf6\xa1\xa6\xb6l\\>\x9d\xaf-\x9f`\x8f\xea\x8a\n,?\xed\xd5VL\xa8\xaa)\xa4\xfd\xda\xca\t\xb8r\x81\xcdsa\xbaȪI\x87v\xb8\xda^\xd8\xf3l\x9b\x0fҳY~\x9aXa:\xaa-\x9bR\x95.ՖO\xb1Ǜ#\xaa\xae\xad\x98\xc27\xc4\xf9\x89k\x12_\x90\xf8\xc2\xc4\x17%\x9e\x9b\xf8\xe2ė\xd8c\xe6җ\x82\x97\x81\x97\x83W\x80W\x82W\x81W\x83׀ׁׂ\xd7\xdb\x13\xc9\x15\xd2\xff\x13\xdd \xbaQt\x13+H\xdf,\xbaEt\xab\xe86\xd1\xed\xa2;Dw\x8a\xee\x12\xdd-\xbaGt\xaf\xe8>\xd1\xfd\xa2\aX^\xfaA\xd1C\xa2\x87E\x8f\x88\x1e\x15=\xc6\xf2ӏ\x8b\x9e\x10=)zJ\xf44+L?c\x9f\x1b\xbe\xfe\xcf&~.\xf1\xf3\x89_H\xfcb\xe2\x97\x12\xbf\x9c\xf8\x95į&~-\xf1\xeb\x89\xdfH\xfc&/W\x93~K\xf4\xb6\xe8\x1dѻ\xb5\xa9\xb1\xe9\xf7\xec\x13\\L\xbf\x0f~\x00~\b~\x04~\f~\x02~\n~\x06~\x0e~a\x17\xe1\x17\xe0\x97\xb5\xe5\x93\xec\x1b\xe5WV\xf6\xe9\xfaڎ\x95\xd2߀߂߁߃?\x80?\x82\xf3\xc0\xf9\xe0\x02p\xa1=3\xfbz[$Z,Z\xc2\n\xd2KE\xcbD\xcbE?\xb1\xbc\xf4Ϣ\x15\xa2\x95\xa2U\xf6\xf4\xf8帺65<\xbd\x86\xb1\x96\xb1\x8e\xb1\x9e\xb1\x81\xb1\x91\xb1\x89\xb1\x99\xb1\x85\xb1\x95\xb1\x8d\xb1\x9d\xb1\x83\xb1\xb3\xb6lx!\xbd\v\xdcm\x19\xa4\xf7\x80\xbf\x80\xbf\x82\xbf\x81\xbf\x83\u007f\x80\u007fZ\xfa\xe9\xbf\xc0\xbf\xc1\u007f,\xc3\xf4\xbf`-XW[1\x90_'\xf5\xb5\xe5\x03\xed\r\xfd_m\xd9\xc0|z\xafm\xec\xeb\xb1\xc1\xcaT\xa5c\xfb\x10c\xc7\xf6\xa9c\xdb\x1ffu\x15\x13\x8d}i\xa6\x12\x97\xd5UN\xe4\xff\n\x93.Ga_\xfc\x15\\\xf0ũ\xac+\x1fg\x8a\xe9}\xeb*\xac\n\xe9\xfd\xea*\x86\xf1\x03\xf7O|\x805\xbf\xbd\x1ch]m\x8ftP]٤R\xfa\xe0\xba\xf2a\xa5b\xfa\x90\xbar\xfb\x034}\xa8谺ʩ8\xe4\xe1\xd2\x1fQW1\xde~JK\x1f)\xedQ\xa2\xa3\xeb\xca&\xe7\xd3\xc7ԕO5\xa5\xf4\xb1ueS\xf2\xe9\xe3\xea\xf8m\xed\xf8\xba\x8a\tƮtB]\xe5\xe45k\x96c\x91OYxe\xf5e\xb3f\xe5˙^E}\x8a\xa2Jƾ\xf5\xfc\xd0\xfd\xc0\xfd\xc1\x03\xc0\x03\xc1\x83\xc0\x83\xc1C\xc0C\xc1\xc3\xc0\xc3\xc1#\xc0#\xebS~p\x94E\xeeh\x8b\xfc1\xf5\xa99\xc1\xb1\xf5e~\xc1\x1c\x87\xf1\xe3\xc1\x13\xc0\x13\xc1\x93\xc0\x93\xebS5\xf9S\xebS\xf6\x93i\xbd3\xf3\xf4z'ۨ\xde1\x8d\xeb\x9dB\x93z\xc7kZ\xef\xf8\xcd\xec\xbf\xe6\xf5NԢ\xdei\xd5Ҟ\xb2iU\xefPk.\xdaآm\xbdS\xd5\xce\xfek_\xef\xa8\x0e\xf5\x8e\xeeh\x8f\xd0\xc9\x1e\xa1s\xbd3\xa7K\xbdsAW\xac\xd2\xcd\xce\xef^\xef\xd4\xf4\xb0\xc7\xedi\xff\xf5\xb2\xc7\ue351>\xb6ꋪ_\xbd\x13\xf4\xb7\xff\x06\xa0\x1bX\uf103\xec\xbf\xc1\xe8\x86ԧ\"\x1a\xca\x18V\xef\xcc\x1e\u038b\x8f\xb0\x87\x1ciwY\x1ceW\x1em\x8f9\xc6>z\xac=\xdak\x98\xf1:\xf8\x06\xf8&\xf8\x16\xf86\xf8\x0e\xf8.\xf8\x1e\xf8>\xf8\x01\xf8!\xf8\x11\xf81\xf8\t\xf8)\xf8\x19\xf89\xf8\x05\xf8%\xf8\x15\xf85\xf8\r\xf8-\xf8\x1d\xf8=\xf8\x03\xf8#8\x0f\x9c\x0f.\x00\x17\x82\x8b\xe4\xd9؋\x1f[\xe0\x00p 8\b\x1c\f\x0e\x01\x87\x82\xc3\xc0\xe1\xe0\bp$8\n\x1c\r\x8e\x01ǂ\xb7\x80\xb7\x82߀߂߁߃?\x80?\x82\xf3\xc0\xf9\xe0\x02p!\xb8\b\\\f.\x01\x97\x82\xcb\xc0\xe5\xe0O\xe0\xcf\xe0\np%\xb8\n\\\r\xae\x01ׂ\xeb\xc0\xf5\xe0\x06p#\xb8\t\xdc\fn\x01\xb7\x82\xdb\xc0\xed\xe0\x0ep'\xb8\v\xdc\r\xee\x01\u007f\x01\xff\x03\xf7\x82\r\xe0>\rL\aL\x81e`9X\x01V\x82\xfb\x82\xfb\x81\xfb\x83\a\x80\a\x82\a\x81\a\x83\x87\x80\x87\x82\x87\x81\x87\x83G\x80G\x82G\x81G\x83ǀǂǁǃ'\x80'\x82'\x81'\x83\xa7\x80\xa7\x82\x8d\x1a\x9c\x8b\x1b\xa3j\x026\x05\x9b\x81\xcd\xc1\x16`K\xb0\x15\xd8\x1al\x03\xb6\x05ہg4\xa4ڶmߐjӦC\x83Ӧc\x833\xa3\x93\xfd\u05f9\xc1iޥ!\xd5\"ݵ\xc1\xb9\xb0[Cjn\xba{\x833\xadGCjz\xbagCjZ\xf3^\re-\xa6\xa7{7\xa4z\xf5\xea\xd3P֧O\xbao\x83ӫ_C\xaaO\xba\xbf}\xdc\x00~\xdc@;sP\x833w0\x96\x19\x02\x0e\x05\x87\x81\xe3\x1a\x9c\xd6\xe3\xed\xbf3\x1b\x9c\xb6\x13\x1b\x9c\x9eg58=\xcenp\xfaNjpN\x9blOe\x8a=\x85\xa9\rN\x8bi\xf68\xe7\xd8\xe3L\xb7>\xd7zF\x83\xd3hf\x83Ӵ\xaa\xc1i\xa9\x1a\x9cV\x19\xfbج]=\xd7\xe0\xf4\x99\xd5\xe0\xf46\r\xce9\xf9\x06\xa7\xb1\xdb\xe04)48\xfd<\xac\xe6\x83\x01X\x04\t,\x81{\xc1\x06p\x9f\x187G윖\x8a\x9d\xd3\xcbb\xa7Qy\xec4\xae\x88\x9d&\x95\xb1\xd3t\xdf\xd8i\xb6_\xec4\xdf?vZ\x1c\x10;-\x0f\x8c\x9dV\a\xc5N\xeb\x83c\xa7\xcd!\xb1\xd3\xf6\xd0\xd8iwX\xec\x9cqx\xec\xb4?\"v:\x1c\x19;\x1d\x8f\x8a\x9dNG\xc7N\xe7cb\xa7˱\xb1\xd3\xf5\xb8\xd8\xe9v|\xect?!vz\x9c\x18;=O\x8a\x9d^'\xc7N\xefSb\xa7ϩ\xb1\xd37\x1d;\xfdN\x8b\x9d\xfe\xa7\xc7\u0380F\xb13\xb0q\xec\fj\x12;\x83\x9b\xc6ΐf\xb13\xb4y\xec\fk\x11;\xc3[\xc6ΈV\xb13\xb2u\xec\x8cj\x13;\xa3\xdb\xc6Θv\xb13\xf6\x8c\xd8\x19\xd7>v\xc6w\x88\x9d3;\xc6΄N\xb13\xb1s\xec\x9c\xd5%v\xce\xee\x1a;\x93\xba\xc5\xce\xe4\xee\xb13\xa5G\xecL\xed\x19;\xd3z\xc5\xce9\xbdcgz\x9f\xd89\xb7o\xec\xcc\xe8\x17;3\xfb\xc7NՀ\xd8Q\x03c'3(v\xb2\x83c'7$vf\r\x8d\x1d=,v\xcc\xf0\xd8ɏ\x88\x1dwd\xec\x14FŎ7:v\xfc1\xb1\x13\x8c\x8d\x9d\xe2\xb8\xd8\t\xc7\xc7\xceyg\xc6\xce\xec\t\xb1C\x13c':+vJg\xc7ΜI\xb1S=9vΟ\x12;5Sc\xe7\x82i\xb1\xbd\xba\xb1s\xd1\xf4ؙ{n\xec\\<\x03\xcf\xfeL\xb0\xca>\x9fʞ_ƞ[\xd6>\xc79\xfb|ϊS\xd5EmO\xce\xd8\x13\xc8ۃ\xba\xf6\xc4\nvQ/N\xd5T\xf9\x16\xa5\xc0\xa2X\x8cSQ)\xb4\x17\xe7<\xfb\xd8\xd9\xf6\xb1d\x1f\x1b\xd9ǖ\xecc\xe7ĩBU\xb5E\xfe|\x8bR\x8dE\xee\x02\x8b\xe2\x85q\x8a\xaa.\xb2\xc8ϵ(]l\x91\xbbĢx\xa9=\\\xd5e\x16\xf9\xcb\xf9\xc0WX䮴(^\x15\xa7\x82\xaa\xab-\xf2\xd7X\x94\xae\xb5\xc8]gQ\xbc>N\x99\xaa\xffY\xe4o\xb0(\xddh\x91\xbbɢxs\x9c\xf2\xabn\xb1\xc8\xdfjQ\xba\xcd\"w\xbbE\xf1\x0e\xde\xc1\x9d\xbc\x83\xbbx\awǩ\xd9U\xf7X\xe4\xef\xb5(\xddg\x91\xbbߢ\xf8\x80}\n\xaa\x1e\xb4\xcf\xf5C\xf6\xfey\xd8\xde?\x8f\xdak\xf2X\x9c\xd2\xfaq\vz\u008e" +0x003f: "?" +0x0040: "@" +0x0041: "A" +0x0042: "B" +0x0043: "C" +0x0044: "D" +0x0045: "E" +0x0046: "F" +0x0047: "G" +0x0048: "H" +0x0049: "I" +0x004a: "J" +0x004b: "K" +0x004c: "L" +0x004d: "M" +0x004e: "N" +0x004f: "O" +0x0050: "P" +0x0051: "Q" +0x0052: "R" +0x0053: "S" +0x0054: "T" +0x0055: "U" +0x0056: "V" +0x0057: "W" +0x0058: "X" +0x0059: "Y" +0x005a: "Z" +0x005b: "]" +0x005c: "\\" +0x005d: "]" +0x005e: "^" +0x005f: "_" +0x0060: "`" +0x0061: "a" +0x0062: "b" +0x0063: "c" +0x0064: "d" +0x0065: "e" +0x0066: "f" +0x0067: "g" +0x0068: "h" +0x0069: "i" +0x006a: "j" +0x006b: "k" +0x006c: "l" +0x006d: "m" +0x006e: "n" +0x006f: "o" +0x0070: "p" +0x0071: "q" +0x0072: "r" +0x0073: "s" +0x0074: "t" +0x0075: "u" +0x0076: "v" +0x0077: "w" +0x0078: "x" +0x0079: "y" +0x007a: "z" +0x007b: "{" +0x007c: "|" +0x007d: "}" +0x007e: "~" +0x007f: "\x7f" +0x0080: "" +0x0081: "" +0x0082: "" +0x0083: "" +0x0084: "" +0x0085: "" +0x0086: "" +0x0087: "" +0x0088: "" +0x0089: "" +0x008a: "" +0x008b: "" +0x008c: "" +0x008d: "" +0x008e: "" +0x008f: "" +0x0090: "" +0x0091: "" +0x0092: "" +0x0093: "" +0x0094: "" +0x0095: "" +0x0096: "" +0x0097: "" +0x0098: "" +0x0099: "" +0x009a: "" +0x009b: "" +0x009c: "" +0x009d: "" +0x009e: "" +0x009f: "" +0x00a0: " " +0x00a1: "!" +0x00a2: "C/" +0x00a3: "PS" +0x00a4: "$?" +0x00a5: "Y=" +0x00a6: "|" +0x00a7: "SS" +0x00a8: "\"" +0x00a9: "(c)" +0x00aa: "a" +0x00ab: "<<" +0x00ac: "!" +0x00ad: "" +0x00ae: "(r)" +0x00af: "-" +0x00b0: "deg" +0x00b1: "+-" +0x00b2: "2" +0x00b3: "3" +0x00b4: "'" +0x00b5: "u" +0x00b6: "P" +0x00b7: "*" +0x00b8: "," +0x00b9: "1" +0x00ba: "o" +0x00bb: ">>" +0x00bc: "1/4" +0x00bd: "1/2" +0x00be: "3/4" +0x00bf: "?" +0x00c0: "A" +0x00c1: "A" +0x00c2: "A" +0x00c3: "A" +0x00c4: "A" +0x00c5: "A" +0x00c6: "AE" +0x00c7: "C" +0x00c8: "E" +0x00c9: "E" +0x00ca: "E" +0x00cb: "E" +0x00cc: "I" +0x00cd: "I" +0x00ce: "I" +0x00cf: "I" +0x00d0: "D" +0x00d1: "N" +0x00d2: "O" +0x00d3: "O" +0x00d4: "O" +0x00d5: "O" +0x00d6: "O" +0x00d7: "x" +0x00d8: "O" +0x00d9: "U" +0x00da: "U" +0x00db: "U" +0x00dc: "U" +0x00dd: "Y" +0x00de: "Th" +0x00df: "ss" +0x00e0: "a" +0x00e1: "a" +0x00e2: "a" +0x00e3: "a" +0x00e4: "a" +0x00e5: "a" +0x00e6: "ae" +0x00e7: "c" +0x00e8: "e" +0x00e9: "e" +0x00ea: "e" +0x00eb: "e" +0x00ec: "i" +0x00ed: "i" +0x00ee: "i" +0x00ef: "i" +0x00f0: "d" +0x00f1: "n" +0x00f2: "o" +0x00f3: "o" +0x00f4: "o" +0x00f5: "o" +0x00f6: "o" +0x00f7: "/" +0x00f8: "o" +0x00f9: "u" +0x00fa: "u" +0x00fb: "u" +0x00fc: "u" +0x00fd: "y" +0x00fe: "th" +0x00ff: "y" +/* x001 */ +0x0100: "A" +0x0101: "a" +0x0102: "A" +0x0103: "a" +0x0104: "A" +0x0105: "a" +0x0106: "C" +0x0107: "c" +0x0108: "C" +0x0109: "c" +0x010a: "C" +0x010b: "c" +0x010c: "C" +0x010d: "c" +0x010e: "D" +0x010f: "d" +0x0110: "D" +0x0111: "d" +0x0112: "E" +0x0113: "e" +0x0114: "E" +0x0115: "e" +0x0116: "E" +0x0117: "e" +0x0118: "E" +0x0119: "e" +0x011a: "E" +0x011b: "e" +0x011c: "G" +0x011d: "g" +0x011e: "G" +0x011f: "g" +0x0120: "G" +0x0121: "g" +0x0122: "G" +0x0123: "g" +0x0124: "H" +0x0125: "h" +0x0126: "H" +0x0127: "h" +0x0128: "I" +0x0129: "i" +0x012a: "I" +0x012b: "i" +0x012c: "I" +0x012d: "i" +0x012e: "I" +0x012f: "i" +0x0130: "I" +0x0131: "i" +0x0132: "IJ" +0x0133: "ij" +0x0134: "J" +0x0135: "j" +0x0136: "K" +0x0137: "k" +0x0138: "k" +0x0139: "L" +0x013a: "l" +0x013b: "L" +0x013c: "l" +0x013d: "L" +0x013e: "l" +0x013f: "L" +0x0140: "l" +0x0141: "L" +0x0142: "l" +0x0143: "N" +0x0144: "n" +0x0145: "N" +0x0146: "n" +0x0147: "N" +0x0148: "n" +0x0149: "'n" +0x014a: "ng" +0x014b: "NG" +0x014c: "O" +0x014d: "o" +0x014e: "O" +0x014f: "o" +0x0150: "O" +0x0151: "o" +0x0152: "OE" +0x0153: "oe" +0x0154: "R" +0x0155: "r" +0x0156: "R" +0x0157: "r" +0x0158: "R" +0x0159: "r" +0x015a: "S" +0x015b: "s" +0x015c: "S" +0x015d: "s" +0x015e: "S" +0x015f: "s" +0x0160: "S" +0x0161: "s" +0x0162: "T" +0x0163: "t" +0x0164: "T" +0x0165: "t" +0x0166: "T" +0x0167: "t" +0x0168: "U" +0x0169: "u" +0x016a: "U" +0x016b: "u" +0x016c: "U" +0x016d: "u" +0x016e: "U" +0x016f: "u" +0x0170: "U" +0x0171: "u" +0x0172: "U" +0x0173: "u" +0x0174: "W" +0x0175: "w" +0x0176: "Y" +0x0177: "y" +0x0178: "Y" +0x0179: "Z" +0x017a: "z" +0x017b: "Z" +0x017c: "z" +0x017d: "Z" +0x017e: "z" +0x017f: "s" +0x0180: "b" +0x0181: "B" +0x0182: "B" +0x0183: "b" +0x0184: "6" +0x0185: "6" +0x0186: "O" +0x0187: "C" +0x0188: "c" +0x0189: "D" +0x018a: "D" +0x018b: "D" +0x018c: "d" +0x018d: "d" +0x018e: "3" +0x018f: "@" +0x0190: "E" +0x0191: "F" +0x0192: "f" +0x0193: "G" +0x0194: "G" +0x0195: "hv" +0x0196: "I" +0x0197: "I" +0x0198: "K" +0x0199: "k" +0x019a: "l" +0x019b: "l" +0x019c: "W" +0x019d: "N" +0x019e: "n" +0x019f: "O" +0x01a0: "O" +0x01a1: "o" +0x01a2: "OI" +0x01a3: "oi" +0x01a4: "P" +0x01a5: "p" +0x01a6: "YR" +0x01a7: "2" +0x01a8: "2" +0x01a9: "SH" +0x01aa: "sh" +0x01ab: "t" +0x01ac: "T" +0x01ad: "t" +0x01ae: "T" +0x01af: "U" +0x01b0: "u" +0x01b1: "Y" +0x01b2: "V" +0x01b3: "Y" +0x01b4: "y" +0x01b5: "Z" +0x01b6: "z" +0x01b7: "ZH" +0x01b8: "ZH" +0x01b9: "zh" +0x01ba: "zh" +0x01bb: "2" +0x01bc: "5" +0x01bd: "5" +0x01be: "ts" +0x01bf: "w" +0x01c0: "|" +0x01c1: "||" +0x01c2: "|=" +0x01c3: "!" +0x01c4: "DZ" +0x01c5: "Dz" +0x01c6: "dz" +0x01c7: "LJ" +0x01c8: "Lj" +0x01c9: "lj" +0x01ca: "NJ" +0x01cb: "Nj" +0x01cc: "nj" +0x01cd: "A" +0x01ce: "a" +0x01cf: "I" +0x01d0: "i" +0x01d1: "O" +0x01d2: "o" +0x01d3: "U" +0x01d4: "u" +0x01d5: "U" +0x01d6: "u" +0x01d7: "U" +0x01d8: "u" +0x01d9: "U" +0x01da: "u" +0x01db: "U" +0x01dc: "u" +0x01dd: "@" +0x01de: "A" +0x01df: "a" +0x01e0: "A" +0x01e1: "a" +0x01e2: "AE" +0x01e3: "ae" +0x01e4: "G" +0x01e5: "g" +0x01e6: "G" +0x01e7: "g" +0x01e8: "K" +0x01e9: "k" +0x01ea: "O" +0x01eb: "o" +0x01ec: "O" +0x01ed: "o" +0x01ee: "ZH" +0x01ef: "zh" +0x01f0: "j" +0x01f1: "DZ" +0x01f2: "Dz" +0x01f3: "dz" +0x01f4: "G" +0x01f5: "g" +0x01f6: "HV" +0x01f7: "W" +0x01f8: "N" +0x01f9: "n" +0x01fa: "A" +0x01fb: "a" +0x01fc: "AE" +0x01fd: "ae" +0x01fe: "O" +0x01ff: "o" +/* x002 */ +0x0200: "A" +0x0201: "a" +0x0202: "A" +0x0203: "a" +0x0204: "E" +0x0205: "e" +0x0206: "E" +0x0207: "e" +0x0208: "I" +0x0209: "i" +0x020a: "I" +0x020b: "i" +0x020c: "O" +0x020d: "o" +0x020e: "O" +0x020f: "o" +0x0210: "R" +0x0211: "r" +0x0212: "R" +0x0213: "r" +0x0214: "U" +0x0215: "u" +0x0216: "U" +0x0217: "u" +0x0218: "S" +0x0219: "s" +0x021a: "T" +0x021b: "t" +0x021c: "Y" +0x021d: "y" +0x021e: "H" +0x021f: "h" +0x0220: "N" +0x0221: "d" +0x0222: "OU" +0x0223: "ou" +0x0224: "Z" +0x0225: "z" +0x0226: "A" +0x0227: "a" +0x0228: "E" +0x0229: "e" +0x022a: "O" +0x022b: "o" +0x022c: "O" +0x022d: "o" +0x022e: "O" +0x022f: "o" +0x0230: "O" +0x0231: "o" +0x0232: "Y" +0x0233: "y" +0x0234: "l" +0x0235: "n" +0x0236: "t" +0x0237: "j" +0x0238: "db" +0x0239: "qp" +0x023a: "A" +0x023b: "C" +0x023c: "c" +0x023d: "L" +0x023e: "T" +0x023f: "s" +0x0240: "z" +0x0241: "[?]" +0x0242: "[?]" +0x0243: "B" +0x0244: "U" +0x0245: "^" +0x0246: "E" +0x0247: "e" +0x0248: "J" +0x0249: "j" +0x024a: "q" +0x024b: "q" +0x024c: "R" +0x024d: "r" +0x024e: "Y" +0x024f: "y" +0x0250: "a" +0x0251: "a" +0x0252: "a" +0x0253: "b" +0x0254: "o" +0x0255: "c" +0x0256: "d" +0x0257: "d" +0x0258: "e" +0x0259: "@" +0x025a: "@" +0x025b: "e" +0x025c: "e" +0x025d: "e" +0x025e: "e" +0x025f: "j" +0x0260: "g" +0x0261: "g" +0x0262: "g" +0x0263: "g" +0x0264: "u" +0x0265: "Y" +0x0266: "h" +0x0267: "h" +0x0268: "i" +0x0269: "i" +0x026a: "I" +0x026b: "l" +0x026c: "l" +0x026d: "l" +0x026e: "lZ" +0x026f: "W" +0x0270: "W" +0x0271: "m" +0x0272: "n" +0x0273: "n" +0x0274: "n" +0x0275: "o" +0x0276: "OE" +0x0277: "O" +0x0278: "F" +0x0279: "r" +0x027a: "r" +0x027b: "r" +0x027c: "r" +0x027d: "r" +0x027e: "r" +0x027f: "r" +0x0280: "R" +0x0281: "R" +0x0282: "s" +0x0283: "S" +0x0284: "j" +0x0285: "S" +0x0286: "S" +0x0287: "t" +0x0288: "t" +0x0289: "u" +0x028a: "U" +0x028b: "v" +0x028c: "^" +0x028d: "w" +0x028e: "y" +0x028f: "Y" +0x0290: "z" +0x0291: "z" +0x0292: "Z" +0x0293: "Z" +0x0294: "?" +0x0295: "?" +0x0296: "?" +0x0297: "C" +0x0298: "@" +0x0299: "B" +0x029a: "E" +0x029b: "G" +0x029c: "H" +0x029d: "j" +0x029e: "k" +0x029f: "L" +0x02a0: "q" +0x02a1: "?" +0x02a2: "?" +0x02a3: "dz" +0x02a4: "dZ" +0x02a5: "dz" +0x02a6: "ts" +0x02a7: "tS" +0x02a8: "tC" +0x02a9: "fN" +0x02aa: "ls" +0x02ab: "lz" +0x02ac: "WW" +0x02ad: "]]" +0x02ae: "h" +0x02af: "h" +0x02b0: "k" +0x02b1: "h" +0x02b2: "j" +0x02b3: "r" +0x02b4: "r" +0x02b5: "r" +0x02b6: "r" +0x02b7: "w" +0x02b8: "y" +0x02b9: "'" +0x02ba: "\"" +0x02bb: "`" +0x02bc: "'" +0x02bd: "`" +0x02be: "`" +0x02bf: "'" +0x02c0: "?" +0x02c1: "?" +0x02c2: "<" +0x02c3: ">" +0x02c4: "^" +0x02c5: "V" +0x02c6: "^" +0x02c7: "V" +0x02c8: "'" +0x02c9: "-" +0x02ca: "/" +0x02cb: "\\" +0x02cc: "," +0x02cd: "_" +0x02ce: "\\" +0x02cf: "/" +0x02d0: ":" +0x02d1: "." +0x02d2: "`" +0x02d3: "'" +0x02d4: "^" +0x02d5: "V" +0x02d6: "+" +0x02d7: "-" +0x02d8: "V" +0x02d9: "." +0x02da: "@" +0x02db: "," +0x02dc: "~" +0x02dd: "\"" +0x02de: "R" +0x02df: "X" +0x02e0: "G" +0x02e1: "l" +0x02e2: "s" +0x02e3: "x" +0x02e4: "?" +0x02e5: "" +0x02e6: "" +0x02e7: "" +0x02e8: "" +0x02e9: "" +0x02ea: "" +0x02eb: "" +0x02ec: "V" +0x02ed: "=" +0x02ee: "\"" +0x02ef: "[?]" +0x02f0: "[?]" +0x02f1: "[?]" +0x02f2: "[?]" +0x02f3: "[?]" +0x02f4: "[?]" +0x02f5: "[?]" +0x02f6: "[?]" +0x02f7: "[?]" +0x02f8: "[?]" +0x02f9: "[?]" +0x02fa: "[?]" +0x02fb: "[?]" +0x02fc: "[?]" +0x02fd: "[?]" +0x02fe: "[?]" +/* x003 */ +0x0300: "" +0x0301: "" +0x0302: "" +0x0303: "" +0x0304: "" +0x0305: "" +0x0306: "" +0x0307: "" +0x0308: "" +0x0309: "" +0x030a: "" +0x030b: "" +0x030c: "" +0x030d: "" +0x030e: "" +0x030f: "" +0x0310: "" +0x0311: "" +0x0312: "" +0x0313: "" +0x0314: "" +0x0315: "" +0x0316: "" +0x0317: "" +0x0318: "" +0x0319: "" +0x031a: "" +0x031b: "" +0x031c: "" +0x031d: "" +0x031e: "" +0x031f: "" +0x0320: "" +0x0321: "" +0x0322: "" +0x0323: "" +0x0324: "" +0x0325: "" +0x0326: "" +0x0327: "" +0x0328: "" +0x0329: "" +0x032a: "" +0x032b: "" +0x032c: "" +0x032d: "" +0x032e: "" +0x032f: "" +0x0330: "" +0x0331: "" +0x0332: "" +0x0333: "" +0x0334: "" +0x0335: "" +0x0336: "" +0x0337: "" +0x0338: "" +0x0339: "" +0x033a: "" +0x033b: "" +0x033c: "" +0x033d: "" +0x033e: "" +0x033f: "" +0x0340: "" +0x0341: "" +0x0342: "" +0x0343: "" +0x0344: "" +0x0345: "" +0x0346: "" +0x0347: "" +0x0348: "" +0x0349: "" +0x034a: "" +0x034b: "" +0x034c: "" +0x034d: "" +0x034e: "" +0x034f: "[?]" +0x0350: "[?]" +0x0351: "[?]" +0x0352: "[?]" +0x0353: "[?]" +0x0354: "[?]" +0x0355: "[?]" +0x0356: "[?]" +0x0357: "[?]" +0x0358: "[?]" +0x0359: "[?]" +0x035a: "[?]" +0x035b: "[?]" +0x035c: "[?]" +0x035d: "[?]" +0x035e: "[?]" +0x035f: "[?]" +0x0360: "" +0x0361: "" +0x0362: "" +0x0363: "a" +0x0364: "e" +0x0365: "i" +0x0366: "o" +0x0367: "u" +0x0368: "c" +0x0369: "d" +0x036a: "h" +0x036b: "m" +0x036c: "r" +0x036d: "t" +0x036e: "v" +0x036f: "x" +0x0370: "[?]" +0x0371: "[?]" +0x0372: "[?]" +0x0373: "[?]" +0x0374: "'" +0x0375: "," +0x0376: "[?]" +0x0377: "[?]" +0x0378: "[?]" +0x0379: "[?]" +0x037a: "" +0x037b: "[?]" +0x037c: "[?]" +0x037d: "[?]" +0x037e: "?" +0x037f: "[?]" +0x0380: "[?]" +0x0381: "[?]" +0x0382: "[?]" +0x0383: "[?]" +0x0384: "" +0x0385: "" +0x0386: "A" +0x0387: ";" +0x0388: "E" +0x0389: "E" +0x038a: "I" +0x038b: "[?]" +0x038c: "O" +0x038d: "[?]" +0x038e: "U" +0x038f: "O" +0x0390: "I" +0x0391: "A" +0x0392: "B" +0x0393: "G" +0x0394: "D" +0x0395: "E" +0x0396: "Z" +0x0397: "E" +0x0398: "Th" +0x0399: "I" +0x039a: "K" +0x039b: "L" +0x039c: "M" +0x039d: "N" +0x039e: "Ks" +0x039f: "O" +0x03a0: "P" +0x03a1: "R" +0x03a2: "[?]" +0x03a3: "S" +0x03a4: "T" +0x03a5: "U" +0x03a6: "Ph" +0x03a7: "Kh" +0x03a8: "Ps" +0x03a9: "O" +0x03aa: "I" +0x03ab: "U" +0x03ac: "a" +0x03ad: "e" +0x03ae: "e" +0x03af: "i" +0x03b0: "u" +0x03b1: "a" +0x03b2: "b" +0x03b3: "g" +0x03b4: "d" +0x03b5: "e" +0x03b6: "z" +0x03b7: "e" +0x03b8: "th" +0x03b9: "i" +0x03ba: "k" +0x03bb: "l" +0x03bc: "m" +0x03bd: "n" +0x03be: "x" +0x03bf: "o" +0x03c0: "p" +0x03c1: "r" +0x03c2: "s" +0x03c3: "s" +0x03c4: "t" +0x03c5: "u" +0x03c6: "ph" +0x03c7: "kh" +0x03c8: "ps" +0x03c9: "o" +0x03ca: "i" +0x03cb: "u" +0x03cc: "o" +0x03cd: "u" +0x03ce: "o" +0x03cf: "[?]" +0x03d0: "b" +0x03d1: "th" +0x03d2: "U" +0x03d3: "U" +0x03d4: "U" +0x03d5: "ph" +0x03d6: "p" +0x03d7: "&" +0x03d8: "[?]" +0x03d9: "[?]" +0x03da: "St" +0x03db: "st" +0x03dc: "W" +0x03dd: "w" +0x03de: "Q" +0x03df: "q" +0x03e0: "Sp" +0x03e1: "sp" +0x03e2: "Sh" +0x03e3: "sh" +0x03e4: "F" +0x03e5: "f" +0x03e6: "Kh" +0x03e7: "kh" +0x03e8: "H" +0x03e9: "h" +0x03ea: "G" +0x03eb: "g" +0x03ec: "CH" +0x03ed: "ch" +0x03ee: "Ti" +0x03ef: "ti" +0x03f0: "k" +0x03f1: "r" +0x03f2: "c" +0x03f3: "j" +0x03f4: "[?]" +0x03f5: "[?]" +0x03f6: "[?]" +0x03f7: "[?]" +0x03f8: "[?]" +0x03f9: "[?]" +0x03fa: "[?]" +0x03fb: "[?]" +0x03fc: "[?]" +0x03fd: "[?]" +0x03fe: "[?]" +/* x004 */ +0x0400: "Ie" +0x0401: "Io" +0x0402: "Dj" +0x0403: "Gj" +0x0404: "Ie" +0x0405: "Dz" +0x0406: "I" +0x0407: "Yi" +0x0408: "J" +0x0409: "Lj" +0x040a: "Nj" +0x040b: "Tsh" +0x040c: "Kj" +0x040d: "I" +0x040e: "U" +0x040f: "Dzh" +0x0410: "A" +0x0411: "B" +0x0412: "V" +0x0413: "G" +0x0414: "D" +0x0415: "E" +0x0416: "Zh" +0x0417: "Z" +0x0418: "I" +0x0419: "I" +0x041a: "K" +0x041b: "L" +0x041c: "M" +0x041d: "N" +0x041e: "O" +0x041f: "P" +0x0420: "R" +0x0421: "S" +0x0422: "T" +0x0423: "U" +0x0424: "F" +0x0425: "Kh" +0x0426: "Ts" +0x0427: "Ch" +0x0428: "Sh" +0x0429: "Shch" +0x042a: "'" +0x042b: "Y" +0x042c: "'" +0x042d: "E" +0x042e: "Iu" +0x042f: "Ia" +0x0430: "a" +0x0431: "b" +0x0432: "v" +0x0433: "g" +0x0434: "d" +0x0435: "e" +0x0436: "zh" +0x0437: "z" +0x0438: "i" +0x0439: "i" +0x043a: "k" +0x043b: "l" +0x043c: "m" +0x043d: "n" +0x043e: "o" +0x043f: "p" +0x0440: "r" +0x0441: "s" +0x0442: "t" +0x0443: "u" +0x0444: "f" +0x0445: "kh" +0x0446: "ts" +0x0447: "ch" +0x0448: "sh" +0x0449: "shch" +0x044a: "'" +0x044b: "y" +0x044c: "'" +0x044d: "e" +0x044e: "iu" +0x044f: "ia" +0x0450: "ie" +0x0451: "io" +0x0452: "dj" +0x0453: "gj" +0x0454: "ie" +0x0455: "dz" +0x0456: "i" +0x0457: "yi" +0x0458: "j" +0x0459: "lj" +0x045a: "nj" +0x045b: "tsh" +0x045c: "kj" +0x045d: "i" +0x045e: "u" +0x045f: "dzh" +0x0460: "O" +0x0461: "o" +0x0462: "E" +0x0463: "e" +0x0464: "Ie" +0x0465: "ie" +0x0466: "E" +0x0467: "e" +0x0468: "Ie" +0x0469: "ie" +0x046a: "O" +0x046b: "o" +0x046c: "Io" +0x046d: "io" +0x046e: "Ks" +0x046f: "ks" +0x0470: "Ps" +0x0471: "ps" +0x0472: "F" +0x0473: "f" +0x0474: "Y" +0x0475: "y" +0x0476: "Y" +0x0477: "y" +0x0478: "u" +0x0479: "u" +0x047a: "O" +0x047b: "o" +0x047c: "O" +0x047d: "o" +0x047e: "Ot" +0x047f: "ot" +0x0480: "Q" +0x0481: "q" +0x0482: "*1000*" +0x0483: "" +0x0484: "" +0x0485: "" +0x0486: "" +0x0487: "[?]" +0x0488: "*100.000*" +0x0489: "*1.000.000*" +0x048a: "[?]" +0x048b: "[?]" +0x048c: "\"" +0x048d: "\"" +0x048e: "R'" +0x048f: "r'" +0x0490: "G'" +0x0491: "g'" +0x0492: "G'" +0x0493: "g'" +0x0494: "G'" +0x0495: "g'" +0x0496: "Zh'" +0x0497: "zh'" +0x0498: "Z'" +0x0499: "z'" +0x049a: "K'" +0x049b: "k'" +0x049c: "K'" +0x049d: "k'" +0x049e: "K'" +0x049f: "k'" +0x04a0: "K'" +0x04a1: "k'" +0x04a2: "N'" +0x04a3: "n'" +0x04a4: "Ng" +0x04a5: "ng" +0x04a6: "P'" +0x04a7: "p'" +0x04a8: "Kh" +0x04a9: "kh" +0x04aa: "S'" +0x04ab: "s'" +0x04ac: "T'" +0x04ad: "t'" +0x04ae: "U" +0x04af: "u" +0x04b0: "U'" +0x04b1: "u'" +0x04b2: "Kh'" +0x04b3: "kh'" +0x04b4: "Tts" +0x04b5: "tts" +0x04b6: "Ch'" +0x04b7: "ch'" +0x04b8: "Ch'" +0x04b9: "ch'" +0x04ba: "H" +0x04bb: "h" +0x04bc: "Ch" +0x04bd: "ch" +0x04be: "Ch'" +0x04bf: "ch'" +0x04c0: "`" +0x04c1: "Zh" +0x04c2: "zh" +0x04c3: "K'" +0x04c4: "k'" +0x04c5: "[?]" +0x04c6: "[?]" +0x04c7: "N'" +0x04c8: "n'" +0x04c9: "[?]" +0x04ca: "[?]" +0x04cb: "Ch" +0x04cc: "ch" +0x04cd: "[?]" +0x04ce: "[?]" +0x04cf: "[?]" +0x04d0: "a" +0x04d1: "a" +0x04d2: "A" +0x04d3: "a" +0x04d4: "Ae" +0x04d5: "ae" +0x04d6: "Ie" +0x04d7: "ie" +0x04d8: "@" +0x04d9: "@" +0x04da: "@" +0x04db: "@" +0x04dc: "Zh" +0x04dd: "zh" +0x04de: "Z" +0x04df: "z" +0x04e0: "Dz" +0x04e1: "dz" +0x04e2: "I" +0x04e3: "i" +0x04e4: "I" +0x04e5: "i" +0x04e6: "O" +0x04e7: "o" +0x04e8: "O" +0x04e9: "o" +0x04ea: "O" +0x04eb: "o" +0x04ec: "E" +0x04ed: "e" +0x04ee: "U" +0x04ef: "u" +0x04f0: "U" +0x04f1: "u" +0x04f2: "U" +0x04f3: "u" +0x04f4: "Ch" +0x04f5: "ch" +0x04f6: "[?]" +0x04f7: "[?]" +0x04f8: "Y" +0x04f9: "y" +0x04fa: "[?]" +0x04fb: "[?]" +0x04fc: "[?]" +0x04fd: "[?]" +0x04fe: "[?]" +/* x005 */ +0x0500: "[?]" +0x0501: "[?]" +0x0502: "[?]" +0x0503: "[?]" +0x0504: "[?]" +0x0505: "[?]" +0x0506: "[?]" +0x0507: "[?]" +0x0508: "[?]" +0x0509: "[?]" +0x050a: "[?]" +0x050b: "[?]" +0x050c: "[?]" +0x050d: "[?]" +0x050e: "[?]" +0x050f: "[?]" +0x0510: "[?]" +0x0511: "[?]" +0x0512: "[?]" +0x0513: "[?]" +0x0514: "[?]" +0x0515: "[?]" +0x0516: "[?]" +0x0517: "[?]" +0x0518: "[?]" +0x0519: "[?]" +0x051a: "[?]" +0x051b: "[?]" +0x051c: "[?]" +0x051d: "[?]" +0x051e: "[?]" +0x051f: "[?]" +0x0520: "[?]" +0x0521: "[?]" +0x0522: "[?]" +0x0523: "[?]" +0x0524: "[?]" +0x0525: "[?]" +0x0526: "[?]" +0x0527: "[?]" +0x0528: "[?]" +0x0529: "[?]" +0x052a: "[?]" +0x052b: "[?]" +0x052c: "[?]" +0x052d: "[?]" +0x052e: "[?]" +0x052f: "[?]" +0x0530: "[?]" +0x0531: "A" +0x0532: "B" +0x0533: "G" +0x0534: "D" +0x0535: "E" +0x0536: "Z" +0x0537: "E" +0x0538: "E" +0x0539: "T`" +0x053a: "Zh" +0x053b: "I" +0x053c: "L" +0x053d: "Kh" +0x053e: "Ts" +0x053f: "K" +0x0540: "H" +0x0541: "Dz" +0x0542: "Gh" +0x0543: "Ch" +0x0544: "M" +0x0545: "Y" +0x0546: "N" +0x0547: "Sh" +0x0548: "O" +0x0549: "Ch`" +0x054a: "P" +0x054b: "J" +0x054c: "Rh" +0x054d: "S" +0x054e: "V" +0x054f: "T" +0x0550: "R" +0x0551: "Ts`" +0x0552: "W" +0x0553: "P`" +0x0554: "K`" +0x0555: "O" +0x0556: "F" +0x0557: "[?]" +0x0558: "[?]" +0x0559: "<" +0x055a: "'" +0x055b: "/" +0x055c: "!" +0x055d: "," +0x055e: "?" +0x055f: "." +0x0560: "[?]" +0x0561: "a" +0x0562: "b" +0x0563: "g" +0x0564: "d" +0x0565: "e" +0x0566: "z" +0x0567: "e" +0x0568: "e" +0x0569: "t`" +0x056a: "zh" +0x056b: "i" +0x056c: "l" +0x056d: "kh" +0x056e: "ts" +0x056f: "k" +0x0570: "h" +0x0571: "dz" +0x0572: "gh" +0x0573: "ch" +0x0574: "m" +0x0575: "y" +0x0576: "n" +0x0577: "sh" +0x0578: "o" +0x0579: "ch`" +0x057a: "p" +0x057b: "j" +0x057c: "rh" +0x057d: "s" +0x057e: "v" +0x057f: "t" +0x0580: "r" +0x0581: "ts`" +0x0582: "w" +0x0583: "p`" +0x0584: "k`" +0x0585: "o" +0x0586: "f" +0x0587: "ew" +0x0588: "[?]" +0x0589: "." +0x058a: "-" +0x058b: "[?]" +0x058c: "[?]" +0x058d: "[?]" +0x058e: "[?]" +0x058f: "[?]" +0x0590: "[?]" +0x0591: "" +0x0592: "" +0x0593: "" +0x0594: "" +0x0595: "" +0x0596: "" +0x0597: "" +0x0598: "" +0x0599: "" +0x059a: "" +0x059b: "" +0x059c: "" +0x059d: "" +0x059e: "" +0x059f: "" +0x05a0: "" +0x05a1: "" +0x05a2: "[?]" +0x05a3: "" +0x05a4: "" +0x05a5: "" +0x05a6: "" +0x05a7: "" +0x05a8: "" +0x05a9: "" +0x05aa: "" +0x05ab: "" +0x05ac: "" +0x05ad: "" +0x05ae: "" +0x05af: "" +0x05b0: "@" +0x05b1: "e" +0x05b2: "a" +0x05b3: "o" +0x05b4: "i" +0x05b5: "e" +0x05b6: "e" +0x05b7: "a" +0x05b8: "a" +0x05b9: "o" +0x05ba: "[?]" +0x05bb: "u" +0x05bc: "'" +0x05bd: "" +0x05be: "" +0x05bf: "" +0x05c0: "" +0x05c1: "" +0x05c2: "" +0x05c3: ":" +0x05c4: "" +0x05c5: "[?]" +0x05c6: "[?]" +0x05c7: "[?]" +0x05c8: "[?]" +0x05c9: "[?]" +0x05ca: "[?]" +0x05cb: "[?]" +0x05cc: "[?]" +0x05cd: "[?]" +0x05ce: "[?]" +0x05cf: "[?]" +0x05d0: "" +0x05d1: "b" +0x05d2: "g" +0x05d3: "d" +0x05d4: "h" +0x05d5: "v" +0x05d6: "z" +0x05d7: "kh" +0x05d8: "t" +0x05d9: "y" +0x05da: "k" +0x05db: "k" +0x05dc: "l" +0x05dd: "m" +0x05de: "m" +0x05df: "n" +0x05e0: "n" +0x05e1: "s" +0x05e2: "`" +0x05e3: "p" +0x05e4: "p" +0x05e5: "ts" +0x05e6: "ts" +0x05e7: "q" +0x05e8: "r" +0x05e9: "sh" +0x05ea: "t" +0x05eb: "[?]" +0x05ec: "[?]" +0x05ed: "[?]" +0x05ee: "[?]" +0x05ef: "[?]" +0x05f0: "V" +0x05f1: "oy" +0x05f2: "i" +0x05f3: "'" +0x05f4: "\"" +0x05f5: "[?]" +0x05f6: "[?]" +0x05f7: "[?]" +0x05f8: "[?]" +0x05f9: "[?]" +0x05fa: "[?]" +0x05fb: "[?]" +0x05fc: "[?]" +0x05fd: "[?]" +0x05fe: "[?]" +/* x006 */ +0x0600: "[?]" +0x0601: "[?]" +0x0602: "[?]" +0x0603: "[?]" +0x0604: "[?]" +0x0605: "[?]" +0x0606: "[?]" +0x0607: "[?]" +0x0608: "[?]" +0x0609: "[?]" +0x060a: "[?]" +0x060b: "[?]" +0x060c: "," +0x060d: "[?]" +0x060e: "[?]" +0x060f: "[?]" +0x0610: "[?]" +0x0611: "[?]" +0x0612: "[?]" +0x0613: "[?]" +0x0614: "[?]" +0x0615: "[?]" +0x0616: "[?]" +0x0617: "[?]" +0x0618: "[?]" +0x0619: "[?]" +0x061a: "[?]" +0x061b: ";" +0x061c: "[?]" +0x061d: "[?]" +0x061e: "[?]" +0x061f: "?" +0x0620: "[?]" +0x0621: "" +0x0622: "a" +0x0623: "'" +0x0624: "w'" +0x0625: "" +0x0626: "y'" +0x0627: "" +0x0628: "b" +0x0629: "@" +0x062a: "t" +0x062b: "th" +0x062c: "j" +0x062d: "H" +0x062e: "kh" +0x062f: "d" +0x0630: "dh" +0x0631: "r" +0x0632: "z" +0x0633: "s" +0x0634: "sh" +0x0635: "S" +0x0636: "D" +0x0637: "T" +0x0638: "Z" +0x0639: "`" +0x063a: "G" +0x063b: "[?]" +0x063c: "[?]" +0x063d: "[?]" +0x063e: "[?]" +0x063f: "[?]" +0x0640: "" +0x0641: "f" +0x0642: "q" +0x0643: "k" +0x0644: "l" +0x0645: "m" +0x0646: "n" +0x0647: "h" +0x0648: "w" +0x0649: "~" +0x064a: "y" +0x064b: "an" +0x064c: "un" +0x064d: "in" +0x064e: "a" +0x064f: "u" +0x0650: "i" +0x0651: "W" +0x0652: "" +0x0653: "" +0x0654: "'" +0x0655: "'" +0x0656: "[?]" +0x0657: "[?]" +0x0658: "[?]" +0x0659: "[?]" +0x065a: "[?]" +0x065b: "[?]" +0x065c: "[?]" +0x065d: "[?]" +0x065e: "[?]" +0x065f: "[?]" +0x0660: "0" +0x0661: "1" +0x0662: "2" +0x0663: "3" +0x0664: "4" +0x0665: "5" +0x0666: "6" +0x0667: "7" +0x0668: "8" +0x0669: "9" +0x066a: "%" +0x066b: "." +0x066c: "," +0x066d: "*" +0x066e: "[?]" +0x066f: "[?]" +0x0670: "" +0x0671: "'" +0x0672: "'" +0x0673: "'" +0x0674: "" +0x0675: "'" +0x0676: "'w" +0x0677: "'u" +0x0678: "'y" +0x0679: "tt" +0x067a: "tth" +0x067b: "b" +0x067c: "t" +0x067d: "T" +0x067e: "p" +0x067f: "th" +0x0680: "bh" +0x0681: "'h" +0x0682: "H" +0x0683: "ny" +0x0684: "dy" +0x0685: "H" +0x0686: "ch" +0x0687: "cch" +0x0688: "dd" +0x0689: "D" +0x068a: "D" +0x068b: "Dt" +0x068c: "dh" +0x068d: "ddh" +0x068e: "d" +0x068f: "D" +0x0690: "D" +0x0691: "rr" +0x0692: "R" +0x0693: "R" +0x0694: "R" +0x0695: "R" +0x0696: "R" +0x0697: "R" +0x0698: "j" +0x0699: "R" +0x069a: "S" +0x069b: "S" +0x069c: "S" +0x069d: "S" +0x069e: "S" +0x069f: "T" +0x06a0: "GH" +0x06a1: "F" +0x06a2: "F" +0x06a3: "F" +0x06a4: "v" +0x06a5: "f" +0x06a6: "ph" +0x06a7: "Q" +0x06a8: "Q" +0x06a9: "kh" +0x06aa: "k" +0x06ab: "K" +0x06ac: "K" +0x06ad: "ng" +0x06ae: "K" +0x06af: "g" +0x06b0: "G" +0x06b1: "N" +0x06b2: "G" +0x06b3: "G" +0x06b4: "G" +0x06b5: "L" +0x06b6: "L" +0x06b7: "L" +0x06b8: "L" +0x06b9: "N" +0x06ba: "N" +0x06bb: "N" +0x06bc: "N" +0x06bd: "N" +0x06be: "h" +0x06bf: "Ch" +0x06c0: "hy" +0x06c1: "h" +0x06c2: "H" +0x06c3: "@" +0x06c4: "W" +0x06c5: "oe" +0x06c6: "oe" +0x06c7: "u" +0x06c8: "yu" +0x06c9: "yu" +0x06ca: "W" +0x06cb: "v" +0x06cc: "y" +0x06cd: "Y" +0x06ce: "Y" +0x06cf: "W" +0x06d0: "" +0x06d1: "" +0x06d2: "y" +0x06d3: "y'" +0x06d4: "." +0x06d5: "ae" +0x06d6: "" +0x06d7: "" +0x06d8: "" +0x06d9: "" +0x06da: "" +0x06db: "" +0x06dc: "" +0x06dd: "@" +0x06de: "#" +0x06df: "" +0x06e0: "" +0x06e1: "" +0x06e2: "" +0x06e3: "" +0x06e4: "" +0x06e5: "" +0x06e6: "" +0x06e7: "" +0x06e8: "" +0x06e9: "^" +0x06ea: "" +0x06eb: "" +0x06ec: "" +0x06ed: "" +0x06ee: "[?]" +0x06ef: "[?]" +0x06f0: "0" +0x06f1: "1" +0x06f2: "2" +0x06f3: "3" +0x06f4: "4" +0x06f5: "5" +0x06f6: "6" +0x06f7: "7" +0x06f8: "8" +0x06f9: "9" +0x06fa: "Sh" +0x06fb: "D" +0x06fc: "Gh" +0x06fd: "&" +0x06fe: "+m" +/* x007 */ +0x0700: "//" +0x0701: "/" +0x0702: "," +0x0703: "!" +0x0704: "!" +0x0705: "-" +0x0706: "," +0x0707: "," +0x0708: ";" +0x0709: "?" +0x070a: "~" +0x070b: "{" +0x070c: "}" +0x070d: "*" +0x070e: "[?]" +0x070f: "" +0x0710: "'" +0x0711: "" +0x0712: "b" +0x0713: "g" +0x0714: "g" +0x0715: "d" +0x0716: "d" +0x0717: "h" +0x0718: "w" +0x0719: "z" +0x071a: "H" +0x071b: "t" +0x071c: "t" +0x071d: "y" +0x071e: "yh" +0x071f: "k" +0x0720: "l" +0x0721: "m" +0x0722: "n" +0x0723: "s" +0x0724: "s" +0x0725: "`" +0x0726: "p" +0x0727: "p" +0x0728: "S" +0x0729: "q" +0x072a: "r" +0x072b: "sh" +0x072c: "t" +0x072d: "[?]" +0x072e: "[?]" +0x072f: "[?]" +0x0730: "a" +0x0731: "a" +0x0732: "a" +0x0733: "A" +0x0734: "A" +0x0735: "A" +0x0736: "e" +0x0737: "e" +0x0738: "e" +0x0739: "E" +0x073a: "i" +0x073b: "i" +0x073c: "u" +0x073d: "u" +0x073e: "u" +0x073f: "o" +0x0740: "" +0x0741: "`" +0x0742: "'" +0x0743: "" +0x0744: "" +0x0745: "X" +0x0746: "Q" +0x0747: "@" +0x0748: "@" +0x0749: "|" +0x074a: "+" +0x074b: "[?]" +0x074c: "[?]" +0x074d: "[?]" +0x074e: "[?]" +0x074f: "[?]" +0x0750: "[?]" +0x0751: "[?]" +0x0752: "[?]" +0x0753: "[?]" +0x0754: "[?]" +0x0755: "[?]" +0x0756: "[?]" +0x0757: "[?]" +0x0758: "[?]" +0x0759: "[?]" +0x075a: "[?]" +0x075b: "[?]" +0x075c: "[?]" +0x075d: "[?]" +0x075e: "[?]" +0x075f: "[?]" +0x0760: "[?]" +0x0761: "[?]" +0x0762: "[?]" +0x0763: "[?]" +0x0764: "[?]" +0x0765: "[?]" +0x0766: "[?]" +0x0767: "[?]" +0x0768: "[?]" +0x0769: "[?]" +0x076a: "[?]" +0x076b: "[?]" +0x076c: "[?]" +0x076d: "[?]" +0x076e: "[?]" +0x076f: "[?]" +0x0770: "[?]" +0x0771: "[?]" +0x0772: "[?]" +0x0773: "[?]" +0x0774: "[?]" +0x0775: "[?]" +0x0776: "[?]" +0x0777: "[?]" +0x0778: "[?]" +0x0779: "[?]" +0x077a: "[?]" +0x077b: "[?]" +0x077c: "[?]" +0x077d: "[?]" +0x077e: "[?]" +0x077f: "[?]" +0x0780: "h" +0x0781: "sh" +0x0782: "n" +0x0783: "r" +0x0784: "b" +0x0785: "L" +0x0786: "k" +0x0787: "'" +0x0788: "v" +0x0789: "m" +0x078a: "f" +0x078b: "dh" +0x078c: "th" +0x078d: "l" +0x078e: "g" +0x078f: "ny" +0x0790: "s" +0x0791: "d" +0x0792: "z" +0x0793: "t" +0x0794: "y" +0x0795: "p" +0x0796: "j" +0x0797: "ch" +0x0798: "tt" +0x0799: "hh" +0x079a: "kh" +0x079b: "th" +0x079c: "z" +0x079d: "sh" +0x079e: "s" +0x079f: "d" +0x07a0: "t" +0x07a1: "z" +0x07a2: "`" +0x07a3: "gh" +0x07a4: "q" +0x07a5: "w" +0x07a6: "a" +0x07a7: "aa" +0x07a8: "i" +0x07a9: "ee" +0x07aa: "u" +0x07ab: "oo" +0x07ac: "e" +0x07ad: "ey" +0x07ae: "o" +0x07af: "oa" +0x07b0: "" +0x07b1: "[?]" +0x07b2: "[?]" +0x07b3: "[?]" +0x07b4: "[?]" +0x07b5: "[?]" +0x07b6: "[?]" +0x07b7: "[?]" +0x07b8: "[?]" +0x07b9: "[?]" +0x07ba: "[?]" +0x07bb: "[?]" +0x07bc: "[?]" +0x07bd: "[?]" +0x07be: "[?]" +0x07bf: "[?]" +0x07c0: "[?]" +0x07c1: "[?]" +0x07c2: "[?]" +0x07c3: "[?]" +0x07c4: "[?]" +0x07c5: "[?]" +0x07c6: "[?]" +0x07c7: "[?]" +0x07c8: "[?]" +0x07c9: "[?]" +0x07ca: "[?]" +0x07cb: "[?]" +0x07cc: "[?]" +0x07cd: "[?]" +0x07ce: "[?]" +0x07cf: "[?]" +0x07d0: "[?]" +0x07d1: "[?]" +0x07d2: "[?]" +0x07d3: "[?]" +0x07d4: "[?]" +0x07d5: "[?]" +0x07d6: "[?]" +0x07d7: "[?]" +0x07d8: "[?]" +0x07d9: "[?]" +0x07da: "[?]" +0x07db: "[?]" +0x07dc: "[?]" +0x07dd: "[?]" +0x07de: "[?]" +0x07df: "[?]" +0x07e0: "[?]" +0x07e1: "[?]" +0x07e2: "[?]" +0x07e3: "[?]" +0x07e4: "[?]" +0x07e5: "[?]" +0x07e6: "[?]" +0x07e7: "[?]" +0x07e8: "[?]" +0x07e9: "[?]" +0x07ea: "[?]" +0x07eb: "[?]" +0x07ec: "[?]" +0x07ed: "[?]" +0x07ee: "[?]" +0x07ef: "[?]" +0x07f0: "[?]" +0x07f1: "[?]" +0x07f2: "[?]" +0x07f3: "[?]" +0x07f4: "[?]" +0x07f5: "[?]" +0x07f6: "[?]" +0x07f7: "[?]" +0x07f8: "[?]" +0x07f9: "[?]" +0x07fa: "[?]" +0x07fb: "[?]" +0x07fc: "[?]" +0x07fd: "[?]" +0x07fe: "[?]" +/* x009 */ +0x0900: "[?]" +0x0901: "N" +0x0902: "N" +0x0903: "H" +0x0904: "[?]" +0x0905: "a" +0x0906: "aa" +0x0907: "i" +0x0908: "ii" +0x0909: "u" +0x090a: "uu" +0x090b: "R" +0x090c: "L" +0x090d: "eN" +0x090e: "e" +0x090f: "e" +0x0910: "ai" +0x0911: "oN" +0x0912: "o" +0x0913: "o" +0x0914: "au" +0x0915: "k" +0x0916: "kh" +0x0917: "g" +0x0918: "gh" +0x0919: "ng" +0x091a: "c" +0x091b: "ch" +0x091c: "j" +0x091d: "jh" +0x091e: "ny" +0x091f: "tt" +0x0920: "tth" +0x0921: "dd" +0x0922: "ddh" +0x0923: "nn" +0x0924: "t" +0x0925: "th" +0x0926: "d" +0x0927: "dh" +0x0928: "n" +0x0929: "nnn" +0x092a: "p" +0x092b: "ph" +0x092c: "b" +0x092d: "bh" +0x092e: "m" +0x092f: "y" +0x0930: "r" +0x0931: "rr" +0x0932: "l" +0x0933: "l" +0x0934: "lll" +0x0935: "v" +0x0936: "sh" +0x0937: "ss" +0x0938: "s" +0x0939: "h" +0x093a: "[?]" +0x093b: "[?]" +0x093c: "'" +0x093d: "'" +0x093e: "aa" +0x093f: "i" +0x0940: "ii" +0x0941: "u" +0x0942: "uu" +0x0943: "R" +0x0944: "RR" +0x0945: "eN" +0x0946: "e" +0x0947: "e" +0x0948: "ai" +0x0949: "oN" +0x094a: "o" +0x094b: "o" +0x094c: "au" +0x094d: "" +0x094e: "[?]" +0x094f: "[?]" +0x0950: "AUM" +0x0951: "'" +0x0952: "'" +0x0953: "`" +0x0954: "'" +0x0955: "[?]" +0x0956: "[?]" +0x0957: "[?]" +0x0958: "q" +0x0959: "khh" +0x095a: "ghh" +0x095b: "z" +0x095c: "dddh" +0x095d: "rh" +0x095e: "f" +0x095f: "yy" +0x0960: "RR" +0x0961: "LL" +0x0962: "L" +0x0963: "LL" +0x0964: " / " +0x0965: " // " +0x0966: "0" +0x0967: "1" +0x0968: "2" +0x0969: "3" +0x096a: "4" +0x096b: "5" +0x096c: "6" +0x096d: "7" +0x096e: "8" +0x096f: "9" +0x0970: "." +0x0971: "[?]" +0x0972: "[?]" +0x0973: "[?]" +0x0974: "[?]" +0x0975: "[?]" +0x0976: "[?]" +0x0977: "[?]" +0x0978: "[?]" +0x0979: "[?]" +0x097a: "[?]" +0x097b: "[?]" +0x097c: "[?]" +0x097d: "[?]" +0x097e: "[?]" +0x097f: "[?]" +0x0980: "[?]" +0x0981: "N" +0x0982: "N" +0x0983: "H" +0x0984: "[?]" +0x0985: "a" +0x0986: "aa" +0x0987: "i" +0x0988: "ii" +0x0989: "u" +0x098a: "uu" +0x098b: "R" +0x098c: "RR" +0x098d: "[?]" +0x098e: "[?]" +0x098f: "e" +0x0990: "ai" +0x0991: "[?]" +0x0992: "[?]" +0x0993: "o" +0x0994: "au" +0x0995: "k" +0x0996: "kh" +0x0997: "g" +0x0998: "gh" +0x0999: "ng" +0x099a: "c" +0x099b: "ch" +0x099c: "j" +0x099d: "jh" +0x099e: "ny" +0x099f: "tt" +0x09a0: "tth" +0x09a1: "dd" +0x09a2: "ddh" +0x09a3: "nn" +0x09a4: "t" +0x09a5: "th" +0x09a6: "d" +0x09a7: "dh" +0x09a8: "n" +0x09a9: "[?]" +0x09aa: "p" +0x09ab: "ph" +0x09ac: "b" +0x09ad: "bh" +0x09ae: "m" +0x09af: "y" +0x09b0: "r" +0x09b1: "[?]" +0x09b2: "l" +0x09b3: "[?]" +0x09b4: "[?]" +0x09b5: "[?]" +0x09b6: "sh" +0x09b7: "ss" +0x09b8: "s" +0x09b9: "h" +0x09ba: "[?]" +0x09bb: "[?]" +0x09bc: "'" +0x09bd: "[?]" +0x09be: "aa" +0x09bf: "i" +0x09c0: "ii" +0x09c1: "u" +0x09c2: "uu" +0x09c3: "R" +0x09c4: "RR" +0x09c5: "[?]" +0x09c6: "[?]" +0x09c7: "e" +0x09c8: "ai" +0x09c9: "[?]" +0x09ca: "[?]" +0x09cb: "o" +0x09cc: "au" +0x09cd: "" +0x09ce: "[?]" +0x09cf: "[?]" +0x09d0: "[?]" +0x09d1: "[?]" +0x09d2: "[?]" +0x09d3: "[?]" +0x09d4: "[?]" +0x09d5: "[?]" +0x09d6: "[?]" +0x09d7: "+" +0x09d8: "[?]" +0x09d9: "[?]" +0x09da: "[?]" +0x09db: "[?]" +0x09dc: "rr" +0x09dd: "rh" +0x09de: "[?]" +0x09df: "yy" +0x09e0: "RR" +0x09e1: "LL" +0x09e2: "L" +0x09e3: "LL" +0x09e4: "[?]" +0x09e5: "[?]" +0x09e6: "0" +0x09e7: "1" +0x09e8: "2" +0x09e9: "3" +0x09ea: "4" +0x09eb: "5" +0x09ec: "6" +0x09ed: "7" +0x09ee: "8" +0x09ef: "9" +0x09f0: "r'" +0x09f1: "r`" +0x09f2: "Rs" +0x09f3: "Rs" +0x09f4: "1/" +0x09f5: "2/" +0x09f6: "3/" +0x09f7: "4/" +0x09f8: " 1 - 1/" +0x09f9: "/16" +0x09fa: "" +0x09fb: "[?]" +0x09fc: "[?]" +0x09fd: "[?]" +0x09fe: "[?]" +/* x00a */ +0x0a00: "[?]" +0x0a01: "[?]" +0x0a02: "N" +0x0a03: "[?]" +0x0a04: "[?]" +0x0a05: "a" +0x0a06: "aa" +0x0a07: "i" +0x0a08: "ii" +0x0a09: "u" +0x0a0a: "uu" +0x0a0b: "[?]" +0x0a0c: "[?]" +0x0a0d: "[?]" +0x0a0e: "[?]" +0x0a0f: "ee" +0x0a10: "ai" +0x0a11: "[?]" +0x0a12: "[?]" +0x0a13: "oo" +0x0a14: "au" +0x0a15: "k" +0x0a16: "kh" +0x0a17: "g" +0x0a18: "gh" +0x0a19: "ng" +0x0a1a: "c" +0x0a1b: "ch" +0x0a1c: "j" +0x0a1d: "jh" +0x0a1e: "ny" +0x0a1f: "tt" +0x0a20: "tth" +0x0a21: "dd" +0x0a22: "ddh" +0x0a23: "nn" +0x0a24: "t" +0x0a25: "th" +0x0a26: "d" +0x0a27: "dh" +0x0a28: "n" +0x0a29: "[?]" +0x0a2a: "p" +0x0a2b: "ph" +0x0a2c: "b" +0x0a2d: "bb" +0x0a2e: "m" +0x0a2f: "y" +0x0a30: "r" +0x0a31: "[?]" +0x0a32: "l" +0x0a33: "ll" +0x0a34: "[?]" +0x0a35: "v" +0x0a36: "sh" +0x0a37: "[?]" +0x0a38: "s" +0x0a39: "h" +0x0a3a: "[?]" +0x0a3b: "[?]" +0x0a3c: "'" +0x0a3d: "[?]" +0x0a3e: "aa" +0x0a3f: "i" +0x0a40: "ii" +0x0a41: "u" +0x0a42: "uu" +0x0a43: "[?]" +0x0a44: "[?]" +0x0a45: "[?]" +0x0a46: "[?]" +0x0a47: "ee" +0x0a48: "ai" +0x0a49: "[?]" +0x0a4a: "[?]" +0x0a4b: "oo" +0x0a4c: "au" +0x0a4d: "" +0x0a4e: "[?]" +0x0a4f: "[?]" +0x0a50: "[?]" +0x0a51: "[?]" +0x0a52: "[?]" +0x0a53: "[?]" +0x0a54: "[?]" +0x0a55: "[?]" +0x0a56: "[?]" +0x0a57: "[?]" +0x0a58: "[?]" +0x0a59: "khh" +0x0a5a: "ghh" +0x0a5b: "z" +0x0a5c: "rr" +0x0a5d: "[?]" +0x0a5e: "f" +0x0a5f: "[?]" +0x0a60: "[?]" +0x0a61: "[?]" +0x0a62: "[?]" +0x0a63: "[?]" +0x0a64: "[?]" +0x0a65: "[?]" +0x0a66: "0" +0x0a67: "1" +0x0a68: "2" +0x0a69: "3" +0x0a6a: "4" +0x0a6b: "5" +0x0a6c: "6" +0x0a6d: "7" +0x0a6e: "8" +0x0a6f: "9" +0x0a70: "N" +0x0a71: "H" +0x0a72: "" +0x0a73: "" +0x0a74: "G.E.O." +0x0a75: "[?]" +0x0a76: "[?]" +0x0a77: "[?]" +0x0a78: "[?]" +0x0a79: "[?]" +0x0a7a: "[?]" +0x0a7b: "[?]" +0x0a7c: "[?]" +0x0a7d: "[?]" +0x0a7e: "[?]" +0x0a7f: "[?]" +0x0a80: "[?]" +0x0a81: "N" +0x0a82: "N" +0x0a83: "H" +0x0a84: "[?]" +0x0a85: "a" +0x0a86: "aa" +0x0a87: "i" +0x0a88: "ii" +0x0a89: "u" +0x0a8a: "uu" +0x0a8b: "R" +0x0a8c: "[?]" +0x0a8d: "eN" +0x0a8e: "[?]" +0x0a8f: "e" +0x0a90: "ai" +0x0a91: "oN" +0x0a92: "[?]" +0x0a93: "o" +0x0a94: "au" +0x0a95: "k" +0x0a96: "kh" +0x0a97: "g" +0x0a98: "gh" +0x0a99: "ng" +0x0a9a: "c" +0x0a9b: "ch" +0x0a9c: "j" +0x0a9d: "jh" +0x0a9e: "ny" +0x0a9f: "tt" +0x0aa0: "tth" +0x0aa1: "dd" +0x0aa2: "ddh" +0x0aa3: "nn" +0x0aa4: "t" +0x0aa5: "th" +0x0aa6: "d" +0x0aa7: "dh" +0x0aa8: "n" +0x0aa9: "[?]" +0x0aaa: "p" +0x0aab: "ph" +0x0aac: "b" +0x0aad: "bh" +0x0aae: "m" +0x0aaf: "ya" +0x0ab0: "r" +0x0ab1: "[?]" +0x0ab2: "l" +0x0ab3: "ll" +0x0ab4: "[?]" +0x0ab5: "v" +0x0ab6: "sh" +0x0ab7: "ss" +0x0ab8: "s" +0x0ab9: "h" +0x0aba: "[?]" +0x0abb: "[?]" +0x0abc: "'" +0x0abd: "'" +0x0abe: "aa" +0x0abf: "i" +0x0ac0: "ii" +0x0ac1: "u" +0x0ac2: "uu" +0x0ac3: "R" +0x0ac4: "RR" +0x0ac5: "eN" +0x0ac6: "[?]" +0x0ac7: "e" +0x0ac8: "ai" +0x0ac9: "oN" +0x0aca: "[?]" +0x0acb: "o" +0x0acc: "au" +0x0acd: "" +0x0ace: "[?]" +0x0acf: "[?]" +0x0ad0: "AUM" +0x0ad1: "[?]" +0x0ad2: "[?]" +0x0ad3: "[?]" +0x0ad4: "[?]" +0x0ad5: "[?]" +0x0ad6: "[?]" +0x0ad7: "[?]" +0x0ad8: "[?]" +0x0ad9: "[?]" +0x0ada: "[?]" +0x0adb: "[?]" +0x0adc: "[?]" +0x0add: "[?]" +0x0ade: "[?]" +0x0adf: "[?]" +0x0ae0: "RR" +0x0ae1: "[?]" +0x0ae2: "[?]" +0x0ae3: "[?]" +0x0ae4: "[?]" +0x0ae5: "[?]" +0x0ae6: "0" +0x0ae7: "1" +0x0ae8: "2" +0x0ae9: "3" +0x0aea: "4" +0x0aeb: "5" +0x0aec: "6" +0x0aed: "7" +0x0aee: "8" +0x0aef: "9" +0x0af0: "[?]" +0x0af1: "[?]" +0x0af2: "[?]" +0x0af3: "[?]" +0x0af4: "[?]" +0x0af5: "[?]" +0x0af6: "[?]" +0x0af7: "[?]" +0x0af8: "[?]" +0x0af9: "[?]" +0x0afa: "[?]" +0x0afb: "[?]" +0x0afc: "[?]" +0x0afd: "[?]" +0x0afe: "[?]" +/* x00b */ +0x0b00: "[?]" +0x0b01: "N" +0x0b02: "N" +0x0b03: "H" +0x0b04: "[?]" +0x0b05: "a" +0x0b06: "aa" +0x0b07: "i" +0x0b08: "ii" +0x0b09: "u" +0x0b0a: "uu" +0x0b0b: "R" +0x0b0c: "L" +0x0b0d: "[?]" +0x0b0e: "[?]" +0x0b0f: "e" +0x0b10: "ai" +0x0b11: "[?]" +0x0b12: "[?]" +0x0b13: "o" +0x0b14: "au" +0x0b15: "k" +0x0b16: "kh" +0x0b17: "g" +0x0b18: "gh" +0x0b19: "ng" +0x0b1a: "c" +0x0b1b: "ch" +0x0b1c: "j" +0x0b1d: "jh" +0x0b1e: "ny" +0x0b1f: "tt" +0x0b20: "tth" +0x0b21: "dd" +0x0b22: "ddh" +0x0b23: "nn" +0x0b24: "t" +0x0b25: "th" +0x0b26: "d" +0x0b27: "dh" +0x0b28: "n" +0x0b29: "[?]" +0x0b2a: "p" +0x0b2b: "ph" +0x0b2c: "b" +0x0b2d: "bh" +0x0b2e: "m" +0x0b2f: "y" +0x0b30: "r" +0x0b31: "[?]" +0x0b32: "l" +0x0b33: "ll" +0x0b34: "[?]" +0x0b35: "" +0x0b36: "sh" +0x0b37: "ss" +0x0b38: "s" +0x0b39: "h" +0x0b3a: "[?]" +0x0b3b: "[?]" +0x0b3c: "'" +0x0b3d: "'" +0x0b3e: "aa" +0x0b3f: "i" +0x0b40: "ii" +0x0b41: "u" +0x0b42: "uu" +0x0b43: "R" +0x0b44: "[?]" +0x0b45: "[?]" +0x0b46: "[?]" +0x0b47: "e" +0x0b48: "ai" +0x0b49: "[?]" +0x0b4a: "[?]" +0x0b4b: "o" +0x0b4c: "au" +0x0b4d: "" +0x0b4e: "[?]" +0x0b4f: "[?]" +0x0b50: "[?]" +0x0b51: "[?]" +0x0b52: "[?]" +0x0b53: "[?]" +0x0b54: "[?]" +0x0b55: "[?]" +0x0b56: "+" +0x0b57: "+" +0x0b58: "[?]" +0x0b59: "[?]" +0x0b5a: "[?]" +0x0b5b: "[?]" +0x0b5c: "rr" +0x0b5d: "rh" +0x0b5e: "[?]" +0x0b5f: "yy" +0x0b60: "RR" +0x0b61: "LL" +0x0b62: "[?]" +0x0b63: "[?]" +0x0b64: "[?]" +0x0b65: "[?]" +0x0b66: "0" +0x0b67: "1" +0x0b68: "2" +0x0b69: "3" +0x0b6a: "4" +0x0b6b: "5" +0x0b6c: "6" +0x0b6d: "7" +0x0b6e: "8" +0x0b6f: "9" +0x0b70: "" +0x0b71: "[?]" +0x0b72: "[?]" +0x0b73: "[?]" +0x0b74: "[?]" +0x0b75: "[?]" +0x0b76: "[?]" +0x0b77: "[?]" +0x0b78: "[?]" +0x0b79: "[?]" +0x0b7a: "[?]" +0x0b7b: "[?]" +0x0b7c: "[?]" +0x0b7d: "[?]" +0x0b7e: "[?]" +0x0b7f: "[?]" +0x0b80: "[?]" +0x0b81: "[?]" +0x0b82: "N" +0x0b83: "H" +0x0b84: "[?]" +0x0b85: "a" +0x0b86: "aa" +0x0b87: "i" +0x0b88: "ii" +0x0b89: "u" +0x0b8a: "uu" +0x0b8b: "[?]" +0x0b8c: "[?]" +0x0b8d: "[?]" +0x0b8e: "e" +0x0b8f: "ee" +0x0b90: "ai" +0x0b91: "[?]" +0x0b92: "o" +0x0b93: "oo" +0x0b94: "au" +0x0b95: "k" +0x0b96: "[?]" +0x0b97: "[?]" +0x0b98: "[?]" +0x0b99: "ng" +0x0b9a: "c" +0x0b9b: "[?]" +0x0b9c: "j" +0x0b9d: "[?]" +0x0b9e: "ny" +0x0b9f: "tt" +0x0ba0: "[?]" +0x0ba1: "[?]" +0x0ba2: "[?]" +0x0ba3: "nn" +0x0ba4: "t" +0x0ba5: "[?]" +0x0ba6: "[?]" +0x0ba7: "[?]" +0x0ba8: "n" +0x0ba9: "nnn" +0x0baa: "p" +0x0bab: "[?]" +0x0bac: "[?]" +0x0bad: "[?]" +0x0bae: "m" +0x0baf: "y" +0x0bb0: "r" +0x0bb1: "rr" +0x0bb2: "l" +0x0bb3: "ll" +0x0bb4: "lll" +0x0bb5: "v" +0x0bb6: "[?]" +0x0bb7: "ss" +0x0bb8: "s" +0x0bb9: "h" +0x0bba: "[?]" +0x0bbb: "[?]" +0x0bbc: "[?]" +0x0bbd: "[?]" +0x0bbe: "aa" +0x0bbf: "i" +0x0bc0: "ii" +0x0bc1: "u" +0x0bc2: "uu" +0x0bc3: "[?]" +0x0bc4: "[?]" +0x0bc5: "[?]" +0x0bc6: "e" +0x0bc7: "ee" +0x0bc8: "ai" +0x0bc9: "[?]" +0x0bca: "o" +0x0bcb: "oo" +0x0bcc: "au" +0x0bcd: "" +0x0bce: "[?]" +0x0bcf: "[?]" +0x0bd0: "[?]" +0x0bd1: "[?]" +0x0bd2: "[?]" +0x0bd3: "[?]" +0x0bd4: "[?]" +0x0bd5: "[?]" +0x0bd6: "[?]" +0x0bd7: "+" +0x0bd8: "[?]" +0x0bd9: "[?]" +0x0bda: "[?]" +0x0bdb: "[?]" +0x0bdc: "[?]" +0x0bdd: "[?]" +0x0bde: "[?]" +0x0bdf: "[?]" +0x0be0: "[?]" +0x0be1: "[?]" +0x0be2: "[?]" +0x0be3: "[?]" +0x0be4: "[?]" +0x0be5: "[?]" +0x0be6: "0" +0x0be7: "1" +0x0be8: "2" +0x0be9: "3" +0x0bea: "4" +0x0beb: "5" +0x0bec: "6" +0x0bed: "7" +0x0bee: "8" +0x0bef: "9" +0x0bf0: "+10+" +0x0bf1: "+100+" +0x0bf2: "+1000+" +0x0bf3: "[?]" +0x0bf4: "[?]" +0x0bf5: "[?]" +0x0bf6: "[?]" +0x0bf7: "[?]" +0x0bf8: "[?]" +0x0bf9: "[?]" +0x0bfa: "[?]" +0x0bfb: "[?]" +0x0bfc: "[?]" +0x0bfd: "[?]" +0x0bfe: "[?]" +/* x00c */ +0x0c00: "[?]" +0x0c01: "N" +0x0c02: "N" +0x0c03: "H" +0x0c04: "[?]" +0x0c05: "a" +0x0c06: "aa" +0x0c07: "i" +0x0c08: "ii" +0x0c09: "u" +0x0c0a: "uu" +0x0c0b: "R" +0x0c0c: "L" +0x0c0d: "[?]" +0x0c0e: "e" +0x0c0f: "ee" +0x0c10: "ai" +0x0c11: "[?]" +0x0c12: "o" +0x0c13: "oo" +0x0c14: "au" +0x0c15: "k" +0x0c16: "kh" +0x0c17: "g" +0x0c18: "gh" +0x0c19: "ng" +0x0c1a: "c" +0x0c1b: "ch" +0x0c1c: "j" +0x0c1d: "jh" +0x0c1e: "ny" +0x0c1f: "tt" +0x0c20: "tth" +0x0c21: "dd" +0x0c22: "ddh" +0x0c23: "nn" +0x0c24: "t" +0x0c25: "th" +0x0c26: "d" +0x0c27: "dh" +0x0c28: "n" +0x0c29: "[?]" +0x0c2a: "p" +0x0c2b: "ph" +0x0c2c: "b" +0x0c2d: "bh" +0x0c2e: "m" +0x0c2f: "y" +0x0c30: "r" +0x0c31: "rr" +0x0c32: "l" +0x0c33: "ll" +0x0c34: "[?]" +0x0c35: "v" +0x0c36: "sh" +0x0c37: "ss" +0x0c38: "s" +0x0c39: "h" +0x0c3a: "[?]" +0x0c3b: "[?]" +0x0c3c: "[?]" +0x0c3d: "[?]" +0x0c3e: "aa" +0x0c3f: "i" +0x0c40: "ii" +0x0c41: "u" +0x0c42: "uu" +0x0c43: "R" +0x0c44: "RR" +0x0c45: "[?]" +0x0c46: "e" +0x0c47: "ee" +0x0c48: "ai" +0x0c49: "[?]" +0x0c4a: "o" +0x0c4b: "oo" +0x0c4c: "au" +0x0c4d: "" +0x0c4e: "[?]" +0x0c4f: "[?]" +0x0c50: "[?]" +0x0c51: "[?]" +0x0c52: "[?]" +0x0c53: "[?]" +0x0c54: "[?]" +0x0c55: "+" +0x0c56: "+" +0x0c57: "[?]" +0x0c58: "[?]" +0x0c59: "[?]" +0x0c5a: "[?]" +0x0c5b: "[?]" +0x0c5c: "[?]" +0x0c5d: "[?]" +0x0c5e: "[?]" +0x0c5f: "[?]" +0x0c60: "RR" +0x0c61: "LL" +0x0c62: "[?]" +0x0c63: "[?]" +0x0c64: "[?]" +0x0c65: "[?]" +0x0c66: "0" +0x0c67: "1" +0x0c68: "2" +0x0c69: "3" +0x0c6a: "4" +0x0c6b: "5" +0x0c6c: "6" +0x0c6d: "7" +0x0c6e: "8" +0x0c6f: "9" +0x0c70: "[?]" +0x0c71: "[?]" +0x0c72: "[?]" +0x0c73: "[?]" +0x0c74: "[?]" +0x0c75: "[?]" +0x0c76: "[?]" +0x0c77: "[?]" +0x0c78: "[?]" +0x0c79: "[?]" +0x0c7a: "[?]" +0x0c7b: "[?]" +0x0c7c: "[?]" +0x0c7d: "[?]" +0x0c7e: "[?]" +0x0c7f: "[?]" +0x0c80: "[?]" +0x0c81: "[?]" +0x0c82: "N" +0x0c83: "H" +0x0c84: "[?]" +0x0c85: "a" +0x0c86: "aa" +0x0c87: "i" +0x0c88: "ii" +0x0c89: "u" +0x0c8a: "uu" +0x0c8b: "R" +0x0c8c: "L" +0x0c8d: "[?]" +0x0c8e: "e" +0x0c8f: "ee" +0x0c90: "ai" +0x0c91: "[?]" +0x0c92: "o" +0x0c93: "oo" +0x0c94: "au" +0x0c95: "k" +0x0c96: "kh" +0x0c97: "g" +0x0c98: "gh" +0x0c99: "ng" +0x0c9a: "c" +0x0c9b: "ch" +0x0c9c: "j" +0x0c9d: "jh" +0x0c9e: "ny" +0x0c9f: "tt" +0x0ca0: "tth" +0x0ca1: "dd" +0x0ca2: "ddh" +0x0ca3: "nn" +0x0ca4: "t" +0x0ca5: "th" +0x0ca6: "d" +0x0ca7: "dh" +0x0ca8: "n" +0x0ca9: "[?]" +0x0caa: "p" +0x0cab: "ph" +0x0cac: "b" +0x0cad: "bh" +0x0cae: "m" +0x0caf: "y" +0x0cb0: "r" +0x0cb1: "rr" +0x0cb2: "l" +0x0cb3: "ll" +0x0cb4: "[?]" +0x0cb5: "v" +0x0cb6: "sh" +0x0cb7: "ss" +0x0cb8: "s" +0x0cb9: "h" +0x0cba: "[?]" +0x0cbb: "[?]" +0x0cbc: "[?]" +0x0cbd: "[?]" +0x0cbe: "aa" +0x0cbf: "i" +0x0cc0: "ii" +0x0cc1: "u" +0x0cc2: "uu" +0x0cc3: "R" +0x0cc4: "RR" +0x0cc5: "[?]" +0x0cc6: "e" +0x0cc7: "ee" +0x0cc8: "ai" +0x0cc9: "[?]" +0x0cca: "o" +0x0ccb: "oo" +0x0ccc: "au" +0x0ccd: "" +0x0cce: "[?]" +0x0ccf: "[?]" +0x0cd0: "[?]" +0x0cd1: "[?]" +0x0cd2: "[?]" +0x0cd3: "[?]" +0x0cd4: "[?]" +0x0cd5: "+" +0x0cd6: "+" +0x0cd7: "[?]" +0x0cd8: "[?]" +0x0cd9: "[?]" +0x0cda: "[?]" +0x0cdb: "[?]" +0x0cdc: "[?]" +0x0cdd: "[?]" +0x0cde: "lll" +0x0cdf: "[?]" +0x0ce0: "RR" +0x0ce1: "LL" +0x0ce2: "[?]" +0x0ce3: "[?]" +0x0ce4: "[?]" +0x0ce5: "[?]" +0x0ce6: "0" +0x0ce7: "1" +0x0ce8: "2" +0x0ce9: "3" +0x0cea: "4" +0x0ceb: "5" +0x0cec: "6" +0x0ced: "7" +0x0cee: "8" +0x0cef: "9" +0x0cf0: "[?]" +0x0cf1: "[?]" +0x0cf2: "[?]" +0x0cf3: "[?]" +0x0cf4: "[?]" +0x0cf5: "[?]" +0x0cf6: "[?]" +0x0cf7: "[?]" +0x0cf8: "[?]" +0x0cf9: "[?]" +0x0cfa: "[?]" +0x0cfb: "[?]" +0x0cfc: "[?]" +0x0cfd: "[?]" +0x0cfe: "[?]" +/* x00d */ +0x0d00: "[?]" +0x0d01: "[?]" +0x0d02: "N" +0x0d03: "H" +0x0d04: "[?]" +0x0d05: "a" +0x0d06: "aa" +0x0d07: "i" +0x0d08: "ii" +0x0d09: "u" +0x0d0a: "uu" +0x0d0b: "R" +0x0d0c: "L" +0x0d0d: "[?]" +0x0d0e: "e" +0x0d0f: "ee" +0x0d10: "ai" +0x0d11: "[?]" +0x0d12: "o" +0x0d13: "oo" +0x0d14: "au" +0x0d15: "k" +0x0d16: "kh" +0x0d17: "g" +0x0d18: "gh" +0x0d19: "ng" +0x0d1a: "c" +0x0d1b: "ch" +0x0d1c: "j" +0x0d1d: "jh" +0x0d1e: "ny" +0x0d1f: "tt" +0x0d20: "tth" +0x0d21: "dd" +0x0d22: "ddh" +0x0d23: "nn" +0x0d24: "t" +0x0d25: "th" +0x0d26: "d" +0x0d27: "dh" +0x0d28: "n" +0x0d29: "[?]" +0x0d2a: "p" +0x0d2b: "ph" +0x0d2c: "b" +0x0d2d: "bh" +0x0d2e: "m" +0x0d2f: "y" +0x0d30: "r" +0x0d31: "rr" +0x0d32: "l" +0x0d33: "ll" +0x0d34: "lll" +0x0d35: "v" +0x0d36: "sh" +0x0d37: "ss" +0x0d38: "s" +0x0d39: "h" +0x0d3a: "[?]" +0x0d3b: "[?]" +0x0d3c: "[?]" +0x0d3d: "[?]" +0x0d3e: "aa" +0x0d3f: "i" +0x0d40: "ii" +0x0d41: "u" +0x0d42: "uu" +0x0d43: "R" +0x0d44: "[?]" +0x0d45: "[?]" +0x0d46: "e" +0x0d47: "ee" +0x0d48: "ai" +0x0d49: "" +0x0d4a: "o" +0x0d4b: "oo" +0x0d4c: "au" +0x0d4d: "" +0x0d4e: "[?]" +0x0d4f: "[?]" +0x0d50: "[?]" +0x0d51: "[?]" +0x0d52: "[?]" +0x0d53: "[?]" +0x0d54: "[?]" +0x0d55: "[?]" +0x0d56: "[?]" +0x0d57: "+" +0x0d58: "[?]" +0x0d59: "[?]" +0x0d5a: "[?]" +0x0d5b: "[?]" +0x0d5c: "[?]" +0x0d5d: "[?]" +0x0d5e: "[?]" +0x0d5f: "[?]" +0x0d60: "RR" +0x0d61: "LL" +0x0d62: "[?]" +0x0d63: "[?]" +0x0d64: "[?]" +0x0d65: "[?]" +0x0d66: "0" +0x0d67: "1" +0x0d68: "2" +0x0d69: "3" +0x0d6a: "4" +0x0d6b: "5" +0x0d6c: "6" +0x0d6d: "7" +0x0d6e: "8" +0x0d6f: "9" +0x0d70: "[?]" +0x0d71: "[?]" +0x0d72: "[?]" +0x0d73: "[?]" +0x0d74: "[?]" +0x0d75: "[?]" +0x0d76: "[?]" +0x0d77: "[?]" +0x0d78: "[?]" +0x0d79: "[?]" +0x0d7a: "[?]" +0x0d7b: "[?]" +0x0d7c: "[?]" +0x0d7d: "[?]" +0x0d7e: "[?]" +0x0d7f: "[?]" +0x0d80: "[?]" +0x0d81: "[?]" +0x0d82: "N" +0x0d83: "H" +0x0d84: "[?]" +0x0d85: "a" +0x0d86: "aa" +0x0d87: "ae" +0x0d88: "aae" +0x0d89: "i" +0x0d8a: "ii" +0x0d8b: "u" +0x0d8c: "uu" +0x0d8d: "R" +0x0d8e: "RR" +0x0d8f: "L" +0x0d90: "LL" +0x0d91: "e" +0x0d92: "ee" +0x0d93: "ai" +0x0d94: "o" +0x0d95: "oo" +0x0d96: "au" +0x0d97: "[?]" +0x0d98: "[?]" +0x0d99: "[?]" +0x0d9a: "k" +0x0d9b: "kh" +0x0d9c: "g" +0x0d9d: "gh" +0x0d9e: "ng" +0x0d9f: "nng" +0x0da0: "c" +0x0da1: "ch" +0x0da2: "j" +0x0da3: "jh" +0x0da4: "ny" +0x0da5: "jny" +0x0da6: "nyj" +0x0da7: "tt" +0x0da8: "tth" +0x0da9: "dd" +0x0daa: "ddh" +0x0dab: "nn" +0x0dac: "nndd" +0x0dad: "t" +0x0dae: "th" +0x0daf: "d" +0x0db0: "dh" +0x0db1: "n" +0x0db2: "[?]" +0x0db3: "nd" +0x0db4: "p" +0x0db5: "ph" +0x0db6: "b" +0x0db7: "bh" +0x0db8: "m" +0x0db9: "mb" +0x0dba: "y" +0x0dbb: "r" +0x0dbc: "[?]" +0x0dbd: "l" +0x0dbe: "[?]" +0x0dbf: "[?]" +0x0dc0: "v" +0x0dc1: "sh" +0x0dc2: "ss" +0x0dc3: "s" +0x0dc4: "h" +0x0dc5: "ll" +0x0dc6: "f" +0x0dc7: "[?]" +0x0dc8: "[?]" +0x0dc9: "[?]" +0x0dca: "" +0x0dcb: "[?]" +0x0dcc: "[?]" +0x0dcd: "[?]" +0x0dce: "[?]" +0x0dcf: "aa" +0x0dd0: "ae" +0x0dd1: "aae" +0x0dd2: "i" +0x0dd3: "ii" +0x0dd4: "u" +0x0dd5: "[?]" +0x0dd6: "uu" +0x0dd7: "[?]" +0x0dd8: "R" +0x0dd9: "e" +0x0dda: "ee" +0x0ddb: "ai" +0x0ddc: "o" +0x0ddd: "oo" +0x0dde: "au" +0x0ddf: "L" +0x0de0: "[?]" +0x0de1: "[?]" +0x0de2: "[?]" +0x0de3: "[?]" +0x0de4: "[?]" +0x0de5: "[?]" +0x0de6: "[?]" +0x0de7: "[?]" +0x0de8: "[?]" +0x0de9: "[?]" +0x0dea: "[?]" +0x0deb: "[?]" +0x0dec: "[?]" +0x0ded: "[?]" +0x0dee: "[?]" +0x0def: "[?]" +0x0df0: "[?]" +0x0df1: "[?]" +0x0df2: "RR" +0x0df3: "LL" +0x0df4: " . " +0x0df5: "[?]" +0x0df6: "[?]" +0x0df7: "[?]" +0x0df8: "[?]" +0x0df9: "[?]" +0x0dfa: "[?]" +0x0dfb: "[?]" +0x0dfc: "[?]" +0x0dfd: "[?]" +0x0dfe: "[?]" +/* x00e */ +0x0e00: "[?]" +0x0e01: "k" +0x0e02: "kh" +0x0e03: "kh" +0x0e04: "kh" +0x0e05: "kh" +0x0e06: "kh" +0x0e07: "ng" +0x0e08: "cch" +0x0e09: "ch" +0x0e0a: "ch" +0x0e0b: "ch" +0x0e0c: "ch" +0x0e0d: "y" +0x0e0e: "d" +0x0e0f: "t" +0x0e10: "th" +0x0e11: "th" +0x0e12: "th" +0x0e13: "n" +0x0e14: "d" +0x0e15: "t" +0x0e16: "th" +0x0e17: "th" +0x0e18: "th" +0x0e19: "n" +0x0e1a: "b" +0x0e1b: "p" +0x0e1c: "ph" +0x0e1d: "f" +0x0e1e: "ph" +0x0e1f: "f" +0x0e20: "ph" +0x0e21: "m" +0x0e22: "y" +0x0e23: "r" +0x0e24: "R" +0x0e25: "l" +0x0e26: "L" +0x0e27: "w" +0x0e28: "s" +0x0e29: "s" +0x0e2a: "s" +0x0e2b: "h" +0x0e2c: "l" +0x0e2d: "`" +0x0e2e: "h" +0x0e2f: "~" +0x0e30: "a" +0x0e31: "a" +0x0e32: "aa" +0x0e33: "am" +0x0e34: "i" +0x0e35: "ii" +0x0e36: "ue" +0x0e37: "uue" +0x0e38: "u" +0x0e39: "uu" +0x0e3a: "'" +0x0e3b: "[?]" +0x0e3c: "[?]" +0x0e3d: "[?]" +0x0e3e: "[?]" +0x0e3f: "Bh." +0x0e40: "e" +0x0e41: "ae" +0x0e42: "o" +0x0e43: "ai" +0x0e44: "ai" +0x0e45: "ao" +0x0e46: "+" +0x0e47: "" +0x0e48: "" +0x0e49: "" +0x0e4a: "" +0x0e4b: "" +0x0e4c: "" +0x0e4d: "M" +0x0e4e: "" +0x0e4f: " * " +0x0e50: "0" +0x0e51: "1" +0x0e52: "2" +0x0e53: "3" +0x0e54: "4" +0x0e55: "5" +0x0e56: "6" +0x0e57: "7" +0x0e58: "8" +0x0e59: "9" +0x0e5a: " // " +0x0e5b: " /// " +0x0e5c: "[?]" +0x0e5d: "[?]" +0x0e5e: "[?]" +0x0e5f: "[?]" +0x0e60: "[?]" +0x0e61: "[?]" +0x0e62: "[?]" +0x0e63: "[?]" +0x0e64: "[?]" +0x0e65: "[?]" +0x0e66: "[?]" +0x0e67: "[?]" +0x0e68: "[?]" +0x0e69: "[?]" +0x0e6a: "[?]" +0x0e6b: "[?]" +0x0e6c: "[?]" +0x0e6d: "[?]" +0x0e6e: "[?]" +0x0e6f: "[?]" +0x0e70: "[?]" +0x0e71: "[?]" +0x0e72: "[?]" +0x0e73: "[?]" +0x0e74: "[?]" +0x0e75: "[?]" +0x0e76: "[?]" +0x0e77: "[?]" +0x0e78: "[?]" +0x0e79: "[?]" +0x0e7a: "[?]" +0x0e7b: "[?]" +0x0e7c: "[?]" +0x0e7d: "[?]" +0x0e7e: "[?]" +0x0e7f: "[?]" +0x0e80: "[?]" +0x0e81: "k" +0x0e82: "kh" +0x0e83: "[?]" +0x0e84: "kh" +0x0e85: "[?]" +0x0e86: "[?]" +0x0e87: "ng" +0x0e88: "ch" +0x0e89: "[?]" +0x0e8a: "s" +0x0e8b: "[?]" +0x0e8c: "[?]" +0x0e8d: "ny" +0x0e8e: "[?]" +0x0e8f: "[?]" +0x0e90: "[?]" +0x0e91: "[?]" +0x0e92: "[?]" +0x0e93: "[?]" +0x0e94: "d" +0x0e95: "h" +0x0e96: "th" +0x0e97: "th" +0x0e98: "[?]" +0x0e99: "n" +0x0e9a: "b" +0x0e9b: "p" +0x0e9c: "ph" +0x0e9d: "f" +0x0e9e: "ph" +0x0e9f: "f" +0x0ea0: "[?]" +0x0ea1: "m" +0x0ea2: "y" +0x0ea3: "r" +0x0ea4: "[?]" +0x0ea5: "l" +0x0ea6: "[?]" +0x0ea7: "w" +0x0ea8: "[?]" +0x0ea9: "[?]" +0x0eaa: "s" +0x0eab: "h" +0x0eac: "[?]" +0x0ead: "`" +0x0eae: "" +0x0eaf: "~" +0x0eb0: "a" +0x0eb1: "" +0x0eb2: "aa" +0x0eb3: "am" +0x0eb4: "i" +0x0eb5: "ii" +0x0eb6: "y" +0x0eb7: "yy" +0x0eb8: "u" +0x0eb9: "uu" +0x0eba: "[?]" +0x0ebb: "o" +0x0ebc: "l" +0x0ebd: "ny" +0x0ebe: "[?]" +0x0ebf: "[?]" +0x0ec0: "e" +0x0ec1: "ei" +0x0ec2: "o" +0x0ec3: "ay" +0x0ec4: "ai" +0x0ec5: "[?]" +0x0ec6: "+" +0x0ec7: "[?]" +0x0ec8: "" +0x0ec9: "" +0x0eca: "" +0x0ecb: "" +0x0ecc: "" +0x0ecd: "M" +0x0ece: "[?]" +0x0ecf: "[?]" +0x0ed0: "0" +0x0ed1: "1" +0x0ed2: "2" +0x0ed3: "3" +0x0ed4: "4" +0x0ed5: "5" +0x0ed6: "6" +0x0ed7: "7" +0x0ed8: "8" +0x0ed9: "9" +0x0eda: "[?]" +0x0edb: "[?]" +0x0edc: "hn" +0x0edd: "hm" +0x0ede: "[?]" +0x0edf: "[?]" +0x0ee0: "[?]" +0x0ee1: "[?]" +0x0ee2: "[?]" +0x0ee3: "[?]" +0x0ee4: "[?]" +0x0ee5: "[?]" +0x0ee6: "[?]" +0x0ee7: "[?]" +0x0ee8: "[?]" +0x0ee9: "[?]" +0x0eea: "[?]" +0x0eeb: "[?]" +0x0eec: "[?]" +0x0eed: "[?]" +0x0eee: "[?]" +0x0eef: "[?]" +0x0ef0: "[?]" +0x0ef1: "[?]" +0x0ef2: "[?]" +0x0ef3: "[?]" +0x0ef4: "[?]" +0x0ef5: "[?]" +0x0ef6: "[?]" +0x0ef7: "[?]" +0x0ef8: "[?]" +0x0ef9: "[?]" +0x0efa: "[?]" +0x0efb: "[?]" +0x0efc: "[?]" +0x0efd: "[?]" +0x0efe: "[?]" +/* x00f */ +0x0f00: "AUM" +0x0f01: "" +0x0f02: "" +0x0f03: "" +0x0f04: "" +0x0f05: "" +0x0f06: "" +0x0f07: "" +0x0f08: " // " +0x0f09: " * " +0x0f0a: "" +0x0f0b: "-" +0x0f0c: " / " +0x0f0d: " / " +0x0f0e: " // " +0x0f0f: " -/ " +0x0f10: " +/ " +0x0f11: " X/ " +0x0f12: " /XX/ " +0x0f13: " /X/ " +0x0f14: ", " +0x0f15: "" +0x0f16: "" +0x0f17: "" +0x0f18: "" +0x0f19: "" +0x0f1a: "" +0x0f1b: "" +0x0f1c: "" +0x0f1d: "" +0x0f1e: "" +0x0f1f: "" +0x0f20: "0" +0x0f21: "1" +0x0f22: "2" +0x0f23: "3" +0x0f24: "4" +0x0f25: "5" +0x0f26: "6" +0x0f27: "7" +0x0f28: "8" +0x0f29: "9" +0x0f2a: ".5" +0x0f2b: "1.5" +0x0f2c: "2.5" +0x0f2d: "3.5" +0x0f2e: "4.5" +0x0f2f: "5.5" +0x0f30: "6.5" +0x0f31: "7.5" +0x0f32: "8.5" +0x0f33: "-.5" +0x0f34: "+" +0x0f35: "*" +0x0f36: "^" +0x0f37: "_" +0x0f38: "" +0x0f39: "~" +0x0f3a: "[?]" +0x0f3b: "]" +0x0f3c: "[[" +0x0f3d: "]]" +0x0f3e: "" +0x0f3f: "" +0x0f40: "k" +0x0f41: "kh" +0x0f42: "g" +0x0f43: "gh" +0x0f44: "ng" +0x0f45: "c" +0x0f46: "ch" +0x0f47: "j" +0x0f48: "[?]" +0x0f49: "ny" +0x0f4a: "tt" +0x0f4b: "tth" +0x0f4c: "dd" +0x0f4d: "ddh" +0x0f4e: "nn" +0x0f4f: "t" +0x0f50: "th" +0x0f51: "d" +0x0f52: "dh" +0x0f53: "n" +0x0f54: "p" +0x0f55: "ph" +0x0f56: "b" +0x0f57: "bh" +0x0f58: "m" +0x0f59: "ts" +0x0f5a: "tsh" +0x0f5b: "dz" +0x0f5c: "dzh" +0x0f5d: "w" +0x0f5e: "zh" +0x0f5f: "z" +0x0f60: "'" +0x0f61: "y" +0x0f62: "r" +0x0f63: "l" +0x0f64: "sh" +0x0f65: "ssh" +0x0f66: "s" +0x0f67: "h" +0x0f68: "a" +0x0f69: "kss" +0x0f6a: "r" +0x0f6b: "[?]" +0x0f6c: "[?]" +0x0f6d: "[?]" +0x0f6e: "[?]" +0x0f6f: "[?]" +0x0f70: "[?]" +0x0f71: "aa" +0x0f72: "i" +0x0f73: "ii" +0x0f74: "u" +0x0f75: "uu" +0x0f76: "R" +0x0f77: "RR" +0x0f78: "L" +0x0f79: "LL" +0x0f7a: "e" +0x0f7b: "ee" +0x0f7c: "o" +0x0f7d: "oo" +0x0f7e: "M" +0x0f7f: "H" +0x0f80: "i" +0x0f81: "ii" +0x0f82: "" +0x0f83: "" +0x0f84: "" +0x0f85: "" +0x0f86: "" +0x0f87: "" +0x0f88: "" +0x0f89: "" +0x0f8a: "" +0x0f8b: "" +0x0f8c: "[?]" +0x0f8d: "[?]" +0x0f8e: "[?]" +0x0f8f: "[?]" +0x0f90: "k" +0x0f91: "kh" +0x0f92: "g" +0x0f93: "gh" +0x0f94: "ng" +0x0f95: "c" +0x0f96: "ch" +0x0f97: "j" +0x0f98: "[?]" +0x0f99: "ny" +0x0f9a: "tt" +0x0f9b: "tth" +0x0f9c: "dd" +0x0f9d: "ddh" +0x0f9e: "nn" +0x0f9f: "t" +0x0fa0: "th" +0x0fa1: "d" +0x0fa2: "dh" +0x0fa3: "n" +0x0fa4: "p" +0x0fa5: "ph" +0x0fa6: "b" +0x0fa7: "bh" +0x0fa8: "m" +0x0fa9: "ts" +0x0faa: "tsh" +0x0fab: "dz" +0x0fac: "dzh" +0x0fad: "w" +0x0fae: "zh" +0x0faf: "z" +0x0fb0: "'" +0x0fb1: "y" +0x0fb2: "r" +0x0fb3: "l" +0x0fb4: "sh" +0x0fb5: "ss" +0x0fb6: "s" +0x0fb7: "h" +0x0fb8: "a" +0x0fb9: "kss" +0x0fba: "w" +0x0fbb: "y" +0x0fbc: "r" +0x0fbd: "[?]" +0x0fbe: "X" +0x0fbf: " :X: " +0x0fc0: " /O/ " +0x0fc1: " /o/ " +0x0fc2: " \\o\\ " +0x0fc3: " (O) " +0x0fc4: "" +0x0fc5: "" +0x0fc6: "" +0x0fc7: "" +0x0fc8: "" +0x0fc9: "" +0x0fca: "" +0x0fcb: "" +0x0fcc: "" +0x0fcd: "[?]" +0x0fce: "[?]" +0x0fcf: "" +0x0fd0: "[?]" +0x0fd1: "[?]" +0x0fd2: "[?]" +0x0fd3: "[?]" +0x0fd4: "[?]" +0x0fd5: "[?]" +0x0fd6: "[?]" +0x0fd7: "[?]" +0x0fd8: "[?]" +0x0fd9: "[?]" +0x0fda: "[?]" +0x0fdb: "[?]" +0x0fdc: "[?]" +0x0fdd: "[?]" +0x0fde: "[?]" +0x0fdf: "[?]" +0x0fe0: "[?]" +0x0fe1: "[?]" +0x0fe2: "[?]" +0x0fe3: "[?]" +0x0fe4: "[?]" +0x0fe5: "[?]" +0x0fe6: "[?]" +0x0fe7: "[?]" +0x0fe8: "[?]" +0x0fe9: "[?]" +0x0fea: "[?]" +0x0feb: "[?]" +0x0fec: "[?]" +0x0fed: "[?]" +0x0fee: "[?]" +0x0fef: "[?]" +0x0ff0: "[?]" +0x0ff1: "[?]" +0x0ff2: "[?]" +0x0ff3: "[?]" +0x0ff4: "[?]" +0x0ff5: "[?]" +0x0ff6: "[?]" +0x0ff7: "[?]" +0x0ff8: "[?]" +0x0ff9: "[?]" +0x0ffa: "[?]" +0x0ffb: "[?]" +0x0ffc: "[?]" +0x0ffd: "[?]" +0x0ffe: "[?]" +/* x010 */ +0x1000: "k" +0x1001: "kh" +0x1002: "g" +0x1003: "gh" +0x1004: "ng" +0x1005: "c" +0x1006: "ch" +0x1007: "j" +0x1008: "jh" +0x1009: "ny" +0x100a: "nny" +0x100b: "tt" +0x100c: "tth" +0x100d: "dd" +0x100e: "ddh" +0x100f: "nn" +0x1010: "tt" +0x1011: "th" +0x1012: "d" +0x1013: "dh" +0x1014: "n" +0x1015: "p" +0x1016: "ph" +0x1017: "b" +0x1018: "bh" +0x1019: "m" +0x101a: "y" +0x101b: "r" +0x101c: "l" +0x101d: "w" +0x101e: "s" +0x101f: "h" +0x1020: "ll" +0x1021: "a" +0x1022: "[?]" +0x1023: "i" +0x1024: "ii" +0x1025: "u" +0x1026: "uu" +0x1027: "e" +0x1028: "[?]" +0x1029: "o" +0x102a: "au" +0x102b: "[?]" +0x102c: "aa" +0x102d: "i" +0x102e: "ii" +0x102f: "u" +0x1030: "uu" +0x1031: "e" +0x1032: "ai" +0x1033: "[?]" +0x1034: "[?]" +0x1035: "[?]" +0x1036: "N" +0x1037: "'" +0x1038: ":" +0x1039: "" +0x103a: "[?]" +0x103b: "[?]" +0x103c: "[?]" +0x103d: "[?]" +0x103e: "[?]" +0x103f: "[?]" +0x1040: "0" +0x1041: "1" +0x1042: "2" +0x1043: "3" +0x1044: "4" +0x1045: "5" +0x1046: "6" +0x1047: "7" +0x1048: "8" +0x1049: "9" +0x104a: " / " +0x104b: " // " +0x104c: "n*" +0x104d: "r*" +0x104e: "l*" +0x104f: "e*" +0x1050: "sh" +0x1051: "ss" +0x1052: "R" +0x1053: "RR" +0x1054: "L" +0x1055: "LL" +0x1056: "R" +0x1057: "RR" +0x1058: "L" +0x1059: "LL" +0x105a: "[?]" +0x105b: "[?]" +0x105c: "[?]" +0x105d: "[?]" +0x105e: "[?]" +0x105f: "[?]" +0x1060: "[?]" +0x1061: "[?]" +0x1062: "[?]" +0x1063: "[?]" +0x1064: "[?]" +0x1065: "[?]" +0x1066: "[?]" +0x1067: "[?]" +0x1068: "[?]" +0x1069: "[?]" +0x106a: "[?]" +0x106b: "[?]" +0x106c: "[?]" +0x106d: "[?]" +0x106e: "[?]" +0x106f: "[?]" +0x1070: "[?]" +0x1071: "[?]" +0x1072: "[?]" +0x1073: "[?]" +0x1074: "[?]" +0x1075: "[?]" +0x1076: "[?]" +0x1077: "[?]" +0x1078: "[?]" +0x1079: "[?]" +0x107a: "[?]" +0x107b: "[?]" +0x107c: "[?]" +0x107d: "[?]" +0x107e: "[?]" +0x107f: "[?]" +0x1080: "[?]" +0x1081: "[?]" +0x1082: "[?]" +0x1083: "[?]" +0x1084: "[?]" +0x1085: "[?]" +0x1086: "[?]" +0x1087: "[?]" +0x1088: "[?]" +0x1089: "[?]" +0x108a: "[?]" +0x108b: "[?]" +0x108c: "[?]" +0x108d: "[?]" +0x108e: "[?]" +0x108f: "[?]" +0x1090: "[?]" +0x1091: "[?]" +0x1092: "[?]" +0x1093: "[?]" +0x1094: "[?]" +0x1095: "[?]" +0x1096: "[?]" +0x1097: "[?]" +0x1098: "[?]" +0x1099: "[?]" +0x109a: "[?]" +0x109b: "[?]" +0x109c: "[?]" +0x109d: "[?]" +0x109e: "[?]" +0x109f: "[?]" +0x10a0: "A" +0x10a1: "B" +0x10a2: "G" +0x10a3: "D" +0x10a4: "E" +0x10a5: "V" +0x10a6: "Z" +0x10a7: "T`" +0x10a8: "I" +0x10a9: "K" +0x10aa: "L" +0x10ab: "M" +0x10ac: "N" +0x10ad: "O" +0x10ae: "P" +0x10af: "Zh" +0x10b0: "R" +0x10b1: "S" +0x10b2: "T" +0x10b3: "U" +0x10b4: "P`" +0x10b5: "K`" +0x10b6: "G'" +0x10b7: "Q" +0x10b8: "Sh" +0x10b9: "Ch`" +0x10ba: "C`" +0x10bb: "Z'" +0x10bc: "C" +0x10bd: "Ch" +0x10be: "X" +0x10bf: "J" +0x10c0: "H" +0x10c1: "E" +0x10c2: "Y" +0x10c3: "W" +0x10c4: "Xh" +0x10c5: "OE" +0x10c6: "[?]" +0x10c7: "[?]" +0x10c8: "[?]" +0x10c9: "[?]" +0x10ca: "[?]" +0x10cb: "[?]" +0x10cc: "[?]" +0x10cd: "[?]" +0x10ce: "[?]" +0x10cf: "[?]" +0x10d0: "a" +0x10d1: "b" +0x10d2: "g" +0x10d3: "d" +0x10d4: "e" +0x10d5: "v" +0x10d6: "z" +0x10d7: "t`" +0x10d8: "i" +0x10d9: "k" +0x10da: "l" +0x10db: "m" +0x10dc: "n" +0x10dd: "o" +0x10de: "p" +0x10df: "zh" +0x10e0: "r" +0x10e1: "s" +0x10e2: "t" +0x10e3: "u" +0x10e4: "p`" +0x10e5: "k`" +0x10e6: "g'" +0x10e7: "q" +0x10e8: "sh" +0x10e9: "ch`" +0x10ea: "c`" +0x10eb: "z'" +0x10ec: "c" +0x10ed: "ch" +0x10ee: "x" +0x10ef: "j" +0x10f0: "h" +0x10f1: "e" +0x10f2: "y" +0x10f3: "w" +0x10f4: "xh" +0x10f5: "oe" +0x10f6: "f" +0x10f7: "[?]" +0x10f8: "[?]" +0x10f9: "[?]" +0x10fa: "[?]" +0x10fb: " // " +0x10fc: "[?]" +0x10fd: "[?]" +0x10fe: "[?]" +/* x011 */ +0x1100: "g" +0x1101: "gg" +0x1102: "n" +0x1103: "d" +0x1104: "dd" +0x1105: "r" +0x1106: "m" +0x1107: "b" +0x1108: "bb" +0x1109: "s" +0x110a: "ss" +0x110b: "" +0x110c: "j" +0x110d: "jj" +0x110e: "c" +0x110f: "k" +0x1110: "t" +0x1111: "p" +0x1112: "h" +0x1113: "ng" +0x1114: "nn" +0x1115: "nd" +0x1116: "nb" +0x1117: "dg" +0x1118: "rn" +0x1119: "rr" +0x111a: "rh" +0x111b: "rN" +0x111c: "mb" +0x111d: "mN" +0x111e: "bg" +0x111f: "bn" +0x1120: "" +0x1121: "bs" +0x1122: "bsg" +0x1123: "bst" +0x1124: "bsb" +0x1125: "bss" +0x1126: "bsj" +0x1127: "bj" +0x1128: "bc" +0x1129: "bt" +0x112a: "bp" +0x112b: "bN" +0x112c: "bbN" +0x112d: "sg" +0x112e: "sn" +0x112f: "sd" +0x1130: "sr" +0x1131: "sm" +0x1132: "sb" +0x1133: "sbg" +0x1134: "sss" +0x1135: "s" +0x1136: "sj" +0x1137: "sc" +0x1138: "sk" +0x1139: "st" +0x113a: "sp" +0x113b: "sh" +0x113c: "" +0x113d: "" +0x113e: "" +0x113f: "" +0x1140: "Z" +0x1141: "g" +0x1142: "d" +0x1143: "m" +0x1144: "b" +0x1145: "s" +0x1146: "Z" +0x1147: "" +0x1148: "j" +0x1149: "c" +0x114a: "t" +0x114b: "p" +0x114c: "N" +0x114d: "j" +0x114e: "" +0x114f: "" +0x1150: "" +0x1151: "" +0x1152: "ck" +0x1153: "ch" +0x1154: "" +0x1155: "" +0x1156: "pb" +0x1157: "pN" +0x1158: "hh" +0x1159: "Q" +0x115a: "[?]" +0x115b: "[?]" +0x115c: "[?]" +0x115d: "[?]" +0x115e: "[?]" +0x115f: "" +0x1160: "" +0x1161: "a" +0x1162: "ae" +0x1163: "ya" +0x1164: "yae" +0x1165: "eo" +0x1166: "e" +0x1167: "yeo" +0x1168: "ye" +0x1169: "o" +0x116a: "wa" +0x116b: "wae" +0x116c: "oe" +0x116d: "yo" +0x116e: "u" +0x116f: "weo" +0x1170: "we" +0x1171: "wi" +0x1172: "yu" +0x1173: "eu" +0x1174: "yi" +0x1175: "i" +0x1176: "a-o" +0x1177: "a-u" +0x1178: "ya-o" +0x1179: "ya-yo" +0x117a: "eo-o" +0x117b: "eo-u" +0x117c: "eo-eu" +0x117d: "yeo-o" +0x117e: "yeo-u" +0x117f: "o-eo" +0x1180: "o-e" +0x1181: "o-ye" +0x1182: "o-o" +0x1183: "o-u" +0x1184: "yo-ya" +0x1185: "yo-yae" +0x1186: "yo-yeo" +0x1187: "yo-o" +0x1188: "yo-i" +0x1189: "u-a" +0x118a: "u-ae" +0x118b: "u-eo-eu" +0x118c: "u-ye" +0x118d: "u-u" +0x118e: "yu-a" +0x118f: "yu-eo" +0x1190: "yu-e" +0x1191: "yu-yeo" +0x1192: "yu-ye" +0x1193: "yu-u" +0x1194: "yu-i" +0x1195: "eu-u" +0x1196: "eu-eu" +0x1197: "yi-u" +0x1198: "i-a" +0x1199: "i-ya" +0x119a: "i-o" +0x119b: "i-u" +0x119c: "i-eu" +0x119d: "i-U" +0x119e: "U" +0x119f: "U-eo" +0x11a0: "U-u" +0x11a1: "U-i" +0x11a2: "UU" +0x11a3: "[?]" +0x11a4: "[?]" +0x11a5: "[?]" +0x11a6: "[?]" +0x11a7: "[?]" +0x11a8: "g" +0x11a9: "gg" +0x11aa: "gs" +0x11ab: "n" +0x11ac: "nj" +0x11ad: "nh" +0x11ae: "d" +0x11af: "l" +0x11b0: "lg" +0x11b1: "lm" +0x11b2: "lb" +0x11b3: "ls" +0x11b4: "lt" +0x11b5: "lp" +0x11b6: "lh" +0x11b7: "m" +0x11b8: "b" +0x11b9: "bs" +0x11ba: "s" +0x11bb: "ss" +0x11bc: "ng" +0x11bd: "j" +0x11be: "c" +0x11bf: "k" +0x11c0: "t" +0x11c1: "p" +0x11c2: "h" +0x11c3: "gl" +0x11c4: "gsg" +0x11c5: "ng" +0x11c6: "nd" +0x11c7: "ns" +0x11c8: "nZ" +0x11c9: "nt" +0x11ca: "dg" +0x11cb: "tl" +0x11cc: "lgs" +0x11cd: "ln" +0x11ce: "ld" +0x11cf: "lth" +0x11d0: "ll" +0x11d1: "lmg" +0x11d2: "lms" +0x11d3: "lbs" +0x11d4: "lbh" +0x11d5: "rNp" +0x11d6: "lss" +0x11d7: "lZ" +0x11d8: "lk" +0x11d9: "lQ" +0x11da: "mg" +0x11db: "ml" +0x11dc: "mb" +0x11dd: "ms" +0x11de: "mss" +0x11df: "mZ" +0x11e0: "mc" +0x11e1: "mh" +0x11e2: "mN" +0x11e3: "bl" +0x11e4: "bp" +0x11e5: "ph" +0x11e6: "pN" +0x11e7: "sg" +0x11e8: "sd" +0x11e9: "sl" +0x11ea: "sb" +0x11eb: "Z" +0x11ec: "g" +0x11ed: "ss" +0x11ee: "" +0x11ef: "kh" +0x11f0: "N" +0x11f1: "Ns" +0x11f2: "NZ" +0x11f3: "pb" +0x11f4: "pN" +0x11f5: "hn" +0x11f6: "hl" +0x11f7: "hm" +0x11f8: "hb" +0x11f9: "Q" +0x11fa: "[?]" +0x11fb: "[?]" +0x11fc: "[?]" +0x11fd: "[?]" +0x11fe: "[?]" +/* x012 */ +0x1200: "ha" +0x1201: "hu" +0x1202: "hi" +0x1203: "haa" +0x1204: "hee" +0x1205: "he" +0x1206: "ho" +0x1207: "[?]" +0x1208: "la" +0x1209: "lu" +0x120a: "li" +0x120b: "laa" +0x120c: "lee" +0x120d: "le" +0x120e: "lo" +0x120f: "lwa" +0x1210: "hha" +0x1211: "hhu" +0x1212: "hhi" +0x1213: "hhaa" +0x1214: "hhee" +0x1215: "hhe" +0x1216: "hho" +0x1217: "hhwa" +0x1218: "ma" +0x1219: "mu" +0x121a: "mi" +0x121b: "maa" +0x121c: "mee" +0x121d: "me" +0x121e: "mo" +0x121f: "mwa" +0x1220: "sza" +0x1221: "szu" +0x1222: "szi" +0x1223: "szaa" +0x1224: "szee" +0x1225: "sze" +0x1226: "szo" +0x1227: "szwa" +0x1228: "ra" +0x1229: "ru" +0x122a: "ri" +0x122b: "raa" +0x122c: "ree" +0x122d: "re" +0x122e: "ro" +0x122f: "rwa" +0x1230: "sa" +0x1231: "su" +0x1232: "si" +0x1233: "saa" +0x1234: "see" +0x1235: "se" +0x1236: "so" +0x1237: "swa" +0x1238: "sha" +0x1239: "shu" +0x123a: "shi" +0x123b: "shaa" +0x123c: "shee" +0x123d: "she" +0x123e: "sho" +0x123f: "shwa" +0x1240: "qa" +0x1241: "qu" +0x1242: "qi" +0x1243: "qaa" +0x1244: "qee" +0x1245: "qe" +0x1246: "qo" +0x1247: "[?]" +0x1248: "qwa" +0x1249: "[?]" +0x124a: "qwi" +0x124b: "qwaa" +0x124c: "qwee" +0x124d: "qwe" +0x124e: "[?]" +0x124f: "[?]" +0x1250: "qha" +0x1251: "qhu" +0x1252: "qhi" +0x1253: "qhaa" +0x1254: "qhee" +0x1255: "qhe" +0x1256: "qho" +0x1257: "[?]" +0x1258: "qhwa" +0x1259: "[?]" +0x125a: "qhwi" +0x125b: "qhwaa" +0x125c: "qhwee" +0x125d: "qhwe" +0x125e: "[?]" +0x125f: "[?]" +0x1260: "ba" +0x1261: "bu" +0x1262: "bi" +0x1263: "baa" +0x1264: "bee" +0x1265: "be" +0x1266: "bo" +0x1267: "bwa" +0x1268: "va" +0x1269: "vu" +0x126a: "vi" +0x126b: "vaa" +0x126c: "vee" +0x126d: "ve" +0x126e: "vo" +0x126f: "vwa" +0x1270: "ta" +0x1271: "tu" +0x1272: "ti" +0x1273: "taa" +0x1274: "tee" +0x1275: "te" +0x1276: "to" +0x1277: "twa" +0x1278: "ca" +0x1279: "cu" +0x127a: "ci" +0x127b: "caa" +0x127c: "cee" +0x127d: "ce" +0x127e: "co" +0x127f: "cwa" +0x1280: "xa" +0x1281: "xu" +0x1282: "xi" +0x1283: "xaa" +0x1284: "xee" +0x1285: "xe" +0x1286: "xo" +0x1287: "[?]" +0x1288: "xwa" +0x1289: "[?]" +0x128a: "xwi" +0x128b: "xwaa" +0x128c: "xwee" +0x128d: "xwe" +0x128e: "[?]" +0x128f: "[?]" +0x1290: "na" +0x1291: "nu" +0x1292: "ni" +0x1293: "naa" +0x1294: "nee" +0x1295: "ne" +0x1296: "no" +0x1297: "nwa" +0x1298: "nya" +0x1299: "nyu" +0x129a: "nyi" +0x129b: "nyaa" +0x129c: "nyee" +0x129d: "nye" +0x129e: "nyo" +0x129f: "nywa" +0x12a0: "'a" +0x12a1: "'u" +0x12a2: "[?]" +0x12a3: "'aa" +0x12a4: "'ee" +0x12a5: "'e" +0x12a6: "'o" +0x12a7: "'wa" +0x12a8: "ka" +0x12a9: "ku" +0x12aa: "ki" +0x12ab: "kaa" +0x12ac: "kee" +0x12ad: "ke" +0x12ae: "ko" +0x12af: "[?]" +0x12b0: "kwa" +0x12b1: "[?]" +0x12b2: "kwi" +0x12b3: "kwaa" +0x12b4: "kwee" +0x12b5: "kwe" +0x12b6: "[?]" +0x12b7: "[?]" +0x12b8: "kxa" +0x12b9: "kxu" +0x12ba: "kxi" +0x12bb: "kxaa" +0x12bc: "kxee" +0x12bd: "kxe" +0x12be: "kxo" +0x12bf: "[?]" +0x12c0: "kxwa" +0x12c1: "[?]" +0x12c2: "kxwi" +0x12c3: "kxwaa" +0x12c4: "kxwee" +0x12c5: "kxwe" +0x12c6: "[?]" +0x12c7: "[?]" +0x12c8: "wa" +0x12c9: "wu" +0x12ca: "wi" +0x12cb: "waa" +0x12cc: "wee" +0x12cd: "we" +0x12ce: "wo" +0x12cf: "[?]" +0x12d0: "`a" +0x12d1: "`u" +0x12d2: "`i" +0x12d3: "`aa" +0x12d4: "`ee" +0x12d5: "`e" +0x12d6: "`o" +0x12d7: "[?]" +0x12d8: "za" +0x12d9: "zu" +0x12da: "zi" +0x12db: "zaa" +0x12dc: "zee" +0x12dd: "ze" +0x12de: "zo" +0x12df: "zwa" +0x12e0: "zha" +0x12e1: "zhu" +0x12e2: "zhi" +0x12e3: "zhaa" +0x12e4: "zhee" +0x12e5: "zhe" +0x12e6: "zho" +0x12e7: "zhwa" +0x12e8: "ya" +0x12e9: "yu" +0x12ea: "yi" +0x12eb: "yaa" +0x12ec: "yee" +0x12ed: "ye" +0x12ee: "yo" +0x12ef: "[?]" +0x12f0: "da" +0x12f1: "du" +0x12f2: "di" +0x12f3: "daa" +0x12f4: "dee" +0x12f5: "de" +0x12f6: "do" +0x12f7: "dwa" +0x12f8: "dda" +0x12f9: "ddu" +0x12fa: "ddi" +0x12fb: "ddaa" +0x12fc: "ddee" +0x12fd: "dde" +0x12fe: "ddo" +0x12ff: "ddwa" +/* x013 */ +0x1300: "ja" +0x1301: "ju" +0x1302: "ji" +0x1303: "jaa" +0x1304: "jee" +0x1305: "je" +0x1306: "jo" +0x1307: "jwa" +0x1308: "ga" +0x1309: "gu" +0x130a: "gi" +0x130b: "gaa" +0x130c: "gee" +0x130d: "ge" +0x130e: "go" +0x130f: "[?]" +0x1310: "gwa" +0x1311: "[?]" +0x1312: "gwi" +0x1313: "gwaa" +0x1314: "gwee" +0x1315: "gwe" +0x1316: "[?]" +0x1317: "[?]" +0x1318: "gga" +0x1319: "ggu" +0x131a: "ggi" +0x131b: "ggaa" +0x131c: "ggee" +0x131d: "gge" +0x131e: "ggo" +0x131f: "[?]" +0x1320: "tha" +0x1321: "thu" +0x1322: "thi" +0x1323: "thaa" +0x1324: "thee" +0x1325: "the" +0x1326: "tho" +0x1327: "thwa" +0x1328: "cha" +0x1329: "chu" +0x132a: "chi" +0x132b: "chaa" +0x132c: "chee" +0x132d: "che" +0x132e: "cho" +0x132f: "chwa" +0x1330: "pha" +0x1331: "phu" +0x1332: "phi" +0x1333: "phaa" +0x1334: "phee" +0x1335: "phe" +0x1336: "pho" +0x1337: "phwa" +0x1338: "tsa" +0x1339: "tsu" +0x133a: "tsi" +0x133b: "tsaa" +0x133c: "tsee" +0x133d: "tse" +0x133e: "tso" +0x133f: "tswa" +0x1340: "tza" +0x1341: "tzu" +0x1342: "tzi" +0x1343: "tzaa" +0x1344: "tzee" +0x1345: "tze" +0x1346: "tzo" +0x1347: "[?]" +0x1348: "fa" +0x1349: "fu" +0x134a: "fi" +0x134b: "faa" +0x134c: "fee" +0x134d: "fe" +0x134e: "fo" +0x134f: "fwa" +0x1350: "pa" +0x1351: "pu" +0x1352: "pi" +0x1353: "paa" +0x1354: "pee" +0x1355: "pe" +0x1356: "po" +0x1357: "pwa" +0x1358: "rya" +0x1359: "mya" +0x135a: "fya" +0x135b: "[?]" +0x135c: "[?]" +0x135d: "[?]" +0x135e: "[?]" +0x135f: "[?]" +0x1360: "[?]" +0x1361: " " +0x1362: "." +0x1363: "," +0x1364: ";" +0x1365: ":" +0x1366: ":: " +0x1367: "?" +0x1368: "//" +0x1369: "1" +0x136a: "2" +0x136b: "3" +0x136c: "4" +0x136d: "5" +0x136e: "6" +0x136f: "7" +0x1370: "8" +0x1371: "9" +0x1372: "10+" +0x1373: "20+" +0x1374: "30+" +0x1375: "40+" +0x1376: "50+" +0x1377: "60+" +0x1378: "70+" +0x1379: "80+" +0x137a: "90+" +0x137b: "100+" +0x137c: "10,000+" +0x137d: "[?]" +0x137e: "[?]" +0x137f: "[?]" +0x1380: "[?]" +0x1381: "[?]" +0x1382: "[?]" +0x1383: "[?]" +0x1384: "[?]" +0x1385: "[?]" +0x1386: "[?]" +0x1387: "[?]" +0x1388: "[?]" +0x1389: "[?]" +0x138a: "[?]" +0x138b: "[?]" +0x138c: "[?]" +0x138d: "[?]" +0x138e: "[?]" +0x138f: "[?]" +0x1390: "[?]" +0x1391: "[?]" +0x1392: "[?]" +0x1393: "[?]" +0x1394: "[?]" +0x1395: "[?]" +0x1396: "[?]" +0x1397: "[?]" +0x1398: "[?]" +0x1399: "[?]" +0x139a: "[?]" +0x139b: "[?]" +0x139c: "[?]" +0x139d: "[?]" +0x139e: "[?]" +0x139f: "[?]" +0x13a0: "a" +0x13a1: "e" +0x13a2: "i" +0x13a3: "o" +0x13a4: "u" +0x13a5: "v" +0x13a6: "ga" +0x13a7: "ka" +0x13a8: "ge" +0x13a9: "gi" +0x13aa: "go" +0x13ab: "gu" +0x13ac: "gv" +0x13ad: "ha" +0x13ae: "he" +0x13af: "hi" +0x13b0: "ho" +0x13b1: "hu" +0x13b2: "hv" +0x13b3: "la" +0x13b4: "le" +0x13b5: "li" +0x13b6: "lo" +0x13b7: "lu" +0x13b8: "lv" +0x13b9: "ma" +0x13ba: "me" +0x13bb: "mi" +0x13bc: "mo" +0x13bd: "mu" +0x13be: "na" +0x13bf: "hna" +0x13c0: "nah" +0x13c1: "ne" +0x13c2: "ni" +0x13c3: "no" +0x13c4: "nu" +0x13c5: "nv" +0x13c6: "qua" +0x13c7: "que" +0x13c8: "qui" +0x13c9: "quo" +0x13ca: "quu" +0x13cb: "quv" +0x13cc: "sa" +0x13cd: "s" +0x13ce: "se" +0x13cf: "si" +0x13d0: "so" +0x13d1: "su" +0x13d2: "sv" +0x13d3: "da" +0x13d4: "ta" +0x13d5: "de" +0x13d6: "te" +0x13d7: "di" +0x13d8: "ti" +0x13d9: "do" +0x13da: "du" +0x13db: "dv" +0x13dc: "dla" +0x13dd: "tla" +0x13de: "tle" +0x13df: "tli" +0x13e0: "tlo" +0x13e1: "tlu" +0x13e2: "tlv" +0x13e3: "tsa" +0x13e4: "tse" +0x13e5: "tsi" +0x13e6: "tso" +0x13e7: "tsu" +0x13e8: "tsv" +0x13e9: "wa" +0x13ea: "we" +0x13eb: "wi" +0x13ec: "wo" +0x13ed: "wu" +0x13ee: "wv" +0x13ef: "ya" +0x13f0: "ye" +0x13f1: "yi" +0x13f2: "yo" +0x13f3: "yu" +0x13f4: "yv" +0x13f5: "[?]" +0x13f6: "[?]" +0x13f7: "[?]" +0x13f8: "[?]" +0x13f9: "[?]" +0x13fa: "[?]" +0x13fb: "[?]" +0x13fc: "[?]" +0x13fd: "[?]" +0x13fe: "[?]" +/* x014 */ +0x1400: "[?]" +0x1401: "e" +0x1402: "aai" +0x1403: "i" +0x1404: "ii" +0x1405: "o" +0x1406: "oo" +0x1407: "oo" +0x1408: "ee" +0x1409: "i" +0x140a: "a" +0x140b: "aa" +0x140c: "we" +0x140d: "we" +0x140e: "wi" +0x140f: "wi" +0x1410: "wii" +0x1411: "wii" +0x1412: "wo" +0x1413: "wo" +0x1414: "woo" +0x1415: "woo" +0x1416: "woo" +0x1417: "wa" +0x1418: "wa" +0x1419: "waa" +0x141a: "waa" +0x141b: "waa" +0x141c: "ai" +0x141d: "w" +0x141e: "'" +0x141f: "t" +0x1420: "k" +0x1421: "sh" +0x1422: "s" +0x1423: "n" +0x1424: "w" +0x1425: "n" +0x1426: "[?]" +0x1427: "w" +0x1428: "c" +0x1429: "?" +0x142a: "l" +0x142b: "en" +0x142c: "in" +0x142d: "on" +0x142e: "an" +0x142f: "pe" +0x1430: "paai" +0x1431: "pi" +0x1432: "pii" +0x1433: "po" +0x1434: "poo" +0x1435: "poo" +0x1436: "hee" +0x1437: "hi" +0x1438: "pa" +0x1439: "paa" +0x143a: "pwe" +0x143b: "pwe" +0x143c: "pwi" +0x143d: "pwi" +0x143e: "pwii" +0x143f: "pwii" +0x1440: "pwo" +0x1441: "pwo" +0x1442: "pwoo" +0x1443: "pwoo" +0x1444: "pwa" +0x1445: "pwa" +0x1446: "pwaa" +0x1447: "pwaa" +0x1448: "pwaa" +0x1449: "p" +0x144a: "p" +0x144b: "h" +0x144c: "te" +0x144d: "taai" +0x144e: "ti" +0x144f: "tii" +0x1450: "to" +0x1451: "too" +0x1452: "too" +0x1453: "dee" +0x1454: "di" +0x1455: "ta" +0x1456: "taa" +0x1457: "twe" +0x1458: "twe" +0x1459: "twi" +0x145a: "twi" +0x145b: "twii" +0x145c: "twii" +0x145d: "two" +0x145e: "two" +0x145f: "twoo" +0x1460: "twoo" +0x1461: "twa" +0x1462: "twa" +0x1463: "twaa" +0x1464: "twaa" +0x1465: "twaa" +0x1466: "t" +0x1467: "tte" +0x1468: "tti" +0x1469: "tto" +0x146a: "tta" +0x146b: "ke" +0x146c: "kaai" +0x146d: "ki" +0x146e: "kii" +0x146f: "ko" +0x1470: "koo" +0x1471: "koo" +0x1472: "ka" +0x1473: "kaa" +0x1474: "kwe" +0x1475: "kwe" +0x1476: "kwi" +0x1477: "kwi" +0x1478: "kwii" +0x1479: "kwii" +0x147a: "kwo" +0x147b: "kwo" +0x147c: "kwoo" +0x147d: "kwoo" +0x147e: "kwa" +0x147f: "kwa" +0x1480: "kwaa" +0x1481: "kwaa" +0x1482: "kwaa" +0x1483: "k" +0x1484: "kw" +0x1485: "keh" +0x1486: "kih" +0x1487: "koh" +0x1488: "kah" +0x1489: "ce" +0x148a: "caai" +0x148b: "ci" +0x148c: "cii" +0x148d: "co" +0x148e: "coo" +0x148f: "coo" +0x1490: "ca" +0x1491: "caa" +0x1492: "cwe" +0x1493: "cwe" +0x1494: "cwi" +0x1495: "cwi" +0x1496: "cwii" +0x1497: "cwii" +0x1498: "cwo" +0x1499: "cwo" +0x149a: "cwoo" +0x149b: "cwoo" +0x149c: "cwa" +0x149d: "cwa" +0x149e: "cwaa" +0x149f: "cwaa" +0x14a0: "cwaa" +0x14a1: "c" +0x14a2: "th" +0x14a3: "me" +0x14a4: "maai" +0x14a5: "mi" +0x14a6: "mii" +0x14a7: "mo" +0x14a8: "moo" +0x14a9: "moo" +0x14aa: "ma" +0x14ab: "maa" +0x14ac: "mwe" +0x14ad: "mwe" +0x14ae: "mwi" +0x14af: "mwi" +0x14b0: "mwii" +0x14b1: "mwii" +0x14b2: "mwo" +0x14b3: "mwo" +0x14b4: "mwoo" +0x14b5: "mwoo" +0x14b6: "mwa" +0x14b7: "mwa" +0x14b8: "mwaa" +0x14b9: "mwaa" +0x14ba: "mwaa" +0x14bb: "m" +0x14bc: "m" +0x14bd: "mh" +0x14be: "m" +0x14bf: "m" +0x14c0: "ne" +0x14c1: "naai" +0x14c2: "ni" +0x14c3: "nii" +0x14c4: "no" +0x14c5: "noo" +0x14c6: "noo" +0x14c7: "na" +0x14c8: "naa" +0x14c9: "nwe" +0x14ca: "nwe" +0x14cb: "nwa" +0x14cc: "nwa" +0x14cd: "nwaa" +0x14ce: "nwaa" +0x14cf: "nwaa" +0x14d0: "n" +0x14d1: "ng" +0x14d2: "nh" +0x14d3: "le" +0x14d4: "laai" +0x14d5: "li" +0x14d6: "lii" +0x14d7: "lo" +0x14d8: "loo" +0x14d9: "loo" +0x14da: "la" +0x14db: "laa" +0x14dc: "lwe" +0x14dd: "lwe" +0x14de: "lwi" +0x14df: "lwi" +0x14e0: "lwii" +0x14e1: "lwii" +0x14e2: "lwo" +0x14e3: "lwo" +0x14e4: "lwoo" +0x14e5: "lwoo" +0x14e6: "lwa" +0x14e7: "lwa" +0x14e8: "lwaa" +0x14e9: "lwaa" +0x14ea: "l" +0x14eb: "l" +0x14ec: "l" +0x14ed: "se" +0x14ee: "saai" +0x14ef: "si" +0x14f0: "sii" +0x14f1: "so" +0x14f2: "soo" +0x14f3: "soo" +0x14f4: "sa" +0x14f5: "saa" +0x14f6: "swe" +0x14f7: "swe" +0x14f8: "swi" +0x14f9: "swi" +0x14fa: "swii" +0x14fb: "swii" +0x14fc: "swo" +0x14fd: "swo" +0x14fe: "swoo" +0x14ff: "swoo" +/* x015 */ +0x1500: "swa" +0x1501: "swa" +0x1502: "swaa" +0x1503: "swaa" +0x1504: "swaa" +0x1505: "s" +0x1506: "s" +0x1507: "sw" +0x1508: "s" +0x1509: "sk" +0x150a: "skw" +0x150b: "sW" +0x150c: "spwa" +0x150d: "stwa" +0x150e: "skwa" +0x150f: "scwa" +0x1510: "she" +0x1511: "shi" +0x1512: "shii" +0x1513: "sho" +0x1514: "shoo" +0x1515: "sha" +0x1516: "shaa" +0x1517: "shwe" +0x1518: "shwe" +0x1519: "shwi" +0x151a: "shwi" +0x151b: "shwii" +0x151c: "shwii" +0x151d: "shwo" +0x151e: "shwo" +0x151f: "shwoo" +0x1520: "shwoo" +0x1521: "shwa" +0x1522: "shwa" +0x1523: "shwaa" +0x1524: "shwaa" +0x1525: "sh" +0x1526: "ye" +0x1527: "yaai" +0x1528: "yi" +0x1529: "yii" +0x152a: "yo" +0x152b: "yoo" +0x152c: "yoo" +0x152d: "ya" +0x152e: "yaa" +0x152f: "ywe" +0x1530: "ywe" +0x1531: "ywi" +0x1532: "ywi" +0x1533: "ywii" +0x1534: "ywii" +0x1535: "ywo" +0x1536: "ywo" +0x1537: "ywoo" +0x1538: "ywoo" +0x1539: "ywa" +0x153a: "ywa" +0x153b: "ywaa" +0x153c: "ywaa" +0x153d: "ywaa" +0x153e: "y" +0x153f: "y" +0x1540: "y" +0x1541: "yi" +0x1542: "re" +0x1543: "re" +0x1544: "le" +0x1545: "raai" +0x1546: "ri" +0x1547: "rii" +0x1548: "ro" +0x1549: "roo" +0x154a: "lo" +0x154b: "ra" +0x154c: "raa" +0x154d: "la" +0x154e: "rwaa" +0x154f: "rwaa" +0x1550: "r" +0x1551: "r" +0x1552: "r" +0x1553: "fe" +0x1554: "faai" +0x1555: "fi" +0x1556: "fii" +0x1557: "fo" +0x1558: "foo" +0x1559: "fa" +0x155a: "faa" +0x155b: "fwaa" +0x155c: "fwaa" +0x155d: "f" +0x155e: "the" +0x155f: "the" +0x1560: "thi" +0x1561: "thi" +0x1562: "thii" +0x1563: "thii" +0x1564: "tho" +0x1565: "thoo" +0x1566: "tha" +0x1567: "thaa" +0x1568: "thwaa" +0x1569: "thwaa" +0x156a: "th" +0x156b: "tthe" +0x156c: "tthi" +0x156d: "ttho" +0x156e: "ttha" +0x156f: "tth" +0x1570: "tye" +0x1571: "tyi" +0x1572: "tyo" +0x1573: "tya" +0x1574: "he" +0x1575: "hi" +0x1576: "hii" +0x1577: "ho" +0x1578: "hoo" +0x1579: "ha" +0x157a: "haa" +0x157b: "h" +0x157c: "h" +0x157d: "hk" +0x157e: "qaai" +0x157f: "qi" +0x1580: "qii" +0x1581: "qo" +0x1582: "qoo" +0x1583: "qa" +0x1584: "qaa" +0x1585: "q" +0x1586: "tlhe" +0x1587: "tlhi" +0x1588: "tlho" +0x1589: "tlha" +0x158a: "re" +0x158b: "ri" +0x158c: "ro" +0x158d: "ra" +0x158e: "ngaai" +0x158f: "ngi" +0x1590: "ngii" +0x1591: "ngo" +0x1592: "ngoo" +0x1593: "nga" +0x1594: "ngaa" +0x1595: "ng" +0x1596: "nng" +0x1597: "she" +0x1598: "shi" +0x1599: "sho" +0x159a: "sha" +0x159b: "the" +0x159c: "thi" +0x159d: "tho" +0x159e: "tha" +0x159f: "th" +0x15a0: "lhi" +0x15a1: "lhii" +0x15a2: "lho" +0x15a3: "lhoo" +0x15a4: "lha" +0x15a5: "lhaa" +0x15a6: "lh" +0x15a7: "the" +0x15a8: "thi" +0x15a9: "thii" +0x15aa: "tho" +0x15ab: "thoo" +0x15ac: "tha" +0x15ad: "thaa" +0x15ae: "th" +0x15af: "b" +0x15b0: "e" +0x15b1: "i" +0x15b2: "o" +0x15b3: "a" +0x15b4: "we" +0x15b5: "wi" +0x15b6: "wo" +0x15b7: "wa" +0x15b8: "ne" +0x15b9: "ni" +0x15ba: "no" +0x15bb: "na" +0x15bc: "ke" +0x15bd: "ki" +0x15be: "ko" +0x15bf: "ka" +0x15c0: "he" +0x15c1: "hi" +0x15c2: "ho" +0x15c3: "ha" +0x15c4: "ghu" +0x15c5: "gho" +0x15c6: "ghe" +0x15c7: "ghee" +0x15c8: "ghi" +0x15c9: "gha" +0x15ca: "ru" +0x15cb: "ro" +0x15cc: "re" +0x15cd: "ree" +0x15ce: "ri" +0x15cf: "ra" +0x15d0: "wu" +0x15d1: "wo" +0x15d2: "we" +0x15d3: "wee" +0x15d4: "wi" +0x15d5: "wa" +0x15d6: "hwu" +0x15d7: "hwo" +0x15d8: "hwe" +0x15d9: "hwee" +0x15da: "hwi" +0x15db: "hwa" +0x15dc: "thu" +0x15dd: "tho" +0x15de: "the" +0x15df: "thee" +0x15e0: "thi" +0x15e1: "tha" +0x15e2: "ttu" +0x15e3: "tto" +0x15e4: "tte" +0x15e5: "ttee" +0x15e6: "tti" +0x15e7: "tta" +0x15e8: "pu" +0x15e9: "po" +0x15ea: "pe" +0x15eb: "pee" +0x15ec: "pi" +0x15ed: "pa" +0x15ee: "p" +0x15ef: "gu" +0x15f0: "go" +0x15f1: "ge" +0x15f2: "gee" +0x15f3: "gi" +0x15f4: "ga" +0x15f5: "khu" +0x15f6: "kho" +0x15f7: "khe" +0x15f8: "khee" +0x15f9: "khi" +0x15fa: "kha" +0x15fb: "kku" +0x15fc: "kko" +0x15fd: "kke" +0x15fe: "kkee" +0x15ff: "kki" +/* x016 */ +0x1600: "kka" +0x1601: "kk" +0x1602: "nu" +0x1603: "no" +0x1604: "ne" +0x1605: "nee" +0x1606: "ni" +0x1607: "na" +0x1608: "mu" +0x1609: "mo" +0x160a: "me" +0x160b: "mee" +0x160c: "mi" +0x160d: "ma" +0x160e: "yu" +0x160f: "yo" +0x1610: "ye" +0x1611: "yee" +0x1612: "yi" +0x1613: "ya" +0x1614: "ju" +0x1615: "ju" +0x1616: "jo" +0x1617: "je" +0x1618: "jee" +0x1619: "ji" +0x161a: "ji" +0x161b: "ja" +0x161c: "jju" +0x161d: "jjo" +0x161e: "jje" +0x161f: "jjee" +0x1620: "jji" +0x1621: "jja" +0x1622: "lu" +0x1623: "lo" +0x1624: "le" +0x1625: "lee" +0x1626: "li" +0x1627: "la" +0x1628: "dlu" +0x1629: "dlo" +0x162a: "dle" +0x162b: "dlee" +0x162c: "dli" +0x162d: "dla" +0x162e: "lhu" +0x162f: "lho" +0x1630: "lhe" +0x1631: "lhee" +0x1632: "lhi" +0x1633: "lha" +0x1634: "tlhu" +0x1635: "tlho" +0x1636: "tlhe" +0x1637: "tlhee" +0x1638: "tlhi" +0x1639: "tlha" +0x163a: "tlu" +0x163b: "tlo" +0x163c: "tle" +0x163d: "tlee" +0x163e: "tli" +0x163f: "tla" +0x1640: "zu" +0x1641: "zo" +0x1642: "ze" +0x1643: "zee" +0x1644: "zi" +0x1645: "za" +0x1646: "z" +0x1647: "z" +0x1648: "dzu" +0x1649: "dzo" +0x164a: "dze" +0x164b: "dzee" +0x164c: "dzi" +0x164d: "dza" +0x164e: "su" +0x164f: "so" +0x1650: "se" +0x1651: "see" +0x1652: "si" +0x1653: "sa" +0x1654: "shu" +0x1655: "sho" +0x1656: "she" +0x1657: "shee" +0x1658: "shi" +0x1659: "sha" +0x165a: "sh" +0x165b: "tsu" +0x165c: "tso" +0x165d: "tse" +0x165e: "tsee" +0x165f: "tsi" +0x1660: "tsa" +0x1661: "chu" +0x1662: "cho" +0x1663: "che" +0x1664: "chee" +0x1665: "chi" +0x1666: "cha" +0x1667: "ttsu" +0x1668: "ttso" +0x1669: "ttse" +0x166a: "ttsee" +0x166b: "ttsi" +0x166c: "ttsa" +0x166d: "X" +0x166e: "." +0x166f: "qai" +0x1670: "ngai" +0x1671: "nngi" +0x1672: "nngii" +0x1673: "nngo" +0x1674: "nngoo" +0x1675: "nnga" +0x1676: "nngaa" +0x1677: "[?]" +0x1678: "[?]" +0x1679: "[?]" +0x167a: "[?]" +0x167b: "[?]" +0x167c: "[?]" +0x167d: "[?]" +0x167e: "[?]" +0x167f: "[?]" +0x1680: " " +0x1681: "b" +0x1682: "l" +0x1683: "f" +0x1684: "s" +0x1685: "n" +0x1686: "h" +0x1687: "d" +0x1688: "t" +0x1689: "c" +0x168a: "q" +0x168b: "m" +0x168c: "g" +0x168d: "ng" +0x168e: "z" +0x168f: "r" +0x1690: "a" +0x1691: "o" +0x1692: "u" +0x1693: "e" +0x1694: "i" +0x1695: "ch" +0x1696: "th" +0x1697: "ph" +0x1698: "p" +0x1699: "x" +0x169a: "p" +0x169b: "<" +0x169c: ">" +0x169d: "[?]" +0x169e: "[?]" +0x169f: "[?]" +0x16a0: "f" +0x16a1: "v" +0x16a2: "u" +0x16a3: "yr" +0x16a4: "y" +0x16a5: "w" +0x16a6: "th" +0x16a7: "th" +0x16a8: "a" +0x16a9: "o" +0x16aa: "ac" +0x16ab: "ae" +0x16ac: "o" +0x16ad: "o" +0x16ae: "o" +0x16af: "oe" +0x16b0: "on" +0x16b1: "r" +0x16b2: "k" +0x16b3: "c" +0x16b4: "k" +0x16b5: "g" +0x16b6: "ng" +0x16b7: "g" +0x16b8: "g" +0x16b9: "w" +0x16ba: "h" +0x16bb: "h" +0x16bc: "h" +0x16bd: "h" +0x16be: "n" +0x16bf: "n" +0x16c0: "n" +0x16c1: "i" +0x16c2: "e" +0x16c3: "j" +0x16c4: "g" +0x16c5: "ae" +0x16c6: "a" +0x16c7: "eo" +0x16c8: "p" +0x16c9: "z" +0x16ca: "s" +0x16cb: "s" +0x16cc: "s" +0x16cd: "c" +0x16ce: "z" +0x16cf: "t" +0x16d0: "t" +0x16d1: "d" +0x16d2: "b" +0x16d3: "b" +0x16d4: "p" +0x16d5: "p" +0x16d6: "e" +0x16d7: "m" +0x16d8: "m" +0x16d9: "m" +0x16da: "l" +0x16db: "l" +0x16dc: "ng" +0x16dd: "ng" +0x16de: "d" +0x16df: "o" +0x16e0: "ear" +0x16e1: "ior" +0x16e2: "qu" +0x16e3: "qu" +0x16e4: "qu" +0x16e5: "s" +0x16e6: "yr" +0x16e7: "yr" +0x16e8: "yr" +0x16e9: "q" +0x16ea: "x" +0x16eb: "." +0x16ec: ":" +0x16ed: "+" +0x16ee: "17" +0x16ef: "18" +0x16f0: "19" +0x16f1: "[?]" +0x16f2: "[?]" +0x16f3: "[?]" +0x16f4: "[?]" +0x16f5: "[?]" +0x16f6: "[?]" +0x16f7: "[?]" +0x16f8: "[?]" +0x16f9: "[?]" +0x16fa: "[?]" +0x16fb: "[?]" +0x16fc: "[?]" +0x16fd: "[?]" +0x16fe: "[?]" +/* x017 */ +0x1700: "[?]" +0x1701: "[?]" +0x1702: "[?]" +0x1703: "[?]" +0x1704: "[?]" +0x1705: "[?]" +0x1706: "[?]" +0x1707: "[?]" +0x1708: "[?]" +0x1709: "[?]" +0x170a: "[?]" +0x170b: "[?]" +0x170c: "[?]" +0x170d: "[?]" +0x170e: "[?]" +0x170f: "[?]" +0x1710: "[?]" +0x1711: "[?]" +0x1712: "[?]" +0x1713: "[?]" +0x1714: "[?]" +0x1715: "[?]" +0x1716: "[?]" +0x1717: "[?]" +0x1718: "[?]" +0x1719: "[?]" +0x171a: "[?]" +0x171b: "[?]" +0x171c: "[?]" +0x171d: "[?]" +0x171e: "[?]" +0x171f: "[?]" +0x1720: "[?]" +0x1721: "[?]" +0x1722: "[?]" +0x1723: "[?]" +0x1724: "[?]" +0x1725: "[?]" +0x1726: "[?]" +0x1727: "[?]" +0x1728: "[?]" +0x1729: "[?]" +0x172a: "[?]" +0x172b: "[?]" +0x172c: "[?]" +0x172d: "[?]" +0x172e: "[?]" +0x172f: "[?]" +0x1730: "[?]" +0x1731: "[?]" +0x1732: "[?]" +0x1733: "[?]" +0x1734: "[?]" +0x1735: "[?]" +0x1736: "[?]" +0x1737: "[?]" +0x1738: "[?]" +0x1739: "[?]" +0x173a: "[?]" +0x173b: "[?]" +0x173c: "[?]" +0x173d: "[?]" +0x173e: "[?]" +0x173f: "[?]" +0x1740: "[?]" +0x1741: "[?]" +0x1742: "[?]" +0x1743: "[?]" +0x1744: "[?]" +0x1745: "[?]" +0x1746: "[?]" +0x1747: "[?]" +0x1748: "[?]" +0x1749: "[?]" +0x174a: "[?]" +0x174b: "[?]" +0x174c: "[?]" +0x174d: "[?]" +0x174e: "[?]" +0x174f: "[?]" +0x1750: "[?]" +0x1751: "[?]" +0x1752: "[?]" +0x1753: "[?]" +0x1754: "[?]" +0x1755: "[?]" +0x1756: "[?]" +0x1757: "[?]" +0x1758: "[?]" +0x1759: "[?]" +0x175a: "[?]" +0x175b: "[?]" +0x175c: "[?]" +0x175d: "[?]" +0x175e: "[?]" +0x175f: "[?]" +0x1760: "[?]" +0x1761: "[?]" +0x1762: "[?]" +0x1763: "[?]" +0x1764: "[?]" +0x1765: "[?]" +0x1766: "[?]" +0x1767: "[?]" +0x1768: "[?]" +0x1769: "[?]" +0x176a: "[?]" +0x176b: "[?]" +0x176c: "[?]" +0x176d: "[?]" +0x176e: "[?]" +0x176f: "[?]" +0x1770: "[?]" +0x1771: "[?]" +0x1772: "[?]" +0x1773: "[?]" +0x1774: "[?]" +0x1775: "[?]" +0x1776: "[?]" +0x1777: "[?]" +0x1778: "[?]" +0x1779: "[?]" +0x177a: "[?]" +0x177b: "[?]" +0x177c: "[?]" +0x177d: "[?]" +0x177e: "[?]" +0x177f: "[?]" +0x1780: "k" +0x1781: "kh" +0x1782: "g" +0x1783: "gh" +0x1784: "ng" +0x1785: "c" +0x1786: "ch" +0x1787: "j" +0x1788: "jh" +0x1789: "ny" +0x178a: "t" +0x178b: "tth" +0x178c: "d" +0x178d: "ddh" +0x178e: "nn" +0x178f: "t" +0x1790: "th" +0x1791: "d" +0x1792: "dh" +0x1793: "n" +0x1794: "p" +0x1795: "ph" +0x1796: "b" +0x1797: "bh" +0x1798: "m" +0x1799: "y" +0x179a: "r" +0x179b: "l" +0x179c: "v" +0x179d: "sh" +0x179e: "ss" +0x179f: "s" +0x17a0: "h" +0x17a1: "l" +0x17a2: "q" +0x17a3: "a" +0x17a4: "aa" +0x17a5: "i" +0x17a6: "ii" +0x17a7: "u" +0x17a8: "uk" +0x17a9: "uu" +0x17aa: "uuv" +0x17ab: "ry" +0x17ac: "ryy" +0x17ad: "ly" +0x17ae: "lyy" +0x17af: "e" +0x17b0: "ai" +0x17b1: "oo" +0x17b2: "oo" +0x17b3: "au" +0x17b4: "a" +0x17b5: "aa" +0x17b6: "aa" +0x17b7: "i" +0x17b8: "ii" +0x17b9: "y" +0x17ba: "yy" +0x17bb: "u" +0x17bc: "uu" +0x17bd: "ua" +0x17be: "oe" +0x17bf: "ya" +0x17c0: "ie" +0x17c1: "e" +0x17c2: "ae" +0x17c3: "ai" +0x17c4: "oo" +0x17c5: "au" +0x17c6: "M" +0x17c7: "H" +0x17c8: "a`" +0x17c9: "" +0x17ca: "" +0x17cb: "" +0x17cc: "r" +0x17cd: "" +0x17ce: "!" +0x17cf: "" +0x17d0: "" +0x17d1: "" +0x17d2: "" +0x17d3: "" +0x17d4: "." +0x17d5: " // " +0x17d6: ":" +0x17d7: "+" +0x17d8: "++" +0x17d9: " * " +0x17da: " /// " +0x17db: "KR" +0x17dc: "'" +0x17dd: "[?]" +0x17de: "[?]" +0x17df: "[?]" +0x17e0: "0" +0x17e1: "1" +0x17e2: "2" +0x17e3: "3" +0x17e4: "4" +0x17e5: "5" +0x17e6: "6" +0x17e7: "7" +0x17e8: "8" +0x17e9: "9" +0x17ea: "[?]" +0x17eb: "[?]" +0x17ec: "[?]" +0x17ed: "[?]" +0x17ee: "[?]" +0x17ef: "[?]" +0x17f0: "[?]" +0x17f1: "[?]" +0x17f2: "[?]" +0x17f3: "[?]" +0x17f4: "[?]" +0x17f5: "[?]" +0x17f6: "[?]" +0x17f7: "[?]" +0x17f8: "[?]" +0x17f9: "[?]" +0x17fa: "[?]" +0x17fb: "[?]" +0x17fc: "[?]" +0x17fd: "[?]" +0x17fe: "[?]" +/* x018 */ +0x1800: " @ " +0x1801: " ... " +0x1802: ", " +0x1803: ". " +0x1804: ": " +0x1805: " // " +0x1806: "" +0x1807: "-" +0x1808: ", " +0x1809: ". " +0x180a: "" +0x180b: "" +0x180c: "" +0x180d: "" +0x180e: "" +0x180f: "[?]" +0x1810: "0" +0x1811: "1" +0x1812: "2" +0x1813: "3" +0x1814: "4" +0x1815: "5" +0x1816: "6" +0x1817: "7" +0x1818: "8" +0x1819: "9" +0x181a: "[?]" +0x181b: "[?]" +0x181c: "[?]" +0x181d: "[?]" +0x181e: "[?]" +0x181f: "[?]" +0x1820: "a" +0x1821: "e" +0x1822: "i" +0x1823: "o" +0x1824: "u" +0x1825: "O" +0x1826: "U" +0x1827: "ee" +0x1828: "n" +0x1829: "ng" +0x182a: "b" +0x182b: "p" +0x182c: "q" +0x182d: "g" +0x182e: "m" +0x182f: "l" +0x1830: "s" +0x1831: "sh" +0x1832: "t" +0x1833: "d" +0x1834: "ch" +0x1835: "j" +0x1836: "y" +0x1837: "r" +0x1838: "w" +0x1839: "f" +0x183a: "k" +0x183b: "kha" +0x183c: "ts" +0x183d: "z" +0x183e: "h" +0x183f: "zr" +0x1840: "lh" +0x1841: "zh" +0x1842: "ch" +0x1843: "-" +0x1844: "e" +0x1845: "i" +0x1846: "o" +0x1847: "u" +0x1848: "O" +0x1849: "U" +0x184a: "ng" +0x184b: "b" +0x184c: "p" +0x184d: "q" +0x184e: "g" +0x184f: "m" +0x1850: "t" +0x1851: "d" +0x1852: "ch" +0x1853: "j" +0x1854: "ts" +0x1855: "y" +0x1856: "w" +0x1857: "k" +0x1858: "g" +0x1859: "h" +0x185a: "jy" +0x185b: "ny" +0x185c: "dz" +0x185d: "e" +0x185e: "i" +0x185f: "iy" +0x1860: "U" +0x1861: "u" +0x1862: "ng" +0x1863: "k" +0x1864: "g" +0x1865: "h" +0x1866: "p" +0x1867: "sh" +0x1868: "t" +0x1869: "d" +0x186a: "j" +0x186b: "f" +0x186c: "g" +0x186d: "h" +0x186e: "ts" +0x186f: "z" +0x1870: "r" +0x1871: "ch" +0x1872: "zh" +0x1873: "i" +0x1874: "k" +0x1875: "r" +0x1876: "f" +0x1877: "zh" +0x1878: "[?]" +0x1879: "[?]" +0x187a: "[?]" +0x187b: "[?]" +0x187c: "[?]" +0x187d: "[?]" +0x187e: "[?]" +0x187f: "[?]" +0x1880: "[?]" +0x1881: "H" +0x1882: "X" +0x1883: "W" +0x1884: "M" +0x1885: " 3 " +0x1886: " 333 " +0x1887: "a" +0x1888: "i" +0x1889: "k" +0x188a: "ng" +0x188b: "c" +0x188c: "tt" +0x188d: "tth" +0x188e: "dd" +0x188f: "nn" +0x1890: "t" +0x1891: "d" +0x1892: "p" +0x1893: "ph" +0x1894: "ss" +0x1895: "zh" +0x1896: "z" +0x1897: "a" +0x1898: "t" +0x1899: "zh" +0x189a: "gh" +0x189b: "ng" +0x189c: "c" +0x189d: "jh" +0x189e: "tta" +0x189f: "ddh" +0x18a0: "t" +0x18a1: "dh" +0x18a2: "ss" +0x18a3: "cy" +0x18a4: "zh" +0x18a5: "z" +0x18a6: "u" +0x18a7: "y" +0x18a8: "bh" +0x18a9: "'" +0x18aa: "[?]" +0x18ab: "[?]" +0x18ac: "[?]" +0x18ad: "[?]" +0x18ae: "[?]" +0x18af: "[?]" +0x18b0: "[?]" +0x18b1: "[?]" +0x18b2: "[?]" +0x18b3: "[?]" +0x18b4: "[?]" +0x18b5: "[?]" +0x18b6: "[?]" +0x18b7: "[?]" +0x18b8: "[?]" +0x18b9: "[?]" +0x18ba: "[?]" +0x18bb: "[?]" +0x18bc: "[?]" +0x18bd: "[?]" +0x18be: "[?]" +0x18bf: "[?]" +0x18c0: "[?]" +0x18c1: "[?]" +0x18c2: "[?]" +0x18c3: "[?]" +0x18c4: "[?]" +0x18c5: "[?]" +0x18c6: "[?]" +0x18c7: "[?]" +0x18c8: "[?]" +0x18c9: "[?]" +0x18ca: "[?]" +0x18cb: "[?]" +0x18cc: "[?]" +0x18cd: "[?]" +0x18ce: "[?]" +0x18cf: "[?]" +0x18d0: "[?]" +0x18d1: "[?]" +0x18d2: "[?]" +0x18d3: "[?]" +0x18d4: "[?]" +0x18d5: "[?]" +0x18d6: "[?]" +0x18d7: "[?]" +0x18d8: "[?]" +0x18d9: "[?]" +0x18da: "[?]" +0x18db: "[?]" +0x18dc: "[?]" +0x18dd: "[?]" +0x18de: "[?]" +0x18df: "[?]" +0x18e0: "[?]" +0x18e1: "[?]" +0x18e2: "[?]" +0x18e3: "[?]" +0x18e4: "[?]" +0x18e5: "[?]" +0x18e6: "[?]" +0x18e7: "[?]" +0x18e8: "[?]" +0x18e9: "[?]" +0x18ea: "[?]" +0x18eb: "[?]" +0x18ec: "[?]" +0x18ed: "[?]" +0x18ee: "[?]" +0x18ef: "[?]" +0x18f0: "[?]" +0x18f1: "[?]" +0x18f2: "[?]" +0x18f3: "[?]" +0x18f4: "[?]" +0x18f5: "[?]" +0x18f6: "[?]" +0x18f7: "[?]" +0x18f8: "[?]" +0x18f9: "[?]" +0x18fa: "[?]" +0x18fb: "[?]" +0x18fc: "[?]" +0x18fd: "[?]" +0x18fe: "[?]" +/* x01d */ +0x1d00: "" +0x1d01: "" +0x1d02: "" +0x1d03: "" +0x1d04: "" +0x1d05: "" +0x1d06: "" +0x1d07: "" +0x1d08: "" +0x1d09: "" +0x1d0a: "" +0x1d0b: "" +0x1d0c: "" +0x1d0d: "" +0x1d0e: "" +0x1d0f: "" +0x1d10: "" +0x1d11: "" +0x1d12: "" +0x1d13: "" +0x1d14: "" +0x1d15: "" +0x1d16: "" +0x1d17: "" +0x1d18: "" +0x1d19: "" +0x1d1a: "" +0x1d1b: "" +0x1d1c: "" +0x1d1d: "" +0x1d1e: "" +0x1d1f: "" +0x1d20: "" +0x1d21: "" +0x1d22: "" +0x1d23: "" +0x1d24: "" +0x1d25: "" +0x1d26: "" +0x1d27: "" +0x1d28: "" +0x1d29: "" +0x1d2a: "" +0x1d2b: "" +0x1d2c: "" +0x1d2d: "" +0x1d2e: "" +0x1d2f: "" +0x1d30: "" +0x1d31: "" +0x1d32: "" +0x1d33: "" +0x1d34: "" +0x1d35: "" +0x1d36: "" +0x1d37: "" +0x1d38: "" +0x1d39: "" +0x1d3a: "" +0x1d3b: "" +0x1d3c: "" +0x1d3d: "" +0x1d3e: "" +0x1d3f: "" +0x1d40: "" +0x1d41: "" +0x1d42: "" +0x1d43: "" +0x1d44: "" +0x1d45: "" +0x1d46: "" +0x1d47: "" +0x1d48: "" +0x1d49: "" +0x1d4a: "" +0x1d4b: "" +0x1d4c: "" +0x1d4d: "" +0x1d4e: "" +0x1d4f: "" +0x1d50: "" +0x1d51: "" +0x1d52: "" +0x1d53: "" +0x1d54: "" +0x1d55: "" +0x1d56: "" +0x1d57: "" +0x1d58: "" +0x1d59: "" +0x1d5a: "" +0x1d5b: "" +0x1d5c: "" +0x1d5d: "" +0x1d5e: "" +0x1d5f: "" +0x1d60: "" +0x1d61: "" +0x1d62: "" +0x1d63: "" +0x1d64: "" +0x1d65: "" +0x1d66: "" +0x1d67: "" +0x1d68: "" +0x1d69: "" +0x1d6a: "" +0x1d6b: "" +0x1d6c: "b" +0x1d6d: "d" +0x1d6e: "f" +0x1d6f: "m" +0x1d70: "n" +0x1d71: "p" +0x1d72: "r" +0x1d73: "r" +0x1d74: "s" +0x1d75: "t" +0x1d76: "z" +0x1d77: "g" +0x1d78: "" +0x1d79: "" +0x1d7a: "" +0x1d7b: "" +0x1d7c: "" +0x1d7d: "p" +0x1d7e: "" +0x1d7f: "" +0x1d80: "b" +0x1d81: "d" +0x1d82: "f" +0x1d83: "g" +0x1d84: "k" +0x1d85: "l" +0x1d86: "m" +0x1d87: "n" +0x1d88: "p" +0x1d89: "r" +0x1d8a: "s" +0x1d8b: "" +0x1d8c: "v" +0x1d8d: "x" +0x1d8e: "z" +0x1d8f: "" +0x1d90: "" +0x1d91: "" +0x1d92: "" +0x1d93: "" +0x1d94: "" +0x1d95: "" +0x1d96: "" +0x1d97: "" +0x1d98: "" +0x1d99: "" +0x1d9a: "" +0x1d9b: "" +0x1d9c: "" +0x1d9d: "" +0x1d9e: "" +0x1d9f: "" +0x1da0: "" +0x1da1: "" +0x1da2: "" +0x1da3: "" +0x1da4: "" +0x1da5: "" +0x1da6: "" +0x1da7: "" +0x1da8: "" +0x1da9: "" +0x1daa: "" +0x1dab: "" +0x1dac: "" +0x1dad: "" +0x1dae: "" +0x1daf: "" +0x1db0: "" +0x1db1: "" +0x1db2: "" +0x1db3: "" +0x1db4: "" +0x1db5: "" +0x1db6: "" +0x1db7: "" +0x1db8: "" +0x1db9: "" +0x1dba: "" +0x1dbb: "" +0x1dbc: "" +0x1dbd: "" +0x1dbe: "" +0x1dbf: "" +0x1dc0: "" +0x1dc1: "" +0x1dc2: "" +0x1dc3: "" +0x1dc4: "" +0x1dc5: "" +0x1dc6: "" +0x1dc7: "" +0x1dc8: "" +0x1dc9: "" +0x1dca: "" +0x1dcb: "" +0x1dcc: "" +0x1dcd: "" +0x1dce: "" +0x1dcf: "" +0x1dd0: "" +0x1dd1: "" +0x1dd2: "" +0x1dd3: "" +0x1dd4: "" +0x1dd5: "" +0x1dd6: "" +0x1dd7: "" +0x1dd8: "" +0x1dd9: "" +0x1dda: "" +0x1ddb: "" +0x1ddc: "" +0x1ddd: "" +0x1dde: "" +0x1ddf: "" +0x1de0: "" +0x1de1: "" +0x1de2: "" +0x1de3: "" +0x1de4: "" +0x1de5: "" +0x1de6: "" +0x1de7: "" +0x1de8: "" +0x1de9: "" +0x1dea: "" +0x1deb: "" +0x1dec: "" +0x1ded: "" +0x1dee: "" +0x1def: "" +0x1df0: "" +0x1df1: "" +0x1df2: "" +0x1df3: "" +0x1df4: "" +0x1df5: "" +0x1df6: "" +0x1df7: "" +0x1df8: "" +0x1df9: "" +0x1dfa: "" +0x1dfb: "" +0x1dfc: "" +0x1dfd: "" +0x1dfe: "" +/* x01e */ +0x1e00: "A" +0x1e01: "a" +0x1e02: "B" +0x1e03: "b" +0x1e04: "B" +0x1e05: "b" +0x1e06: "B" +0x1e07: "b" +0x1e08: "C" +0x1e09: "c" +0x1e0a: "D" +0x1e0b: "d" +0x1e0c: "D" +0x1e0d: "d" +0x1e0e: "D" +0x1e0f: "d" +0x1e10: "D" +0x1e11: "d" +0x1e12: "D" +0x1e13: "d" +0x1e14: "E" +0x1e15: "e" +0x1e16: "E" +0x1e17: "e" +0x1e18: "E" +0x1e19: "e" +0x1e1a: "E" +0x1e1b: "e" +0x1e1c: "E" +0x1e1d: "e" +0x1e1e: "F" +0x1e1f: "f" +0x1e20: "G" +0x1e21: "g" +0x1e22: "H" +0x1e23: "h" +0x1e24: "H" +0x1e25: "h" +0x1e26: "H" +0x1e27: "h" +0x1e28: "H" +0x1e29: "h" +0x1e2a: "H" +0x1e2b: "h" +0x1e2c: "I" +0x1e2d: "i" +0x1e2e: "I" +0x1e2f: "i" +0x1e30: "K" +0x1e31: "k" +0x1e32: "K" +0x1e33: "k" +0x1e34: "K" +0x1e35: "k" +0x1e36: "L" +0x1e37: "l" +0x1e38: "L" +0x1e39: "l" +0x1e3a: "L" +0x1e3b: "l" +0x1e3c: "L" +0x1e3d: "l" +0x1e3e: "M" +0x1e3f: "m" +0x1e40: "M" +0x1e41: "m" +0x1e42: "M" +0x1e43: "m" +0x1e44: "N" +0x1e45: "n" +0x1e46: "N" +0x1e47: "n" +0x1e48: "N" +0x1e49: "n" +0x1e4a: "N" +0x1e4b: "n" +0x1e4c: "O" +0x1e4d: "o" +0x1e4e: "O" +0x1e4f: "o" +0x1e50: "O" +0x1e51: "o" +0x1e52: "O" +0x1e53: "o" +0x1e54: "P" +0x1e55: "p" +0x1e56: "P" +0x1e57: "p" +0x1e58: "R" +0x1e59: "r" +0x1e5a: "R" +0x1e5b: "r" +0x1e5c: "R" +0x1e5d: "r" +0x1e5e: "R" +0x1e5f: "r" +0x1e60: "S" +0x1e61: "s" +0x1e62: "S" +0x1e63: "s" +0x1e64: "S" +0x1e65: "s" +0x1e66: "S" +0x1e67: "s" +0x1e68: "S" +0x1e69: "s" +0x1e6a: "T" +0x1e6b: "t" +0x1e6c: "T" +0x1e6d: "t" +0x1e6e: "T" +0x1e6f: "t" +0x1e70: "T" +0x1e71: "t" +0x1e72: "U" +0x1e73: "u" +0x1e74: "U" +0x1e75: "u" +0x1e76: "U" +0x1e77: "u" +0x1e78: "U" +0x1e79: "u" +0x1e7a: "U" +0x1e7b: "u" +0x1e7c: "V" +0x1e7d: "v" +0x1e7e: "V" +0x1e7f: "v" +0x1e80: "W" +0x1e81: "w" +0x1e82: "W" +0x1e83: "w" +0x1e84: "W" +0x1e85: "w" +0x1e86: "W" +0x1e87: "w" +0x1e88: "W" +0x1e89: "w" +0x1e8a: "X" +0x1e8b: "x" +0x1e8c: "X" +0x1e8d: "x" +0x1e8e: "Y" +0x1e8f: "y" +0x1e90: "Z" +0x1e91: "z" +0x1e92: "Z" +0x1e93: "z" +0x1e94: "Z" +0x1e95: "z" +0x1e96: "h" +0x1e97: "t" +0x1e98: "w" +0x1e99: "y" +0x1e9a: "a" +0x1e9b: "S" +0x1e9c: "[?]" +0x1e9d: "[?]" +0x1e9e: "Ss" +0x1e9f: "[?]" +0x1ea0: "A" +0x1ea1: "a" +0x1ea2: "A" +0x1ea3: "a" +0x1ea4: "A" +0x1ea5: "a" +0x1ea6: "A" +0x1ea7: "a" +0x1ea8: "A" +0x1ea9: "a" +0x1eaa: "A" +0x1eab: "a" +0x1eac: "A" +0x1ead: "a" +0x1eae: "A" +0x1eaf: "a" +0x1eb0: "A" +0x1eb1: "a" +0x1eb2: "A" +0x1eb3: "a" +0x1eb4: "A" +0x1eb5: "a" +0x1eb6: "A" +0x1eb7: "a" +0x1eb8: "E" +0x1eb9: "e" +0x1eba: "E" +0x1ebb: "e" +0x1ebc: "E" +0x1ebd: "e" +0x1ebe: "E" +0x1ebf: "e" +0x1ec0: "E" +0x1ec1: "e" +0x1ec2: "E" +0x1ec3: "e" +0x1ec4: "E" +0x1ec5: "e" +0x1ec6: "E" +0x1ec7: "e" +0x1ec8: "I" +0x1ec9: "i" +0x1eca: "I" +0x1ecb: "i" +0x1ecc: "O" +0x1ecd: "o" +0x1ece: "O" +0x1ecf: "o" +0x1ed0: "O" +0x1ed1: "o" +0x1ed2: "O" +0x1ed3: "o" +0x1ed4: "O" +0x1ed5: "o" +0x1ed6: "O" +0x1ed7: "o" +0x1ed8: "O" +0x1ed9: "o" +0x1eda: "O" +0x1edb: "o" +0x1edc: "O" +0x1edd: "o" +0x1ede: "O" +0x1edf: "o" +0x1ee0: "O" +0x1ee1: "o" +0x1ee2: "O" +0x1ee3: "o" +0x1ee4: "U" +0x1ee5: "u" +0x1ee6: "U" +0x1ee7: "u" +0x1ee8: "U" +0x1ee9: "u" +0x1eea: "U" +0x1eeb: "u" +0x1eec: "U" +0x1eed: "u" +0x1eee: "U" +0x1eef: "u" +0x1ef0: "U" +0x1ef1: "u" +0x1ef2: "Y" +0x1ef3: "y" +0x1ef4: "Y" +0x1ef5: "y" +0x1ef6: "Y" +0x1ef7: "y" +0x1ef8: "Y" +0x1ef9: "y" +0x1efa: "[?]" +0x1efb: "[?]" +0x1efc: "[?]" +0x1efd: "[?]" +0x1efe: "[?]" +/* x01f */ +0x1f00: "a" +0x1f01: "a" +0x1f02: "a" +0x1f03: "a" +0x1f04: "a" +0x1f05: "a" +0x1f06: "a" +0x1f07: "a" +0x1f08: "A" +0x1f09: "A" +0x1f0a: "A" +0x1f0b: "A" +0x1f0c: "A" +0x1f0d: "A" +0x1f0e: "A" +0x1f0f: "A" +0x1f10: "e" +0x1f11: "e" +0x1f12: "e" +0x1f13: "e" +0x1f14: "e" +0x1f15: "e" +0x1f16: "[?]" +0x1f17: "[?]" +0x1f18: "E" +0x1f19: "E" +0x1f1a: "E" +0x1f1b: "E" +0x1f1c: "E" +0x1f1d: "E" +0x1f1e: "[?]" +0x1f1f: "[?]" +0x1f20: "e" +0x1f21: "e" +0x1f22: "e" +0x1f23: "e" +0x1f24: "e" +0x1f25: "e" +0x1f26: "e" +0x1f27: "e" +0x1f28: "E" +0x1f29: "E" +0x1f2a: "E" +0x1f2b: "E" +0x1f2c: "E" +0x1f2d: "E" +0x1f2e: "E" +0x1f2f: "E" +0x1f30: "i" +0x1f31: "i" +0x1f32: "i" +0x1f33: "i" +0x1f34: "i" +0x1f35: "i" +0x1f36: "i" +0x1f37: "i" +0x1f38: "I" +0x1f39: "I" +0x1f3a: "I" +0x1f3b: "I" +0x1f3c: "I" +0x1f3d: "I" +0x1f3e: "I" +0x1f3f: "I" +0x1f40: "o" +0x1f41: "o" +0x1f42: "o" +0x1f43: "o" +0x1f44: "o" +0x1f45: "o" +0x1f46: "[?]" +0x1f47: "[?]" +0x1f48: "O" +0x1f49: "O" +0x1f4a: "O" +0x1f4b: "O" +0x1f4c: "O" +0x1f4d: "O" +0x1f4e: "[?]" +0x1f4f: "[?]" +0x1f50: "u" +0x1f51: "u" +0x1f52: "u" +0x1f53: "u" +0x1f54: "u" +0x1f55: "u" +0x1f56: "u" +0x1f57: "u" +0x1f58: "[?]" +0x1f59: "U" +0x1f5a: "[?]" +0x1f5b: "U" +0x1f5c: "[?]" +0x1f5d: "U" +0x1f5e: "[?]" +0x1f5f: "U" +0x1f60: "o" +0x1f61: "o" +0x1f62: "o" +0x1f63: "o" +0x1f64: "o" +0x1f65: "o" +0x1f66: "o" +0x1f67: "o" +0x1f68: "O" +0x1f69: "O" +0x1f6a: "O" +0x1f6b: "O" +0x1f6c: "O" +0x1f6d: "O" +0x1f6e: "O" +0x1f6f: "O" +0x1f70: "a" +0x1f71: "a" +0x1f72: "e" +0x1f73: "e" +0x1f74: "e" +0x1f75: "e" +0x1f76: "i" +0x1f77: "i" +0x1f78: "o" +0x1f79: "o" +0x1f7a: "u" +0x1f7b: "u" +0x1f7c: "o" +0x1f7d: "o" +0x1f7e: "[?]" +0x1f7f: "[?]" +0x1f80: "a" +0x1f81: "a" +0x1f82: "a" +0x1f83: "a" +0x1f84: "a" +0x1f85: "a" +0x1f86: "a" +0x1f87: "a" +0x1f88: "A" +0x1f89: "A" +0x1f8a: "A" +0x1f8b: "A" +0x1f8c: "A" +0x1f8d: "A" +0x1f8e: "A" +0x1f8f: "A" +0x1f90: "e" +0x1f91: "e" +0x1f92: "e" +0x1f93: "e" +0x1f94: "e" +0x1f95: "e" +0x1f96: "e" +0x1f97: "e" +0x1f98: "E" +0x1f99: "E" +0x1f9a: "E" +0x1f9b: "E" +0x1f9c: "E" +0x1f9d: "E" +0x1f9e: "E" +0x1f9f: "E" +0x1fa0: "o" +0x1fa1: "o" +0x1fa2: "o" +0x1fa3: "o" +0x1fa4: "o" +0x1fa5: "o" +0x1fa6: "o" +0x1fa7: "o" +0x1fa8: "O" +0x1fa9: "O" +0x1faa: "O" +0x1fab: "O" +0x1fac: "O" +0x1fad: "O" +0x1fae: "O" +0x1faf: "O" +0x1fb0: "a" +0x1fb1: "a" +0x1fb2: "a" +0x1fb3: "a" +0x1fb4: "a" +0x1fb5: "[?]" +0x1fb6: "a" +0x1fb7: "a" +0x1fb8: "A" +0x1fb9: "A" +0x1fba: "A" +0x1fbb: "A" +0x1fbc: "A" +0x1fbd: "'" +0x1fbe: "i" +0x1fbf: "'" +0x1fc0: "~" +0x1fc1: "\"~" +0x1fc2: "e" +0x1fc3: "e" +0x1fc4: "e" +0x1fc5: "[?]" +0x1fc6: "e" +0x1fc7: "e" +0x1fc8: "E" +0x1fc9: "E" +0x1fca: "E" +0x1fcb: "E" +0x1fcc: "E" +0x1fcd: "'`" +0x1fce: "''" +0x1fcf: "'~" +0x1fd0: "i" +0x1fd1: "i" +0x1fd2: "i" +0x1fd3: "i" +0x1fd4: "[?]" +0x1fd5: "[?]" +0x1fd6: "i" +0x1fd7: "i" +0x1fd8: "I" +0x1fd9: "I" +0x1fda: "I" +0x1fdb: "I" +0x1fdc: "[?]" +0x1fdd: "`'" +0x1fde: "`'" +0x1fdf: "`~" +0x1fe0: "u" +0x1fe1: "u" +0x1fe2: "u" +0x1fe3: "u" +0x1fe4: "R" +0x1fe5: "R" +0x1fe6: "u" +0x1fe7: "u" +0x1fe8: "U" +0x1fe9: "U" +0x1fea: "U" +0x1feb: "U" +0x1fec: "R" +0x1fed: "\"`" +0x1fee: "\"'" +0x1fef: "`" +0x1ff0: "[?]" +0x1ff1: "[?]" +0x1ff2: "o" +0x1ff3: "o" +0x1ff4: "o" +0x1ff5: "[?]" +0x1ff6: "o" +0x1ff7: "o" +0x1ff8: "O" +0x1ff9: "O" +0x1ffa: "O" +0x1ffb: "O" +0x1ffc: "O" +0x1ffd: "'" +0x1ffe: "`" +/* x020 */ +0x2000: " " +0x2001: " " +0x2002: " " +0x2003: " " +0x2004: " " +0x2005: " " +0x2006: " " +0x2007: " " +0x2008: " " +0x2009: " " +0x200a: " " +0x200b: " " +0x200c: "" +0x200d: "" +0x200e: "" +0x200f: "" +0x2010: "-" +0x2011: "-" +0x2012: "-" +0x2013: "-" +0x2014: "--" +0x2015: "--" +0x2016: "||" +0x2017: "_" +0x2018: "'" +0x2019: "'" +0x201a: "," +0x201b: "'" +0x201c: "\"" +0x201d: "\"" +0x201e: ",," +0x201f: "\"" +0x2020: "+" +0x2021: "++" +0x2022: "*" +0x2023: "*>" +0x2024: "." +0x2025: ".." +0x2026: "..." +0x2027: "." +0x2028: "\n" +0x2029: "\n\n" +0x202a: "" +0x202b: "" +0x202c: "" +0x202d: "" +0x202e: "" +0x202f: " " +0x2030: "%0" +0x2031: "%00" +0x2032: "'" +0x2033: "''" +0x2034: "'''" +0x2035: "`" +0x2036: "``" +0x2037: "```" +0x2038: "^" +0x2039: "<" +0x203a: ">" +0x203b: "*" +0x203c: "!!" +0x203d: "!?" +0x203e: "-" +0x203f: "_" +0x2040: "-" +0x2041: "^" +0x2042: "***" +0x2043: "--" +0x2044: "/" +0x2045: "-[" +0x2046: "]-" +0x2047: "[?]" +0x2048: "?!" +0x2049: "!?" +0x204a: "7" +0x204b: "PP" +0x204c: "(]" +0x204d: "[)" +0x204e: "[?]" +0x204f: "[?]" +0x2050: "[?]" +0x2051: "[?]" +0x2052: "[?]" +0x2053: "[?]" +0x2054: "[?]" +0x2055: "[?]" +0x2056: "[?]" +0x2057: "[?]" +0x2058: "[?]" +0x2059: "[?]" +0x205a: "[?]" +0x205b: "[?]" +0x205c: "[?]" +0x205d: "[?]" +0x205e: "[?]" +0x205f: "[?]" +0x2060: "[?]" +0x2061: "[?]" +0x2062: "[?]" +0x2063: "[?]" +0x2064: "[?]" +0x2065: "[?]" +0x2066: "[?]" +0x2067: "[?]" +0x2068: "[?]" +0x2069: "[?]" +0x206a: "" +0x206b: "" +0x206c: "" +0x206d: "" +0x206e: "" +0x206f: "" +0x2070: "0" +0x2071: "" +0x2072: "" +0x2073: "" +0x2074: "4" +0x2075: "5" +0x2076: "6" +0x2077: "7" +0x2078: "8" +0x2079: "9" +0x207a: "+" +0x207b: "-" +0x207c: "=" +0x207d: "(" +0x207e: ")" +0x207f: "n" +0x2080: "0" +0x2081: "1" +0x2082: "2" +0x2083: "3" +0x2084: "4" +0x2085: "5" +0x2086: "6" +0x2087: "7" +0x2088: "8" +0x2089: "9" +0x208a: "+" +0x208b: "-" +0x208c: "=" +0x208d: "(" +0x208e: ")" +0x208f: "[?]" +0x2090: "[?]" +0x2091: "[?]" +0x2092: "[?]" +0x2093: "[?]" +0x2094: "[?]" +0x2095: "[?]" +0x2096: "[?]" +0x2097: "[?]" +0x2098: "[?]" +0x2099: "[?]" +0x209a: "[?]" +0x209b: "[?]" +0x209c: "[?]" +0x209d: "[?]" +0x209e: "[?]" +0x209f: "[?]" +0x20a0: "ECU" +0x20a1: "CL" +0x20a2: "Cr" +0x20a3: "FF" +0x20a4: "L" +0x20a5: "mil" +0x20a6: "N" +0x20a7: "Pts" +0x20a8: "Rs" +0x20a9: "W" +0x20aa: "NS" +0x20ab: "D" +0x20ac: "EU" +0x20ad: "K" +0x20ae: "T" +0x20af: "Dr" +0x20b0: "[?]" +0x20b1: "[?]" +0x20b2: "[?]" +0x20b3: "[?]" +0x20b4: "[?]" +0x20b5: "[?]" +0x20b6: "[?]" +0x20b7: "[?]" +0x20b8: "[?]" +0x20b9: "[?]" +0x20ba: "[?]" +0x20bb: "[?]" +0x20bc: "[?]" +0x20bd: "[?]" +0x20be: "[?]" +0x20bf: "[?]" +0x20c0: "[?]" +0x20c1: "[?]" +0x20c2: "[?]" +0x20c3: "[?]" +0x20c4: "[?]" +0x20c5: "[?]" +0x20c6: "[?]" +0x20c7: "[?]" +0x20c8: "[?]" +0x20c9: "[?]" +0x20ca: "[?]" +0x20cb: "[?]" +0x20cc: "[?]" +0x20cd: "[?]" +0x20ce: "[?]" +0x20cf: "[?]" +0x20d0: "" +0x20d1: "" +0x20d2: "" +0x20d3: "" +0x20d4: "" +0x20d5: "" +0x20d6: "" +0x20d7: "" +0x20d8: "" +0x20d9: "" +0x20da: "" +0x20db: "" +0x20dc: "" +0x20dd: "" +0x20de: "" +0x20df: "" +0x20e0: "" +0x20e1: "" +0x20e2: "" +0x20e3: "" +0x20e4: "[?]" +0x20e5: "[?]" +0x20e6: "[?]" +0x20e7: "[?]" +0x20e8: "[?]" +0x20e9: "[?]" +0x20ea: "[?]" +0x20eb: "[?]" +0x20ec: "[?]" +0x20ed: "[?]" +0x20ee: "[?]" +0x20ef: "[?]" +0x20f0: "[?]" +0x20f1: "[?]" +0x20f2: "[?]" +0x20f3: "[?]" +0x20f4: "[?]" +0x20f5: "[?]" +0x20f6: "[?]" +0x20f7: "[?]" +0x20f8: "[?]" +0x20f9: "[?]" +0x20fa: "[?]" +0x20fb: "[?]" +0x20fc: "[?]" +0x20fd: "[?]" +0x20fe: "[?]" +/* x021 */ +0x2100: "" +0x2101: "" +0x2102: "" +0x2103: "" +0x2104: "" +0x2105: "" +0x2106: "" +0x2107: "" +0x2108: "" +0x2109: "" +0x210a: "" +0x210b: "" +0x210c: "" +0x210d: "" +0x210e: "" +0x210f: "" +0x2110: "" +0x2111: "" +0x2112: "" +0x2113: "" +0x2114: "" +0x2115: "" +0x2116: "" +0x2117: "" +0x2118: "" +0x2119: "" +0x211a: "" +0x211b: "" +0x211c: "" +0x211d: "" +0x211e: "" +0x211f: "" +0x2120: "" +0x2121: "" +0x2122: "" +0x2123: "" +0x2124: "" +0x2125: "" +0x2126: "" +0x2127: "" +0x2128: "" +0x2129: "" +0x212a: "K" +0x212b: "A" +0x212c: "" +0x212d: "" +0x212e: "" +0x212f: "" +0x2130: "" +0x2131: "" +0x2132: "F" +0x2133: "" +0x2134: "" +0x2135: "" +0x2136: "" +0x2137: "" +0x2138: "" +0x2139: "" +0x213a: "" +0x213b: "[?]" +0x213c: "[?]" +0x213d: "[?]" +0x213e: "[?]" +0x213f: "[?]" +0x2140: "[?]" +0x2141: "[?]" +0x2142: "[?]" +0x2143: "[?]" +0x2144: "[?]" +0x2145: "[?]" +0x2146: "[?]" +0x2147: "[?]" +0x2148: "[?]" +0x2149: "[?]" +0x214a: "[?]" +0x214b: "[?]" +0x214c: "[?]" +0x214d: "[?]" +0x214e: "F" +0x214f: "[?]" +0x2150: "[?]" +0x2151: "[?]" +0x2152: "[?]" +0x2153: " 1/3 " +0x2154: " 2/3 " +0x2155: " 1/5 " +0x2156: " 2/5 " +0x2157: " 3/5 " +0x2158: " 4/5 " +0x2159: " 1/6 " +0x215a: " 5/6 " +0x215b: " 1/8 " +0x215c: " 3/8 " +0x215d: " 5/8 " +0x215e: " 7/8 " +0x215f: " 1/" +0x2160: "I" +0x2161: "II" +0x2162: "III" +0x2163: "IV" +0x2164: "V" +0x2165: "VI" +0x2166: "VII" +0x2167: "VIII" +0x2168: "IX" +0x2169: "X" +0x216a: "XI" +0x216b: "XII" +0x216c: "L" +0x216d: "C" +0x216e: "D" +0x216f: "M" +0x2170: "i" +0x2171: "ii" +0x2172: "iii" +0x2173: "iv" +0x2174: "v" +0x2175: "vi" +0x2176: "vii" +0x2177: "viii" +0x2178: "ix" +0x2179: "x" +0x217a: "xi" +0x217b: "xii" +0x217c: "l" +0x217d: "c" +0x217e: "d" +0x217f: "m" +0x2180: "(D" +0x2181: "D)" +0x2182: "((|))" +0x2183: ")" +0x2184: "[?]" +0x2185: "[?]" +0x2186: "[?]" +0x2187: "[?]" +0x2188: "[?]" +0x2189: "[?]" +0x218a: "[?]" +0x218b: "[?]" +0x218c: "[?]" +0x218d: "[?]" +0x218e: "[?]" +0x218f: "[?]" +0x2190: "-" +0x2191: "|" +0x2192: "-" +0x2193: "|" +0x2194: "-" +0x2195: "|" +0x2196: "\\" +0x2197: "/" +0x2198: "\\" +0x2199: "/" +0x219a: "-" +0x219b: "-" +0x219c: "~" +0x219d: "~" +0x219e: "-" +0x219f: "|" +0x21a0: "-" +0x21a1: "|" +0x21a2: "-" +0x21a3: "-" +0x21a4: "-" +0x21a5: "|" +0x21a6: "-" +0x21a7: "|" +0x21a8: "|" +0x21a9: "-" +0x21aa: "-" +0x21ab: "-" +0x21ac: "-" +0x21ad: "-" +0x21ae: "-" +0x21af: "|" +0x21b0: "|" +0x21b1: "|" +0x21b2: "|" +0x21b3: "|" +0x21b4: "|" +0x21b5: "|" +0x21b6: "^" +0x21b7: "V" +0x21b8: "\\" +0x21b9: "=" +0x21ba: "V" +0x21bb: "^" +0x21bc: "-" +0x21bd: "-" +0x21be: "|" +0x21bf: "|" +0x21c0: "-" +0x21c1: "-" +0x21c2: "|" +0x21c3: "|" +0x21c4: "=" +0x21c5: "|" +0x21c6: "=" +0x21c7: "=" +0x21c8: "|" +0x21c9: "=" +0x21ca: "|" +0x21cb: "=" +0x21cc: "=" +0x21cd: "=" +0x21ce: "=" +0x21cf: "=" +0x21d0: "=" +0x21d1: "|" +0x21d2: "=" +0x21d3: "|" +0x21d4: "=" +0x21d5: "|" +0x21d6: "\\" +0x21d7: "/" +0x21d8: "\\" +0x21d9: "/" +0x21da: "=" +0x21db: "=" +0x21dc: "~" +0x21dd: "~" +0x21de: "|" +0x21df: "|" +0x21e0: "-" +0x21e1: "|" +0x21e2: "-" +0x21e3: "|" +0x21e4: "-" +0x21e5: "-" +0x21e6: "-" +0x21e7: "|" +0x21e8: "-" +0x21e9: "|" +0x21ea: "|" +0x21eb: "|" +0x21ec: "|" +0x21ed: "|" +0x21ee: "|" +0x21ef: "|" +0x21f0: "-" +0x21f1: "\\" +0x21f2: "\\" +0x21f3: "|" +0x21f4: "[?]" +0x21f5: "[?]" +0x21f6: "[?]" +0x21f7: "[?]" +0x21f8: "[?]" +0x21f9: "[?]" +0x21fa: "[?]" +0x21fb: "[?]" +0x21fc: "[?]" +0x21fd: "[?]" +0x21fe: "[?]" +/* x022 */ +0x2200: "[?]" +0x2201: "[?]" +0x2202: "[?]" +0x2203: "[?]" +0x2204: "[?]" +0x2205: "[?]" +0x2206: "[?]" +0x2207: "[?]" +0x2208: "[?]" +0x2209: "[?]" +0x220a: "[?]" +0x220b: "[?]" +0x220c: "[?]" +0x220d: "[?]" +0x220e: "[?]" +0x220f: "[?]" +0x2210: "[?]" +0x2211: "[?]" +0x2212: "[?]" +0x2213: "[?]" +0x2214: "[?]" +0x2215: "[?]" +0x2216: "[?]" +0x2217: "[?]" +0x2218: "[?]" +0x2219: "[?]" +0x221a: "[?]" +0x221b: "[?]" +0x221c: "[?]" +0x221d: "[?]" +0x221e: "[?]" +0x221f: "[?]" +0x2220: "[?]" +0x2221: "[?]" +0x2222: "[?]" +0x2223: "[?]" +0x2224: "[?]" +0x2225: "[?]" +0x2226: "[?]" +0x2227: "[?]" +0x2228: "[?]" +0x2229: "[?]" +0x222a: "[?]" +0x222b: "[?]" +0x222c: "[?]" +0x222d: "[?]" +0x222e: "[?]" +0x222f: "[?]" +0x2230: "[?]" +0x2231: "[?]" +0x2232: "[?]" +0x2233: "[?]" +0x2234: "[?]" +0x2235: "[?]" +0x2236: "[?]" +0x2237: "[?]" +0x2238: "[?]" +0x2239: "[?]" +0x223a: "[?]" +0x223b: "[?]" +0x223c: "[?]" +0x223d: "[?]" +0x223e: "[?]" +0x223f: "[?]" +0x2240: "[?]" +0x2241: "[?]" +0x2242: "[?]" +0x2243: "[?]" +0x2244: "[?]" +0x2245: "[?]" +0x2246: "[?]" +0x2247: "[?]" +0x2248: "[?]" +0x2249: "[?]" +0x224a: "[?]" +0x224b: "[?]" +0x224c: "[?]" +0x224d: "[?]" +0x224e: "[?]" +0x224f: "[?]" +0x2250: "[?]" +0x2251: "[?]" +0x2252: "[?]" +0x2253: "[?]" +0x2254: "[?]" +0x2255: "[?]" +0x2256: "[?]" +0x2257: "[?]" +0x2258: "[?]" +0x2259: "[?]" +0x225a: "[?]" +0x225b: "[?]" +0x225c: "[?]" +0x225d: "[?]" +0x225e: "[?]" +0x225f: "[?]" +0x2260: "[?]" +0x2261: "[?]" +0x2262: "[?]" +0x2263: "[?]" +0x2264: "[?]" +0x2265: "[?]" +0x2266: "[?]" +0x2267: "[?]" +0x2268: "[?]" +0x2269: "[?]" +0x226a: "[?]" +0x226b: "[?]" +0x226c: "[?]" +0x226d: "[?]" +0x226e: "[?]" +0x226f: "[?]" +0x2270: "[?]" +0x2271: "[?]" +0x2272: "[?]" +0x2273: "[?]" +0x2274: "[?]" +0x2275: "[?]" +0x2276: "[?]" +0x2277: "[?]" +0x2278: "[?]" +0x2279: "[?]" +0x227a: "[?]" +0x227b: "[?]" +0x227c: "[?]" +0x227d: "[?]" +0x227e: "[?]" +0x227f: "[?]" +0x2280: "[?]" +0x2281: "[?]" +0x2282: "[?]" +0x2283: "[?]" +0x2284: "[?]" +0x2285: "[?]" +0x2286: "[?]" +0x2287: "[?]" +0x2288: "[?]" +0x2289: "[?]" +0x228a: "[?]" +0x228b: "[?]" +0x228c: "[?]" +0x228d: "[?]" +0x228e: "[?]" +0x228f: "[?]" +0x2290: "[?]" +0x2291: "[?]" +0x2292: "[?]" +0x2293: "[?]" +0x2294: "[?]" +0x2295: "[?]" +0x2296: "[?]" +0x2297: "[?]" +0x2298: "[?]" +0x2299: "[?]" +0x229a: "[?]" +0x229b: "[?]" +0x229c: "[?]" +0x229d: "[?]" +0x229e: "[?]" +0x229f: "[?]" +0x22a0: "[?]" +0x22a1: "[?]" +0x22a2: "[?]" +0x22a3: "[?]" +0x22a4: "[?]" +0x22a5: "[?]" +0x22a6: "[?]" +0x22a7: "[?]" +0x22a8: "[?]" +0x22a9: "[?]" +0x22aa: "[?]" +0x22ab: "[?]" +0x22ac: "[?]" +0x22ad: "[?]" +0x22ae: "[?]" +0x22af: "[?]" +0x22b0: "[?]" +0x22b1: "[?]" +0x22b2: "[?]" +0x22b3: "[?]" +0x22b4: "[?]" +0x22b5: "[?]" +0x22b6: "[?]" +0x22b7: "[?]" +0x22b8: "[?]" +0x22b9: "[?]" +0x22ba: "[?]" +0x22bb: "[?]" +0x22bc: "[?]" +0x22bd: "[?]" +0x22be: "[?]" +0x22bf: "[?]" +0x22c0: "[?]" +0x22c1: "[?]" +0x22c2: "[?]" +0x22c3: "[?]" +0x22c4: "[?]" +0x22c5: "[?]" +0x22c6: "[?]" +0x22c7: "[?]" +0x22c8: "[?]" +0x22c9: "[?]" +0x22ca: "[?]" +0x22cb: "[?]" +0x22cc: "[?]" +0x22cd: "[?]" +0x22ce: "[?]" +0x22cf: "[?]" +0x22d0: "[?]" +0x22d1: "[?]" +0x22d2: "[?]" +0x22d3: "[?]" +0x22d4: "[?]" +0x22d5: "[?]" +0x22d6: "[?]" +0x22d7: "[?]" +0x22d8: "[?]" +0x22d9: "[?]" +0x22da: "[?]" +0x22db: "[?]" +0x22dc: "[?]" +0x22dd: "[?]" +0x22de: "[?]" +0x22df: "[?]" +0x22e0: "[?]" +0x22e1: "[?]" +0x22e2: "[?]" +0x22e3: "[?]" +0x22e4: "[?]" +0x22e5: "[?]" +0x22e6: "[?]" +0x22e7: "[?]" +0x22e8: "[?]" +0x22e9: "[?]" +0x22ea: "[?]" +0x22eb: "[?]" +0x22ec: "[?]" +0x22ed: "[?]" +0x22ee: "[?]" +0x22ef: "[?]" +0x22f0: "[?]" +0x22f1: "[?]" +0x22f2: "[?]" +0x22f3: "[?]" +0x22f4: "[?]" +0x22f5: "[?]" +0x22f6: "[?]" +0x22f7: "[?]" +0x22f8: "[?]" +0x22f9: "[?]" +0x22fa: "[?]" +0x22fb: "[?]" +0x22fc: "[?]" +0x22fd: "[?]" +0x22fe: "[?]" +/* x023 */ +0x2300: "[?]" +0x2301: "[?]" +0x2302: "[?]" +0x2303: "[?]" +0x2304: "[?]" +0x2305: "[?]" +0x2306: "[?]" +0x2307: "[?]" +0x2308: "[?]" +0x2309: "[?]" +0x230a: "[?]" +0x230b: "[?]" +0x230c: "[?]" +0x230d: "[?]" +0x230e: "[?]" +0x230f: "[?]" +0x2310: "[?]" +0x2311: "[?]" +0x2312: "[?]" +0x2313: "[?]" +0x2314: "[?]" +0x2315: "[?]" +0x2316: "[?]" +0x2317: "[?]" +0x2318: "[?]" +0x2319: "[?]" +0x231a: "[?]" +0x231b: "[?]" +0x231c: "[?]" +0x231d: "[?]" +0x231e: "[?]" +0x231f: "[?]" +0x2320: "[?]" +0x2321: "[?]" +0x2322: "[?]" +0x2323: "[?]" +0x2324: "[?]" +0x2325: "[?]" +0x2326: "[?]" +0x2327: "[?]" +0x2328: "[?]" +0x2329: "[?]" +0x232a: "[?]" +0x232b: "[?]" +0x232c: "[?]" +0x232d: "[?]" +0x232e: "[?]" +0x232f: "[?]" +0x2330: "[?]" +0x2331: "[?]" +0x2332: "[?]" +0x2333: "[?]" +0x2334: "[?]" +0x2335: "[?]" +0x2336: "[?]" +0x2337: "[?]" +0x2338: "[?]" +0x2339: "[?]" +0x233a: "[?]" +0x233b: "[?]" +0x233c: "[?]" +0x233d: "[?]" +0x233e: "[?]" +0x233f: "[?]" +0x2340: "[?]" +0x2341: "[?]" +0x2342: "[?]" +0x2343: "[?]" +0x2344: "[?]" +0x2345: "[?]" +0x2346: "[?]" +0x2347: "[?]" +0x2348: "[?]" +0x2349: "[?]" +0x234a: "[?]" +0x234b: "[?]" +0x234c: "[?]" +0x234d: "[?]" +0x234e: "[?]" +0x234f: "[?]" +0x2350: "[?]" +0x2351: "[?]" +0x2352: "[?]" +0x2353: "[?]" +0x2354: "[?]" +0x2355: "[?]" +0x2356: "[?]" +0x2357: "[?]" +0x2358: "[?]" +0x2359: "[?]" +0x235a: "[?]" +0x235b: "[?]" +0x235c: "[?]" +0x235d: "[?]" +0x235e: "[?]" +0x235f: "[?]" +0x2360: "[?]" +0x2361: "[?]" +0x2362: "[?]" +0x2363: "[?]" +0x2364: "[?]" +0x2365: "[?]" +0x2366: "[?]" +0x2367: "[?]" +0x2368: "[?]" +0x2369: "[?]" +0x236a: "[?]" +0x236b: "[?]" +0x236c: "[?]" +0x236d: "[?]" +0x236e: "[?]" +0x236f: "[?]" +0x2370: "[?]" +0x2371: "[?]" +0x2372: "[?]" +0x2373: "[?]" +0x2374: "[?]" +0x2375: "[?]" +0x2376: "[?]" +0x2377: "[?]" +0x2378: "[?]" +0x2379: "[?]" +0x237a: "[?]" +0x237b: "[?]" +0x237c: "[?]" +0x237d: "[?]" +0x237e: "[?]" +0x237f: "[?]" +0x2380: "[?]" +0x2381: "[?]" +0x2382: "[?]" +0x2383: "[?]" +0x2384: "[?]" +0x2385: "[?]" +0x2386: "[?]" +0x2387: "[?]" +0x2388: "[?]" +0x2389: "[?]" +0x238a: "[?]" +0x238b: "[?]" +0x238c: "[?]" +0x238d: "[?]" +0x238e: "[?]" +0x238f: "[?]" +0x2390: "[?]" +0x2391: "[?]" +0x2392: "[?]" +0x2393: "[?]" +0x2394: "[?]" +0x2395: "[?]" +0x2396: "[?]" +0x2397: "[?]" +0x2398: "[?]" +0x2399: "[?]" +0x239a: "[?]" +0x239b: "[?]" +0x239c: "[?]" +0x239d: "[?]" +0x239e: "[?]" +0x239f: "[?]" +0x23a0: "[?]" +0x23a1: "[?]" +0x23a2: "[?]" +0x23a3: "[?]" +0x23a4: "[?]" +0x23a5: "[?]" +0x23a6: "[?]" +0x23a7: "[?]" +0x23a8: "[?]" +0x23a9: "[?]" +0x23aa: "[?]" +0x23ab: "[?]" +0x23ac: "[?]" +0x23ad: "[?]" +0x23ae: "[?]" +0x23af: "[?]" +0x23b0: "[?]" +0x23b1: "[?]" +0x23b2: "[?]" +0x23b3: "[?]" +0x23b4: "[?]" +0x23b5: "[?]" +0x23b6: "[?]" +0x23b7: "[?]" +0x23b8: "[?]" +0x23b9: "[?]" +0x23ba: "[?]" +0x23bb: "[?]" +0x23bc: "[?]" +0x23bd: "[?]" +0x23be: "[?]" +0x23bf: "[?]" +0x23c0: "[?]" +0x23c1: "[?]" +0x23c2: "[?]" +0x23c3: "[?]" +0x23c4: "[?]" +0x23c5: "[?]" +0x23c6: "[?]" +0x23c7: "[?]" +0x23c8: "[?]" +0x23c9: "[?]" +0x23ca: "[?]" +0x23cb: "[?]" +0x23cc: "[?]" +0x23cd: "[?]" +0x23ce: "[?]" +0x23cf: "[?]" +0x23d0: "[?]" +0x23d1: "[?]" +0x23d2: "[?]" +0x23d3: "[?]" +0x23d4: "[?]" +0x23d5: "[?]" +0x23d6: "[?]" +0x23d7: "[?]" +0x23d8: "[?]" +0x23d9: "[?]" +0x23da: "[?]" +0x23db: "[?]" +0x23dc: "[?]" +0x23dd: "[?]" +0x23de: "[?]" +0x23df: "[?]" +0x23e0: "[?]" +0x23e1: "[?]" +0x23e2: "[?]" +0x23e3: "[?]" +0x23e4: "[?]" +0x23e5: "[?]" +0x23e6: "[?]" +0x23e7: "[?]" +0x23e8: "[?]" +0x23e9: "[?]" +0x23ea: "[?]" +0x23eb: "[?]" +0x23ec: "[?]" +0x23ed: "[?]" +0x23ee: "[?]" +0x23ef: "[?]" +0x23f0: "[?]" +0x23f1: "[?]" +0x23f2: "[?]" +0x23f3: "[?]" +0x23f4: "[?]" +0x23f5: "[?]" +0x23f6: "[?]" +0x23f7: "[?]" +0x23f8: "[?]" +0x23f9: "[?]" +0x23fa: "[?]" +0x23fb: "[?]" +0x23fc: "[?]" +0x23fd: "[?]" +0x23fe: "[?]" +/* x024 */ +0x2400: "" +0x2401: "" +0x2402: "" +0x2403: "" +0x2404: "" +0x2405: "" +0x2406: "" +0x2407: "" +0x2408: "" +0x2409: "" +0x240a: "" +0x240b: "" +0x240c: "" +0x240d: "" +0x240e: "" +0x240f: "" +0x2410: "" +0x2411: "" +0x2412: "" +0x2413: "" +0x2414: "" +0x2415: "" +0x2416: "" +0x2417: "" +0x2418: "" +0x2419: "" +0x241a: "" +0x241b: "" +0x241c: "" +0x241d: "" +0x241e: "" +0x241f: "" +0x2420: "" +0x2421: "" +0x2422: "" +0x2423: "" +0x2424: "" +0x2425: "" +0x2426: "" +0x2427: "[?]" +0x2428: "[?]" +0x2429: "[?]" +0x242a: "[?]" +0x242b: "[?]" +0x242c: "[?]" +0x242d: "[?]" +0x242e: "[?]" +0x242f: "[?]" +0x2430: "[?]" +0x2431: "[?]" +0x2432: "[?]" +0x2433: "[?]" +0x2434: "[?]" +0x2435: "[?]" +0x2436: "[?]" +0x2437: "[?]" +0x2438: "[?]" +0x2439: "[?]" +0x243a: "[?]" +0x243b: "[?]" +0x243c: "[?]" +0x243d: "[?]" +0x243e: "[?]" +0x243f: "[?]" +0x2440: "" +0x2441: "" +0x2442: "" +0x2443: "" +0x2444: "" +0x2445: "" +0x2446: "" +0x2447: "" +0x2448: "" +0x2449: "" +0x244a: "" +0x244b: "[?]" +0x244c: "[?]" +0x244d: "[?]" +0x244e: "[?]" +0x244f: "[?]" +0x2450: "[?]" +0x2451: "[?]" +0x2452: "[?]" +0x2453: "[?]" +0x2454: "[?]" +0x2455: "[?]" +0x2456: "[?]" +0x2457: "[?]" +0x2458: "[?]" +0x2459: "[?]" +0x245a: "[?]" +0x245b: "[?]" +0x245c: "[?]" +0x245d: "[?]" +0x245e: "[?]" +0x245f: "[?]" +0x2460: "" +0x2461: "" +0x2462: "" +0x2463: "" +0x2464: "" +0x2465: "" +0x2466: "" +0x2467: "" +0x2468: "" +0x2469: "" +0x246a: "" +0x246b: "" +0x246c: "" +0x246d: "" +0x246e: "" +0x246f: "" +0x2470: "" +0x2471: "" +0x2472: "" +0x2473: "" +0x2474: "" +0x2475: "" +0x2476: "" +0x2477: "" +0x2478: "" +0x2479: "" +0x247a: "" +0x247b: "" +0x247c: "" +0x247d: "" +0x247e: "" +0x247f: "" +0x2480: "" +0x2481: "" +0x2482: "" +0x2483: "" +0x2484: "" +0x2485: "" +0x2486: "" +0x2487: "" +0x2488: "" +0x2489: "" +0x248a: "" +0x248b: "" +0x248c: "" +0x248d: "" +0x248e: "" +0x248f: "" +0x2490: "" +0x2491: "" +0x2492: "" +0x2493: "" +0x2494: "" +0x2495: "" +0x2496: "" +0x2497: "" +0x2498: "" +0x2499: "" +0x249a: "" +0x249b: "" +0x249c: "" +0x249d: "" +0x249e: "" +0x249f: "" +0x24a0: "" +0x24a1: "" +0x24a2: "" +0x24a3: "" +0x24a4: "" +0x24a5: "" +0x24a6: "" +0x24a7: "" +0x24a8: "" +0x24a9: "" +0x24aa: "" +0x24ab: "" +0x24ac: "" +0x24ad: "" +0x24ae: "" +0x24af: "" +0x24b0: "" +0x24b1: "" +0x24b2: "" +0x24b3: "" +0x24b4: "" +0x24b5: "" +0x24b6: "" +0x24b7: "" +0x24b8: "" +0x24b9: "" +0x24ba: "" +0x24bb: "" +0x24bc: "" +0x24bd: "" +0x24be: "" +0x24bf: "" +0x24c0: "" +0x24c1: "" +0x24c2: "" +0x24c3: "" +0x24c4: "" +0x24c5: "" +0x24c6: "" +0x24c7: "" +0x24c8: "" +0x24c9: "" +0x24ca: "" +0x24cb: "" +0x24cc: "" +0x24cd: "" +0x24ce: "" +0x24cf: "" +0x24d0: "a" +0x24d1: "b" +0x24d2: "c" +0x24d3: "d" +0x24d4: "e" +0x24d5: "f" +0x24d6: "g" +0x24d7: "h" +0x24d8: "i" +0x24d9: "j" +0x24da: "k" +0x24db: "l" +0x24dc: "m" +0x24dd: "n" +0x24de: "o" +0x24df: "p" +0x24e0: "q" +0x24e1: "r" +0x24e2: "s" +0x24e3: "t" +0x24e4: "u" +0x24e5: "v" +0x24e6: "w" +0x24e7: "x" +0x24e8: "y" +0x24e9: "z" +0x24ea: "0" +0x24eb: "[?]" +0x24ec: "[?]" +0x24ed: "[?]" +0x24ee: "[?]" +0x24ef: "[?]" +0x24f0: "[?]" +0x24f1: "[?]" +0x24f2: "[?]" +0x24f3: "[?]" +0x24f4: "[?]" +0x24f5: "[?]" +0x24f6: "[?]" +0x24f7: "[?]" +0x24f8: "[?]" +0x24f9: "[?]" +0x24fa: "[?]" +0x24fb: "[?]" +0x24fc: "[?]" +0x24fd: "[?]" +0x24fe: "[?]" +/* x025 */ +0x2500: "-" +0x2501: "-" +0x2502: "|" +0x2503: "|" +0x2504: "-" +0x2505: "-" +0x2506: "|" +0x2507: "|" +0x2508: "-" +0x2509: "-" +0x250a: "|" +0x250b: "|" +0x250c: "+" +0x250d: "+" +0x250e: "+" +0x250f: "+" +0x2510: "+" +0x2511: "+" +0x2512: "+" +0x2513: "+" +0x2514: "+" +0x2515: "+" +0x2516: "+" +0x2517: "+" +0x2518: "+" +0x2519: "+" +0x251a: "+" +0x251b: "+" +0x251c: "+" +0x251d: "+" +0x251e: "+" +0x251f: "+" +0x2520: "+" +0x2521: "+" +0x2522: "+" +0x2523: "+" +0x2524: "+" +0x2525: "+" +0x2526: "+" +0x2527: "+" +0x2528: "+" +0x2529: "+" +0x252a: "+" +0x252b: "+" +0x252c: "+" +0x252d: "+" +0x252e: "+" +0x252f: "+" +0x2530: "+" +0x2531: "+" +0x2532: "+" +0x2533: "+" +0x2534: "+" +0x2535: "+" +0x2536: "+" +0x2537: "+" +0x2538: "+" +0x2539: "+" +0x253a: "+" +0x253b: "+" +0x253c: "+" +0x253d: "+" +0x253e: "+" +0x253f: "+" +0x2540: "+" +0x2541: "+" +0x2542: "+" +0x2543: "+" +0x2544: "+" +0x2545: "+" +0x2546: "+" +0x2547: "+" +0x2548: "+" +0x2549: "+" +0x254a: "+" +0x254b: "+" +0x254c: "-" +0x254d: "-" +0x254e: "|" +0x254f: "|" +0x2550: "-" +0x2551: "|" +0x2552: "+" +0x2553: "+" +0x2554: "+" +0x2555: "+" +0x2556: "+" +0x2557: "+" +0x2558: "+" +0x2559: "+" +0x255a: "+" +0x255b: "+" +0x255c: "+" +0x255d: "+" +0x255e: "+" +0x255f: "+" +0x2560: "+" +0x2561: "+" +0x2562: "+" +0x2563: "+" +0x2564: "+" +0x2565: "+" +0x2566: "+" +0x2567: "+" +0x2568: "+" +0x2569: "+" +0x256a: "+" +0x256b: "+" +0x256c: "+" +0x256d: "+" +0x256e: "+" +0x256f: "+" +0x2570: "+" +0x2571: "/" +0x2572: "\\" +0x2573: "X" +0x2574: "-" +0x2575: "|" +0x2576: "-" +0x2577: "|" +0x2578: "-" +0x2579: "|" +0x257a: "-" +0x257b: "|" +0x257c: "-" +0x257d: "|" +0x257e: "-" +0x257f: "|" +0x2580: "#" +0x2581: "#" +0x2582: "#" +0x2583: "#" +0x2584: "#" +0x2585: "#" +0x2586: "#" +0x2587: "#" +0x2588: "#" +0x2589: "#" +0x258a: "#" +0x258b: "#" +0x258c: "#" +0x258d: "#" +0x258e: "#" +0x258f: "#" +0x2590: "#" +0x2591: "#" +0x2592: "#" +0x2593: "#" +0x2594: "-" +0x2595: "|" +0x2596: "[?]" +0x2597: "[?]" +0x2598: "[?]" +0x2599: "[?]" +0x259a: "[?]" +0x259b: "[?]" +0x259c: "[?]" +0x259d: "[?]" +0x259e: "[?]" +0x259f: "[?]" +0x25a0: "#" +0x25a1: "#" +0x25a2: "#" +0x25a3: "#" +0x25a4: "#" +0x25a5: "#" +0x25a6: "#" +0x25a7: "#" +0x25a8: "#" +0x25a9: "#" +0x25aa: "#" +0x25ab: "#" +0x25ac: "#" +0x25ad: "#" +0x25ae: "#" +0x25af: "#" +0x25b0: "#" +0x25b1: "#" +0x25b2: "^" +0x25b3: "^" +0x25b4: "^" +0x25b5: "^" +0x25b6: ">" +0x25b7: ">" +0x25b8: ">" +0x25b9: ">" +0x25ba: ">" +0x25bb: ">" +0x25bc: "V" +0x25bd: "V" +0x25be: "V" +0x25bf: "V" +0x25c0: "<" +0x25c1: "<" +0x25c2: "<" +0x25c3: "<" +0x25c4: "<" +0x25c5: "<" +0x25c6: "*" +0x25c7: "*" +0x25c8: "*" +0x25c9: "*" +0x25ca: "*" +0x25cb: "*" +0x25cc: "*" +0x25cd: "*" +0x25ce: "*" +0x25cf: "*" +0x25d0: "*" +0x25d1: "*" +0x25d2: "*" +0x25d3: "*" +0x25d4: "*" +0x25d5: "*" +0x25d6: "*" +0x25d7: "*" +0x25d8: "*" +0x25d9: "*" +0x25da: "*" +0x25db: "*" +0x25dc: "*" +0x25dd: "*" +0x25de: "*" +0x25df: "*" +0x25e0: "*" +0x25e1: "*" +0x25e2: "*" +0x25e3: "*" +0x25e4: "*" +0x25e5: "*" +0x25e6: "*" +0x25e7: "#" +0x25e8: "#" +0x25e9: "#" +0x25ea: "#" +0x25eb: "#" +0x25ec: "^" +0x25ed: "^" +0x25ee: "^" +0x25ef: "O" +0x25f0: "#" +0x25f1: "#" +0x25f2: "#" +0x25f3: "#" +0x25f4: "#" +0x25f5: "#" +0x25f6: "#" +0x25f7: "#" +0x25f8: "[?]" +0x25f9: "[?]" +0x25fa: "[?]" +0x25fb: "[?]" +0x25fc: "[?]" +0x25fd: "[?]" +0x25fe: "[?]" +/* x026 */ +0x2600: "" +0x2601: "" +0x2602: "" +0x2603: "" +0x2604: "" +0x2605: "" +0x2606: "" +0x2607: "" +0x2608: "" +0x2609: "" +0x260a: "" +0x260b: "" +0x260c: "" +0x260d: "" +0x260e: "" +0x260f: "" +0x2610: "" +0x2611: "" +0x2612: "" +0x2613: "" +0x2614: "[?]" +0x2615: "[?]" +0x2616: "[?]" +0x2617: "[?]" +0x2618: "[?]" +0x2619: "" +0x261a: "" +0x261b: "" +0x261c: "" +0x261d: "" +0x261e: "" +0x261f: "" +0x2620: "" +0x2621: "" +0x2622: "" +0x2623: "" +0x2624: "" +0x2625: "" +0x2626: "" +0x2627: "" +0x2628: "" +0x2629: "" +0x262a: "" +0x262b: "" +0x262c: "" +0x262d: "" +0x262e: "" +0x262f: "" +0x2630: "" +0x2631: "" +0x2632: "" +0x2633: "" +0x2634: "" +0x2635: "" +0x2636: "" +0x2637: "" +0x2638: "" +0x2639: "" +0x263a: "" +0x263b: "" +0x263c: "" +0x263d: "" +0x263e: "" +0x263f: "" +0x2640: "" +0x2641: "" +0x2642: "" +0x2643: "" +0x2644: "" +0x2645: "" +0x2646: "" +0x2647: "" +0x2648: "" +0x2649: "" +0x264a: "" +0x264b: "" +0x264c: "" +0x264d: "" +0x264e: "" +0x264f: "" +0x2650: "" +0x2651: "" +0x2652: "" +0x2653: "" +0x2654: "" +0x2655: "" +0x2656: "" +0x2657: "" +0x2658: "" +0x2659: "" +0x265a: "" +0x265b: "" +0x265c: "" +0x265d: "" +0x265e: "" +0x265f: "" +0x2660: "" +0x2661: "" +0x2662: "" +0x2663: "" +0x2664: "" +0x2665: "" +0x2666: "" +0x2667: "" +0x2668: "" +0x2669: "" +0x266a: "" +0x266b: "" +0x266c: "" +0x266d: "" +0x266e: "" +0x266f: "" +0x2670: "" +0x2671: "" +0x2672: "[?]" +0x2673: "[?]" +0x2674: "[?]" +0x2675: "[?]" +0x2676: "[?]" +0x2677: "[?]" +0x2678: "[?]" +0x2679: "[?]" +0x267a: "[?]" +0x267b: "[?]" +0x267c: "[?]" +0x267d: "[?]" +0x267e: "[?]" +0x267f: "[?]" +0x2680: "[?]" +0x2681: "[?]" +0x2682: "[?]" +0x2683: "[?]" +0x2684: "[?]" +0x2685: "[?]" +0x2686: "[?]" +0x2687: "[?]" +0x2688: "[?]" +0x2689: "[?]" +0x268a: "[?]" +0x268b: "[?]" +0x268c: "[?]" +0x268d: "[?]" +0x268e: "[?]" +0x268f: "[?]" +0x2690: "[?]" +0x2691: "[?]" +0x2692: "[?]" +0x2693: "[?]" +0x2694: "[?]" +0x2695: "[?]" +0x2696: "[?]" +0x2697: "[?]" +0x2698: "[?]" +0x2699: "[?]" +0x269a: "[?]" +0x269b: "[?]" +0x269c: "[?]" +0x269d: "[?]" +0x269e: "[?]" +0x269f: "[?]" +0x26a0: "[?]" +0x26a1: "[?]" +0x26a2: "[?]" +0x26a3: "[?]" +0x26a4: "[?]" +0x26a5: "[?]" +0x26a6: "[?]" +0x26a7: "[?]" +0x26a8: "[?]" +0x26a9: "[?]" +0x26aa: "[?]" +0x26ab: "[?]" +0x26ac: "[?]" +0x26ad: "[?]" +0x26ae: "[?]" +0x26af: "[?]" +0x26b0: "[?]" +0x26b1: "[?]" +0x26b2: "[?]" +0x26b3: "[?]" +0x26b4: "[?]" +0x26b5: "[?]" +0x26b6: "[?]" +0x26b7: "[?]" +0x26b8: "[?]" +0x26b9: "[?]" +0x26ba: "[?]" +0x26bb: "[?]" +0x26bc: "[?]" +0x26bd: "[?]" +0x26be: "[?]" +0x26bf: "[?]" +0x26c0: "[?]" +0x26c1: "[?]" +0x26c2: "[?]" +0x26c3: "[?]" +0x26c4: "[?]" +0x26c5: "[?]" +0x26c6: "[?]" +0x26c7: "[?]" +0x26c8: "[?]" +0x26c9: "[?]" +0x26ca: "[?]" +0x26cb: "[?]" +0x26cc: "[?]" +0x26cd: "[?]" +0x26ce: "[?]" +0x26cf: "[?]" +0x26d0: "[?]" +0x26d1: "[?]" +0x26d2: "[?]" +0x26d3: "[?]" +0x26d4: "[?]" +0x26d5: "[?]" +0x26d6: "[?]" +0x26d7: "[?]" +0x26d8: "[?]" +0x26d9: "[?]" +0x26da: "[?]" +0x26db: "[?]" +0x26dc: "[?]" +0x26dd: "[?]" +0x26de: "[?]" +0x26df: "[?]" +0x26e0: "[?]" +0x26e1: "[?]" +0x26e2: "[?]" +0x26e3: "[?]" +0x26e4: "[?]" +0x26e5: "[?]" +0x26e6: "[?]" +0x26e7: "[?]" +0x26e8: "[?]" +0x26e9: "[?]" +0x26ea: "[?]" +0x26eb: "[?]" +0x26ec: "[?]" +0x26ed: "[?]" +0x26ee: "[?]" +0x26ef: "[?]" +0x26f0: "[?]" +0x26f1: "[?]" +0x26f2: "[?]" +0x26f3: "[?]" +0x26f4: "[?]" +0x26f5: "[?]" +0x26f6: "[?]" +0x26f7: "[?]" +0x26f8: "[?]" +0x26f9: "[?]" +0x26fa: "[?]" +0x26fb: "[?]" +0x26fc: "[?]" +0x26fd: "[?]" +0x26fe: "[?]" +/* x027 */ +0x2700: "[?]" +0x2701: "" +0x2702: "" +0x2703: "" +0x2704: "" +0x2705: "" +0x2706: "" +0x2707: "" +0x2708: "" +0x2709: "" +0x270a: "" +0x270b: "" +0x270c: "" +0x270d: "" +0x270e: "" +0x270f: "" +0x2710: "" +0x2711: "" +0x2712: "" +0x2713: "" +0x2714: "" +0x2715: "" +0x2716: "" +0x2717: "" +0x2718: "" +0x2719: "" +0x271a: "" +0x271b: "" +0x271c: "" +0x271d: "" +0x271e: "" +0x271f: "" +0x2720: "" +0x2721: "" +0x2722: "" +0x2723: "" +0x2724: "" +0x2725: "" +0x2726: "" +0x2727: "" +0x2728: "" +0x2729: "" +0x272a: "" +0x272b: "" +0x272c: "" +0x272d: "" +0x272e: "" +0x272f: "" +0x2730: "" +0x2731: "" +0x2732: "" +0x2733: "" +0x2734: "" +0x2735: "" +0x2736: "" +0x2737: "" +0x2738: "" +0x2739: "" +0x273a: "" +0x273b: "" +0x273c: "" +0x273d: "" +0x273e: "" +0x273f: "" +0x2740: "" +0x2741: "" +0x2742: "" +0x2743: "" +0x2744: "" +0x2745: "" +0x2746: "" +0x2747: "" +0x2748: "" +0x2749: "" +0x274a: "" +0x274b: "" +0x274c: "" +0x274d: "" +0x274e: "" +0x274f: "" +0x2750: "" +0x2751: "" +0x2752: "" +0x2753: "" +0x2754: "" +0x2755: "" +0x2756: "" +0x2757: "" +0x2758: "" +0x2759: "" +0x275a: "" +0x275b: "" +0x275c: "" +0x275d: "" +0x275e: "" +0x275f: "[?]" +0x2760: "[?]" +0x2761: "" +0x2762: "" +0x2763: "" +0x2764: "" +0x2765: "" +0x2766: "" +0x2767: "" +0x2768: "" +0x2769: "" +0x276a: "" +0x276b: "" +0x276c: "" +0x276d: "" +0x276e: "" +0x276f: "" +0x2770: "" +0x2771: "" +0x2772: "" +0x2773: "" +0x2774: "" +0x2775: "" +0x2776: "" +0x2777: "" +0x2778: "" +0x2779: "" +0x277a: "" +0x277b: "" +0x277c: "" +0x277d: "" +0x277e: "" +0x277f: "" +0x2780: "" +0x2781: "" +0x2782: "" +0x2783: "" +0x2784: "" +0x2785: "" +0x2786: "" +0x2787: "" +0x2788: "" +0x2789: "" +0x278a: "" +0x278b: "" +0x278c: "" +0x278d: "" +0x278e: "" +0x278f: "" +0x2790: "" +0x2791: "" +0x2792: "" +0x2793: "" +0x2794: "" +0x2795: "" +0x2796: "" +0x2797: "" +0x2798: "" +0x2799: "" +0x279a: "" +0x279b: "" +0x279c: "" +0x279d: "" +0x279e: "" +0x279f: "" +0x27a0: "" +0x27a1: "" +0x27a2: "" +0x27a3: "" +0x27a4: "" +0x27a5: "" +0x27a6: "" +0x27a7: "" +0x27a8: "" +0x27a9: "" +0x27aa: "" +0x27ab: "" +0x27ac: "" +0x27ad: "" +0x27ae: "" +0x27af: "" +0x27b0: "[?]" +0x27b1: "" +0x27b2: "" +0x27b3: "" +0x27b4: "" +0x27b5: "" +0x27b6: "" +0x27b7: "" +0x27b8: "" +0x27b9: "" +0x27ba: "" +0x27bb: "" +0x27bc: "" +0x27bd: "" +0x27be: "" +0x27bf: "[?]" +0x27c0: "[?]" +0x27c1: "[?]" +0x27c2: "[?]" +0x27c3: "[?]" +0x27c4: "[?]" +0x27c5: "[?]" +0x27c6: "[?]" +0x27c7: "[?]" +0x27c8: "[?]" +0x27c9: "[?]" +0x27ca: "[?]" +0x27cb: "[?]" +0x27cc: "[?]" +0x27cd: "[?]" +0x27ce: "[?]" +0x27cf: "[?]" +0x27d0: "[?]" +0x27d1: "[?]" +0x27d2: "[?]" +0x27d3: "[?]" +0x27d4: "[?]" +0x27d5: "[?]" +0x27d6: "[?]" +0x27d7: "[?]" +0x27d8: "[?]" +0x27d9: "[?]" +0x27da: "[?]" +0x27db: "[?]" +0x27dc: "[?]" +0x27dd: "[?]" +0x27de: "[?]" +0x27df: "[?]" +0x27e0: "[?]" +0x27e1: "[?]" +0x27e2: "[?]" +0x27e3: "[?]" +0x27e4: "[?]" +0x27e5: "[?]" +0x27e6: "[?]" +0x27e7: "[?]" +0x27e8: "[?]" +0x27e9: "[?]" +0x27ea: "[?]" +0x27eb: "[?]" +0x27ec: "[?]" +0x27ed: "[?]" +0x27ee: "[?]" +0x27ef: "[?]" +0x27f0: "[?]" +0x27f1: "[?]" +0x27f2: "[?]" +0x27f3: "[?]" +0x27f4: "[?]" +0x27f5: "[?]" +0x27f6: "[?]" +0x27f7: "[?]" +0x27f8: "[?]" +0x27f9: "[?]" +0x27fa: "[?]" +0x27fb: "[?]" +0x27fc: "[?]" +0x27fd: "[?]" +0x27fe: "[?]" +/* x028 */ +0x2800: " " +0x2801: "a" +0x2802: "1" +0x2803: "b" +0x2804: "'" +0x2805: "k" +0x2806: "2" +0x2807: "l" +0x2808: "@" +0x2809: "c" +0x280a: "i" +0x280b: "f" +0x280c: "/" +0x280d: "m" +0x280e: "s" +0x280f: "p" +0x2810: "\"" +0x2811: "e" +0x2812: "3" +0x2813: "h" +0x2814: "9" +0x2815: "o" +0x2816: "6" +0x2817: "r" +0x2818: "^" +0x2819: "d" +0x281a: "j" +0x281b: "g" +0x281c: ">" +0x281d: "n" +0x281e: "t" +0x281f: "q" +0x2820: "," +0x2821: "*" +0x2822: "5" +0x2823: "<" +0x2824: "-" +0x2825: "u" +0x2826: "8" +0x2827: "v" +0x2828: "." +0x2829: "%" +0x282a: "[" +0x282b: "$" +0x282c: "+" +0x282d: "x" +0x282e: "!" +0x282f: "&" +0x2830: ";" +0x2831: ":" +0x2832: "4" +0x2833: "\\" +0x2834: "0" +0x2835: "z" +0x2836: "7" +0x2837: "(" +0x2838: "_" +0x2839: "?" +0x283a: "w" +0x283b: "]" +0x283c: "#" +0x283d: "y" +0x283e: ")" +0x283f: "=" +0x2840: "[d7]" +0x2841: "[d17]" +0x2842: "[d27]" +0x2843: "[d127]" +0x2844: "[d37]" +0x2845: "[d137]" +0x2846: "[d237]" +0x2847: "[d1237]" +0x2848: "[d47]" +0x2849: "[d147]" +0x284a: "[d247]" +0x284b: "[d1247]" +0x284c: "[d347]" +0x284d: "[d1347]" +0x284e: "[d2347]" +0x284f: "[d12347]" +0x2850: "[d57]" +0x2851: "[d157]" +0x2852: "[d257]" +0x2853: "[d1257]" +0x2854: "[d357]" +0x2855: "[d1357]" +0x2856: "[d2357]" +0x2857: "[d12357]" +0x2858: "[d457]" +0x2859: "[d1457]" +0x285a: "[d2457]" +0x285b: "[d12457]" +0x285c: "[d3457]" +0x285d: "[d13457]" +0x285e: "[d23457]" +0x285f: "[d123457]" +0x2860: "[d67]" +0x2861: "[d167]" +0x2862: "[d267]" +0x2863: "[d1267]" +0x2864: "[d367]" +0x2865: "[d1367]" +0x2866: "[d2367]" +0x2867: "[d12367]" +0x2868: "[d467]" +0x2869: "[d1467]" +0x286a: "[d2467]" +0x286b: "[d12467]" +0x286c: "[d3467]" +0x286d: "[d13467]" +0x286e: "[d23467]" +0x286f: "[d123467]" +0x2870: "[d567]" +0x2871: "[d1567]" +0x2872: "[d2567]" +0x2873: "[d12567]" +0x2874: "[d3567]" +0x2875: "[d13567]" +0x2876: "[d23567]" +0x2877: "[d123567]" +0x2878: "[d4567]" +0x2879: "[d14567]" +0x287a: "[d24567]" +0x287b: "[d124567]" +0x287c: "[d34567]" +0x287d: "[d134567]" +0x287e: "[d234567]" +0x287f: "[d1234567]" +0x2880: "[d8]" +0x2881: "[d18]" +0x2882: "[d28]" +0x2883: "[d128]" +0x2884: "[d38]" +0x2885: "[d138]" +0x2886: "[d238]" +0x2887: "[d1238]" +0x2888: "[d48]" +0x2889: "[d148]" +0x288a: "[d248]" +0x288b: "[d1248]" +0x288c: "[d348]" +0x288d: "[d1348]" +0x288e: "[d2348]" +0x288f: "[d12348]" +0x2890: "[d58]" +0x2891: "[d158]" +0x2892: "[d258]" +0x2893: "[d1258]" +0x2894: "[d358]" +0x2895: "[d1358]" +0x2896: "[d2358]" +0x2897: "[d12358]" +0x2898: "[d458]" +0x2899: "[d1458]" +0x289a: "[d2458]" +0x289b: "[d12458]" +0x289c: "[d3458]" +0x289d: "[d13458]" +0x289e: "[d23458]" +0x289f: "[d123458]" +0x28a0: "[d68]" +0x28a1: "[d168]" +0x28a2: "[d268]" +0x28a3: "[d1268]" +0x28a4: "[d368]" +0x28a5: "[d1368]" +0x28a6: "[d2368]" +0x28a7: "[d12368]" +0x28a8: "[d468]" +0x28a9: "[d1468]" +0x28aa: "[d2468]" +0x28ab: "[d12468]" +0x28ac: "[d3468]" +0x28ad: "[d13468]" +0x28ae: "[d23468]" +0x28af: "[d123468]" +0x28b0: "[d568]" +0x28b1: "[d1568]" +0x28b2: "[d2568]" +0x28b3: "[d12568]" +0x28b4: "[d3568]" +0x28b5: "[d13568]" +0x28b6: "[d23568]" +0x28b7: "[d123568]" +0x28b8: "[d4568]" +0x28b9: "[d14568]" +0x28ba: "[d24568]" +0x28bb: "[d124568]" +0x28bc: "[d34568]" +0x28bd: "[d134568]" +0x28be: "[d234568]" +0x28bf: "[d1234568]" +0x28c0: "[d78]" +0x28c1: "[d178]" +0x28c2: "[d278]" +0x28c3: "[d1278]" +0x28c4: "[d378]" +0x28c5: "[d1378]" +0x28c6: "[d2378]" +0x28c7: "[d12378]" +0x28c8: "[d478]" +0x28c9: "[d1478]" +0x28ca: "[d2478]" +0x28cb: "[d12478]" +0x28cc: "[d3478]" +0x28cd: "[d13478]" +0x28ce: "[d23478]" +0x28cf: "[d123478]" +0x28d0: "[d578]" +0x28d1: "[d1578]" +0x28d2: "[d2578]" +0x28d3: "[d12578]" +0x28d4: "[d3578]" +0x28d5: "[d13578]" +0x28d6: "[d23578]" +0x28d7: "[d123578]" +0x28d8: "[d4578]" +0x28d9: "[d14578]" +0x28da: "[d24578]" +0x28db: "[d124578]" +0x28dc: "[d34578]" +0x28dd: "[d134578]" +0x28de: "[d234578]" +0x28df: "[d1234578]" +0x28e0: "[d678]" +0x28e1: "[d1678]" +0x28e2: "[d2678]" +0x28e3: "[d12678]" +0x28e4: "[d3678]" +0x28e5: "[d13678]" +0x28e6: "[d23678]" +0x28e7: "[d123678]" +0x28e8: "[d4678]" +0x28e9: "[d14678]" +0x28ea: "[d24678]" +0x28eb: "[d124678]" +0x28ec: "[d34678]" +0x28ed: "[d134678]" +0x28ee: "[d234678]" +0x28ef: "[d1234678]" +0x28f0: "[d5678]" +0x28f1: "[d15678]" +0x28f2: "[d25678]" +0x28f3: "[d125678]" +0x28f4: "[d35678]" +0x28f5: "[d135678]" +0x28f6: "[d235678]" +0x28f7: "[d1235678]" +0x28f8: "[d45678]" +0x28f9: "[d145678]" +0x28fa: "[d245678]" +0x28fb: "[d1245678]" +0x28fc: "[d345678]" +0x28fd: "[d1345678]" +0x28fe: "[d2345678]" +0x28ff: "[d12345678]" +/* x02c */ +0x2c00: "" +0x2c01: "" +0x2c02: "" +0x2c03: "" +0x2c04: "" +0x2c05: "" +0x2c06: "" +0x2c07: "" +0x2c08: "" +0x2c09: "" +0x2c0a: "" +0x2c0b: "" +0x2c0c: "" +0x2c0d: "" +0x2c0e: "" +0x2c0f: "" +0x2c10: "" +0x2c11: "" +0x2c12: "" +0x2c13: "" +0x2c14: "" +0x2c15: "" +0x2c16: "" +0x2c17: "" +0x2c18: "" +0x2c19: "" +0x2c1a: "" +0x2c1b: "" +0x2c1c: "" +0x2c1d: "" +0x2c1e: "" +0x2c1f: "" +0x2c20: "" +0x2c21: "" +0x2c22: "" +0x2c23: "" +0x2c24: "" +0x2c25: "" +0x2c26: "" +0x2c27: "" +0x2c28: "" +0x2c29: "" +0x2c2a: "" +0x2c2b: "" +0x2c2c: "" +0x2c2d: "" +0x2c2e: "" +0x2c2f: "" +0x2c30: "" +0x2c31: "" +0x2c32: "" +0x2c33: "" +0x2c34: "" +0x2c35: "" +0x2c36: "" +0x2c37: "" +0x2c38: "" +0x2c39: "" +0x2c3a: "" +0x2c3b: "" +0x2c3c: "" +0x2c3d: "" +0x2c3e: "" +0x2c3f: "" +0x2c40: "" +0x2c41: "" +0x2c42: "" +0x2c43: "" +0x2c44: "" +0x2c45: "" +0x2c46: "" +0x2c47: "" +0x2c48: "" +0x2c49: "" +0x2c4a: "" +0x2c4b: "" +0x2c4c: "" +0x2c4d: "" +0x2c4e: "" +0x2c4f: "" +0x2c50: "" +0x2c51: "" +0x2c52: "" +0x2c53: "" +0x2c54: "" +0x2c55: "" +0x2c56: "" +0x2c57: "" +0x2c58: "" +0x2c59: "" +0x2c5a: "" +0x2c5b: "" +0x2c5c: "" +0x2c5d: "" +0x2c5e: "" +0x2c5f: "" +0x2c60: "L" +0x2c61: "l" +0x2c62: "L" +0x2c63: "P" +0x2c64: "R" +0x2c65: "a" +0x2c66: "t" +0x2c67: "H" +0x2c68: "h" +0x2c69: "K" +0x2c6a: "k" +0x2c6b: "Z" +0x2c6c: "z" +0x2c6d: "" +0x2c6e: "M" +0x2c6f: "A" +0x2c70: "" +0x2c71: "" +0x2c72: "" +0x2c73: "" +0x2c74: "" +0x2c75: "" +0x2c76: "" +0x2c77: "" +0x2c78: "" +0x2c79: "" +0x2c7a: "" +0x2c7b: "" +0x2c7c: "" +0x2c7d: "" +0x2c7e: "" +0x2c7f: "" +0x2c80: "" +0x2c81: "" +0x2c82: "" +0x2c83: "" +0x2c84: "" +0x2c85: "" +0x2c86: "" +0x2c87: "" +0x2c88: "" +0x2c89: "" +0x2c8a: "" +0x2c8b: "" +0x2c8c: "" +0x2c8d: "" +0x2c8e: "" +0x2c8f: "" +0x2c90: "" +0x2c91: "" +0x2c92: "" +0x2c93: "" +0x2c94: "" +0x2c95: "" +0x2c96: "" +0x2c97: "" +0x2c98: "" +0x2c99: "" +0x2c9a: "" +0x2c9b: "" +0x2c9c: "" +0x2c9d: "" +0x2c9e: "" +0x2c9f: "" +0x2ca0: "" +0x2ca1: "" +0x2ca2: "" +0x2ca3: "" +0x2ca4: "" +0x2ca5: "" +0x2ca6: "" +0x2ca7: "" +0x2ca8: "" +0x2ca9: "" +0x2caa: "" +0x2cab: "" +0x2cac: "" +0x2cad: "" +0x2cae: "" +0x2caf: "" +0x2cb0: "" +0x2cb1: "" +0x2cb2: "" +0x2cb3: "" +0x2cb4: "" +0x2cb5: "" +0x2cb6: "" +0x2cb7: "" +0x2cb8: "" +0x2cb9: "" +0x2cba: "" +0x2cbb: "" +0x2cbc: "" +0x2cbd: "" +0x2cbe: "" +0x2cbf: "" +0x2cc0: "" +0x2cc1: "" +0x2cc2: "" +0x2cc3: "" +0x2cc4: "" +0x2cc5: "" +0x2cc6: "" +0x2cc7: "" +0x2cc8: "" +0x2cc9: "" +0x2cca: "" +0x2ccb: "" +0x2ccc: "" +0x2ccd: "" +0x2cce: "" +0x2ccf: "" +0x2cd0: "" +0x2cd1: "" +0x2cd2: "" +0x2cd3: "" +0x2cd4: "" +0x2cd5: "" +0x2cd6: "" +0x2cd7: "" +0x2cd8: "" +0x2cd9: "" +0x2cda: "" +0x2cdb: "" +0x2cdc: "" +0x2cdd: "" +0x2cde: "" +0x2cdf: "" +0x2ce0: "" +0x2ce1: "" +0x2ce2: "" +0x2ce3: "" +0x2ce4: "" +0x2ce5: "" +0x2ce6: "" +0x2ce7: "" +0x2ce8: "" +0x2ce9: "" +0x2cea: "" +0x2ceb: "" +0x2cec: "" +0x2ced: "" +0x2cee: "" +0x2cef: "" +0x2cf0: "" +0x2cf1: "" +0x2cf2: "" +0x2cf3: "" +0x2cf4: "" +0x2cf5: "" +0x2cf6: "" +0x2cf7: "" +0x2cf8: "" +0x2cf9: "" +0x2cfa: "" +0x2cfb: "" +0x2cfc: "" +0x2cfd: "" +0x2cfe: "" +/* x02e */ +0x2e00: "[?]" +0x2e01: "[?]" +0x2e02: "[?]" +0x2e03: "[?]" +0x2e04: "[?]" +0x2e05: "[?]" +0x2e06: "[?]" +0x2e07: "[?]" +0x2e08: "[?]" +0x2e09: "[?]" +0x2e0a: "[?]" +0x2e0b: "[?]" +0x2e0c: "[?]" +0x2e0d: "[?]" +0x2e0e: "[?]" +0x2e0f: "[?]" +0x2e10: "[?]" +0x2e11: "[?]" +0x2e12: "[?]" +0x2e13: "[?]" +0x2e14: "[?]" +0x2e15: "[?]" +0x2e16: "[?]" +0x2e17: "[?]" +0x2e18: "[?]" +0x2e19: "[?]" +0x2e1a: "[?]" +0x2e1b: "[?]" +0x2e1c: "[?]" +0x2e1d: "[?]" +0x2e1e: "[?]" +0x2e1f: "[?]" +0x2e20: "[?]" +0x2e21: "[?]" +0x2e22: "[?]" +0x2e23: "[?]" +0x2e24: "[?]" +0x2e25: "[?]" +0x2e26: "[?]" +0x2e27: "[?]" +0x2e28: "[?]" +0x2e29: "[?]" +0x2e2a: "[?]" +0x2e2b: "[?]" +0x2e2c: "[?]" +0x2e2d: "[?]" +0x2e2e: "[?]" +0x2e2f: "[?]" +0x2e30: "[?]" +0x2e31: "[?]" +0x2e32: "[?]" +0x2e33: "[?]" +0x2e34: "[?]" +0x2e35: "[?]" +0x2e36: "[?]" +0x2e37: "[?]" +0x2e38: "[?]" +0x2e39: "[?]" +0x2e3a: "[?]" +0x2e3b: "[?]" +0x2e3c: "[?]" +0x2e3d: "[?]" +0x2e3e: "[?]" +0x2e3f: "[?]" +0x2e40: "[?]" +0x2e41: "[?]" +0x2e42: "[?]" +0x2e43: "[?]" +0x2e44: "[?]" +0x2e45: "[?]" +0x2e46: "[?]" +0x2e47: "[?]" +0x2e48: "[?]" +0x2e49: "[?]" +0x2e4a: "[?]" +0x2e4b: "[?]" +0x2e4c: "[?]" +0x2e4d: "[?]" +0x2e4e: "[?]" +0x2e4f: "[?]" +0x2e50: "[?]" +0x2e51: "[?]" +0x2e52: "[?]" +0x2e53: "[?]" +0x2e54: "[?]" +0x2e55: "[?]" +0x2e56: "[?]" +0x2e57: "[?]" +0x2e58: "[?]" +0x2e59: "[?]" +0x2e5a: "[?]" +0x2e5b: "[?]" +0x2e5c: "[?]" +0x2e5d: "[?]" +0x2e5e: "[?]" +0x2e5f: "[?]" +0x2e60: "[?]" +0x2e61: "[?]" +0x2e62: "[?]" +0x2e63: "[?]" +0x2e64: "[?]" +0x2e65: "[?]" +0x2e66: "[?]" +0x2e67: "[?]" +0x2e68: "[?]" +0x2e69: "[?]" +0x2e6a: "[?]" +0x2e6b: "[?]" +0x2e6c: "[?]" +0x2e6d: "[?]" +0x2e6e: "[?]" +0x2e6f: "[?]" +0x2e70: "[?]" +0x2e71: "[?]" +0x2e72: "[?]" +0x2e73: "[?]" +0x2e74: "[?]" +0x2e75: "[?]" +0x2e76: "[?]" +0x2e77: "[?]" +0x2e78: "[?]" +0x2e79: "[?]" +0x2e7a: "[?]" +0x2e7b: "[?]" +0x2e7c: "[?]" +0x2e7d: "[?]" +0x2e7e: "[?]" +0x2e7f: "[?]" +0x2e80: "[?] " +0x2e81: "[?] " +0x2e82: "[?] " +0x2e83: "[?] " +0x2e84: "[?] " +0x2e85: "[?] " +0x2e86: "[?] " +0x2e87: "[?] " +0x2e88: "[?] " +0x2e89: "[?] " +0x2e8a: "[?] " +0x2e8b: "[?] " +0x2e8c: "[?] " +0x2e8d: "[?] " +0x2e8e: "[?] " +0x2e8f: "[?] " +0x2e90: "[?] " +0x2e91: "[?] " +0x2e92: "[?] " +0x2e93: "[?] " +0x2e94: "[?] " +0x2e95: "[?] " +0x2e96: "[?] " +0x2e97: "[?] " +0x2e98: "[?] " +0x2e99: "[?] " +0x2e9a: "[?]" +0x2e9b: "[?] " +0x2e9c: "[?] " +0x2e9d: "[?] " +0x2e9e: "[?] " +0x2e9f: "[?] " +0x2ea0: "[?] " +0x2ea1: "[?] " +0x2ea2: "[?] " +0x2ea3: "[?] " +0x2ea4: "[?] " +0x2ea5: "[?] " +0x2ea6: "[?] " +0x2ea7: "[?] " +0x2ea8: "[?] " +0x2ea9: "[?] " +0x2eaa: "[?] " +0x2eab: "[?] " +0x2eac: "[?] " +0x2ead: "[?] " +0x2eae: "[?] " +0x2eaf: "[?] " +0x2eb0: "[?] " +0x2eb1: "[?] " +0x2eb2: "[?] " +0x2eb3: "[?] " +0x2eb4: "[?] " +0x2eb5: "[?] " +0x2eb6: "[?] " +0x2eb7: "[?] " +0x2eb8: "[?] " +0x2eb9: "[?] " +0x2eba: "[?] " +0x2ebb: "[?] " +0x2ebc: "[?] " +0x2ebd: "[?] " +0x2ebe: "[?] " +0x2ebf: "[?] " +0x2ec0: "[?] " +0x2ec1: "[?] " +0x2ec2: "[?] " +0x2ec3: "[?] " +0x2ec4: "[?] " +0x2ec5: "[?] " +0x2ec6: "[?] " +0x2ec7: "[?] " +0x2ec8: "[?] " +0x2ec9: "[?] " +0x2eca: "[?] " +0x2ecb: "[?] " +0x2ecc: "[?] " +0x2ecd: "[?] " +0x2ece: "[?] " +0x2ecf: "[?] " +0x2ed0: "[?] " +0x2ed1: "[?] " +0x2ed2: "[?] " +0x2ed3: "[?] " +0x2ed4: "[?] " +0x2ed5: "[?] " +0x2ed6: "[?] " +0x2ed7: "[?] " +0x2ed8: "[?] " +0x2ed9: "[?] " +0x2eda: "[?] " +0x2edb: "[?] " +0x2edc: "[?] " +0x2edd: "[?] " +0x2ede: "[?] " +0x2edf: "[?] " +0x2ee0: "[?] " +0x2ee1: "[?] " +0x2ee2: "[?] " +0x2ee3: "[?] " +0x2ee4: "[?] " +0x2ee5: "[?] " +0x2ee6: "[?] " +0x2ee7: "[?] " +0x2ee8: "[?] " +0x2ee9: "[?] " +0x2eea: "[?] " +0x2eeb: "[?] " +0x2eec: "[?] " +0x2eed: "[?] " +0x2eee: "[?] " +0x2eef: "[?] " +0x2ef0: "[?] " +0x2ef1: "[?] " +0x2ef2: "[?] " +0x2ef3: "[?] " +0x2ef4: "[?]" +0x2ef5: "[?]" +0x2ef6: "[?]" +0x2ef7: "[?]" +0x2ef8: "[?]" +0x2ef9: "[?]" +0x2efa: "[?]" +0x2efb: "[?]" +0x2efc: "[?]" +0x2efd: "[?]" +0x2efe: "[?]" +/* x02f */ +0x2f00: "[?] " +0x2f01: "[?] " +0x2f02: "[?] " +0x2f03: "[?] " +0x2f04: "[?] " +0x2f05: "[?] " +0x2f06: "[?] " +0x2f07: "[?] " +0x2f08: "[?] " +0x2f09: "[?] " +0x2f0a: "[?] " +0x2f0b: "[?] " +0x2f0c: "[?] " +0x2f0d: "[?] " +0x2f0e: "[?] " +0x2f0f: "[?] " +0x2f10: "[?] " +0x2f11: "[?] " +0x2f12: "[?] " +0x2f13: "[?] " +0x2f14: "[?] " +0x2f15: "[?] " +0x2f16: "[?] " +0x2f17: "[?] " +0x2f18: "[?] " +0x2f19: "[?] " +0x2f1a: "[?] " +0x2f1b: "[?] " +0x2f1c: "[?] " +0x2f1d: "[?] " +0x2f1e: "[?] " +0x2f1f: "[?] " +0x2f20: "[?] " +0x2f21: "[?] " +0x2f22: "[?] " +0x2f23: "[?] " +0x2f24: "[?] " +0x2f25: "[?] " +0x2f26: "[?] " +0x2f27: "[?] " +0x2f28: "[?] " +0x2f29: "[?] " +0x2f2a: "[?] " +0x2f2b: "[?] " +0x2f2c: "[?] " +0x2f2d: "[?] " +0x2f2e: "[?] " +0x2f2f: "[?] " +0x2f30: "[?] " +0x2f31: "[?] " +0x2f32: "[?] " +0x2f33: "[?] " +0x2f34: "[?] " +0x2f35: "[?] " +0x2f36: "[?] " +0x2f37: "[?] " +0x2f38: "[?] " +0x2f39: "[?] " +0x2f3a: "[?] " +0x2f3b: "[?] " +0x2f3c: "[?] " +0x2f3d: "[?] " +0x2f3e: "[?] " +0x2f3f: "[?] " +0x2f40: "[?] " +0x2f41: "[?] " +0x2f42: "[?] " +0x2f43: "[?] " +0x2f44: "[?] " +0x2f45: "[?] " +0x2f46: "[?] " +0x2f47: "[?] " +0x2f48: "[?] " +0x2f49: "[?] " +0x2f4a: "[?] " +0x2f4b: "[?] " +0x2f4c: "[?] " +0x2f4d: "[?] " +0x2f4e: "[?] " +0x2f4f: "[?] " +0x2f50: "[?] " +0x2f51: "[?] " +0x2f52: "[?] " +0x2f53: "[?] " +0x2f54: "[?] " +0x2f55: "[?] " +0x2f56: "[?] " +0x2f57: "[?] " +0x2f58: "[?] " +0x2f59: "[?] " +0x2f5a: "[?] " +0x2f5b: "[?] " +0x2f5c: "[?] " +0x2f5d: "[?] " +0x2f5e: "[?] " +0x2f5f: "[?] " +0x2f60: "[?] " +0x2f61: "[?] " +0x2f62: "[?] " +0x2f63: "[?] " +0x2f64: "[?] " +0x2f65: "[?] " +0x2f66: "[?] " +0x2f67: "[?] " +0x2f68: "[?] " +0x2f69: "[?] " +0x2f6a: "[?] " +0x2f6b: "[?] " +0x2f6c: "[?] " +0x2f6d: "[?] " +0x2f6e: "[?] " +0x2f6f: "[?] " +0x2f70: "[?] " +0x2f71: "[?] " +0x2f72: "[?] " +0x2f73: "[?] " +0x2f74: "[?] " +0x2f75: "[?] " +0x2f76: "[?] " +0x2f77: "[?] " +0x2f78: "[?] " +0x2f79: "[?] " +0x2f7a: "[?] " +0x2f7b: "[?] " +0x2f7c: "[?] " +0x2f7d: "[?] " +0x2f7e: "[?] " +0x2f7f: "[?] " +0x2f80: "[?] " +0x2f81: "[?] " +0x2f82: "[?] " +0x2f83: "[?] " +0x2f84: "[?] " +0x2f85: "[?] " +0x2f86: "[?] " +0x2f87: "[?] " +0x2f88: "[?] " +0x2f89: "[?] " +0x2f8a: "[?] " +0x2f8b: "[?] " +0x2f8c: "[?] " +0x2f8d: "[?] " +0x2f8e: "[?] " +0x2f8f: "[?] " +0x2f90: "[?] " +0x2f91: "[?] " +0x2f92: "[?] " +0x2f93: "[?] " +0x2f94: "[?] " +0x2f95: "[?] " +0x2f96: "[?] " +0x2f97: "[?] " +0x2f98: "[?] " +0x2f99: "[?] " +0x2f9a: "[?] " +0x2f9b: "[?] " +0x2f9c: "[?] " +0x2f9d: "[?] " +0x2f9e: "[?] " +0x2f9f: "[?] " +0x2fa0: "[?] " +0x2fa1: "[?] " +0x2fa2: "[?] " +0x2fa3: "[?] " +0x2fa4: "[?] " +0x2fa5: "[?] " +0x2fa6: "[?] " +0x2fa7: "[?] " +0x2fa8: "[?] " +0x2fa9: "[?] " +0x2faa: "[?] " +0x2fab: "[?] " +0x2fac: "[?] " +0x2fad: "[?] " +0x2fae: "[?] " +0x2faf: "[?] " +0x2fb0: "[?] " +0x2fb1: "[?] " +0x2fb2: "[?] " +0x2fb3: "[?] " +0x2fb4: "[?] " +0x2fb5: "[?] " +0x2fb6: "[?] " +0x2fb7: "[?] " +0x2fb8: "[?] " +0x2fb9: "[?] " +0x2fba: "[?] " +0x2fbb: "[?] " +0x2fbc: "[?] " +0x2fbd: "[?] " +0x2fbe: "[?] " +0x2fbf: "[?] " +0x2fc0: "[?] " +0x2fc1: "[?] " +0x2fc2: "[?] " +0x2fc3: "[?] " +0x2fc4: "[?] " +0x2fc5: "[?] " +0x2fc6: "[?] " +0x2fc7: "[?] " +0x2fc8: "[?] " +0x2fc9: "[?] " +0x2fca: "[?] " +0x2fcb: "[?] " +0x2fcc: "[?] " +0x2fcd: "[?] " +0x2fce: "[?] " +0x2fcf: "[?] " +0x2fd0: "[?] " +0x2fd1: "[?] " +0x2fd2: "[?] " +0x2fd3: "[?] " +0x2fd4: "[?] " +0x2fd5: "[?] " +0x2fd6: "[?]" +0x2fd7: "[?]" +0x2fd8: "[?]" +0x2fd9: "[?]" +0x2fda: "[?]" +0x2fdb: "[?]" +0x2fdc: "[?]" +0x2fdd: "[?]" +0x2fde: "[?]" +0x2fdf: "[?]" +0x2fe0: "[?]" +0x2fe1: "[?]" +0x2fe2: "[?]" +0x2fe3: "[?]" +0x2fe4: "[?]" +0x2fe5: "[?]" +0x2fe6: "[?]" +0x2fe7: "[?]" +0x2fe8: "[?]" +0x2fe9: "[?]" +0x2fea: "[?]" +0x2feb: "[?]" +0x2fec: "[?]" +0x2fed: "[?]" +0x2fee: "[?]" +0x2fef: "[?]" +0x2ff0: "[?] " +0x2ff1: "[?] " +0x2ff2: "[?] " +0x2ff3: "[?] " +0x2ff4: "[?] " +0x2ff5: "[?] " +0x2ff6: "[?] " +0x2ff7: "[?] " +0x2ff8: "[?] " +0x2ff9: "[?] " +0x2ffa: "[?] " +0x2ffb: "[?] " +0x2ffc: "[?]" +0x2ffd: "[?]" +0x2ffe: "[?]" +/* x030 */ +0x3000: " " +0x3001: ", " +0x3002: ". " +0x3003: "\"" +0x3004: "[JIS]" +0x3005: "\"" +0x3006: "/" +0x3007: "0" +0x3008: "<" +0x3009: "> " +0x300a: "<<" +0x300b: ">> " +0x300c: "[" +0x300d: "] " +0x300e: "{" +0x300f: "} " +0x3010: "[(" +0x3011: ")] " +0x3012: "@" +0x3013: "X " +0x3014: "[" +0x3015: "] " +0x3016: "[[" +0x3017: "]] " +0x3018: "((" +0x3019: ")) " +0x301a: "[[" +0x301b: "]] " +0x301c: "~ " +0x301d: "``" +0x301e: "''" +0x301f: ",," +0x3020: "@" +0x3021: "1" +0x3022: "2" +0x3023: "3" +0x3024: "4" +0x3025: "5" +0x3026: "6" +0x3027: "7" +0x3028: "8" +0x3029: "9" +0x302a: "" +0x302b: "" +0x302c: "" +0x302d: "" +0x302e: "" +0x302f: "" +0x3030: "~" +0x3031: "+" +0x3032: "+" +0x3033: "+" +0x3034: "+" +0x3035: "" +0x3036: "@" +0x3037: " // " +0x3038: "+10+" +0x3039: "+20+" +0x303a: "+30+" +0x303b: "[?]" +0x303c: "[?]" +0x303d: "[?]" +0x303e: "" +0x303f: "" +0x3040: "[?]" +0x3041: "a" +0x3042: "a" +0x3043: "i" +0x3044: "i" +0x3045: "u" +0x3046: "u" +0x3047: "e" +0x3048: "e" +0x3049: "o" +0x304a: "o" +0x304b: "ka" +0x304c: "ga" +0x304d: "ki" +0x304e: "gi" +0x304f: "ku" +0x3050: "gu" +0x3051: "ke" +0x3052: "ge" +0x3053: "ko" +0x3054: "go" +0x3055: "sa" +0x3056: "za" +0x3057: "shi" +0x3058: "zi" +0x3059: "su" +0x305a: "zu" +0x305b: "se" +0x305c: "ze" +0x305d: "so" +0x305e: "zo" +0x305f: "ta" +0x3060: "da" +0x3061: "chi" +0x3062: "di" +0x3063: "tsu" +0x3064: "tsu" +0x3065: "du" +0x3066: "te" +0x3067: "de" +0x3068: "to" +0x3069: "do" +0x306a: "na" +0x306b: "ni" +0x306c: "nu" +0x306d: "ne" +0x306e: "no" +0x306f: "ha" +0x3070: "ba" +0x3071: "pa" +0x3072: "hi" +0x3073: "bi" +0x3074: "pi" +0x3075: "hu" +0x3076: "bu" +0x3077: "pu" +0x3078: "he" +0x3079: "be" +0x307a: "pe" +0x307b: "ho" +0x307c: "bo" +0x307d: "po" +0x307e: "ma" +0x307f: "mi" +0x3080: "mu" +0x3081: "me" +0x3082: "mo" +0x3083: "ya" +0x3084: "ya" +0x3085: "yu" +0x3086: "yu" +0x3087: "yo" +0x3088: "yo" +0x3089: "ra" +0x308a: "ri" +0x308b: "ru" +0x308c: "re" +0x308d: "ro" +0x308e: "wa" +0x308f: "wa" +0x3090: "wi" +0x3091: "we" +0x3092: "wo" +0x3093: "n" +0x3094: "vu" +0x3095: "[?]" +0x3096: "[?]" +0x3097: "[?]" +0x3098: "[?]" +0x3099: "" +0x309a: "" +0x309b: "" +0x309c: "" +0x309d: "\"" +0x309e: "\"" +0x309f: "[?]" +0x30a0: "[?]" +0x30a1: "a" +0x30a2: "a" +0x30a3: "i" +0x30a4: "i" +0x30a5: "u" +0x30a6: "u" +0x30a7: "e" +0x30a8: "e" +0x30a9: "o" +0x30aa: "o" +0x30ab: "ka" +0x30ac: "ga" +0x30ad: "ki" +0x30ae: "gi" +0x30af: "ku" +0x30b0: "gu" +0x30b1: "ke" +0x30b2: "ge" +0x30b3: "ko" +0x30b4: "go" +0x30b5: "sa" +0x30b6: "za" +0x30b7: "shi" +0x30b8: "zi" +0x30b9: "su" +0x30ba: "zu" +0x30bb: "se" +0x30bc: "ze" +0x30bd: "so" +0x30be: "zo" +0x30bf: "ta" +0x30c0: "da" +0x30c1: "chi" +0x30c2: "di" +0x30c3: "tsu" +0x30c4: "tsu" +0x30c5: "du" +0x30c6: "te" +0x30c7: "de" +0x30c8: "to" +0x30c9: "do" +0x30ca: "na" +0x30cb: "ni" +0x30cc: "nu" +0x30cd: "ne" +0x30ce: "no" +0x30cf: "ha" +0x30d0: "ba" +0x30d1: "pa" +0x30d2: "hi" +0x30d3: "bi" +0x30d4: "pi" +0x30d5: "hu" +0x30d6: "bu" +0x30d7: "pu" +0x30d8: "he" +0x30d9: "be" +0x30da: "pe" +0x30db: "ho" +0x30dc: "bo" +0x30dd: "po" +0x30de: "ma" +0x30df: "mi" +0x30e0: "mu" +0x30e1: "me" +0x30e2: "mo" +0x30e3: "ya" +0x30e4: "ya" +0x30e5: "yu" +0x30e6: "yu" +0x30e7: "yo" +0x30e8: "yo" +0x30e9: "ra" +0x30ea: "ri" +0x30eb: "ru" +0x30ec: "re" +0x30ed: "ro" +0x30ee: "wa" +0x30ef: "wa" +0x30f0: "wi" +0x30f1: "we" +0x30f2: "wo" +0x30f3: "n" +0x30f4: "vu" +0x30f5: "ka" +0x30f6: "ke" +0x30f7: "va" +0x30f8: "vi" +0x30f9: "ve" +0x30fa: "vo" +0x30fb: "" +0x30fc: "" +0x30fd: "\"" +0x30fe: "\"" +/* x031 */ +0x3100: "[?]" +0x3101: "[?]" +0x3102: "[?]" +0x3103: "[?]" +0x3104: "[?]" +0x3105: "B" +0x3106: "P" +0x3107: "M" +0x3108: "F" +0x3109: "D" +0x310a: "T" +0x310b: "N" +0x310c: "L" +0x310d: "G" +0x310e: "K" +0x310f: "H" +0x3110: "J" +0x3111: "Q" +0x3112: "X" +0x3113: "ZH" +0x3114: "CH" +0x3115: "SH" +0x3116: "R" +0x3117: "Z" +0x3118: "C" +0x3119: "S" +0x311a: "A" +0x311b: "O" +0x311c: "E" +0x311d: "EH" +0x311e: "AI" +0x311f: "EI" +0x3120: "AU" +0x3121: "OU" +0x3122: "AN" +0x3123: "EN" +0x3124: "ANG" +0x3125: "ENG" +0x3126: "ER" +0x3127: "I" +0x3128: "U" +0x3129: "IU" +0x312a: "V" +0x312b: "NG" +0x312c: "GN" +0x312d: "[?]" +0x312e: "[?]" +0x312f: "[?]" +0x3130: "[?]" +0x3131: "g" +0x3132: "gg" +0x3133: "gs" +0x3134: "n" +0x3135: "nj" +0x3136: "nh" +0x3137: "d" +0x3138: "dd" +0x3139: "r" +0x313a: "lg" +0x313b: "lm" +0x313c: "lb" +0x313d: "ls" +0x313e: "lt" +0x313f: "lp" +0x3140: "rh" +0x3141: "m" +0x3142: "b" +0x3143: "bb" +0x3144: "bs" +0x3145: "s" +0x3146: "ss" +0x3147: "" +0x3148: "j" +0x3149: "jj" +0x314a: "c" +0x314b: "k" +0x314c: "t" +0x314d: "p" +0x314e: "h" +0x314f: "a" +0x3150: "ae" +0x3151: "ya" +0x3152: "yae" +0x3153: "eo" +0x3154: "e" +0x3155: "yeo" +0x3156: "ye" +0x3157: "o" +0x3158: "wa" +0x3159: "wae" +0x315a: "oe" +0x315b: "yo" +0x315c: "u" +0x315d: "weo" +0x315e: "we" +0x315f: "wi" +0x3160: "yu" +0x3161: "eu" +0x3162: "yi" +0x3163: "i" +0x3164: "" +0x3165: "nn" +0x3166: "nd" +0x3167: "ns" +0x3168: "nZ" +0x3169: "lgs" +0x316a: "ld" +0x316b: "lbs" +0x316c: "lZ" +0x316d: "lQ" +0x316e: "mb" +0x316f: "ms" +0x3170: "mZ" +0x3171: "mN" +0x3172: "bg" +0x3173: "" +0x3174: "bsg" +0x3175: "bst" +0x3176: "bj" +0x3177: "bt" +0x3178: "bN" +0x3179: "bbN" +0x317a: "sg" +0x317b: "sn" +0x317c: "sd" +0x317d: "sb" +0x317e: "sj" +0x317f: "Z" +0x3180: "" +0x3181: "N" +0x3182: "Ns" +0x3183: "NZ" +0x3184: "pN" +0x3185: "hh" +0x3186: "Q" +0x3187: "yo-ya" +0x3188: "yo-yae" +0x3189: "yo-i" +0x318a: "yu-yeo" +0x318b: "yu-ye" +0x318c: "yu-i" +0x318d: "U" +0x318e: "U-i" +0x318f: "[?]" +0x3190: "" +0x3191: "" +0x3192: "" +0x3193: "" +0x3194: "" +0x3195: "" +0x3196: "" +0x3197: "" +0x3198: "" +0x3199: "" +0x319a: "" +0x319b: "" +0x319c: "" +0x319d: "" +0x319e: "" +0x319f: "" +0x31a0: "BU" +0x31a1: "ZI" +0x31a2: "JI" +0x31a3: "GU" +0x31a4: "EE" +0x31a5: "ENN" +0x31a6: "OO" +0x31a7: "ONN" +0x31a8: "IR" +0x31a9: "ANN" +0x31aa: "INN" +0x31ab: "UNN" +0x31ac: "IM" +0x31ad: "NGG" +0x31ae: "AINN" +0x31af: "AUNN" +0x31b0: "AM" +0x31b1: "OM" +0x31b2: "ONG" +0x31b3: "INNN" +0x31b4: "P" +0x31b5: "T" +0x31b6: "K" +0x31b7: "H" +0x31b8: "[?]" +0x31b9: "[?]" +0x31ba: "[?]" +0x31bb: "[?]" +0x31bc: "[?]" +0x31bd: "[?]" +0x31be: "[?]" +0x31bf: "[?]" +0x31c0: "[?]" +0x31c1: "[?]" +0x31c2: "[?]" +0x31c3: "[?]" +0x31c4: "[?]" +0x31c5: "[?]" +0x31c6: "[?]" +0x31c7: "[?]" +0x31c8: "[?]" +0x31c9: "[?]" +0x31ca: "[?]" +0x31cb: "[?]" +0x31cc: "[?]" +0x31cd: "[?]" +0x31ce: "[?]" +0x31cf: "[?]" +0x31d0: "[?]" +0x31d1: "[?]" +0x31d2: "[?]" +0x31d3: "[?]" +0x31d4: "[?]" +0x31d5: "[?]" +0x31d6: "[?]" +0x31d7: "[?]" +0x31d8: "[?]" +0x31d9: "[?]" +0x31da: "[?]" +0x31db: "[?]" +0x31dc: "[?]" +0x31dd: "[?]" +0x31de: "[?]" +0x31df: "[?]" +0x31e0: "[?]" +0x31e1: "[?]" +0x31e2: "[?]" +0x31e3: "[?]" +0x31e4: "[?]" +0x31e5: "[?]" +0x31e6: "[?]" +0x31e7: "[?]" +0x31e8: "[?]" +0x31e9: "[?]" +0x31ea: "[?]" +0x31eb: "[?]" +0x31ec: "[?]" +0x31ed: "[?]" +0x31ee: "[?]" +0x31ef: "[?]" +0x31f0: "[?]" +0x31f1: "[?]" +0x31f2: "[?]" +0x31f3: "[?]" +0x31f4: "[?]" +0x31f5: "[?]" +0x31f6: "[?]" +0x31f7: "[?]" +0x31f8: "[?]" +0x31f9: "[?]" +0x31fa: "[?]" +0x31fb: "[?]" +0x31fc: "[?]" +0x31fd: "[?]" +0x31fe: "[?]" +/* x032 */ +0x3200: "(g)" +0x3201: "(n)" +0x3202: "(d)" +0x3203: "(r)" +0x3204: "(m)" +0x3205: "(b)" +0x3206: "(s)" +0x3207: "()" +0x3208: "(j)" +0x3209: "(c)" +0x320a: "(k)" +0x320b: "(t)" +0x320c: "(p)" +0x320d: "(h)" +0x320e: "(ga)" +0x320f: "(na)" +0x3210: "(da)" +0x3211: "(ra)" +0x3212: "(ma)" +0x3213: "(ba)" +0x3214: "(sa)" +0x3215: "(a)" +0x3216: "(ja)" +0x3217: "(ca)" +0x3218: "(ka)" +0x3219: "(ta)" +0x321a: "(pa)" +0x321b: "(ha)" +0x321c: "(ju)" +0x321d: "[?]" +0x321e: "[?]" +0x321f: "[?]" +0x3220: "(1) " +0x3221: "(2) " +0x3222: "(3) " +0x3223: "(4) " +0x3224: "(5) " +0x3225: "(6) " +0x3226: "(7) " +0x3227: "(8) " +0x3228: "(9) " +0x3229: "(10) " +0x322a: "(Yue) " +0x322b: "(Huo) " +0x322c: "(Shui) " +0x322d: "(Mu) " +0x322e: "(Jin) " +0x322f: "(Tu) " +0x3230: "(Ri) " +0x3231: "(Zhu) " +0x3232: "(You) " +0x3233: "(She) " +0x3234: "(Ming) " +0x3235: "(Te) " +0x3236: "(Cai) " +0x3237: "(Zhu) " +0x3238: "(Lao) " +0x3239: "(Dai) " +0x323a: "(Hu) " +0x323b: "(Xue) " +0x323c: "(Jian) " +0x323d: "(Qi) " +0x323e: "(Zi) " +0x323f: "(Xie) " +0x3240: "(Ji) " +0x3241: "(Xiu) " +0x3242: "<<" +0x3243: ">>" +0x3244: "[?]" +0x3245: "[?]" +0x3246: "[?]" +0x3247: "[?]" +0x3248: "[?]" +0x3249: "[?]" +0x324a: "[?]" +0x324b: "[?]" +0x324c: "[?]" +0x324d: "[?]" +0x324e: "[?]" +0x324f: "[?]" +0x3250: "[?]" +0x3251: "[?]" +0x3252: "[?]" +0x3253: "[?]" +0x3254: "[?]" +0x3255: "[?]" +0x3256: "[?]" +0x3257: "[?]" +0x3258: "[?]" +0x3259: "[?]" +0x325a: "[?]" +0x325b: "[?]" +0x325c: "[?]" +0x325d: "[?]" +0x325e: "[?]" +0x325f: "[?]" +0x3260: "(g)" +0x3261: "(n)" +0x3262: "(d)" +0x3263: "(r)" +0x3264: "(m)" +0x3265: "(b)" +0x3266: "(s)" +0x3267: "()" +0x3268: "(j)" +0x3269: "(c)" +0x326a: "(k)" +0x326b: "(t)" +0x326c: "(p)" +0x326d: "(h)" +0x326e: "(ga)" +0x326f: "(na)" +0x3270: "(da)" +0x3271: "(ra)" +0x3272: "(ma)" +0x3273: "(ba)" +0x3274: "(sa)" +0x3275: "(a)" +0x3276: "(ja)" +0x3277: "(ca)" +0x3278: "(ka)" +0x3279: "(ta)" +0x327a: "(pa)" +0x327b: "(ha)" +0x327c: "[?]" +0x327d: "[?]" +0x327e: "[?]" +0x327f: "KIS " +0x3280: "(1) " +0x3281: "(2) " +0x3282: "(3) " +0x3283: "(4) " +0x3284: "(5) " +0x3285: "(6) " +0x3286: "(7) " +0x3287: "(8) " +0x3288: "(9) " +0x3289: "(10) " +0x328a: "(Yue) " +0x328b: "(Huo) " +0x328c: "(Shui) " +0x328d: "(Mu) " +0x328e: "(Jin) " +0x328f: "(Tu) " +0x3290: "(Ri) " +0x3291: "(Zhu) " +0x3292: "(You) " +0x3293: "(She) " +0x3294: "(Ming) " +0x3295: "(Te) " +0x3296: "(Cai) " +0x3297: "(Zhu) " +0x3298: "(Lao) " +0x3299: "(Mi) " +0x329a: "(Nan) " +0x329b: "(Nu) " +0x329c: "(Shi) " +0x329d: "(You) " +0x329e: "(Yin) " +0x329f: "(Zhu) " +0x32a0: "(Xiang) " +0x32a1: "(Xiu) " +0x32a2: "(Xie) " +0x32a3: "(Zheng) " +0x32a4: "(Shang) " +0x32a5: "(Zhong) " +0x32a6: "(Xia) " +0x32a7: "(Zuo) " +0x32a8: "(You) " +0x32a9: "(Yi) " +0x32aa: "(Zong) " +0x32ab: "(Xue) " +0x32ac: "(Jian) " +0x32ad: "(Qi) " +0x32ae: "(Zi) " +0x32af: "(Xie) " +0x32b0: "(Ye) " +0x32b1: "[?]" +0x32b2: "[?]" +0x32b3: "[?]" +0x32b4: "[?]" +0x32b5: "[?]" +0x32b6: "[?]" +0x32b7: "[?]" +0x32b8: "[?]" +0x32b9: "[?]" +0x32ba: "[?]" +0x32bb: "[?]" +0x32bc: "[?]" +0x32bd: "[?]" +0x32be: "[?]" +0x32bf: "[?]" +0x32c0: "1M" +0x32c1: "2M" +0x32c2: "3M" +0x32c3: "4M" +0x32c4: "5M" +0x32c5: "6M" +0x32c6: "7M" +0x32c7: "8M" +0x32c8: "9M" +0x32c9: "10M" +0x32ca: "11M" +0x32cb: "12M" +0x32cc: "[?]" +0x32cd: "[?]" +0x32ce: "[?]" +0x32cf: "[?]" +0x32d0: "a" +0x32d1: "i" +0x32d2: "u" +0x32d3: "u" +0x32d4: "o" +0x32d5: "ka" +0x32d6: "ki" +0x32d7: "ku" +0x32d8: "ke" +0x32d9: "ko" +0x32da: "sa" +0x32db: "si" +0x32dc: "su" +0x32dd: "se" +0x32de: "so" +0x32df: "ta" +0x32e0: "ti" +0x32e1: "tu" +0x32e2: "te" +0x32e3: "to" +0x32e4: "na" +0x32e5: "ni" +0x32e6: "nu" +0x32e7: "ne" +0x32e8: "no" +0x32e9: "ha" +0x32ea: "hi" +0x32eb: "hu" +0x32ec: "he" +0x32ed: "ho" +0x32ee: "ma" +0x32ef: "mi" +0x32f0: "mu" +0x32f1: "me" +0x32f2: "mo" +0x32f3: "ya" +0x32f4: "yu" +0x32f5: "yo" +0x32f6: "ra" +0x32f7: "ri" +0x32f8: "ru" +0x32f9: "re" +0x32fa: "ro" +0x32fb: "wa" +0x32fc: "wi" +0x32fd: "we" +0x32fe: "wo" +/* x033 */ +0x3300: "apartment" +0x3301: "alpha" +0x3302: "ampere" +0x3303: "are" +0x3304: "inning" +0x3305: "inch" +0x3306: "won" +0x3307: "escudo" +0x3308: "acre" +0x3309: "ounce" +0x330a: "ohm" +0x330b: "kai-ri" +0x330c: "carat" +0x330d: "calorie" +0x330e: "gallon" +0x330f: "gamma" +0x3310: "giga" +0x3311: "guinea" +0x3312: "curie" +0x3313: "guilder" +0x3314: "kilo" +0x3315: "kilogram" +0x3316: "kilometer" +0x3317: "kilowatt" +0x3318: "gram" +0x3319: "gram ton" +0x331a: "cruzeiro" +0x331b: "krone" +0x331c: "case" +0x331d: "koruna" +0x331e: "co-op" +0x331f: "cycle" +0x3320: "centime" +0x3321: "shilling" +0x3322: "centi" +0x3323: "cent" +0x3324: "dozen" +0x3325: "desi" +0x3326: "dollar" +0x3327: "ton" +0x3328: "nano" +0x3329: "knot" +0x332a: "heights" +0x332b: "percent" +0x332c: "parts" +0x332d: "barrel" +0x332e: "piaster" +0x332f: "picul" +0x3330: "pico" +0x3331: "building" +0x3332: "farad" +0x3333: "feet" +0x3334: "bushel" +0x3335: "franc" +0x3336: "hectare" +0x3337: "peso" +0x3338: "pfennig" +0x3339: "hertz" +0x333a: "pence" +0x333b: "page" +0x333c: "beta" +0x333d: "point" +0x333e: "volt" +0x333f: "hon" +0x3340: "pound" +0x3341: "hall" +0x3342: "horn" +0x3343: "micro" +0x3344: "mile" +0x3345: "mach" +0x3346: "mark" +0x3347: "mansion" +0x3348: "micron" +0x3349: "milli" +0x334a: "millibar" +0x334b: "mega" +0x334c: "megaton" +0x334d: "meter" +0x334e: "yard" +0x334f: "yard" +0x3350: "yuan" +0x3351: "liter" +0x3352: "lira" +0x3353: "rupee" +0x3354: "ruble" +0x3355: "rem" +0x3356: "roentgen" +0x3357: "watt" +0x3358: "0h" +0x3359: "1h" +0x335a: "2h" +0x335b: "3h" +0x335c: "4h" +0x335d: "5h" +0x335e: "6h" +0x335f: "7h" +0x3360: "8h" +0x3361: "9h" +0x3362: "10h" +0x3363: "11h" +0x3364: "12h" +0x3365: "13h" +0x3366: "14h" +0x3367: "15h" +0x3368: "16h" +0x3369: "17h" +0x336a: "18h" +0x336b: "19h" +0x336c: "20h" +0x336d: "21h" +0x336e: "22h" +0x336f: "23h" +0x3370: "24h" +0x3371: "HPA" +0x3372: "da" +0x3373: "AU" +0x3374: "bar" +0x3375: "oV" +0x3376: "pc" +0x3377: "[?]" +0x3378: "[?]" +0x3379: "[?]" +0x337a: "[?]" +0x337b: "Heisei" +0x337c: "Syouwa" +0x337d: "Taisyou" +0x337e: "Meiji" +0x337f: "Inc." +0x3380: "pA" +0x3381: "nA" +0x3382: "microamp" +0x3383: "mA" +0x3384: "kA" +0x3385: "kB" +0x3386: "MB" +0x3387: "GB" +0x3388: "cal" +0x3389: "kcal" +0x338a: "pF" +0x338b: "nF" +0x338c: "microFarad" +0x338d: "microgram" +0x338e: "mg" +0x338f: "kg" +0x3390: "Hz" +0x3391: "kHz" +0x3392: "MHz" +0x3393: "GHz" +0x3394: "THz" +0x3395: "microliter" +0x3396: "ml" +0x3397: "dl" +0x3398: "kl" +0x3399: "fm" +0x339a: "nm" +0x339b: "micrometer" +0x339c: "mm" +0x339d: "cm" +0x339e: "km" +0x339f: "mm^2" +0x33a0: "cm^2" +0x33a1: "m^2" +0x33a2: "km^2" +0x33a3: "mm^4" +0x33a4: "cm^3" +0x33a5: "m^3" +0x33a6: "km^3" +0x33a7: "m/s" +0x33a8: "m/s^2" +0x33a9: "Pa" +0x33aa: "kPa" +0x33ab: "MPa" +0x33ac: "GPa" +0x33ad: "rad" +0x33ae: "rad/s" +0x33af: "rad/s^2" +0x33b0: "ps" +0x33b1: "ns" +0x33b2: "microsecond" +0x33b3: "ms" +0x33b4: "pV" +0x33b5: "nV" +0x33b6: "microvolt" +0x33b7: "mV" +0x33b8: "kV" +0x33b9: "MV" +0x33ba: "pW" +0x33bb: "nW" +0x33bc: "microwatt" +0x33bd: "mW" +0x33be: "kW" +0x33bf: "MW" +0x33c0: "kOhm" +0x33c1: "MOhm" +0x33c2: "a.m." +0x33c3: "Bq" +0x33c4: "cc" +0x33c5: "cd" +0x33c6: "C/kg" +0x33c7: "Co." +0x33c8: "dB" +0x33c9: "Gy" +0x33ca: "ha" +0x33cb: "HP" +0x33cc: "in" +0x33cd: "K.K." +0x33ce: "KM" +0x33cf: "kt" +0x33d0: "lm" +0x33d1: "ln" +0x33d2: "log" +0x33d3: "lx" +0x33d4: "mb" +0x33d5: "mil" +0x33d6: "mol" +0x33d7: "pH" +0x33d8: "p.m." +0x33d9: "PPM" +0x33da: "PR" +0x33db: "sr" +0x33dc: "Sv" +0x33dd: "Wb" +0x33de: "[?]" +0x33df: "[?]" +0x33e0: "1d" +0x33e1: "2d" +0x33e2: "3d" +0x33e3: "4d" +0x33e4: "5d" +0x33e5: "6d" +0x33e6: "7d" +0x33e7: "8d" +0x33e8: "9d" +0x33e9: "10d" +0x33ea: "11d" +0x33eb: "12d" +0x33ec: "13d" +0x33ed: "14d" +0x33ee: "15d" +0x33ef: "16d" +0x33f0: "17d" +0x33f1: "18d" +0x33f2: "19d" +0x33f3: "20d" +0x33f4: "21d" +0x33f5: "22d" +0x33f6: "23d" +0x33f7: "24d" +0x33f8: "25d" +0x33f9: "26d" +0x33fa: "27d" +0x33fb: "28d" +0x33fc: "29d" +0x33fd: "30d" +0x33fe: "31d" +/* x04d */ +0x4d00: "[?] " +0x4d01: "[?] " +0x4d02: "[?] " +0x4d03: "[?] " +0x4d04: "[?] " +0x4d05: "[?] " +0x4d06: "[?] " +0x4d07: "[?] " +0x4d08: "[?] " +0x4d09: "[?] " +0x4d0a: "[?] " +0x4d0b: "[?] " +0x4d0c: "[?] " +0x4d0d: "[?] " +0x4d0e: "[?] " +0x4d0f: "[?] " +0x4d10: "[?] " +0x4d11: "[?] " +0x4d12: "[?] " +0x4d13: "[?] " +0x4d14: "[?] " +0x4d15: "[?] " +0x4d16: "[?] " +0x4d17: "[?] " +0x4d18: "[?] " +0x4d19: "[?] " +0x4d1a: "[?] " +0x4d1b: "[?] " +0x4d1c: "[?] " +0x4d1d: "[?] " +0x4d1e: "[?] " +0x4d1f: "[?] " +0x4d20: "[?] " +0x4d21: "[?] " +0x4d22: "[?] " +0x4d23: "[?] " +0x4d24: "[?] " +0x4d25: "[?] " +0x4d26: "[?] " +0x4d27: "[?] " +0x4d28: "[?] " +0x4d29: "[?] " +0x4d2a: "[?] " +0x4d2b: "[?] " +0x4d2c: "[?] " +0x4d2d: "[?] " +0x4d2e: "[?] " +0x4d2f: "[?] " +0x4d30: "[?] " +0x4d31: "[?] " +0x4d32: "[?] " +0x4d33: "[?] " +0x4d34: "[?] " +0x4d35: "[?] " +0x4d36: "[?] " +0x4d37: "[?] " +0x4d38: "[?] " +0x4d39: "[?] " +0x4d3a: "[?] " +0x4d3b: "[?] " +0x4d3c: "[?] " +0x4d3d: "[?] " +0x4d3e: "[?] " +0x4d3f: "[?] " +0x4d40: "[?] " +0x4d41: "[?] " +0x4d42: "[?] " +0x4d43: "[?] " +0x4d44: "[?] " +0x4d45: "[?] " +0x4d46: "[?] " +0x4d47: "[?] " +0x4d48: "[?] " +0x4d49: "[?] " +0x4d4a: "[?] " +0x4d4b: "[?] " +0x4d4c: "[?] " +0x4d4d: "[?] " +0x4d4e: "[?] " +0x4d4f: "[?] " +0x4d50: "[?] " +0x4d51: "[?] " +0x4d52: "[?] " +0x4d53: "[?] " +0x4d54: "[?] " +0x4d55: "[?] " +0x4d56: "[?] " +0x4d57: "[?] " +0x4d58: "[?] " +0x4d59: "[?] " +0x4d5a: "[?] " +0x4d5b: "[?] " +0x4d5c: "[?] " +0x4d5d: "[?] " +0x4d5e: "[?] " +0x4d5f: "[?] " +0x4d60: "[?] " +0x4d61: "[?] " +0x4d62: "[?] " +0x4d63: "[?] " +0x4d64: "[?] " +0x4d65: "[?] " +0x4d66: "[?] " +0x4d67: "[?] " +0x4d68: "[?] " +0x4d69: "[?] " +0x4d6a: "[?] " +0x4d6b: "[?] " +0x4d6c: "[?] " +0x4d6d: "[?] " +0x4d6e: "[?] " +0x4d6f: "[?] " +0x4d70: "[?] " +0x4d71: "[?] " +0x4d72: "[?] " +0x4d73: "[?] " +0x4d74: "[?] " +0x4d75: "[?] " +0x4d76: "[?] " +0x4d77: "[?] " +0x4d78: "[?] " +0x4d79: "[?] " +0x4d7a: "[?] " +0x4d7b: "[?] " +0x4d7c: "[?] " +0x4d7d: "[?] " +0x4d7e: "[?] " +0x4d7f: "[?] " +0x4d80: "[?] " +0x4d81: "[?] " +0x4d82: "[?] " +0x4d83: "[?] " +0x4d84: "[?] " +0x4d85: "[?] " +0x4d86: "[?] " +0x4d87: "[?] " +0x4d88: "[?] " +0x4d89: "[?] " +0x4d8a: "[?] " +0x4d8b: "[?] " +0x4d8c: "[?] " +0x4d8d: "[?] " +0x4d8e: "[?] " +0x4d8f: "[?] " +0x4d90: "[?] " +0x4d91: "[?] " +0x4d92: "[?] " +0x4d93: "[?] " +0x4d94: "[?] " +0x4d95: "[?] " +0x4d96: "[?] " +0x4d97: "[?] " +0x4d98: "[?] " +0x4d99: "[?] " +0x4d9a: "[?] " +0x4d9b: "[?] " +0x4d9c: "[?] " +0x4d9d: "[?] " +0x4d9e: "[?] " +0x4d9f: "[?] " +0x4da0: "[?] " +0x4da1: "[?] " +0x4da2: "[?] " +0x4da3: "[?] " +0x4da4: "[?] " +0x4da5: "[?] " +0x4da6: "[?] " +0x4da7: "[?] " +0x4da8: "[?] " +0x4da9: "[?] " +0x4daa: "[?] " +0x4dab: "[?] " +0x4dac: "[?] " +0x4dad: "[?] " +0x4dae: "[?] " +0x4daf: "[?] " +0x4db0: "[?] " +0x4db1: "[?] " +0x4db2: "[?] " +0x4db3: "[?] " +0x4db4: "[?] " +0x4db5: "[?] " +0x4db6: "[?]" +0x4db7: "[?]" +0x4db8: "[?]" +0x4db9: "[?]" +0x4dba: "[?]" +0x4dbb: "[?]" +0x4dbc: "[?]" +0x4dbd: "[?]" +0x4dbe: "[?]" +0x4dbf: "[?]" +0x4dc0: "[?]" +0x4dc1: "[?]" +0x4dc2: "[?]" +0x4dc3: "[?]" +0x4dc4: "[?]" +0x4dc5: "[?]" +0x4dc6: "[?]" +0x4dc7: "[?]" +0x4dc8: "[?]" +0x4dc9: "[?]" +0x4dca: "[?]" +0x4dcb: "[?]" +0x4dcc: "[?]" +0x4dcd: "[?]" +0x4dce: "[?]" +0x4dcf: "[?]" +0x4dd0: "[?]" +0x4dd1: "[?]" +0x4dd2: "[?]" +0x4dd3: "[?]" +0x4dd4: "[?]" +0x4dd5: "[?]" +0x4dd6: "[?]" +0x4dd7: "[?]" +0x4dd8: "[?]" +0x4dd9: "[?]" +0x4dda: "[?]" +0x4ddb: "[?]" +0x4ddc: "[?]" +0x4ddd: "[?]" +0x4dde: "[?]" +0x4ddf: "[?]" +0x4de0: "[?]" +0x4de1: "[?]" +0x4de2: "[?]" +0x4de3: "[?]" +0x4de4: "[?]" +0x4de5: "[?]" +0x4de6: "[?]" +0x4de7: "[?]" +0x4de8: "[?]" +0x4de9: "[?]" +0x4dea: "[?]" +0x4deb: "[?]" +0x4dec: "[?]" +0x4ded: "[?]" +0x4dee: "[?]" +0x4def: "[?]" +0x4df0: "[?]" +0x4df1: "[?]" +0x4df2: "[?]" +0x4df3: "[?]" +0x4df4: "[?]" +0x4df5: "[?]" +0x4df6: "[?]" +0x4df7: "[?]" +0x4df8: "[?]" +0x4df9: "[?]" +0x4dfa: "[?]" +0x4dfb: "[?]" +0x4dfc: "[?]" +0x4dfd: "[?]" +0x4dfe: "[?]" +/* x04e */ +0x4e00: "[?] " +0x4e01: "Ding " +0x4e02: "Kao " +0x4e03: "Qi " +0x4e04: "Shang " +0x4e05: "Xia " +0x4e06: "[?] " +0x4e07: "Mo " +0x4e08: "Zhang " +0x4e09: "San " +0x4e0a: "Shang " +0x4e0b: "Xia " +0x4e0c: "Ji " +0x4e0d: "Bu " +0x4e0e: "Yu " +0x4e0f: "Mian " +0x4e10: "Gai " +0x4e11: "Chou " +0x4e12: "Chou " +0x4e13: "Zhuan " +0x4e14: "Qie " +0x4e15: "Pi " +0x4e16: "Shi " +0x4e17: "Shi " +0x4e18: "Qiu " +0x4e19: "Bing " +0x4e1a: "Ye " +0x4e1b: "Cong " +0x4e1c: "Dong " +0x4e1d: "Si " +0x4e1e: "Cheng " +0x4e1f: "Diu " +0x4e20: "Qiu " +0x4e21: "Liang " +0x4e22: "Diu " +0x4e23: "You " +0x4e24: "Liang " +0x4e25: "Yan " +0x4e26: "Bing " +0x4e27: "Sang " +0x4e28: "Gun " +0x4e29: "Jiu " +0x4e2a: "Ge " +0x4e2b: "Ya " +0x4e2c: "Qiang " +0x4e2d: "Zhong " +0x4e2e: "Ji " +0x4e2f: "Jie " +0x4e30: "Feng " +0x4e31: "Guan " +0x4e32: "Chuan " +0x4e33: "Chan " +0x4e34: "Lin " +0x4e35: "Zhuo " +0x4e36: "Zhu " +0x4e37: "Ha " +0x4e38: "Wan " +0x4e39: "Dan " +0x4e3a: "Wei " +0x4e3b: "Zhu " +0x4e3c: "Jing " +0x4e3d: "Li " +0x4e3e: "Ju " +0x4e3f: "Pie " +0x4e40: "Fu " +0x4e41: "Yi " +0x4e42: "Yi " +0x4e43: "Nai " +0x4e44: "Shime " +0x4e45: "Jiu " +0x4e46: "Jiu " +0x4e47: "Zhe " +0x4e48: "Yao " +0x4e49: "Yi " +0x4e4a: "[?] " +0x4e4b: "Zhi " +0x4e4c: "Wu " +0x4e4d: "Zha " +0x4e4e: "Hu " +0x4e4f: "Fa " +0x4e50: "Le " +0x4e51: "Zhong " +0x4e52: "Ping " +0x4e53: "Pang " +0x4e54: "Qiao " +0x4e55: "Hu " +0x4e56: "Guai " +0x4e57: "Cheng " +0x4e58: "Cheng " +0x4e59: "Yi " +0x4e5a: "Yin " +0x4e5b: "[?] " +0x4e5c: "Mie " +0x4e5d: "Jiu " +0x4e5e: "Qi " +0x4e5f: "Ye " +0x4e60: "Xi " +0x4e61: "Xiang " +0x4e62: "Gai " +0x4e63: "Diu " +0x4e64: "Hal " +0x4e65: "[?] " +0x4e66: "Shu " +0x4e67: "Twul " +0x4e68: "Shi " +0x4e69: "Ji " +0x4e6a: "Nang " +0x4e6b: "Jia " +0x4e6c: "Kel " +0x4e6d: "Shi " +0x4e6e: "[?] " +0x4e6f: "Ol " +0x4e70: "Mai " +0x4e71: "Luan " +0x4e72: "Cal " +0x4e73: "Ru " +0x4e74: "Xue " +0x4e75: "Yan " +0x4e76: "Fu " +0x4e77: "Sha " +0x4e78: "Na " +0x4e79: "Gan " +0x4e7a: "Sol " +0x4e7b: "El " +0x4e7c: "Cwul " +0x4e7d: "[?] " +0x4e7e: "Gan " +0x4e7f: "Chi " +0x4e80: "Gui " +0x4e81: "Gan " +0x4e82: "Luan " +0x4e83: "Lin " +0x4e84: "Yi " +0x4e85: "Jue " +0x4e86: "Liao " +0x4e87: "Ma " +0x4e88: "Yu " +0x4e89: "Zheng " +0x4e8a: "Shi " +0x4e8b: "Shi " +0x4e8c: "Er " +0x4e8d: "Chu " +0x4e8e: "Yu " +0x4e8f: "Yu " +0x4e90: "Yu " +0x4e91: "Yun " +0x4e92: "Hu " +0x4e93: "Qi " +0x4e94: "Wu " +0x4e95: "Jing " +0x4e96: "Si " +0x4e97: "Sui " +0x4e98: "Gen " +0x4e99: "Gen " +0x4e9a: "Ya " +0x4e9b: "Xie " +0x4e9c: "Ya " +0x4e9d: "Qi " +0x4e9e: "Ya " +0x4e9f: "Ji " +0x4ea0: "Tou " +0x4ea1: "Wang " +0x4ea2: "Kang " +0x4ea3: "Ta " +0x4ea4: "Jiao " +0x4ea5: "Hai " +0x4ea6: "Yi " +0x4ea7: "Chan " +0x4ea8: "Heng " +0x4ea9: "Mu " +0x4eaa: "[?] " +0x4eab: "Xiang " +0x4eac: "Jing " +0x4ead: "Ting " +0x4eae: "Liang " +0x4eaf: "Xiang " +0x4eb0: "Jing " +0x4eb1: "Ye " +0x4eb2: "Qin " +0x4eb3: "Bo " +0x4eb4: "You " +0x4eb5: "Xie " +0x4eb6: "Dan " +0x4eb7: "Lian " +0x4eb8: "Duo " +0x4eb9: "Wei " +0x4eba: "Ren " +0x4ebb: "Ren " +0x4ebc: "Ji " +0x4ebd: "La " +0x4ebe: "Wang " +0x4ebf: "Yi " +0x4ec0: "Shi " +0x4ec1: "Ren " +0x4ec2: "Le " +0x4ec3: "Ding " +0x4ec4: "Ze " +0x4ec5: "Jin " +0x4ec6: "Pu " +0x4ec7: "Chou " +0x4ec8: "Ba " +0x4ec9: "Zhang " +0x4eca: "Jin " +0x4ecb: "Jie " +0x4ecc: "Bing " +0x4ecd: "Reng " +0x4ece: "Cong " +0x4ecf: "Fo " +0x4ed0: "San " +0x4ed1: "Lun " +0x4ed2: "Sya " +0x4ed3: "Cang " +0x4ed4: "Zi " +0x4ed5: "Shi " +0x4ed6: "Ta " +0x4ed7: "Zhang " +0x4ed8: "Fu " +0x4ed9: "Xian " +0x4eda: "Xian " +0x4edb: "Tuo " +0x4edc: "Hong " +0x4edd: "Tong " +0x4ede: "Ren " +0x4edf: "Qian " +0x4ee0: "Gan " +0x4ee1: "Yi " +0x4ee2: "Di " +0x4ee3: "Dai " +0x4ee4: "Ling " +0x4ee5: "Yi " +0x4ee6: "Chao " +0x4ee7: "Chang " +0x4ee8: "Sa " +0x4ee9: "[?] " +0x4eea: "Yi " +0x4eeb: "Mu " +0x4eec: "Men " +0x4eed: "Ren " +0x4eee: "Jia " +0x4eef: "Chao " +0x4ef0: "Yang " +0x4ef1: "Qian " +0x4ef2: "Zhong " +0x4ef3: "Pi " +0x4ef4: "Wan " +0x4ef5: "Wu " +0x4ef6: "Jian " +0x4ef7: "Jie " +0x4ef8: "Yao " +0x4ef9: "Feng " +0x4efa: "Cang " +0x4efb: "Ren " +0x4efc: "Wang " +0x4efd: "Fen " +0x4efe: "Di " +0x4eff: "Fang " +/* x04f */ +0x4f00: "Zhong " +0x4f01: "Qi " +0x4f02: "Pei " +0x4f03: "Yu " +0x4f04: "Diao " +0x4f05: "Dun " +0x4f06: "Wen " +0x4f07: "Yi " +0x4f08: "Xin " +0x4f09: "Kang " +0x4f0a: "Yi " +0x4f0b: "Ji " +0x4f0c: "Ai " +0x4f0d: "Wu " +0x4f0e: "Ji " +0x4f0f: "Fu " +0x4f10: "Fa " +0x4f11: "Xiu " +0x4f12: "Jin " +0x4f13: "Bei " +0x4f14: "Dan " +0x4f15: "Fu " +0x4f16: "Tang " +0x4f17: "Zhong " +0x4f18: "You " +0x4f19: "Huo " +0x4f1a: "Hui " +0x4f1b: "Yu " +0x4f1c: "Cui " +0x4f1d: "Chuan " +0x4f1e: "San " +0x4f1f: "Wei " +0x4f20: "Chuan " +0x4f21: "Che " +0x4f22: "Ya " +0x4f23: "Xian " +0x4f24: "Shang " +0x4f25: "Chang " +0x4f26: "Lun " +0x4f27: "Cang " +0x4f28: "Xun " +0x4f29: "Xin " +0x4f2a: "Wei " +0x4f2b: "Zhu " +0x4f2c: "[?] " +0x4f2d: "Xuan " +0x4f2e: "Nu " +0x4f2f: "Bo " +0x4f30: "Gu " +0x4f31: "Ni " +0x4f32: "Ni " +0x4f33: "Xie " +0x4f34: "Ban " +0x4f35: "Xu " +0x4f36: "Ling " +0x4f37: "Zhou " +0x4f38: "Shen " +0x4f39: "Qu " +0x4f3a: "Si " +0x4f3b: "Beng " +0x4f3c: "Si " +0x4f3d: "Jia " +0x4f3e: "Pi " +0x4f3f: "Yi " +0x4f40: "Si " +0x4f41: "Ai " +0x4f42: "Zheng " +0x4f43: "Dian " +0x4f44: "Han " +0x4f45: "Mai " +0x4f46: "Dan " +0x4f47: "Zhu " +0x4f48: "Bu " +0x4f49: "Qu " +0x4f4a: "Bi " +0x4f4b: "Shao " +0x4f4c: "Ci " +0x4f4d: "Wei " +0x4f4e: "Di " +0x4f4f: "Zhu " +0x4f50: "Zuo " +0x4f51: "You " +0x4f52: "Yang " +0x4f53: "Ti " +0x4f54: "Zhan " +0x4f55: "He " +0x4f56: "Bi " +0x4f57: "Tuo " +0x4f58: "She " +0x4f59: "Yu " +0x4f5a: "Yi " +0x4f5b: "Fo " +0x4f5c: "Zuo " +0x4f5d: "Kou " +0x4f5e: "Ning " +0x4f5f: "Tong " +0x4f60: "Ni " +0x4f61: "Xuan " +0x4f62: "Qu " +0x4f63: "Yong " +0x4f64: "Wa " +0x4f65: "Qian " +0x4f66: "[?] " +0x4f67: "Ka " +0x4f68: "[?] " +0x4f69: "Pei " +0x4f6a: "Huai " +0x4f6b: "He " +0x4f6c: "Lao " +0x4f6d: "Xiang " +0x4f6e: "Ge " +0x4f6f: "Yang " +0x4f70: "Bai " +0x4f71: "Fa " +0x4f72: "Ming " +0x4f73: "Jia " +0x4f74: "Er " +0x4f75: "Bing " +0x4f76: "Ji " +0x4f77: "Hen " +0x4f78: "Huo " +0x4f79: "Gui " +0x4f7a: "Quan " +0x4f7b: "Tiao " +0x4f7c: "Jiao " +0x4f7d: "Ci " +0x4f7e: "Yi " +0x4f7f: "Shi " +0x4f80: "Xing " +0x4f81: "Shen " +0x4f82: "Tuo " +0x4f83: "Kan " +0x4f84: "Zhi " +0x4f85: "Gai " +0x4f86: "Lai " +0x4f87: "Yi " +0x4f88: "Chi " +0x4f89: "Kua " +0x4f8a: "Guang " +0x4f8b: "Li " +0x4f8c: "Yin " +0x4f8d: "Shi " +0x4f8e: "Mi " +0x4f8f: "Zhu " +0x4f90: "Xu " +0x4f91: "You " +0x4f92: "An " +0x4f93: "Lu " +0x4f94: "Mou " +0x4f95: "Er " +0x4f96: "Lun " +0x4f97: "Tong " +0x4f98: "Cha " +0x4f99: "Chi " +0x4f9a: "Xun " +0x4f9b: "Gong " +0x4f9c: "Zhou " +0x4f9d: "Yi " +0x4f9e: "Ru " +0x4f9f: "Jian " +0x4fa0: "Xia " +0x4fa1: "Jia " +0x4fa2: "Zai " +0x4fa3: "Lu " +0x4fa4: "Ko " +0x4fa5: "Jiao " +0x4fa6: "Zhen " +0x4fa7: "Ce " +0x4fa8: "Qiao " +0x4fa9: "Kuai " +0x4faa: "Chai " +0x4fab: "Ning " +0x4fac: "Nong " +0x4fad: "Jin " +0x4fae: "Wu " +0x4faf: "Hou " +0x4fb0: "Jiong " +0x4fb1: "Cheng " +0x4fb2: "Zhen " +0x4fb3: "Zuo " +0x4fb4: "Chou " +0x4fb5: "Qin " +0x4fb6: "Lu " +0x4fb7: "Ju " +0x4fb8: "Shu " +0x4fb9: "Ting " +0x4fba: "Shen " +0x4fbb: "Tuo " +0x4fbc: "Bo " +0x4fbd: "Nan " +0x4fbe: "Hao " +0x4fbf: "Bian " +0x4fc0: "Tui " +0x4fc1: "Yu " +0x4fc2: "Xi " +0x4fc3: "Cu " +0x4fc4: "E " +0x4fc5: "Qiu " +0x4fc6: "Xu " +0x4fc7: "Kuang " +0x4fc8: "Ku " +0x4fc9: "Wu " +0x4fca: "Jun " +0x4fcb: "Yi " +0x4fcc: "Fu " +0x4fcd: "Lang " +0x4fce: "Zu " +0x4fcf: "Qiao " +0x4fd0: "Li " +0x4fd1: "Yong " +0x4fd2: "Hun " +0x4fd3: "Jing " +0x4fd4: "Xian " +0x4fd5: "San " +0x4fd6: "Pai " +0x4fd7: "Su " +0x4fd8: "Fu " +0x4fd9: "Xi " +0x4fda: "Li " +0x4fdb: "Fu " +0x4fdc: "Ping " +0x4fdd: "Bao " +0x4fde: "Yu " +0x4fdf: "Si " +0x4fe0: "Xia " +0x4fe1: "Xin " +0x4fe2: "Xiu " +0x4fe3: "Yu " +0x4fe4: "Ti " +0x4fe5: "Che " +0x4fe6: "Chou " +0x4fe7: "[?] " +0x4fe8: "Yan " +0x4fe9: "Lia " +0x4fea: "Li " +0x4feb: "Lai " +0x4fec: "[?] " +0x4fed: "Jian " +0x4fee: "Xiu " +0x4fef: "Fu " +0x4ff0: "He " +0x4ff1: "Ju " +0x4ff2: "Xiao " +0x4ff3: "Pai " +0x4ff4: "Jian " +0x4ff5: "Biao " +0x4ff6: "Chu " +0x4ff7: "Fei " +0x4ff8: "Feng " +0x4ff9: "Ya " +0x4ffa: "An " +0x4ffb: "Bei " +0x4ffc: "Yu " +0x4ffd: "Xin " +0x4ffe: "Bi " +0x4fff: "Jian " +/* x050 */ +0x5000: "Chang " +0x5001: "Chi " +0x5002: "Bing " +0x5003: "Zan " +0x5004: "Yao " +0x5005: "Cui " +0x5006: "Lia " +0x5007: "Wan " +0x5008: "Lai " +0x5009: "Cang " +0x500a: "Zong " +0x500b: "Ge " +0x500c: "Guan " +0x500d: "Bei " +0x500e: "Tian " +0x500f: "Shu " +0x5010: "Shu " +0x5011: "Men " +0x5012: "Dao " +0x5013: "Tan " +0x5014: "Jue " +0x5015: "Chui " +0x5016: "Xing " +0x5017: "Peng " +0x5018: "Tang " +0x5019: "Hou " +0x501a: "Yi " +0x501b: "Qi " +0x501c: "Ti " +0x501d: "Gan " +0x501e: "Jing " +0x501f: "Jie " +0x5020: "Sui " +0x5021: "Chang " +0x5022: "Jie " +0x5023: "Fang " +0x5024: "Zhi " +0x5025: "Kong " +0x5026: "Juan " +0x5027: "Zong " +0x5028: "Ju " +0x5029: "Qian " +0x502a: "Ni " +0x502b: "Lun " +0x502c: "Zhuo " +0x502d: "Wei " +0x502e: "Luo " +0x502f: "Song " +0x5030: "Leng " +0x5031: "Hun " +0x5032: "Dong " +0x5033: "Zi " +0x5034: "Ben " +0x5035: "Wu " +0x5036: "Ju " +0x5037: "Nai " +0x5038: "Cai " +0x5039: "Jian " +0x503a: "Zhai " +0x503b: "Ye " +0x503c: "Zhi " +0x503d: "Sha " +0x503e: "Qing " +0x503f: "[?] " +0x5040: "Ying " +0x5041: "Cheng " +0x5042: "Jian " +0x5043: "Yan " +0x5044: "Nuan " +0x5045: "Zhong " +0x5046: "Chun " +0x5047: "Jia " +0x5048: "Jie " +0x5049: "Wei " +0x504a: "Yu " +0x504b: "Bing " +0x504c: "Ruo " +0x504d: "Ti " +0x504e: "Wei " +0x504f: "Pian " +0x5050: "Yan " +0x5051: "Feng " +0x5052: "Tang " +0x5053: "Wo " +0x5054: "E " +0x5055: "Xie " +0x5056: "Che " +0x5057: "Sheng " +0x5058: "Kan " +0x5059: "Di " +0x505a: "Zuo " +0x505b: "Cha " +0x505c: "Ting " +0x505d: "Bei " +0x505e: "Ye " +0x505f: "Huang " +0x5060: "Yao " +0x5061: "Zhan " +0x5062: "Chou " +0x5063: "Yan " +0x5064: "You " +0x5065: "Jian " +0x5066: "Xu " +0x5067: "Zha " +0x5068: "Ci " +0x5069: "Fu " +0x506a: "Bi " +0x506b: "Zhi " +0x506c: "Zong " +0x506d: "Mian " +0x506e: "Ji " +0x506f: "Yi " +0x5070: "Xie " +0x5071: "Xun " +0x5072: "Si " +0x5073: "Duan " +0x5074: "Ce " +0x5075: "Zhen " +0x5076: "Ou " +0x5077: "Tou " +0x5078: "Tou " +0x5079: "Bei " +0x507a: "Za " +0x507b: "Lu " +0x507c: "Jie " +0x507d: "Wei " +0x507e: "Fen " +0x507f: "Chang " +0x5080: "Gui " +0x5081: "Sou " +0x5082: "Zhi " +0x5083: "Su " +0x5084: "Xia " +0x5085: "Fu " +0x5086: "Yuan " +0x5087: "Rong " +0x5088: "Li " +0x5089: "Ru " +0x508a: "Yun " +0x508b: "Gou " +0x508c: "Ma " +0x508d: "Bang " +0x508e: "Dian " +0x508f: "Tang " +0x5090: "Hao " +0x5091: "Jie " +0x5092: "Xi " +0x5093: "Shan " +0x5094: "Qian " +0x5095: "Jue " +0x5096: "Cang " +0x5097: "Chu " +0x5098: "San " +0x5099: "Bei " +0x509a: "Xiao " +0x509b: "Yong " +0x509c: "Yao " +0x509d: "Tan " +0x509e: "Suo " +0x509f: "Yang " +0x50a0: "Fa " +0x50a1: "Bing " +0x50a2: "Jia " +0x50a3: "Dai " +0x50a4: "Zai " +0x50a5: "Tang " +0x50a6: "[?] " +0x50a7: "Bin " +0x50a8: "Chu " +0x50a9: "Nuo " +0x50aa: "Can " +0x50ab: "Lei " +0x50ac: "Cui " +0x50ad: "Yong " +0x50ae: "Zao " +0x50af: "Zong " +0x50b0: "Peng " +0x50b1: "Song " +0x50b2: "Ao " +0x50b3: "Chuan " +0x50b4: "Yu " +0x50b5: "Zhai " +0x50b6: "Cou " +0x50b7: "Shang " +0x50b8: "Qiang " +0x50b9: "Jing " +0x50ba: "Chi " +0x50bb: "Sha " +0x50bc: "Han " +0x50bd: "Zhang " +0x50be: "Qing " +0x50bf: "Yan " +0x50c0: "Di " +0x50c1: "Xi " +0x50c2: "Lu " +0x50c3: "Bei " +0x50c4: "Piao " +0x50c5: "Jin " +0x50c6: "Lian " +0x50c7: "Lu " +0x50c8: "Man " +0x50c9: "Qian " +0x50ca: "Xian " +0x50cb: "Tan " +0x50cc: "Ying " +0x50cd: "Dong " +0x50ce: "Zhuan " +0x50cf: "Xiang " +0x50d0: "Shan " +0x50d1: "Qiao " +0x50d2: "Jiong " +0x50d3: "Tui " +0x50d4: "Zun " +0x50d5: "Pu " +0x50d6: "Xi " +0x50d7: "Lao " +0x50d8: "Chang " +0x50d9: "Guang " +0x50da: "Liao " +0x50db: "Qi " +0x50dc: "Deng " +0x50dd: "Chan " +0x50de: "Wei " +0x50df: "Ji " +0x50e0: "Fan " +0x50e1: "Hui " +0x50e2: "Chuan " +0x50e3: "Jian " +0x50e4: "Dan " +0x50e5: "Jiao " +0x50e6: "Jiu " +0x50e7: "Seng " +0x50e8: "Fen " +0x50e9: "Xian " +0x50ea: "Jue " +0x50eb: "E " +0x50ec: "Jiao " +0x50ed: "Jian " +0x50ee: "Tong " +0x50ef: "Lin " +0x50f0: "Bo " +0x50f1: "Gu " +0x50f2: "[?] " +0x50f3: "Su " +0x50f4: "Xian " +0x50f5: "Jiang " +0x50f6: "Min " +0x50f7: "Ye " +0x50f8: "Jin " +0x50f9: "Jia " +0x50fa: "Qiao " +0x50fb: "Pi " +0x50fc: "Feng " +0x50fd: "Zhou " +0x50fe: "Ai " +0x50ff: "Sai " +/* x051 */ +0x5100: "Yi " +0x5101: "Jun " +0x5102: "Nong " +0x5103: "Chan " +0x5104: "Yi " +0x5105: "Dang " +0x5106: "Jing " +0x5107: "Xuan " +0x5108: "Kuai " +0x5109: "Jian " +0x510a: "Chu " +0x510b: "Dan " +0x510c: "Jiao " +0x510d: "Sha " +0x510e: "Zai " +0x510f: "[?] " +0x5110: "Bin " +0x5111: "An " +0x5112: "Ru " +0x5113: "Tai " +0x5114: "Chou " +0x5115: "Chai " +0x5116: "Lan " +0x5117: "Ni " +0x5118: "Jin " +0x5119: "Qian " +0x511a: "Meng " +0x511b: "Wu " +0x511c: "Ning " +0x511d: "Qiong " +0x511e: "Ni " +0x511f: "Chang " +0x5120: "Lie " +0x5121: "Lei " +0x5122: "Lu " +0x5123: "Kuang " +0x5124: "Bao " +0x5125: "Du " +0x5126: "Biao " +0x5127: "Zan " +0x5128: "Zhi " +0x5129: "Si " +0x512a: "You " +0x512b: "Hao " +0x512c: "Chen " +0x512d: "Chen " +0x512e: "Li " +0x512f: "Teng " +0x5130: "Wei " +0x5131: "Long " +0x5132: "Chu " +0x5133: "Chan " +0x5134: "Rang " +0x5135: "Shu " +0x5136: "Hui " +0x5137: "Li " +0x5138: "Luo " +0x5139: "Zan " +0x513a: "Nuo " +0x513b: "Tang " +0x513c: "Yan " +0x513d: "Lei " +0x513e: "Nang " +0x513f: "Er " +0x5140: "Wu " +0x5141: "Yun " +0x5142: "Zan " +0x5143: "Yuan " +0x5144: "Xiong " +0x5145: "Chong " +0x5146: "Zhao " +0x5147: "Xiong " +0x5148: "Xian " +0x5149: "Guang " +0x514a: "Dui " +0x514b: "Ke " +0x514c: "Dui " +0x514d: "Mian " +0x514e: "Tu " +0x514f: "Chang " +0x5150: "Er " +0x5151: "Dui " +0x5152: "Er " +0x5153: "Xin " +0x5154: "Tu " +0x5155: "Si " +0x5156: "Yan " +0x5157: "Yan " +0x5158: "Shi " +0x5159: "Shi " +0x515a: "Dang " +0x515b: "Qian " +0x515c: "Dou " +0x515d: "Fen " +0x515e: "Mao " +0x515f: "Shen " +0x5160: "Dou " +0x5161: "Bai " +0x5162: "Jing " +0x5163: "Li " +0x5164: "Huang " +0x5165: "Ru " +0x5166: "Wang " +0x5167: "Nei " +0x5168: "Quan " +0x5169: "Liang " +0x516a: "Yu " +0x516b: "Ba " +0x516c: "Gong " +0x516d: "Liu " +0x516e: "Xi " +0x516f: "[?] " +0x5170: "Lan " +0x5171: "Gong " +0x5172: "Tian " +0x5173: "Guan " +0x5174: "Xing " +0x5175: "Bing " +0x5176: "Qi " +0x5177: "Ju " +0x5178: "Dian " +0x5179: "Zi " +0x517a: "Ppwun " +0x517b: "Yang " +0x517c: "Jian " +0x517d: "Shou " +0x517e: "Ji " +0x517f: "Yi " +0x5180: "Ji " +0x5181: "Chan " +0x5182: "Jiong " +0x5183: "Mao " +0x5184: "Ran " +0x5185: "Nei " +0x5186: "Yuan " +0x5187: "Mao " +0x5188: "Gang " +0x5189: "Ran " +0x518a: "Ce " +0x518b: "Jiong " +0x518c: "Ce " +0x518d: "Zai " +0x518e: "Gua " +0x518f: "Jiong " +0x5190: "Mao " +0x5191: "Zhou " +0x5192: "Mou " +0x5193: "Gou " +0x5194: "Xu " +0x5195: "Mian " +0x5196: "Mi " +0x5197: "Rong " +0x5198: "Yin " +0x5199: "Xie " +0x519a: "Kan " +0x519b: "Jun " +0x519c: "Nong " +0x519d: "Yi " +0x519e: "Mi " +0x519f: "Shi " +0x51a0: "Guan " +0x51a1: "Meng " +0x51a2: "Zhong " +0x51a3: "Ju " +0x51a4: "Yuan " +0x51a5: "Ming " +0x51a6: "Kou " +0x51a7: "Lam " +0x51a8: "Fu " +0x51a9: "Xie " +0x51aa: "Mi " +0x51ab: "Bing " +0x51ac: "Dong " +0x51ad: "Tai " +0x51ae: "Gang " +0x51af: "Feng " +0x51b0: "Bing " +0x51b1: "Hu " +0x51b2: "Chong " +0x51b3: "Jue " +0x51b4: "Hu " +0x51b5: "Kuang " +0x51b6: "Ye " +0x51b7: "Leng " +0x51b8: "Pan " +0x51b9: "Fu " +0x51ba: "Min " +0x51bb: "Dong " +0x51bc: "Xian " +0x51bd: "Lie " +0x51be: "Xia " +0x51bf: "Jian " +0x51c0: "Jing " +0x51c1: "Shu " +0x51c2: "Mei " +0x51c3: "Tu " +0x51c4: "Qi " +0x51c5: "Gu " +0x51c6: "Zhun " +0x51c7: "Song " +0x51c8: "Jing " +0x51c9: "Liang " +0x51ca: "Qing " +0x51cb: "Diao " +0x51cc: "Ling " +0x51cd: "Dong " +0x51ce: "Gan " +0x51cf: "Jian " +0x51d0: "Yin " +0x51d1: "Cou " +0x51d2: "Yi " +0x51d3: "Li " +0x51d4: "Cang " +0x51d5: "Ming " +0x51d6: "Zhuen " +0x51d7: "Cui " +0x51d8: "Si " +0x51d9: "Duo " +0x51da: "Jin " +0x51db: "Lin " +0x51dc: "Lin " +0x51dd: "Ning " +0x51de: "Xi " +0x51df: "Du " +0x51e0: "Ji " +0x51e1: "Fan " +0x51e2: "Fan " +0x51e3: "Fan " +0x51e4: "Feng " +0x51e5: "Ju " +0x51e6: "Chu " +0x51e7: "Tako " +0x51e8: "Feng " +0x51e9: "Mok " +0x51ea: "Ci " +0x51eb: "Fu " +0x51ec: "Feng " +0x51ed: "Ping " +0x51ee: "Feng " +0x51ef: "Kai " +0x51f0: "Huang " +0x51f1: "Kai " +0x51f2: "Gan " +0x51f3: "Deng " +0x51f4: "Ping " +0x51f5: "Qu " +0x51f6: "Xiong " +0x51f7: "Kuai " +0x51f8: "Tu " +0x51f9: "Ao " +0x51fa: "Chu " +0x51fb: "Ji " +0x51fc: "Dang " +0x51fd: "Han " +0x51fe: "Han " +0x51ff: "Zao " +/* x052 */ +0x5200: "Dao " +0x5201: "Diao " +0x5202: "Dao " +0x5203: "Ren " +0x5204: "Ren " +0x5205: "Chuang " +0x5206: "Fen " +0x5207: "Qie " +0x5208: "Yi " +0x5209: "Ji " +0x520a: "Kan " +0x520b: "Qian " +0x520c: "Cun " +0x520d: "Chu " +0x520e: "Wen " +0x520f: "Ji " +0x5210: "Dan " +0x5211: "Xing " +0x5212: "Hua " +0x5213: "Wan " +0x5214: "Jue " +0x5215: "Li " +0x5216: "Yue " +0x5217: "Lie " +0x5218: "Liu " +0x5219: "Ze " +0x521a: "Gang " +0x521b: "Chuang " +0x521c: "Fu " +0x521d: "Chu " +0x521e: "Qu " +0x521f: "Ju " +0x5220: "Shan " +0x5221: "Min " +0x5222: "Ling " +0x5223: "Zhong " +0x5224: "Pan " +0x5225: "Bie " +0x5226: "Jie " +0x5227: "Jie " +0x5228: "Bao " +0x5229: "Li " +0x522a: "Shan " +0x522b: "Bie " +0x522c: "Chan " +0x522d: "Jing " +0x522e: "Gua " +0x522f: "Gen " +0x5230: "Dao " +0x5231: "Chuang " +0x5232: "Kui " +0x5233: "Ku " +0x5234: "Duo " +0x5235: "Er " +0x5236: "Zhi " +0x5237: "Shua " +0x5238: "Quan " +0x5239: "Cha " +0x523a: "Ci " +0x523b: "Ke " +0x523c: "Jie " +0x523d: "Gui " +0x523e: "Ci " +0x523f: "Gui " +0x5240: "Kai " +0x5241: "Duo " +0x5242: "Ji " +0x5243: "Ti " +0x5244: "Jing " +0x5245: "Lou " +0x5246: "Gen " +0x5247: "Ze " +0x5248: "Yuan " +0x5249: "Cuo " +0x524a: "Xue " +0x524b: "Ke " +0x524c: "La " +0x524d: "Qian " +0x524e: "Cha " +0x524f: "Chuang " +0x5250: "Gua " +0x5251: "Jian " +0x5252: "Cuo " +0x5253: "Li " +0x5254: "Ti " +0x5255: "Fei " +0x5256: "Pou " +0x5257: "Chan " +0x5258: "Qi " +0x5259: "Chuang " +0x525a: "Zi " +0x525b: "Gang " +0x525c: "Wan " +0x525d: "Bo " +0x525e: "Ji " +0x525f: "Duo " +0x5260: "Qing " +0x5261: "Yan " +0x5262: "Zhuo " +0x5263: "Jian " +0x5264: "Ji " +0x5265: "Bo " +0x5266: "Yan " +0x5267: "Ju " +0x5268: "Huo " +0x5269: "Sheng " +0x526a: "Jian " +0x526b: "Duo " +0x526c: "Duan " +0x526d: "Wu " +0x526e: "Gua " +0x526f: "Fu " +0x5270: "Sheng " +0x5271: "Jian " +0x5272: "Ge " +0x5273: "Zha " +0x5274: "Kai " +0x5275: "Chuang " +0x5276: "Juan " +0x5277: "Chan " +0x5278: "Tuan " +0x5279: "Lu " +0x527a: "Li " +0x527b: "Fou " +0x527c: "Shan " +0x527d: "Piao " +0x527e: "Kou " +0x527f: "Jiao " +0x5280: "Gua " +0x5281: "Qiao " +0x5282: "Jue " +0x5283: "Hua " +0x5284: "Zha " +0x5285: "Zhuo " +0x5286: "Lian " +0x5287: "Ju " +0x5288: "Pi " +0x5289: "Liu " +0x528a: "Gui " +0x528b: "Jiao " +0x528c: "Gui " +0x528d: "Jian " +0x528e: "Jian " +0x528f: "Tang " +0x5290: "Huo " +0x5291: "Ji " +0x5292: "Jian " +0x5293: "Yi " +0x5294: "Jian " +0x5295: "Zhi " +0x5296: "Chan " +0x5297: "Cuan " +0x5298: "Mo " +0x5299: "Li " +0x529a: "Zhu " +0x529b: "Li " +0x529c: "Ya " +0x529d: "Quan " +0x529e: "Ban " +0x529f: "Gong " +0x52a0: "Jia " +0x52a1: "Wu " +0x52a2: "Mai " +0x52a3: "Lie " +0x52a4: "Jin " +0x52a5: "Keng " +0x52a6: "Xie " +0x52a7: "Zhi " +0x52a8: "Dong " +0x52a9: "Zhu " +0x52aa: "Nu " +0x52ab: "Jie " +0x52ac: "Qu " +0x52ad: "Shao " +0x52ae: "Yi " +0x52af: "Zhu " +0x52b0: "Miao " +0x52b1: "Li " +0x52b2: "Jing " +0x52b3: "Lao " +0x52b4: "Lao " +0x52b5: "Juan " +0x52b6: "Kou " +0x52b7: "Yang " +0x52b8: "Wa " +0x52b9: "Xiao " +0x52ba: "Mou " +0x52bb: "Kuang " +0x52bc: "Jie " +0x52bd: "Lie " +0x52be: "He " +0x52bf: "Shi " +0x52c0: "Ke " +0x52c1: "Jing " +0x52c2: "Hao " +0x52c3: "Bo " +0x52c4: "Min " +0x52c5: "Chi " +0x52c6: "Lang " +0x52c7: "Yong " +0x52c8: "Yong " +0x52c9: "Mian " +0x52ca: "Ke " +0x52cb: "Xun " +0x52cc: "Juan " +0x52cd: "Qing " +0x52ce: "Lu " +0x52cf: "Pou " +0x52d0: "Meng " +0x52d1: "Lai " +0x52d2: "Le " +0x52d3: "Kai " +0x52d4: "Mian " +0x52d5: "Dong " +0x52d6: "Xu " +0x52d7: "Xu " +0x52d8: "Kan " +0x52d9: "Wu " +0x52da: "Yi " +0x52db: "Xun " +0x52dc: "Weng " +0x52dd: "Sheng " +0x52de: "Lao " +0x52df: "Mu " +0x52e0: "Lu " +0x52e1: "Piao " +0x52e2: "Shi " +0x52e3: "Ji " +0x52e4: "Qin " +0x52e5: "Qiang " +0x52e6: "Jiao " +0x52e7: "Quan " +0x52e8: "Yang " +0x52e9: "Yi " +0x52ea: "Jue " +0x52eb: "Fan " +0x52ec: "Juan " +0x52ed: "Tong " +0x52ee: "Ju " +0x52ef: "Dan " +0x52f0: "Xie " +0x52f1: "Mai " +0x52f2: "Xun " +0x52f3: "Xun " +0x52f4: "Lu " +0x52f5: "Li " +0x52f6: "Che " +0x52f7: "Rang " +0x52f8: "Quan " +0x52f9: "Bao " +0x52fa: "Shao " +0x52fb: "Yun " +0x52fc: "Jiu " +0x52fd: "Bao " +0x52fe: "Gou " +0x52ff: "Wu " +/* x053 */ +0x5300: "Yun " +0x5301: "Mwun " +0x5302: "Nay " +0x5303: "Gai " +0x5304: "Gai " +0x5305: "Bao " +0x5306: "Cong " +0x5307: "[?] " +0x5308: "Xiong " +0x5309: "Peng " +0x530a: "Ju " +0x530b: "Tao " +0x530c: "Ge " +0x530d: "Pu " +0x530e: "An " +0x530f: "Pao " +0x5310: "Fu " +0x5311: "Gong " +0x5312: "Da " +0x5313: "Jiu " +0x5314: "Qiong " +0x5315: "Bi " +0x5316: "Hua " +0x5317: "Bei " +0x5318: "Nao " +0x5319: "Chi " +0x531a: "Fang " +0x531b: "Jiu " +0x531c: "Yi " +0x531d: "Za " +0x531e: "Jiang " +0x531f: "Kang " +0x5320: "Jiang " +0x5321: "Kuang " +0x5322: "Hu " +0x5323: "Xia " +0x5324: "Qu " +0x5325: "Bian " +0x5326: "Gui " +0x5327: "Qie " +0x5328: "Zang " +0x5329: "Kuang " +0x532a: "Fei " +0x532b: "Hu " +0x532c: "Tou " +0x532d: "Gui " +0x532e: "Gui " +0x532f: "Hui " +0x5330: "Dan " +0x5331: "Gui " +0x5332: "Lian " +0x5333: "Lian " +0x5334: "Suan " +0x5335: "Du " +0x5336: "Jiu " +0x5337: "Qu " +0x5338: "Xi " +0x5339: "Pi " +0x533a: "Qu " +0x533b: "Yi " +0x533c: "Qia " +0x533d: "Yan " +0x533e: "Bian " +0x533f: "Ni " +0x5340: "Qu " +0x5341: "Shi " +0x5342: "Xin " +0x5343: "Qian " +0x5344: "Nian " +0x5345: "Sa " +0x5346: "Zu " +0x5347: "Sheng " +0x5348: "Wu " +0x5349: "Hui " +0x534a: "Ban " +0x534b: "Shi " +0x534c: "Xi " +0x534d: "Wan " +0x534e: "Hua " +0x534f: "Xie " +0x5350: "Wan " +0x5351: "Bei " +0x5352: "Zu " +0x5353: "Zhuo " +0x5354: "Xie " +0x5355: "Dan " +0x5356: "Mai " +0x5357: "Nan " +0x5358: "Dan " +0x5359: "Ji " +0x535a: "Bo " +0x535b: "Shuai " +0x535c: "Bu " +0x535d: "Kuang " +0x535e: "Bian " +0x535f: "Bu " +0x5360: "Zhan " +0x5361: "Qia " +0x5362: "Lu " +0x5363: "You " +0x5364: "Lu " +0x5365: "Xi " +0x5366: "Gua " +0x5367: "Wo " +0x5368: "Xie " +0x5369: "Jie " +0x536a: "Jie " +0x536b: "Wei " +0x536c: "Ang " +0x536d: "Qiong " +0x536e: "Zhi " +0x536f: "Mao " +0x5370: "Yin " +0x5371: "Wei " +0x5372: "Shao " +0x5373: "Ji " +0x5374: "Que " +0x5375: "Luan " +0x5376: "Shi " +0x5377: "Juan " +0x5378: "Xie " +0x5379: "Xu " +0x537a: "Jin " +0x537b: "Que " +0x537c: "Wu " +0x537d: "Ji " +0x537e: "E " +0x537f: "Qing " +0x5380: "Xi " +0x5381: "[?] " +0x5382: "Han " +0x5383: "Zhan " +0x5384: "E " +0x5385: "Ting " +0x5386: "Li " +0x5387: "Zhe " +0x5388: "Han " +0x5389: "Li " +0x538a: "Ya " +0x538b: "Ya " +0x538c: "Yan " +0x538d: "She " +0x538e: "Zhi " +0x538f: "Zha " +0x5390: "Pang " +0x5391: "[?] " +0x5392: "He " +0x5393: "Ya " +0x5394: "Zhi " +0x5395: "Ce " +0x5396: "Pang " +0x5397: "Ti " +0x5398: "Li " +0x5399: "She " +0x539a: "Hou " +0x539b: "Ting " +0x539c: "Zui " +0x539d: "Cuo " +0x539e: "Fei " +0x539f: "Yuan " +0x53a0: "Ce " +0x53a1: "Yuan " +0x53a2: "Xiang " +0x53a3: "Yan " +0x53a4: "Li " +0x53a5: "Jue " +0x53a6: "Sha " +0x53a7: "Dian " +0x53a8: "Chu " +0x53a9: "Jiu " +0x53aa: "Qin " +0x53ab: "Ao " +0x53ac: "Gui " +0x53ad: "Yan " +0x53ae: "Si " +0x53af: "Li " +0x53b0: "Chang " +0x53b1: "Lan " +0x53b2: "Li " +0x53b3: "Yan " +0x53b4: "Yan " +0x53b5: "Yuan " +0x53b6: "Si " +0x53b7: "Gong " +0x53b8: "Lin " +0x53b9: "Qiu " +0x53ba: "Qu " +0x53bb: "Qu " +0x53bc: "Uk " +0x53bd: "Lei " +0x53be: "Du " +0x53bf: "Xian " +0x53c0: "Zhuan " +0x53c1: "San " +0x53c2: "Can " +0x53c3: "Can " +0x53c4: "Can " +0x53c5: "Can " +0x53c6: "Ai " +0x53c7: "Dai " +0x53c8: "You " +0x53c9: "Cha " +0x53ca: "Ji " +0x53cb: "You " +0x53cc: "Shuang " +0x53cd: "Fan " +0x53ce: "Shou " +0x53cf: "Guai " +0x53d0: "Ba " +0x53d1: "Fa " +0x53d2: "Ruo " +0x53d3: "Shi " +0x53d4: "Shu " +0x53d5: "Zhuo " +0x53d6: "Qu " +0x53d7: "Shou " +0x53d8: "Bian " +0x53d9: "Xu " +0x53da: "Jia " +0x53db: "Pan " +0x53dc: "Sou " +0x53dd: "Gao " +0x53de: "Wei " +0x53df: "Sou " +0x53e0: "Die " +0x53e1: "Rui " +0x53e2: "Cong " +0x53e3: "Kou " +0x53e4: "Gu " +0x53e5: "Ju " +0x53e6: "Ling " +0x53e7: "Gua " +0x53e8: "Tao " +0x53e9: "Kou " +0x53ea: "Zhi " +0x53eb: "Jiao " +0x53ec: "Zhao " +0x53ed: "Ba " +0x53ee: "Ding " +0x53ef: "Ke " +0x53f0: "Tai " +0x53f1: "Chi " +0x53f2: "Shi " +0x53f3: "You " +0x53f4: "Qiu " +0x53f5: "Po " +0x53f6: "Xie " +0x53f7: "Hao " +0x53f8: "Si " +0x53f9: "Tan " +0x53fa: "Chi " +0x53fb: "Le " +0x53fc: "Diao " +0x53fd: "Ji " +0x53fe: "[?] " +0x53ff: "Hong " +/* x054 */ +0x5400: "Mie " +0x5401: "Xu " +0x5402: "Mang " +0x5403: "Chi " +0x5404: "Ge " +0x5405: "Xuan " +0x5406: "Yao " +0x5407: "Zi " +0x5408: "He " +0x5409: "Ji " +0x540a: "Diao " +0x540b: "Cun " +0x540c: "Tong " +0x540d: "Ming " +0x540e: "Hou " +0x540f: "Li " +0x5410: "Tu " +0x5411: "Xiang " +0x5412: "Zha " +0x5413: "Xia " +0x5414: "Ye " +0x5415: "Lu " +0x5416: "A " +0x5417: "Ma " +0x5418: "Ou " +0x5419: "Xue " +0x541a: "Yi " +0x541b: "Jun " +0x541c: "Chou " +0x541d: "Lin " +0x541e: "Tun " +0x541f: "Yin " +0x5420: "Fei " +0x5421: "Bi " +0x5422: "Qin " +0x5423: "Qin " +0x5424: "Jie " +0x5425: "Bu " +0x5426: "Fou " +0x5427: "Ba " +0x5428: "Dun " +0x5429: "Fen " +0x542a: "E " +0x542b: "Han " +0x542c: "Ting " +0x542d: "Hang " +0x542e: "Shun " +0x542f: "Qi " +0x5430: "Hong " +0x5431: "Zhi " +0x5432: "Shen " +0x5433: "Wu " +0x5434: "Wu " +0x5435: "Chao " +0x5436: "Ne " +0x5437: "Xue " +0x5438: "Xi " +0x5439: "Chui " +0x543a: "Dou " +0x543b: "Wen " +0x543c: "Hou " +0x543d: "Ou " +0x543e: "Wu " +0x543f: "Gao " +0x5440: "Ya " +0x5441: "Jun " +0x5442: "Lu " +0x5443: "E " +0x5444: "Ge " +0x5445: "Mei " +0x5446: "Ai " +0x5447: "Qi " +0x5448: "Cheng " +0x5449: "Wu " +0x544a: "Gao " +0x544b: "Fu " +0x544c: "Jiao " +0x544d: "Hong " +0x544e: "Chi " +0x544f: "Sheng " +0x5450: "Ne " +0x5451: "Tun " +0x5452: "Fu " +0x5453: "Yi " +0x5454: "Dai " +0x5455: "Ou " +0x5456: "Li " +0x5457: "Bai " +0x5458: "Yuan " +0x5459: "Kuai " +0x545a: "[?] " +0x545b: "Qiang " +0x545c: "Wu " +0x545d: "E " +0x545e: "Shi " +0x545f: "Quan " +0x5460: "Pen " +0x5461: "Wen " +0x5462: "Ni " +0x5463: "M " +0x5464: "Ling " +0x5465: "Ran " +0x5466: "You " +0x5467: "Di " +0x5468: "Zhou " +0x5469: "Shi " +0x546a: "Zhou " +0x546b: "Tie " +0x546c: "Xi " +0x546d: "Yi " +0x546e: "Qi " +0x546f: "Ping " +0x5470: "Zi " +0x5471: "Gu " +0x5472: "Zi " +0x5473: "Wei " +0x5474: "Xu " +0x5475: "He " +0x5476: "Nao " +0x5477: "Xia " +0x5478: "Pei " +0x5479: "Yi " +0x547a: "Xiao " +0x547b: "Shen " +0x547c: "Hu " +0x547d: "Ming " +0x547e: "Da " +0x547f: "Qu " +0x5480: "Ju " +0x5481: "Gem " +0x5482: "Za " +0x5483: "Tuo " +0x5484: "Duo " +0x5485: "Pou " +0x5486: "Pao " +0x5487: "Bi " +0x5488: "Fu " +0x5489: "Yang " +0x548a: "He " +0x548b: "Zha " +0x548c: "He " +0x548d: "Hai " +0x548e: "Jiu " +0x548f: "Yong " +0x5490: "Fu " +0x5491: "Que " +0x5492: "Zhou " +0x5493: "Wa " +0x5494: "Ka " +0x5495: "Gu " +0x5496: "Ka " +0x5497: "Zuo " +0x5498: "Bu " +0x5499: "Long " +0x549a: "Dong " +0x549b: "Ning " +0x549c: "Tha " +0x549d: "Si " +0x549e: "Xian " +0x549f: "Huo " +0x54a0: "Qi " +0x54a1: "Er " +0x54a2: "E " +0x54a3: "Guang " +0x54a4: "Zha " +0x54a5: "Xi " +0x54a6: "Yi " +0x54a7: "Lie " +0x54a8: "Zi " +0x54a9: "Mie " +0x54aa: "Mi " +0x54ab: "Zhi " +0x54ac: "Yao " +0x54ad: "Ji " +0x54ae: "Zhou " +0x54af: "Ge " +0x54b0: "Shuai " +0x54b1: "Zan " +0x54b2: "Xiao " +0x54b3: "Ke " +0x54b4: "Hui " +0x54b5: "Kua " +0x54b6: "Huai " +0x54b7: "Tao " +0x54b8: "Xian " +0x54b9: "E " +0x54ba: "Xuan " +0x54bb: "Xiu " +0x54bc: "Wai " +0x54bd: "Yan " +0x54be: "Lao " +0x54bf: "Yi " +0x54c0: "Ai " +0x54c1: "Pin " +0x54c2: "Shen " +0x54c3: "Tong " +0x54c4: "Hong " +0x54c5: "Xiong " +0x54c6: "Chi " +0x54c7: "Wa " +0x54c8: "Ha " +0x54c9: "Zai " +0x54ca: "Yu " +0x54cb: "Di " +0x54cc: "Pai " +0x54cd: "Xiang " +0x54ce: "Ai " +0x54cf: "Hen " +0x54d0: "Kuang " +0x54d1: "Ya " +0x54d2: "Da " +0x54d3: "Xiao " +0x54d4: "Bi " +0x54d5: "Yue " +0x54d6: "[?] " +0x54d7: "Hua " +0x54d8: "Sasou " +0x54d9: "Kuai " +0x54da: "Duo " +0x54db: "[?] " +0x54dc: "Ji " +0x54dd: "Nong " +0x54de: "Mou " +0x54df: "Yo " +0x54e0: "Hao " +0x54e1: "Yuan " +0x54e2: "Long " +0x54e3: "Pou " +0x54e4: "Mang " +0x54e5: "Ge " +0x54e6: "E " +0x54e7: "Chi " +0x54e8: "Shao " +0x54e9: "Li " +0x54ea: "Na " +0x54eb: "Zu " +0x54ec: "He " +0x54ed: "Ku " +0x54ee: "Xiao " +0x54ef: "Xian " +0x54f0: "Lao " +0x54f1: "Bo " +0x54f2: "Zhe " +0x54f3: "Zha " +0x54f4: "Liang " +0x54f5: "Ba " +0x54f6: "Mie " +0x54f7: "Le " +0x54f8: "Sui " +0x54f9: "Fou " +0x54fa: "Bu " +0x54fb: "Han " +0x54fc: "Heng " +0x54fd: "Geng " +0x54fe: "Shuo " +0x54ff: "Ge " +/* x055 */ +0x5500: "You " +0x5501: "Yan " +0x5502: "Gu " +0x5503: "Gu " +0x5504: "Bai " +0x5505: "Han " +0x5506: "Suo " +0x5507: "Chun " +0x5508: "Yi " +0x5509: "Ai " +0x550a: "Jia " +0x550b: "Tu " +0x550c: "Xian " +0x550d: "Huan " +0x550e: "Li " +0x550f: "Xi " +0x5510: "Tang " +0x5511: "Zuo " +0x5512: "Qiu " +0x5513: "Che " +0x5514: "Wu " +0x5515: "Zao " +0x5516: "Ya " +0x5517: "Dou " +0x5518: "Qi " +0x5519: "Di " +0x551a: "Qin " +0x551b: "Ma " +0x551c: "Mal " +0x551d: "Hong " +0x551e: "Dou " +0x551f: "Kes " +0x5520: "Lao " +0x5521: "Liang " +0x5522: "Suo " +0x5523: "Zao " +0x5524: "Huan " +0x5525: "Lang " +0x5526: "Sha " +0x5527: "Ji " +0x5528: "Zuo " +0x5529: "Wo " +0x552a: "Feng " +0x552b: "Yin " +0x552c: "Hu " +0x552d: "Qi " +0x552e: "Shou " +0x552f: "Wei " +0x5530: "Shua " +0x5531: "Chang " +0x5532: "Er " +0x5533: "Li " +0x5534: "Qiang " +0x5535: "An " +0x5536: "Jie " +0x5537: "Yo " +0x5538: "Nian " +0x5539: "Yu " +0x553a: "Tian " +0x553b: "Lai " +0x553c: "Sha " +0x553d: "Xi " +0x553e: "Tuo " +0x553f: "Hu " +0x5540: "Ai " +0x5541: "Zhou " +0x5542: "Nou " +0x5543: "Ken " +0x5544: "Zhuo " +0x5545: "Zhuo " +0x5546: "Shang " +0x5547: "Di " +0x5548: "Heng " +0x5549: "Lan " +0x554a: "A " +0x554b: "Xiao " +0x554c: "Xiang " +0x554d: "Tun " +0x554e: "Wu " +0x554f: "Wen " +0x5550: "Cui " +0x5551: "Sha " +0x5552: "Hu " +0x5553: "Qi " +0x5554: "Qi " +0x5555: "Tao " +0x5556: "Dan " +0x5557: "Dan " +0x5558: "Ye " +0x5559: "Zi " +0x555a: "Bi " +0x555b: "Cui " +0x555c: "Chuo " +0x555d: "He " +0x555e: "Ya " +0x555f: "Qi " +0x5560: "Zhe " +0x5561: "Pei " +0x5562: "Liang " +0x5563: "Xian " +0x5564: "Pi " +0x5565: "Sha " +0x5566: "La " +0x5567: "Ze " +0x5568: "Qing " +0x5569: "Gua " +0x556a: "Pa " +0x556b: "Zhe " +0x556c: "Se " +0x556d: "Zhuan " +0x556e: "Nie " +0x556f: "Guo " +0x5570: "Luo " +0x5571: "Yan " +0x5572: "Di " +0x5573: "Quan " +0x5574: "Tan " +0x5575: "Bo " +0x5576: "Ding " +0x5577: "Lang " +0x5578: "Xiao " +0x5579: "[?] " +0x557a: "Tang " +0x557b: "Chi " +0x557c: "Ti " +0x557d: "An " +0x557e: "Jiu " +0x557f: "Dan " +0x5580: "Ke " +0x5581: "Yong " +0x5582: "Wei " +0x5583: "Nan " +0x5584: "Shan " +0x5585: "Yu " +0x5586: "Zhe " +0x5587: "La " +0x5588: "Jie " +0x5589: "Hou " +0x558a: "Han " +0x558b: "Die " +0x558c: "Zhou " +0x558d: "Chai " +0x558e: "Wai " +0x558f: "Re " +0x5590: "Yu " +0x5591: "Yin " +0x5592: "Zan " +0x5593: "Yao " +0x5594: "Wo " +0x5595: "Mian " +0x5596: "Hu " +0x5597: "Yun " +0x5598: "Chuan " +0x5599: "Hui " +0x559a: "Huan " +0x559b: "Huan " +0x559c: "Xi " +0x559d: "He " +0x559e: "Ji " +0x559f: "Kui " +0x55a0: "Zhong " +0x55a1: "Wei " +0x55a2: "Sha " +0x55a3: "Xu " +0x55a4: "Huang " +0x55a5: "Du " +0x55a6: "Nie " +0x55a7: "Xuan " +0x55a8: "Liang " +0x55a9: "Yu " +0x55aa: "Sang " +0x55ab: "Chi " +0x55ac: "Qiao " +0x55ad: "Yan " +0x55ae: "Dan " +0x55af: "Pen " +0x55b0: "Can " +0x55b1: "Li " +0x55b2: "Yo " +0x55b3: "Zha " +0x55b4: "Wei " +0x55b5: "Miao " +0x55b6: "Ying " +0x55b7: "Pen " +0x55b8: "Phos " +0x55b9: "Kui " +0x55ba: "Xi " +0x55bb: "Yu " +0x55bc: "Jie " +0x55bd: "Lou " +0x55be: "Ku " +0x55bf: "Sao " +0x55c0: "Huo " +0x55c1: "Ti " +0x55c2: "Yao " +0x55c3: "He " +0x55c4: "A " +0x55c5: "Xiu " +0x55c6: "Qiang " +0x55c7: "Se " +0x55c8: "Yong " +0x55c9: "Su " +0x55ca: "Hong " +0x55cb: "Xie " +0x55cc: "Yi " +0x55cd: "Suo " +0x55ce: "Ma " +0x55cf: "Cha " +0x55d0: "Hai " +0x55d1: "Ke " +0x55d2: "Ta " +0x55d3: "Sang " +0x55d4: "Tian " +0x55d5: "Ru " +0x55d6: "Sou " +0x55d7: "Wa " +0x55d8: "Ji " +0x55d9: "Pang " +0x55da: "Wu " +0x55db: "Xian " +0x55dc: "Shi " +0x55dd: "Ge " +0x55de: "Zi " +0x55df: "Jie " +0x55e0: "Luo " +0x55e1: "Weng " +0x55e2: "Wa " +0x55e3: "Si " +0x55e4: "Chi " +0x55e5: "Hao " +0x55e6: "Suo " +0x55e7: "Jia " +0x55e8: "Hai " +0x55e9: "Suo " +0x55ea: "Qin " +0x55eb: "Nie " +0x55ec: "He " +0x55ed: "Cis " +0x55ee: "Sai " +0x55ef: "Ng " +0x55f0: "Ge " +0x55f1: "Na " +0x55f2: "Dia " +0x55f3: "Ai " +0x55f4: "[?] " +0x55f5: "Tong " +0x55f6: "Bi " +0x55f7: "Ao " +0x55f8: "Ao " +0x55f9: "Lian " +0x55fa: "Cui " +0x55fb: "Zhe " +0x55fc: "Mo " +0x55fd: "Sou " +0x55fe: "Sou " +0x55ff: "Tan " +/* x056 */ +0x5600: "Di " +0x5601: "Qi " +0x5602: "Jiao " +0x5603: "Chong " +0x5604: "Jiao " +0x5605: "Kai " +0x5606: "Tan " +0x5607: "San " +0x5608: "Cao " +0x5609: "Jia " +0x560a: "Ai " +0x560b: "Xiao " +0x560c: "Piao " +0x560d: "Lou " +0x560e: "Ga " +0x560f: "Gu " +0x5610: "Xiao " +0x5611: "Hu " +0x5612: "Hui " +0x5613: "Guo " +0x5614: "Ou " +0x5615: "Xian " +0x5616: "Ze " +0x5617: "Chang " +0x5618: "Xu " +0x5619: "Po " +0x561a: "De " +0x561b: "Ma " +0x561c: "Ma " +0x561d: "Hu " +0x561e: "Lei " +0x561f: "Du " +0x5620: "Ga " +0x5621: "Tang " +0x5622: "Ye " +0x5623: "Beng " +0x5624: "Ying " +0x5625: "Saai " +0x5626: "Jiao " +0x5627: "Mi " +0x5628: "Xiao " +0x5629: "Hua " +0x562a: "Mai " +0x562b: "Ran " +0x562c: "Zuo " +0x562d: "Peng " +0x562e: "Lao " +0x562f: "Xiao " +0x5630: "Ji " +0x5631: "Zhu " +0x5632: "Chao " +0x5633: "Kui " +0x5634: "Zui " +0x5635: "Xiao " +0x5636: "Si " +0x5637: "Hao " +0x5638: "Fu " +0x5639: "Liao " +0x563a: "Qiao " +0x563b: "Xi " +0x563c: "Xiu " +0x563d: "Tan " +0x563e: "Tan " +0x563f: "Mo " +0x5640: "Xun " +0x5641: "E " +0x5642: "Zun " +0x5643: "Fan " +0x5644: "Chi " +0x5645: "Hui " +0x5646: "Zan " +0x5647: "Chuang " +0x5648: "Cu " +0x5649: "Dan " +0x564a: "Yu " +0x564b: "Tun " +0x564c: "Cheng " +0x564d: "Jiao " +0x564e: "Ye " +0x564f: "Xi " +0x5650: "Qi " +0x5651: "Hao " +0x5652: "Lian " +0x5653: "Xu " +0x5654: "Deng " +0x5655: "Hui " +0x5656: "Yin " +0x5657: "Pu " +0x5658: "Jue " +0x5659: "Qin " +0x565a: "Xun " +0x565b: "Nie " +0x565c: "Lu " +0x565d: "Si " +0x565e: "Yan " +0x565f: "Ying " +0x5660: "Da " +0x5661: "Dan " +0x5662: "Yu " +0x5663: "Zhou " +0x5664: "Jin " +0x5665: "Nong " +0x5666: "Yue " +0x5667: "Hui " +0x5668: "Qi " +0x5669: "E " +0x566a: "Zao " +0x566b: "Yi " +0x566c: "Shi " +0x566d: "Jiao " +0x566e: "Yuan " +0x566f: "Ai " +0x5670: "Yong " +0x5671: "Jue " +0x5672: "Kuai " +0x5673: "Yu " +0x5674: "Pen " +0x5675: "Dao " +0x5676: "Ge " +0x5677: "Xin " +0x5678: "Dun " +0x5679: "Dang " +0x567a: "Sin " +0x567b: "Sai " +0x567c: "Pi " +0x567d: "Pi " +0x567e: "Yin " +0x567f: "Zui " +0x5680: "Ning " +0x5681: "Di " +0x5682: "Lan " +0x5683: "Ta " +0x5684: "Huo " +0x5685: "Ru " +0x5686: "Hao " +0x5687: "Xia " +0x5688: "Ya " +0x5689: "Duo " +0x568a: "Xi " +0x568b: "Chou " +0x568c: "Ji " +0x568d: "Jin " +0x568e: "Hao " +0x568f: "Ti " +0x5690: "Chang " +0x5691: "[?] " +0x5692: "[?] " +0x5693: "Ca " +0x5694: "Ti " +0x5695: "Lu " +0x5696: "Hui " +0x5697: "Bo " +0x5698: "You " +0x5699: "Nie " +0x569a: "Yin " +0x569b: "Hu " +0x569c: "Mo " +0x569d: "Huang " +0x569e: "Zhe " +0x569f: "Li " +0x56a0: "Liu " +0x56a1: "Haai " +0x56a2: "Nang " +0x56a3: "Xiao " +0x56a4: "Mo " +0x56a5: "Yan " +0x56a6: "Li " +0x56a7: "Lu " +0x56a8: "Long " +0x56a9: "Fu " +0x56aa: "Dan " +0x56ab: "Chen " +0x56ac: "Pin " +0x56ad: "Pi " +0x56ae: "Xiang " +0x56af: "Huo " +0x56b0: "Mo " +0x56b1: "Xi " +0x56b2: "Duo " +0x56b3: "Ku " +0x56b4: "Yan " +0x56b5: "Chan " +0x56b6: "Ying " +0x56b7: "Rang " +0x56b8: "Dian " +0x56b9: "La " +0x56ba: "Ta " +0x56bb: "Xiao " +0x56bc: "Jiao " +0x56bd: "Chuo " +0x56be: "Huan " +0x56bf: "Huo " +0x56c0: "Zhuan " +0x56c1: "Nie " +0x56c2: "Xiao " +0x56c3: "Ca " +0x56c4: "Li " +0x56c5: "Chan " +0x56c6: "Chai " +0x56c7: "Li " +0x56c8: "Yi " +0x56c9: "Luo " +0x56ca: "Nang " +0x56cb: "Zan " +0x56cc: "Su " +0x56cd: "Xi " +0x56ce: "So " +0x56cf: "Jian " +0x56d0: "Za " +0x56d1: "Zhu " +0x56d2: "Lan " +0x56d3: "Nie " +0x56d4: "Nang " +0x56d5: "[?] " +0x56d6: "[?] " +0x56d7: "Wei " +0x56d8: "Hui " +0x56d9: "Yin " +0x56da: "Qiu " +0x56db: "Si " +0x56dc: "Nin " +0x56dd: "Jian " +0x56de: "Hui " +0x56df: "Xin " +0x56e0: "Yin " +0x56e1: "Nan " +0x56e2: "Tuan " +0x56e3: "Tuan " +0x56e4: "Dun " +0x56e5: "Kang " +0x56e6: "Yuan " +0x56e7: "Jiong " +0x56e8: "Pian " +0x56e9: "Yun " +0x56ea: "Cong " +0x56eb: "Hu " +0x56ec: "Hui " +0x56ed: "Yuan " +0x56ee: "You " +0x56ef: "Guo " +0x56f0: "Kun " +0x56f1: "Cong " +0x56f2: "Wei " +0x56f3: "Tu " +0x56f4: "Wei " +0x56f5: "Lun " +0x56f6: "Guo " +0x56f7: "Qun " +0x56f8: "Ri " +0x56f9: "Ling " +0x56fa: "Gu " +0x56fb: "Guo " +0x56fc: "Tai " +0x56fd: "Guo " +0x56fe: "Tu " +0x56ff: "You " +/* x057 */ +0x5700: "Guo " +0x5701: "Yin " +0x5702: "Hun " +0x5703: "Pu " +0x5704: "Yu " +0x5705: "Han " +0x5706: "Yuan " +0x5707: "Lun " +0x5708: "Quan " +0x5709: "Yu " +0x570a: "Qing " +0x570b: "Guo " +0x570c: "Chuan " +0x570d: "Wei " +0x570e: "Yuan " +0x570f: "Quan " +0x5710: "Ku " +0x5711: "Fu " +0x5712: "Yuan " +0x5713: "Yuan " +0x5714: "E " +0x5715: "Tu " +0x5716: "Tu " +0x5717: "Tu " +0x5718: "Tuan " +0x5719: "Lue " +0x571a: "Hui " +0x571b: "Yi " +0x571c: "Yuan " +0x571d: "Luan " +0x571e: "Luan " +0x571f: "Tu " +0x5720: "Ya " +0x5721: "Tu " +0x5722: "Ting " +0x5723: "Sheng " +0x5724: "Pu " +0x5725: "Lu " +0x5726: "Iri " +0x5727: "Ya " +0x5728: "Zai " +0x5729: "Wei " +0x572a: "Ge " +0x572b: "Yu " +0x572c: "Wu " +0x572d: "Gui " +0x572e: "Pi " +0x572f: "Yi " +0x5730: "Di " +0x5731: "Qian " +0x5732: "Qian " +0x5733: "Zhen " +0x5734: "Zhuo " +0x5735: "Dang " +0x5736: "Qia " +0x5737: "Akutsu " +0x5738: "Yama " +0x5739: "Kuang " +0x573a: "Chang " +0x573b: "Qi " +0x573c: "Nie " +0x573d: "Mo " +0x573e: "Ji " +0x573f: "Jia " +0x5740: "Zhi " +0x5741: "Zhi " +0x5742: "Ban " +0x5743: "Xun " +0x5744: "Tou " +0x5745: "Qin " +0x5746: "Fen " +0x5747: "Jun " +0x5748: "Keng " +0x5749: "Tun " +0x574a: "Fang " +0x574b: "Fen " +0x574c: "Ben " +0x574d: "Tan " +0x574e: "Kan " +0x574f: "Pi " +0x5750: "Zuo " +0x5751: "Keng " +0x5752: "Bi " +0x5753: "Xing " +0x5754: "Di " +0x5755: "Jing " +0x5756: "Ji " +0x5757: "Kuai " +0x5758: "Di " +0x5759: "Jing " +0x575a: "Jian " +0x575b: "Tan " +0x575c: "Li " +0x575d: "Ba " +0x575e: "Wu " +0x575f: "Fen " +0x5760: "Zhui " +0x5761: "Po " +0x5762: "Pan " +0x5763: "Tang " +0x5764: "Kun " +0x5765: "Qu " +0x5766: "Tan " +0x5767: "Zhi " +0x5768: "Tuo " +0x5769: "Gan " +0x576a: "Ping " +0x576b: "Dian " +0x576c: "Gua " +0x576d: "Ni " +0x576e: "Tai " +0x576f: "Pi " +0x5770: "Jiong " +0x5771: "Yang " +0x5772: "Fo " +0x5773: "Ao " +0x5774: "Liu " +0x5775: "Qiu " +0x5776: "Mu " +0x5777: "Ke " +0x5778: "Gou " +0x5779: "Xue " +0x577a: "Ba " +0x577b: "Chi " +0x577c: "Che " +0x577d: "Ling " +0x577e: "Zhu " +0x577f: "Fu " +0x5780: "Hu " +0x5781: "Zhi " +0x5782: "Chui " +0x5783: "La " +0x5784: "Long " +0x5785: "Long " +0x5786: "Lu " +0x5787: "Ao " +0x5788: "Tay " +0x5789: "Pao " +0x578a: "[?] " +0x578b: "Xing " +0x578c: "Dong " +0x578d: "Ji " +0x578e: "Ke " +0x578f: "Lu " +0x5790: "Ci " +0x5791: "Chi " +0x5792: "Lei " +0x5793: "Gai " +0x5794: "Yin " +0x5795: "Hou " +0x5796: "Dui " +0x5797: "Zhao " +0x5798: "Fu " +0x5799: "Guang " +0x579a: "Yao " +0x579b: "Duo " +0x579c: "Duo " +0x579d: "Gui " +0x579e: "Cha " +0x579f: "Yang " +0x57a0: "Yin " +0x57a1: "Fa " +0x57a2: "Gou " +0x57a3: "Yuan " +0x57a4: "Die " +0x57a5: "Xie " +0x57a6: "Ken " +0x57a7: "Jiong " +0x57a8: "Shou " +0x57a9: "E " +0x57aa: "Ha " +0x57ab: "Dian " +0x57ac: "Hong " +0x57ad: "Wu " +0x57ae: "Kua " +0x57af: "[?] " +0x57b0: "Tao " +0x57b1: "Dang " +0x57b2: "Kai " +0x57b3: "Gake " +0x57b4: "Nao " +0x57b5: "An " +0x57b6: "Xing " +0x57b7: "Xian " +0x57b8: "Huan " +0x57b9: "Bang " +0x57ba: "Pei " +0x57bb: "Ba " +0x57bc: "Yi " +0x57bd: "Yin " +0x57be: "Han " +0x57bf: "Xu " +0x57c0: "Chui " +0x57c1: "Cen " +0x57c2: "Geng " +0x57c3: "Ai " +0x57c4: "Peng " +0x57c5: "Fang " +0x57c6: "Que " +0x57c7: "Yong " +0x57c8: "Xun " +0x57c9: "Jia " +0x57ca: "Di " +0x57cb: "Mai " +0x57cc: "Lang " +0x57cd: "Xuan " +0x57ce: "Cheng " +0x57cf: "Yan " +0x57d0: "Jin " +0x57d1: "Zhe " +0x57d2: "Lei " +0x57d3: "Lie " +0x57d4: "Bu " +0x57d5: "Cheng " +0x57d6: "Gomi " +0x57d7: "Bu " +0x57d8: "Shi " +0x57d9: "Xun " +0x57da: "Guo " +0x57db: "Jiong " +0x57dc: "Ye " +0x57dd: "Nian " +0x57de: "Di " +0x57df: "Yu " +0x57e0: "Bu " +0x57e1: "Ya " +0x57e2: "Juan " +0x57e3: "Sui " +0x57e4: "Pi " +0x57e5: "Cheng " +0x57e6: "Wan " +0x57e7: "Ju " +0x57e8: "Lun " +0x57e9: "Zheng " +0x57ea: "Kong " +0x57eb: "Chong " +0x57ec: "Dong " +0x57ed: "Dai " +0x57ee: "Tan " +0x57ef: "An " +0x57f0: "Cai " +0x57f1: "Shu " +0x57f2: "Beng " +0x57f3: "Kan " +0x57f4: "Zhi " +0x57f5: "Duo " +0x57f6: "Yi " +0x57f7: "Zhi " +0x57f8: "Yi " +0x57f9: "Pei " +0x57fa: "Ji " +0x57fb: "Zhun " +0x57fc: "Qi " +0x57fd: "Sao " +0x57fe: "Ju " +0x57ff: "Ni " +/* x058 */ +0x5800: "Ku " +0x5801: "Ke " +0x5802: "Tang " +0x5803: "Kun " +0x5804: "Ni " +0x5805: "Jian " +0x5806: "Dui " +0x5807: "Jin " +0x5808: "Gang " +0x5809: "Yu " +0x580a: "E " +0x580b: "Peng " +0x580c: "Gu " +0x580d: "Tu " +0x580e: "Leng " +0x580f: "[?] " +0x5810: "Ya " +0x5811: "Qian " +0x5812: "[?] " +0x5813: "An " +0x5814: "[?] " +0x5815: "Duo " +0x5816: "Nao " +0x5817: "Tu " +0x5818: "Cheng " +0x5819: "Yin " +0x581a: "Hun " +0x581b: "Bi " +0x581c: "Lian " +0x581d: "Guo " +0x581e: "Die " +0x581f: "Zhuan " +0x5820: "Hou " +0x5821: "Bao " +0x5822: "Bao " +0x5823: "Yu " +0x5824: "Di " +0x5825: "Mao " +0x5826: "Jie " +0x5827: "Ruan " +0x5828: "E " +0x5829: "Geng " +0x582a: "Kan " +0x582b: "Zong " +0x582c: "Yu " +0x582d: "Huang " +0x582e: "E " +0x582f: "Yao " +0x5830: "Yan " +0x5831: "Bao " +0x5832: "Ji " +0x5833: "Mei " +0x5834: "Chang " +0x5835: "Du " +0x5836: "Tuo " +0x5837: "Yin " +0x5838: "Feng " +0x5839: "Zhong " +0x583a: "Jie " +0x583b: "Zhen " +0x583c: "Feng " +0x583d: "Gang " +0x583e: "Chuan " +0x583f: "Jian " +0x5840: "Pyeng " +0x5841: "Toride " +0x5842: "Xiang " +0x5843: "Huang " +0x5844: "Leng " +0x5845: "Duan " +0x5846: "[?] " +0x5847: "Xuan " +0x5848: "Ji " +0x5849: "Ji " +0x584a: "Kuai " +0x584b: "Ying " +0x584c: "Ta " +0x584d: "Cheng " +0x584e: "Yong " +0x584f: "Kai " +0x5850: "Su " +0x5851: "Su " +0x5852: "Shi " +0x5853: "Mi " +0x5854: "Ta " +0x5855: "Weng " +0x5856: "Cheng " +0x5857: "Tu " +0x5858: "Tang " +0x5859: "Que " +0x585a: "Zhong " +0x585b: "Li " +0x585c: "Peng " +0x585d: "Bang " +0x585e: "Sai " +0x585f: "Zang " +0x5860: "Dui " +0x5861: "Tian " +0x5862: "Wu " +0x5863: "Cheng " +0x5864: "Xun " +0x5865: "Ge " +0x5866: "Zhen " +0x5867: "Ai " +0x5868: "Gong " +0x5869: "Yan " +0x586a: "Kan " +0x586b: "Tian " +0x586c: "Yuan " +0x586d: "Wen " +0x586e: "Xie " +0x586f: "Liu " +0x5870: "Ama " +0x5871: "Lang " +0x5872: "Chang " +0x5873: "Peng " +0x5874: "Beng " +0x5875: "Chen " +0x5876: "Cu " +0x5877: "Lu " +0x5878: "Ou " +0x5879: "Qian " +0x587a: "Mei " +0x587b: "Mo " +0x587c: "Zhuan " +0x587d: "Shuang " +0x587e: "Shu " +0x587f: "Lou " +0x5880: "Chi " +0x5881: "Man " +0x5882: "Biao " +0x5883: "Jing " +0x5884: "Qi " +0x5885: "Shu " +0x5886: "Di " +0x5887: "Zhang " +0x5888: "Kan " +0x5889: "Yong " +0x588a: "Dian " +0x588b: "Chen " +0x588c: "Zhi " +0x588d: "Xi " +0x588e: "Guo " +0x588f: "Qiang " +0x5890: "Jin " +0x5891: "Di " +0x5892: "Shang " +0x5893: "Mu " +0x5894: "Cui " +0x5895: "Yan " +0x5896: "Ta " +0x5897: "Zeng " +0x5898: "Qi " +0x5899: "Qiang " +0x589a: "Liang " +0x589b: "[?] " +0x589c: "Zhui " +0x589d: "Qiao " +0x589e: "Zeng " +0x589f: "Xu " +0x58a0: "Shan " +0x58a1: "Shan " +0x58a2: "Ba " +0x58a3: "Pu " +0x58a4: "Kuai " +0x58a5: "Dong " +0x58a6: "Fan " +0x58a7: "Que " +0x58a8: "Mo " +0x58a9: "Dun " +0x58aa: "Dun " +0x58ab: "Dun " +0x58ac: "Di " +0x58ad: "Sheng " +0x58ae: "Duo " +0x58af: "Duo " +0x58b0: "Tan " +0x58b1: "Deng " +0x58b2: "Wu " +0x58b3: "Fen " +0x58b4: "Huang " +0x58b5: "Tan " +0x58b6: "Da " +0x58b7: "Ye " +0x58b8: "Sho " +0x58b9: "Mama " +0x58ba: "Yu " +0x58bb: "Qiang " +0x58bc: "Ji " +0x58bd: "Qiao " +0x58be: "Ken " +0x58bf: "Yi " +0x58c0: "Pi " +0x58c1: "Bi " +0x58c2: "Dian " +0x58c3: "Jiang " +0x58c4: "Ye " +0x58c5: "Yong " +0x58c6: "Bo " +0x58c7: "Tan " +0x58c8: "Lan " +0x58c9: "Ju " +0x58ca: "Huai " +0x58cb: "Dang " +0x58cc: "Rang " +0x58cd: "Qian " +0x58ce: "Xun " +0x58cf: "Lan " +0x58d0: "Xi " +0x58d1: "He " +0x58d2: "Ai " +0x58d3: "Ya " +0x58d4: "Dao " +0x58d5: "Hao " +0x58d6: "Ruan " +0x58d7: "Mama " +0x58d8: "Lei " +0x58d9: "Kuang " +0x58da: "Lu " +0x58db: "Yan " +0x58dc: "Tan " +0x58dd: "Wei " +0x58de: "Huai " +0x58df: "Long " +0x58e0: "Long " +0x58e1: "Rui " +0x58e2: "Li " +0x58e3: "Lin " +0x58e4: "Rang " +0x58e5: "Ten " +0x58e6: "Xun " +0x58e7: "Yan " +0x58e8: "Lei " +0x58e9: "Ba " +0x58ea: "[?] " +0x58eb: "Shi " +0x58ec: "Ren " +0x58ed: "[?] " +0x58ee: "Zhuang " +0x58ef: "Zhuang " +0x58f0: "Sheng " +0x58f1: "Yi " +0x58f2: "Mai " +0x58f3: "Ke " +0x58f4: "Zhu " +0x58f5: "Zhuang " +0x58f6: "Hu " +0x58f7: "Hu " +0x58f8: "Kun " +0x58f9: "Yi " +0x58fa: "Hu " +0x58fb: "Xu " +0x58fc: "Kun " +0x58fd: "Shou " +0x58fe: "Mang " +0x58ff: "Zun " +/* x059 */ +0x5900: "Shou " +0x5901: "Yi " +0x5902: "Zhi " +0x5903: "Gu " +0x5904: "Chu " +0x5905: "Jiang " +0x5906: "Feng " +0x5907: "Bei " +0x5908: "Cay " +0x5909: "Bian " +0x590a: "Sui " +0x590b: "Qun " +0x590c: "Ling " +0x590d: "Fu " +0x590e: "Zuo " +0x590f: "Xia " +0x5910: "Xiong " +0x5911: "[?] " +0x5912: "Nao " +0x5913: "Xia " +0x5914: "Kui " +0x5915: "Xi " +0x5916: "Wai " +0x5917: "Yuan " +0x5918: "Mao " +0x5919: "Su " +0x591a: "Duo " +0x591b: "Duo " +0x591c: "Ye " +0x591d: "Qing " +0x591e: "Uys " +0x591f: "Gou " +0x5920: "Gou " +0x5921: "Qi " +0x5922: "Meng " +0x5923: "Meng " +0x5924: "Yin " +0x5925: "Huo " +0x5926: "Chen " +0x5927: "Da " +0x5928: "Ze " +0x5929: "Tian " +0x592a: "Tai " +0x592b: "Fu " +0x592c: "Guai " +0x592d: "Yao " +0x592e: "Yang " +0x592f: "Hang " +0x5930: "Gao " +0x5931: "Shi " +0x5932: "Ben " +0x5933: "Tai " +0x5934: "Tou " +0x5935: "Yan " +0x5936: "Bi " +0x5937: "Yi " +0x5938: "Kua " +0x5939: "Jia " +0x593a: "Duo " +0x593b: "Kwu " +0x593c: "Kuang " +0x593d: "Yun " +0x593e: "Jia " +0x593f: "Pa " +0x5940: "En " +0x5941: "Lian " +0x5942: "Huan " +0x5943: "Di " +0x5944: "Yan " +0x5945: "Pao " +0x5946: "Quan " +0x5947: "Qi " +0x5948: "Nai " +0x5949: "Feng " +0x594a: "Xie " +0x594b: "Fen " +0x594c: "Dian " +0x594d: "[?] " +0x594e: "Kui " +0x594f: "Zou " +0x5950: "Huan " +0x5951: "Qi " +0x5952: "Kai " +0x5953: "Zha " +0x5954: "Ben " +0x5955: "Yi " +0x5956: "Jiang " +0x5957: "Tao " +0x5958: "Zang " +0x5959: "Ben " +0x595a: "Xi " +0x595b: "Xiang " +0x595c: "Fei " +0x595d: "Diao " +0x595e: "Xun " +0x595f: "Keng " +0x5960: "Dian " +0x5961: "Ao " +0x5962: "She " +0x5963: "Weng " +0x5964: "Pan " +0x5965: "Ao " +0x5966: "Wu " +0x5967: "Ao " +0x5968: "Jiang " +0x5969: "Lian " +0x596a: "Duo " +0x596b: "Yun " +0x596c: "Jiang " +0x596d: "Shi " +0x596e: "Fen " +0x596f: "Huo " +0x5970: "Bi " +0x5971: "Lian " +0x5972: "Duo " +0x5973: "Nu " +0x5974: "Nu " +0x5975: "Ding " +0x5976: "Nai " +0x5977: "Qian " +0x5978: "Jian " +0x5979: "Ta " +0x597a: "Jiu " +0x597b: "Nan " +0x597c: "Cha " +0x597d: "Hao " +0x597e: "Xian " +0x597f: "Fan " +0x5980: "Ji " +0x5981: "Shuo " +0x5982: "Ru " +0x5983: "Fei " +0x5984: "Wang " +0x5985: "Hong " +0x5986: "Zhuang " +0x5987: "Fu " +0x5988: "Ma " +0x5989: "Dan " +0x598a: "Ren " +0x598b: "Fu " +0x598c: "Jing " +0x598d: "Yan " +0x598e: "Xie " +0x598f: "Wen " +0x5990: "Zhong " +0x5991: "Pa " +0x5992: "Du " +0x5993: "Ji " +0x5994: "Keng " +0x5995: "Zhong " +0x5996: "Yao " +0x5997: "Jin " +0x5998: "Yun " +0x5999: "Miao " +0x599a: "Pei " +0x599b: "Shi " +0x599c: "Yue " +0x599d: "Zhuang " +0x599e: "Niu " +0x599f: "Yan " +0x59a0: "Na " +0x59a1: "Xin " +0x59a2: "Fen " +0x59a3: "Bi " +0x59a4: "Yu " +0x59a5: "Tuo " +0x59a6: "Feng " +0x59a7: "Yuan " +0x59a8: "Fang " +0x59a9: "Wu " +0x59aa: "Yu " +0x59ab: "Gui " +0x59ac: "Du " +0x59ad: "Ba " +0x59ae: "Ni " +0x59af: "Zhou " +0x59b0: "Zhuo " +0x59b1: "Zhao " +0x59b2: "Da " +0x59b3: "Nai " +0x59b4: "Yuan " +0x59b5: "Tou " +0x59b6: "Xuan " +0x59b7: "Zhi " +0x59b8: "E " +0x59b9: "Mei " +0x59ba: "Mo " +0x59bb: "Qi " +0x59bc: "Bi " +0x59bd: "Shen " +0x59be: "Qie " +0x59bf: "E " +0x59c0: "He " +0x59c1: "Xu " +0x59c2: "Fa " +0x59c3: "Zheng " +0x59c4: "Min " +0x59c5: "Ban " +0x59c6: "Mu " +0x59c7: "Fu " +0x59c8: "Ling " +0x59c9: "Zi " +0x59ca: "Zi " +0x59cb: "Shi " +0x59cc: "Ran " +0x59cd: "Shan " +0x59ce: "Yang " +0x59cf: "Man " +0x59d0: "Jie " +0x59d1: "Gu " +0x59d2: "Si " +0x59d3: "Xing " +0x59d4: "Wei " +0x59d5: "Zi " +0x59d6: "Ju " +0x59d7: "Shan " +0x59d8: "Pin " +0x59d9: "Ren " +0x59da: "Yao " +0x59db: "Tong " +0x59dc: "Jiang " +0x59dd: "Shu " +0x59de: "Ji " +0x59df: "Gai " +0x59e0: "Shang " +0x59e1: "Kuo " +0x59e2: "Juan " +0x59e3: "Jiao " +0x59e4: "Gou " +0x59e5: "Mu " +0x59e6: "Jian " +0x59e7: "Jian " +0x59e8: "Yi " +0x59e9: "Nian " +0x59ea: "Zhi " +0x59eb: "Ji " +0x59ec: "Ji " +0x59ed: "Xian " +0x59ee: "Heng " +0x59ef: "Guang " +0x59f0: "Jun " +0x59f1: "Kua " +0x59f2: "Yan " +0x59f3: "Ming " +0x59f4: "Lie " +0x59f5: "Pei " +0x59f6: "Yan " +0x59f7: "You " +0x59f8: "Yan " +0x59f9: "Cha " +0x59fa: "Shen " +0x59fb: "Yin " +0x59fc: "Chi " +0x59fd: "Gui " +0x59fe: "Quan " +0x59ff: "Zi " +/* x05a */ +0x5a00: "Song " +0x5a01: "Wei " +0x5a02: "Hong " +0x5a03: "Wa " +0x5a04: "Lou " +0x5a05: "Ya " +0x5a06: "Rao " +0x5a07: "Jiao " +0x5a08: "Luan " +0x5a09: "Ping " +0x5a0a: "Xian " +0x5a0b: "Shao " +0x5a0c: "Li " +0x5a0d: "Cheng " +0x5a0e: "Xiao " +0x5a0f: "Mang " +0x5a10: "Fu " +0x5a11: "Suo " +0x5a12: "Wu " +0x5a13: "Wei " +0x5a14: "Ke " +0x5a15: "Lai " +0x5a16: "Chuo " +0x5a17: "Ding " +0x5a18: "Niang " +0x5a19: "Xing " +0x5a1a: "Nan " +0x5a1b: "Yu " +0x5a1c: "Nuo " +0x5a1d: "Pei " +0x5a1e: "Nei " +0x5a1f: "Juan " +0x5a20: "Shen " +0x5a21: "Zhi " +0x5a22: "Han " +0x5a23: "Di " +0x5a24: "Zhuang " +0x5a25: "E " +0x5a26: "Pin " +0x5a27: "Tui " +0x5a28: "Han " +0x5a29: "Mian " +0x5a2a: "Wu " +0x5a2b: "Yan " +0x5a2c: "Wu " +0x5a2d: "Xi " +0x5a2e: "Yan " +0x5a2f: "Yu " +0x5a30: "Si " +0x5a31: "Yu " +0x5a32: "Wa " +0x5a33: "[?] " +0x5a34: "Xian " +0x5a35: "Ju " +0x5a36: "Qu " +0x5a37: "Shui " +0x5a38: "Qi " +0x5a39: "Xian " +0x5a3a: "Zhui " +0x5a3b: "Dong " +0x5a3c: "Chang " +0x5a3d: "Lu " +0x5a3e: "Ai " +0x5a3f: "E " +0x5a40: "E " +0x5a41: "Lou " +0x5a42: "Mian " +0x5a43: "Cong " +0x5a44: "Pou " +0x5a45: "Ju " +0x5a46: "Po " +0x5a47: "Cai " +0x5a48: "Ding " +0x5a49: "Wan " +0x5a4a: "Biao " +0x5a4b: "Xiao " +0x5a4c: "Shu " +0x5a4d: "Qi " +0x5a4e: "Hui " +0x5a4f: "Fu " +0x5a50: "E " +0x5a51: "Wo " +0x5a52: "Tan " +0x5a53: "Fei " +0x5a54: "Wei " +0x5a55: "Jie " +0x5a56: "Tian " +0x5a57: "Ni " +0x5a58: "Quan " +0x5a59: "Jing " +0x5a5a: "Hun " +0x5a5b: "Jing " +0x5a5c: "Qian " +0x5a5d: "Dian " +0x5a5e: "Xing " +0x5a5f: "Hu " +0x5a60: "Wa " +0x5a61: "Lai " +0x5a62: "Bi " +0x5a63: "Yin " +0x5a64: "Chou " +0x5a65: "Chuo " +0x5a66: "Fu " +0x5a67: "Jing " +0x5a68: "Lun " +0x5a69: "Yan " +0x5a6a: "Lan " +0x5a6b: "Kun " +0x5a6c: "Yin " +0x5a6d: "Ya " +0x5a6e: "Ju " +0x5a6f: "Li " +0x5a70: "Dian " +0x5a71: "Xian " +0x5a72: "Hwa " +0x5a73: "Hua " +0x5a74: "Ying " +0x5a75: "Chan " +0x5a76: "Shen " +0x5a77: "Ting " +0x5a78: "Dang " +0x5a79: "Yao " +0x5a7a: "Wu " +0x5a7b: "Nan " +0x5a7c: "Ruo " +0x5a7d: "Jia " +0x5a7e: "Tou " +0x5a7f: "Xu " +0x5a80: "Yu " +0x5a81: "Wei " +0x5a82: "Ti " +0x5a83: "Rou " +0x5a84: "Mei " +0x5a85: "Dan " +0x5a86: "Ruan " +0x5a87: "Qin " +0x5a88: "Hui " +0x5a89: "Wu " +0x5a8a: "Qian " +0x5a8b: "Chun " +0x5a8c: "Mao " +0x5a8d: "Fu " +0x5a8e: "Jie " +0x5a8f: "Duan " +0x5a90: "Xi " +0x5a91: "Zhong " +0x5a92: "Mei " +0x5a93: "Huang " +0x5a94: "Mian " +0x5a95: "An " +0x5a96: "Ying " +0x5a97: "Xuan " +0x5a98: "Jie " +0x5a99: "Wei " +0x5a9a: "Mei " +0x5a9b: "Yuan " +0x5a9c: "Zhen " +0x5a9d: "Qiu " +0x5a9e: "Ti " +0x5a9f: "Xie " +0x5aa0: "Tuo " +0x5aa1: "Lian " +0x5aa2: "Mao " +0x5aa3: "Ran " +0x5aa4: "Si " +0x5aa5: "Pian " +0x5aa6: "Wei " +0x5aa7: "Wa " +0x5aa8: "Jiu " +0x5aa9: "Hu " +0x5aaa: "Ao " +0x5aab: "[?] " +0x5aac: "Bou " +0x5aad: "Xu " +0x5aae: "Tou " +0x5aaf: "Gui " +0x5ab0: "Zou " +0x5ab1: "Yao " +0x5ab2: "Pi " +0x5ab3: "Xi " +0x5ab4: "Yuan " +0x5ab5: "Ying " +0x5ab6: "Rong " +0x5ab7: "Ru " +0x5ab8: "Chi " +0x5ab9: "Liu " +0x5aba: "Mei " +0x5abb: "Pan " +0x5abc: "Ao " +0x5abd: "Ma " +0x5abe: "Gou " +0x5abf: "Kui " +0x5ac0: "Qin " +0x5ac1: "Jia " +0x5ac2: "Sao " +0x5ac3: "Zhen " +0x5ac4: "Yuan " +0x5ac5: "Cha " +0x5ac6: "Yong " +0x5ac7: "Ming " +0x5ac8: "Ying " +0x5ac9: "Ji " +0x5aca: "Su " +0x5acb: "Niao " +0x5acc: "Xian " +0x5acd: "Tao " +0x5ace: "Pang " +0x5acf: "Lang " +0x5ad0: "Nao " +0x5ad1: "Bao " +0x5ad2: "Ai " +0x5ad3: "Pi " +0x5ad4: "Pin " +0x5ad5: "Yi " +0x5ad6: "Piao " +0x5ad7: "Yu " +0x5ad8: "Lei " +0x5ad9: "Xuan " +0x5ada: "Man " +0x5adb: "Yi " +0x5adc: "Zhang " +0x5add: "Kang " +0x5ade: "Yong " +0x5adf: "Ni " +0x5ae0: "Li " +0x5ae1: "Di " +0x5ae2: "Gui " +0x5ae3: "Yan " +0x5ae4: "Jin " +0x5ae5: "Zhuan " +0x5ae6: "Chang " +0x5ae7: "Ce " +0x5ae8: "Han " +0x5ae9: "Nen " +0x5aea: "Lao " +0x5aeb: "Mo " +0x5aec: "Zhe " +0x5aed: "Hu " +0x5aee: "Hu " +0x5aef: "Ao " +0x5af0: "Nen " +0x5af1: "Qiang " +0x5af2: "Ma " +0x5af3: "Pie " +0x5af4: "Gu " +0x5af5: "Wu " +0x5af6: "Jiao " +0x5af7: "Tuo " +0x5af8: "Zhan " +0x5af9: "Mao " +0x5afa: "Xian " +0x5afb: "Xian " +0x5afc: "Mo " +0x5afd: "Liao " +0x5afe: "Lian " +0x5aff: "Hua " +/* x05b */ +0x5b00: "Gui " +0x5b01: "Deng " +0x5b02: "Zhi " +0x5b03: "Xu " +0x5b04: "Yi " +0x5b05: "Hua " +0x5b06: "Xi " +0x5b07: "Hui " +0x5b08: "Rao " +0x5b09: "Xi " +0x5b0a: "Yan " +0x5b0b: "Chan " +0x5b0c: "Jiao " +0x5b0d: "Mei " +0x5b0e: "Fan " +0x5b0f: "Fan " +0x5b10: "Xian " +0x5b11: "Yi " +0x5b12: "Wei " +0x5b13: "Jiao " +0x5b14: "Fu " +0x5b15: "Shi " +0x5b16: "Bi " +0x5b17: "Shan " +0x5b18: "Sui " +0x5b19: "Qiang " +0x5b1a: "Lian " +0x5b1b: "Huan " +0x5b1c: "Xin " +0x5b1d: "Niao " +0x5b1e: "Dong " +0x5b1f: "Yi " +0x5b20: "Can " +0x5b21: "Ai " +0x5b22: "Niang " +0x5b23: "Neng " +0x5b24: "Ma " +0x5b25: "Tiao " +0x5b26: "Chou " +0x5b27: "Jin " +0x5b28: "Ci " +0x5b29: "Yu " +0x5b2a: "Pin " +0x5b2b: "Yong " +0x5b2c: "Xu " +0x5b2d: "Nai " +0x5b2e: "Yan " +0x5b2f: "Tai " +0x5b30: "Ying " +0x5b31: "Can " +0x5b32: "Niao " +0x5b33: "Wo " +0x5b34: "Ying " +0x5b35: "Mian " +0x5b36: "Kaka " +0x5b37: "Ma " +0x5b38: "Shen " +0x5b39: "Xing " +0x5b3a: "Ni " +0x5b3b: "Du " +0x5b3c: "Liu " +0x5b3d: "Yuan " +0x5b3e: "Lan " +0x5b3f: "Yan " +0x5b40: "Shuang " +0x5b41: "Ling " +0x5b42: "Jiao " +0x5b43: "Niang " +0x5b44: "Lan " +0x5b45: "Xian " +0x5b46: "Ying " +0x5b47: "Shuang " +0x5b48: "Shuai " +0x5b49: "Quan " +0x5b4a: "Mi " +0x5b4b: "Li " +0x5b4c: "Luan " +0x5b4d: "Yan " +0x5b4e: "Zhu " +0x5b4f: "Lan " +0x5b50: "Zi " +0x5b51: "Jie " +0x5b52: "Jue " +0x5b53: "Jue " +0x5b54: "Kong " +0x5b55: "Yun " +0x5b56: "Zi " +0x5b57: "Zi " +0x5b58: "Cun " +0x5b59: "Sun " +0x5b5a: "Fu " +0x5b5b: "Bei " +0x5b5c: "Zi " +0x5b5d: "Xiao " +0x5b5e: "Xin " +0x5b5f: "Meng " +0x5b60: "Si " +0x5b61: "Tai " +0x5b62: "Bao " +0x5b63: "Ji " +0x5b64: "Gu " +0x5b65: "Nu " +0x5b66: "Xue " +0x5b67: "[?] " +0x5b68: "Zhuan " +0x5b69: "Hai " +0x5b6a: "Luan " +0x5b6b: "Sun " +0x5b6c: "Huai " +0x5b6d: "Mie " +0x5b6e: "Cong " +0x5b6f: "Qian " +0x5b70: "Shu " +0x5b71: "Chan " +0x5b72: "Ya " +0x5b73: "Zi " +0x5b74: "Ni " +0x5b75: "Fu " +0x5b76: "Zi " +0x5b77: "Li " +0x5b78: "Xue " +0x5b79: "Bo " +0x5b7a: "Ru " +0x5b7b: "Lai " +0x5b7c: "Nie " +0x5b7d: "Nie " +0x5b7e: "Ying " +0x5b7f: "Luan " +0x5b80: "Mian " +0x5b81: "Zhu " +0x5b82: "Rong " +0x5b83: "Ta " +0x5b84: "Gui " +0x5b85: "Zhai " +0x5b86: "Qiong " +0x5b87: "Yu " +0x5b88: "Shou " +0x5b89: "An " +0x5b8a: "Tu " +0x5b8b: "Song " +0x5b8c: "Wan " +0x5b8d: "Rou " +0x5b8e: "Yao " +0x5b8f: "Hong " +0x5b90: "Yi " +0x5b91: "Jing " +0x5b92: "Zhun " +0x5b93: "Mi " +0x5b94: "Zhu " +0x5b95: "Dang " +0x5b96: "Hong " +0x5b97: "Zong " +0x5b98: "Guan " +0x5b99: "Zhou " +0x5b9a: "Ding " +0x5b9b: "Wan " +0x5b9c: "Yi " +0x5b9d: "Bao " +0x5b9e: "Shi " +0x5b9f: "Shi " +0x5ba0: "Chong " +0x5ba1: "Shen " +0x5ba2: "Ke " +0x5ba3: "Xuan " +0x5ba4: "Shi " +0x5ba5: "You " +0x5ba6: "Huan " +0x5ba7: "Yi " +0x5ba8: "Tiao " +0x5ba9: "Shi " +0x5baa: "Xian " +0x5bab: "Gong " +0x5bac: "Cheng " +0x5bad: "Qun " +0x5bae: "Gong " +0x5baf: "Xiao " +0x5bb0: "Zai " +0x5bb1: "Zha " +0x5bb2: "Bao " +0x5bb3: "Hai " +0x5bb4: "Yan " +0x5bb5: "Xiao " +0x5bb6: "Jia " +0x5bb7: "Shen " +0x5bb8: "Chen " +0x5bb9: "Rong " +0x5bba: "Huang " +0x5bbb: "Mi " +0x5bbc: "Kou " +0x5bbd: "Kuan " +0x5bbe: "Bin " +0x5bbf: "Su " +0x5bc0: "Cai " +0x5bc1: "Zan " +0x5bc2: "Ji " +0x5bc3: "Yuan " +0x5bc4: "Ji " +0x5bc5: "Yin " +0x5bc6: "Mi " +0x5bc7: "Kou " +0x5bc8: "Qing " +0x5bc9: "Que " +0x5bca: "Zhen " +0x5bcb: "Jian " +0x5bcc: "Fu " +0x5bcd: "Ning " +0x5bce: "Bing " +0x5bcf: "Huan " +0x5bd0: "Mei " +0x5bd1: "Qin " +0x5bd2: "Han " +0x5bd3: "Yu " +0x5bd4: "Shi " +0x5bd5: "Ning " +0x5bd6: "Qin " +0x5bd7: "Ning " +0x5bd8: "Zhi " +0x5bd9: "Yu " +0x5bda: "Bao " +0x5bdb: "Kuan " +0x5bdc: "Ning " +0x5bdd: "Qin " +0x5bde: "Mo " +0x5bdf: "Cha " +0x5be0: "Ju " +0x5be1: "Gua " +0x5be2: "Qin " +0x5be3: "Hu " +0x5be4: "Wu " +0x5be5: "Liao " +0x5be6: "Shi " +0x5be7: "Zhu " +0x5be8: "Zhai " +0x5be9: "Shen " +0x5bea: "Wei " +0x5beb: "Xie " +0x5bec: "Kuan " +0x5bed: "Hui " +0x5bee: "Liao " +0x5bef: "Jun " +0x5bf0: "Huan " +0x5bf1: "Yi " +0x5bf2: "Yi " +0x5bf3: "Bao " +0x5bf4: "Qin " +0x5bf5: "Chong " +0x5bf6: "Bao " +0x5bf7: "Feng " +0x5bf8: "Cun " +0x5bf9: "Dui " +0x5bfa: "Si " +0x5bfb: "Xun " +0x5bfc: "Dao " +0x5bfd: "Lu " +0x5bfe: "Dui " +0x5bff: "Shou " +/* x05c */ +0x5c00: "Po " +0x5c01: "Feng " +0x5c02: "Zhuan " +0x5c03: "Fu " +0x5c04: "She " +0x5c05: "Ke " +0x5c06: "Jiang " +0x5c07: "Jiang " +0x5c08: "Zhuan " +0x5c09: "Wei " +0x5c0a: "Zun " +0x5c0b: "Xun " +0x5c0c: "Shu " +0x5c0d: "Dui " +0x5c0e: "Dao " +0x5c0f: "Xiao " +0x5c10: "Ji " +0x5c11: "Shao " +0x5c12: "Er " +0x5c13: "Er " +0x5c14: "Er " +0x5c15: "Ga " +0x5c16: "Jian " +0x5c17: "Shu " +0x5c18: "Chen " +0x5c19: "Shang " +0x5c1a: "Shang " +0x5c1b: "Mo " +0x5c1c: "Ga " +0x5c1d: "Chang " +0x5c1e: "Liao " +0x5c1f: "Xian " +0x5c20: "Xian " +0x5c21: "[?] " +0x5c22: "Wang " +0x5c23: "Wang " +0x5c24: "You " +0x5c25: "Liao " +0x5c26: "Liao " +0x5c27: "Yao " +0x5c28: "Mang " +0x5c29: "Wang " +0x5c2a: "Wang " +0x5c2b: "Wang " +0x5c2c: "Ga " +0x5c2d: "Yao " +0x5c2e: "Duo " +0x5c2f: "Kui " +0x5c30: "Zhong " +0x5c31: "Jiu " +0x5c32: "Gan " +0x5c33: "Gu " +0x5c34: "Gan " +0x5c35: "Tui " +0x5c36: "Gan " +0x5c37: "Gan " +0x5c38: "Shi " +0x5c39: "Yin " +0x5c3a: "Chi " +0x5c3b: "Kao " +0x5c3c: "Ni " +0x5c3d: "Jin " +0x5c3e: "Wei " +0x5c3f: "Niao " +0x5c40: "Ju " +0x5c41: "Pi " +0x5c42: "Ceng " +0x5c43: "Xi " +0x5c44: "Bi " +0x5c45: "Ju " +0x5c46: "Jie " +0x5c47: "Tian " +0x5c48: "Qu " +0x5c49: "Ti " +0x5c4a: "Jie " +0x5c4b: "Wu " +0x5c4c: "Diao " +0x5c4d: "Shi " +0x5c4e: "Shi " +0x5c4f: "Ping " +0x5c50: "Ji " +0x5c51: "Xie " +0x5c52: "Chen " +0x5c53: "Xi " +0x5c54: "Ni " +0x5c55: "Zhan " +0x5c56: "Xi " +0x5c57: "[?] " +0x5c58: "Man " +0x5c59: "E " +0x5c5a: "Lou " +0x5c5b: "Ping " +0x5c5c: "Ti " +0x5c5d: "Fei " +0x5c5e: "Shu " +0x5c5f: "Xie " +0x5c60: "Tu " +0x5c61: "Lu " +0x5c62: "Lu " +0x5c63: "Xi " +0x5c64: "Ceng " +0x5c65: "Lu " +0x5c66: "Ju " +0x5c67: "Xie " +0x5c68: "Ju " +0x5c69: "Jue " +0x5c6a: "Liao " +0x5c6b: "Jue " +0x5c6c: "Shu " +0x5c6d: "Xi " +0x5c6e: "Che " +0x5c6f: "Tun " +0x5c70: "Ni " +0x5c71: "Shan " +0x5c72: "[?] " +0x5c73: "Xian " +0x5c74: "Li " +0x5c75: "Xue " +0x5c76: "Nata " +0x5c77: "[?] " +0x5c78: "Long " +0x5c79: "Yi " +0x5c7a: "Qi " +0x5c7b: "Ren " +0x5c7c: "Wu " +0x5c7d: "Han " +0x5c7e: "Shen " +0x5c7f: "Yu " +0x5c80: "Chu " +0x5c81: "Sui " +0x5c82: "Qi " +0x5c83: "[?] " +0x5c84: "Yue " +0x5c85: "Ban " +0x5c86: "Yao " +0x5c87: "Ang " +0x5c88: "Ya " +0x5c89: "Wu " +0x5c8a: "Jie " +0x5c8b: "E " +0x5c8c: "Ji " +0x5c8d: "Qian " +0x5c8e: "Fen " +0x5c8f: "Yuan " +0x5c90: "Qi " +0x5c91: "Cen " +0x5c92: "Qian " +0x5c93: "Qi " +0x5c94: "Cha " +0x5c95: "Jie " +0x5c96: "Qu " +0x5c97: "Gang " +0x5c98: "Xian " +0x5c99: "Ao " +0x5c9a: "Lan " +0x5c9b: "Dao " +0x5c9c: "Ba " +0x5c9d: "Zuo " +0x5c9e: "Zuo " +0x5c9f: "Yang " +0x5ca0: "Ju " +0x5ca1: "Gang " +0x5ca2: "Ke " +0x5ca3: "Gou " +0x5ca4: "Xue " +0x5ca5: "Bei " +0x5ca6: "Li " +0x5ca7: "Tiao " +0x5ca8: "Ju " +0x5ca9: "Yan " +0x5caa: "Fu " +0x5cab: "Xiu " +0x5cac: "Jia " +0x5cad: "Ling " +0x5cae: "Tuo " +0x5caf: "Pei " +0x5cb0: "You " +0x5cb1: "Dai " +0x5cb2: "Kuang " +0x5cb3: "Yue " +0x5cb4: "Qu " +0x5cb5: "Hu " +0x5cb6: "Po " +0x5cb7: "Min " +0x5cb8: "An " +0x5cb9: "Tiao " +0x5cba: "Ling " +0x5cbb: "Chi " +0x5cbc: "Yuri " +0x5cbd: "Dong " +0x5cbe: "Cem " +0x5cbf: "Kui " +0x5cc0: "Xiu " +0x5cc1: "Mao " +0x5cc2: "Tong " +0x5cc3: "Xue " +0x5cc4: "Yi " +0x5cc5: "Kura " +0x5cc6: "He " +0x5cc7: "Ke " +0x5cc8: "Luo " +0x5cc9: "E " +0x5cca: "Fu " +0x5ccb: "Xun " +0x5ccc: "Die " +0x5ccd: "Lu " +0x5cce: "An " +0x5ccf: "Er " +0x5cd0: "Gai " +0x5cd1: "Quan " +0x5cd2: "Tong " +0x5cd3: "Yi " +0x5cd4: "Mu " +0x5cd5: "Shi " +0x5cd6: "An " +0x5cd7: "Wei " +0x5cd8: "Hu " +0x5cd9: "Zhi " +0x5cda: "Mi " +0x5cdb: "Li " +0x5cdc: "Ji " +0x5cdd: "Tong " +0x5cde: "Wei " +0x5cdf: "You " +0x5ce0: "Sang " +0x5ce1: "Xia " +0x5ce2: "Li " +0x5ce3: "Yao " +0x5ce4: "Jiao " +0x5ce5: "Zheng " +0x5ce6: "Luan " +0x5ce7: "Jiao " +0x5ce8: "E " +0x5ce9: "E " +0x5cea: "Yu " +0x5ceb: "Ye " +0x5cec: "Bu " +0x5ced: "Qiao " +0x5cee: "Qun " +0x5cef: "Feng " +0x5cf0: "Feng " +0x5cf1: "Nao " +0x5cf2: "Li " +0x5cf3: "You " +0x5cf4: "Xian " +0x5cf5: "Hong " +0x5cf6: "Dao " +0x5cf7: "Shen " +0x5cf8: "Cheng " +0x5cf9: "Tu " +0x5cfa: "Geng " +0x5cfb: "Jun " +0x5cfc: "Hao " +0x5cfd: "Xia " +0x5cfe: "Yin " +0x5cff: "Yu " +/* x05d */ +0x5d00: "Lang " +0x5d01: "Kan " +0x5d02: "Lao " +0x5d03: "Lai " +0x5d04: "Xian " +0x5d05: "Que " +0x5d06: "Kong " +0x5d07: "Chong " +0x5d08: "Chong " +0x5d09: "Ta " +0x5d0a: "Lin " +0x5d0b: "Hua " +0x5d0c: "Ju " +0x5d0d: "Lai " +0x5d0e: "Qi " +0x5d0f: "Min " +0x5d10: "Kun " +0x5d11: "Kun " +0x5d12: "Zu " +0x5d13: "Gu " +0x5d14: "Cui " +0x5d15: "Ya " +0x5d16: "Ya " +0x5d17: "Gang " +0x5d18: "Lun " +0x5d19: "Lun " +0x5d1a: "Leng " +0x5d1b: "Jue " +0x5d1c: "Duo " +0x5d1d: "Zheng " +0x5d1e: "Guo " +0x5d1f: "Yin " +0x5d20: "Dong " +0x5d21: "Han " +0x5d22: "Zheng " +0x5d23: "Wei " +0x5d24: "Yao " +0x5d25: "Pi " +0x5d26: "Yan " +0x5d27: "Song " +0x5d28: "Jie " +0x5d29: "Beng " +0x5d2a: "Zu " +0x5d2b: "Jue " +0x5d2c: "Dong " +0x5d2d: "Zhan " +0x5d2e: "Gu " +0x5d2f: "Yin " +0x5d30: "[?] " +0x5d31: "Ze " +0x5d32: "Huang " +0x5d33: "Yu " +0x5d34: "Wei " +0x5d35: "Yang " +0x5d36: "Feng " +0x5d37: "Qiu " +0x5d38: "Dun " +0x5d39: "Ti " +0x5d3a: "Yi " +0x5d3b: "Zhi " +0x5d3c: "Shi " +0x5d3d: "Zai " +0x5d3e: "Yao " +0x5d3f: "E " +0x5d40: "Zhu " +0x5d41: "Kan " +0x5d42: "Lu " +0x5d43: "Yan " +0x5d44: "Mei " +0x5d45: "Gan " +0x5d46: "Ji " +0x5d47: "Ji " +0x5d48: "Huan " +0x5d49: "Ting " +0x5d4a: "Sheng " +0x5d4b: "Mei " +0x5d4c: "Qian " +0x5d4d: "Wu " +0x5d4e: "Yu " +0x5d4f: "Zong " +0x5d50: "Lan " +0x5d51: "Jue " +0x5d52: "Yan " +0x5d53: "Yan " +0x5d54: "Wei " +0x5d55: "Zong " +0x5d56: "Cha " +0x5d57: "Sui " +0x5d58: "Rong " +0x5d59: "Yamashina " +0x5d5a: "Qin " +0x5d5b: "Yu " +0x5d5c: "Kewashii " +0x5d5d: "Lou " +0x5d5e: "Tu " +0x5d5f: "Dui " +0x5d60: "Xi " +0x5d61: "Weng " +0x5d62: "Cang " +0x5d63: "Dang " +0x5d64: "Hong " +0x5d65: "Jie " +0x5d66: "Ai " +0x5d67: "Liu " +0x5d68: "Wu " +0x5d69: "Song " +0x5d6a: "Qiao " +0x5d6b: "Zi " +0x5d6c: "Wei " +0x5d6d: "Beng " +0x5d6e: "Dian " +0x5d6f: "Cuo " +0x5d70: "Qian " +0x5d71: "Yong " +0x5d72: "Nie " +0x5d73: "Cuo " +0x5d74: "Ji " +0x5d75: "[?] " +0x5d76: "Tao " +0x5d77: "Song " +0x5d78: "Zong " +0x5d79: "Jiang " +0x5d7a: "Liao " +0x5d7b: "Kang " +0x5d7c: "Chan " +0x5d7d: "Die " +0x5d7e: "Cen " +0x5d7f: "Ding " +0x5d80: "Tu " +0x5d81: "Lou " +0x5d82: "Zhang " +0x5d83: "Zhan " +0x5d84: "Zhan " +0x5d85: "Ao " +0x5d86: "Cao " +0x5d87: "Qu " +0x5d88: "Qiang " +0x5d89: "Zui " +0x5d8a: "Zui " +0x5d8b: "Dao " +0x5d8c: "Dao " +0x5d8d: "Xi " +0x5d8e: "Yu " +0x5d8f: "Bo " +0x5d90: "Long " +0x5d91: "Xiang " +0x5d92: "Ceng " +0x5d93: "Bo " +0x5d94: "Qin " +0x5d95: "Jiao " +0x5d96: "Yan " +0x5d97: "Lao " +0x5d98: "Zhan " +0x5d99: "Lin " +0x5d9a: "Liao " +0x5d9b: "Liao " +0x5d9c: "Jin " +0x5d9d: "Deng " +0x5d9e: "Duo " +0x5d9f: "Zun " +0x5da0: "Jiao " +0x5da1: "Gui " +0x5da2: "Yao " +0x5da3: "Qiao " +0x5da4: "Yao " +0x5da5: "Jue " +0x5da6: "Zhan " +0x5da7: "Yi " +0x5da8: "Xue " +0x5da9: "Nao " +0x5daa: "Ye " +0x5dab: "Ye " +0x5dac: "Yi " +0x5dad: "E " +0x5dae: "Xian " +0x5daf: "Ji " +0x5db0: "Xie " +0x5db1: "Ke " +0x5db2: "Xi " +0x5db3: "Di " +0x5db4: "Ao " +0x5db5: "Zui " +0x5db6: "[?] " +0x5db7: "Ni " +0x5db8: "Rong " +0x5db9: "Dao " +0x5dba: "Ling " +0x5dbb: "Za " +0x5dbc: "Yu " +0x5dbd: "Yue " +0x5dbe: "Yin " +0x5dbf: "[?] " +0x5dc0: "Jie " +0x5dc1: "Li " +0x5dc2: "Sui " +0x5dc3: "Long " +0x5dc4: "Long " +0x5dc5: "Dian " +0x5dc6: "Ying " +0x5dc7: "Xi " +0x5dc8: "Ju " +0x5dc9: "Chan " +0x5dca: "Ying " +0x5dcb: "Kui " +0x5dcc: "Yan " +0x5dcd: "Wei " +0x5dce: "Nao " +0x5dcf: "Quan " +0x5dd0: "Chao " +0x5dd1: "Cuan " +0x5dd2: "Luan " +0x5dd3: "Dian " +0x5dd4: "Dian " +0x5dd5: "[?] " +0x5dd6: "Yan " +0x5dd7: "Yan " +0x5dd8: "Yan " +0x5dd9: "Nao " +0x5dda: "Yan " +0x5ddb: "Chuan " +0x5ddc: "Gui " +0x5ddd: "Chuan " +0x5dde: "Zhou " +0x5ddf: "Huang " +0x5de0: "Jing " +0x5de1: "Xun " +0x5de2: "Chao " +0x5de3: "Chao " +0x5de4: "Lie " +0x5de5: "Gong " +0x5de6: "Zuo " +0x5de7: "Qiao " +0x5de8: "Ju " +0x5de9: "Gong " +0x5dea: "Kek " +0x5deb: "Wu " +0x5dec: "Pwu " +0x5ded: "Pwu " +0x5dee: "Chai " +0x5def: "Qiu " +0x5df0: "Qiu " +0x5df1: "Ji " +0x5df2: "Yi " +0x5df3: "Si " +0x5df4: "Ba " +0x5df5: "Zhi " +0x5df6: "Zhao " +0x5df7: "Xiang " +0x5df8: "Yi " +0x5df9: "Jin " +0x5dfa: "Xun " +0x5dfb: "Juan " +0x5dfc: "Phas " +0x5dfd: "Xun " +0x5dfe: "Jin " +0x5dff: "Fu " +/* x05e */ +0x5e00: "Za " +0x5e01: "Bi " +0x5e02: "Shi " +0x5e03: "Bu " +0x5e04: "Ding " +0x5e05: "Shuai " +0x5e06: "Fan " +0x5e07: "Nie " +0x5e08: "Shi " +0x5e09: "Fen " +0x5e0a: "Pa " +0x5e0b: "Zhi " +0x5e0c: "Xi " +0x5e0d: "Hu " +0x5e0e: "Dan " +0x5e0f: "Wei " +0x5e10: "Zhang " +0x5e11: "Tang " +0x5e12: "Dai " +0x5e13: "Ma " +0x5e14: "Pei " +0x5e15: "Pa " +0x5e16: "Tie " +0x5e17: "Fu " +0x5e18: "Lian " +0x5e19: "Zhi " +0x5e1a: "Zhou " +0x5e1b: "Bo " +0x5e1c: "Zhi " +0x5e1d: "Di " +0x5e1e: "Mo " +0x5e1f: "Yi " +0x5e20: "Yi " +0x5e21: "Ping " +0x5e22: "Qia " +0x5e23: "Juan " +0x5e24: "Ru " +0x5e25: "Shuai " +0x5e26: "Dai " +0x5e27: "Zheng " +0x5e28: "Shui " +0x5e29: "Qiao " +0x5e2a: "Zhen " +0x5e2b: "Shi " +0x5e2c: "Qun " +0x5e2d: "Xi " +0x5e2e: "Bang " +0x5e2f: "Dai " +0x5e30: "Gui " +0x5e31: "Chou " +0x5e32: "Ping " +0x5e33: "Zhang " +0x5e34: "Sha " +0x5e35: "Wan " +0x5e36: "Dai " +0x5e37: "Wei " +0x5e38: "Chang " +0x5e39: "Sha " +0x5e3a: "Qi " +0x5e3b: "Ze " +0x5e3c: "Guo " +0x5e3d: "Mao " +0x5e3e: "Du " +0x5e3f: "Hou " +0x5e40: "Zheng " +0x5e41: "Xu " +0x5e42: "Mi " +0x5e43: "Wei " +0x5e44: "Wo " +0x5e45: "Fu " +0x5e46: "Yi " +0x5e47: "Bang " +0x5e48: "Ping " +0x5e49: "Tazuna " +0x5e4a: "Gong " +0x5e4b: "Pan " +0x5e4c: "Huang " +0x5e4d: "Dao " +0x5e4e: "Mi " +0x5e4f: "Jia " +0x5e50: "Teng " +0x5e51: "Hui " +0x5e52: "Zhong " +0x5e53: "Shan " +0x5e54: "Man " +0x5e55: "Mu " +0x5e56: "Biao " +0x5e57: "Guo " +0x5e58: "Ze " +0x5e59: "Mu " +0x5e5a: "Bang " +0x5e5b: "Zhang " +0x5e5c: "Jiong " +0x5e5d: "Chan " +0x5e5e: "Fu " +0x5e5f: "Zhi " +0x5e60: "Hu " +0x5e61: "Fan " +0x5e62: "Chuang " +0x5e63: "Bi " +0x5e64: "Hei " +0x5e65: "[?] " +0x5e66: "Mi " +0x5e67: "Qiao " +0x5e68: "Chan " +0x5e69: "Fen " +0x5e6a: "Meng " +0x5e6b: "Bang " +0x5e6c: "Chou " +0x5e6d: "Mie " +0x5e6e: "Chu " +0x5e6f: "Jie " +0x5e70: "Xian " +0x5e71: "Lan " +0x5e72: "Gan " +0x5e73: "Ping " +0x5e74: "Nian " +0x5e75: "Qian " +0x5e76: "Bing " +0x5e77: "Bing " +0x5e78: "Xing " +0x5e79: "Gan " +0x5e7a: "Yao " +0x5e7b: "Huan " +0x5e7c: "You " +0x5e7d: "You " +0x5e7e: "Ji " +0x5e7f: "Yan " +0x5e80: "Pi " +0x5e81: "Ting " +0x5e82: "Ze " +0x5e83: "Guang " +0x5e84: "Zhuang " +0x5e85: "Mo " +0x5e86: "Qing " +0x5e87: "Bi " +0x5e88: "Qin " +0x5e89: "Dun " +0x5e8a: "Chuang " +0x5e8b: "Gui " +0x5e8c: "Ya " +0x5e8d: "Bai " +0x5e8e: "Jie " +0x5e8f: "Xu " +0x5e90: "Lu " +0x5e91: "Wu " +0x5e92: "[?] " +0x5e93: "Ku " +0x5e94: "Ying " +0x5e95: "Di " +0x5e96: "Pao " +0x5e97: "Dian " +0x5e98: "Ya " +0x5e99: "Miao " +0x5e9a: "Geng " +0x5e9b: "Ci " +0x5e9c: "Fu " +0x5e9d: "Tong " +0x5e9e: "Pang " +0x5e9f: "Fei " +0x5ea0: "Xiang " +0x5ea1: "Yi " +0x5ea2: "Zhi " +0x5ea3: "Tiao " +0x5ea4: "Zhi " +0x5ea5: "Xiu " +0x5ea6: "Du " +0x5ea7: "Zuo " +0x5ea8: "Xiao " +0x5ea9: "Tu " +0x5eaa: "Gui " +0x5eab: "Ku " +0x5eac: "Pang " +0x5ead: "Ting " +0x5eae: "You " +0x5eaf: "Bu " +0x5eb0: "Ding " +0x5eb1: "Cheng " +0x5eb2: "Lai " +0x5eb3: "Bei " +0x5eb4: "Ji " +0x5eb5: "An " +0x5eb6: "Shu " +0x5eb7: "Kang " +0x5eb8: "Yong " +0x5eb9: "Tuo " +0x5eba: "Song " +0x5ebb: "Shu " +0x5ebc: "Qing " +0x5ebd: "Yu " +0x5ebe: "Yu " +0x5ebf: "Miao " +0x5ec0: "Sou " +0x5ec1: "Ce " +0x5ec2: "Xiang " +0x5ec3: "Fei " +0x5ec4: "Jiu " +0x5ec5: "He " +0x5ec6: "Hui " +0x5ec7: "Liu " +0x5ec8: "Sha " +0x5ec9: "Lian " +0x5eca: "Lang " +0x5ecb: "Sou " +0x5ecc: "Jian " +0x5ecd: "Pou " +0x5ece: "Qing " +0x5ecf: "Jiu " +0x5ed0: "Jiu " +0x5ed1: "Qin " +0x5ed2: "Ao " +0x5ed3: "Kuo " +0x5ed4: "Lou " +0x5ed5: "Yin " +0x5ed6: "Liao " +0x5ed7: "Dai " +0x5ed8: "Lu " +0x5ed9: "Yi " +0x5eda: "Chu " +0x5edb: "Chan " +0x5edc: "Tu " +0x5edd: "Si " +0x5ede: "Xin " +0x5edf: "Miao " +0x5ee0: "Chang " +0x5ee1: "Wu " +0x5ee2: "Fei " +0x5ee3: "Guang " +0x5ee4: "Koc " +0x5ee5: "Kuai " +0x5ee6: "Bi " +0x5ee7: "Qiang " +0x5ee8: "Xie " +0x5ee9: "Lin " +0x5eea: "Lin " +0x5eeb: "Liao " +0x5eec: "Lu " +0x5eed: "[?] " +0x5eee: "Ying " +0x5eef: "Xian " +0x5ef0: "Ting " +0x5ef1: "Yong " +0x5ef2: "Li " +0x5ef3: "Ting " +0x5ef4: "Yin " +0x5ef5: "Xun " +0x5ef6: "Yan " +0x5ef7: "Ting " +0x5ef8: "Di " +0x5ef9: "Po " +0x5efa: "Jian " +0x5efb: "Hui " +0x5efc: "Nai " +0x5efd: "Hui " +0x5efe: "Gong " +0x5eff: "Nian " +/* x05f */ +0x5f00: "Kai " +0x5f01: "Bian " +0x5f02: "Yi " +0x5f03: "Qi " +0x5f04: "Nong " +0x5f05: "Fen " +0x5f06: "Ju " +0x5f07: "Yan " +0x5f08: "Yi " +0x5f09: "Zang " +0x5f0a: "Bi " +0x5f0b: "Yi " +0x5f0c: "Yi " +0x5f0d: "Er " +0x5f0e: "San " +0x5f0f: "Shi " +0x5f10: "Er " +0x5f11: "Shi " +0x5f12: "Shi " +0x5f13: "Gong " +0x5f14: "Diao " +0x5f15: "Yin " +0x5f16: "Hu " +0x5f17: "Fu " +0x5f18: "Hong " +0x5f19: "Wu " +0x5f1a: "Tui " +0x5f1b: "Chi " +0x5f1c: "Jiang " +0x5f1d: "Ba " +0x5f1e: "Shen " +0x5f1f: "Di " +0x5f20: "Zhang " +0x5f21: "Jue " +0x5f22: "Tao " +0x5f23: "Fu " +0x5f24: "Di " +0x5f25: "Mi " +0x5f26: "Xian " +0x5f27: "Hu " +0x5f28: "Chao " +0x5f29: "Nu " +0x5f2a: "Jing " +0x5f2b: "Zhen " +0x5f2c: "Yi " +0x5f2d: "Mi " +0x5f2e: "Quan " +0x5f2f: "Wan " +0x5f30: "Shao " +0x5f31: "Ruo " +0x5f32: "Xuan " +0x5f33: "Jing " +0x5f34: "Dun " +0x5f35: "Zhang " +0x5f36: "Jiang " +0x5f37: "Qiang " +0x5f38: "Peng " +0x5f39: "Dan " +0x5f3a: "Qiang " +0x5f3b: "Bi " +0x5f3c: "Bi " +0x5f3d: "She " +0x5f3e: "Dan " +0x5f3f: "Jian " +0x5f40: "Gou " +0x5f41: "Sei " +0x5f42: "Fa " +0x5f43: "Bi " +0x5f44: "Kou " +0x5f45: "Nagi " +0x5f46: "Bie " +0x5f47: "Xiao " +0x5f48: "Dan " +0x5f49: "Kuo " +0x5f4a: "Qiang " +0x5f4b: "Hong " +0x5f4c: "Mi " +0x5f4d: "Kuo " +0x5f4e: "Wan " +0x5f4f: "Jue " +0x5f50: "Ji " +0x5f51: "Ji " +0x5f52: "Gui " +0x5f53: "Dang " +0x5f54: "Lu " +0x5f55: "Lu " +0x5f56: "Tuan " +0x5f57: "Hui " +0x5f58: "Zhi " +0x5f59: "Hui " +0x5f5a: "Hui " +0x5f5b: "Yi " +0x5f5c: "Yi " +0x5f5d: "Yi " +0x5f5e: "Yi " +0x5f5f: "Huo " +0x5f60: "Huo " +0x5f61: "Shan " +0x5f62: "Xing " +0x5f63: "Wen " +0x5f64: "Tong " +0x5f65: "Yan " +0x5f66: "Yan " +0x5f67: "Yu " +0x5f68: "Chi " +0x5f69: "Cai " +0x5f6a: "Biao " +0x5f6b: "Diao " +0x5f6c: "Bin " +0x5f6d: "Peng " +0x5f6e: "Yong " +0x5f6f: "Piao " +0x5f70: "Zhang " +0x5f71: "Ying " +0x5f72: "Chi " +0x5f73: "Chi " +0x5f74: "Zhuo " +0x5f75: "Tuo " +0x5f76: "Ji " +0x5f77: "Pang " +0x5f78: "Zhong " +0x5f79: "Yi " +0x5f7a: "Wang " +0x5f7b: "Che " +0x5f7c: "Bi " +0x5f7d: "Chi " +0x5f7e: "Ling " +0x5f7f: "Fu " +0x5f80: "Wang " +0x5f81: "Zheng " +0x5f82: "Cu " +0x5f83: "Wang " +0x5f84: "Jing " +0x5f85: "Dai " +0x5f86: "Xi " +0x5f87: "Xun " +0x5f88: "Hen " +0x5f89: "Yang " +0x5f8a: "Huai " +0x5f8b: "Lu " +0x5f8c: "Hou " +0x5f8d: "Wa " +0x5f8e: "Cheng " +0x5f8f: "Zhi " +0x5f90: "Xu " +0x5f91: "Jing " +0x5f92: "Tu " +0x5f93: "Cong " +0x5f94: "[?] " +0x5f95: "Lai " +0x5f96: "Cong " +0x5f97: "De " +0x5f98: "Pai " +0x5f99: "Xi " +0x5f9a: "[?] " +0x5f9b: "Qi " +0x5f9c: "Chang " +0x5f9d: "Zhi " +0x5f9e: "Cong " +0x5f9f: "Zhou " +0x5fa0: "Lai " +0x5fa1: "Yu " +0x5fa2: "Xie " +0x5fa3: "Jie " +0x5fa4: "Jian " +0x5fa5: "Chi " +0x5fa6: "Jia " +0x5fa7: "Bian " +0x5fa8: "Huang " +0x5fa9: "Fu " +0x5faa: "Xun " +0x5fab: "Wei " +0x5fac: "Pang " +0x5fad: "Yao " +0x5fae: "Wei " +0x5faf: "Xi " +0x5fb0: "Zheng " +0x5fb1: "Piao " +0x5fb2: "Chi " +0x5fb3: "De " +0x5fb4: "Zheng " +0x5fb5: "Zheng " +0x5fb6: "Bie " +0x5fb7: "De " +0x5fb8: "Chong " +0x5fb9: "Che " +0x5fba: "Jiao " +0x5fbb: "Wei " +0x5fbc: "Jiao " +0x5fbd: "Hui " +0x5fbe: "Mei " +0x5fbf: "Long " +0x5fc0: "Xiang " +0x5fc1: "Bao " +0x5fc2: "Qu " +0x5fc3: "Xin " +0x5fc4: "Shu " +0x5fc5: "Bi " +0x5fc6: "Yi " +0x5fc7: "Le " +0x5fc8: "Ren " +0x5fc9: "Dao " +0x5fca: "Ding " +0x5fcb: "Gai " +0x5fcc: "Ji " +0x5fcd: "Ren " +0x5fce: "Ren " +0x5fcf: "Chan " +0x5fd0: "Tan " +0x5fd1: "Te " +0x5fd2: "Te " +0x5fd3: "Gan " +0x5fd4: "Qi " +0x5fd5: "Shi " +0x5fd6: "Cun " +0x5fd7: "Zhi " +0x5fd8: "Wang " +0x5fd9: "Mang " +0x5fda: "Xi " +0x5fdb: "Fan " +0x5fdc: "Ying " +0x5fdd: "Tian " +0x5fde: "Min " +0x5fdf: "Min " +0x5fe0: "Zhong " +0x5fe1: "Chong " +0x5fe2: "Wu " +0x5fe3: "Ji " +0x5fe4: "Wu " +0x5fe5: "Xi " +0x5fe6: "Ye " +0x5fe7: "You " +0x5fe8: "Wan " +0x5fe9: "Cong " +0x5fea: "Zhong " +0x5feb: "Kuai " +0x5fec: "Yu " +0x5fed: "Bian " +0x5fee: "Zhi " +0x5fef: "Qi " +0x5ff0: "Cui " +0x5ff1: "Chen " +0x5ff2: "Tai " +0x5ff3: "Tun " +0x5ff4: "Qian " +0x5ff5: "Nian " +0x5ff6: "Hun " +0x5ff7: "Xiong " +0x5ff8: "Niu " +0x5ff9: "Wang " +0x5ffa: "Xian " +0x5ffb: "Xin " +0x5ffc: "Kang " +0x5ffd: "Hu " +0x5ffe: "Kai " +0x5fff: "Fen " +/* x060 */ +0x6000: "Huai " +0x6001: "Tai " +0x6002: "Song " +0x6003: "Wu " +0x6004: "Ou " +0x6005: "Chang " +0x6006: "Chuang " +0x6007: "Ju " +0x6008: "Yi " +0x6009: "Bao " +0x600a: "Chao " +0x600b: "Min " +0x600c: "Pei " +0x600d: "Zuo " +0x600e: "Zen " +0x600f: "Yang " +0x6010: "Kou " +0x6011: "Ban " +0x6012: "Nu " +0x6013: "Nao " +0x6014: "Zheng " +0x6015: "Pa " +0x6016: "Bu " +0x6017: "Tie " +0x6018: "Gu " +0x6019: "Hu " +0x601a: "Ju " +0x601b: "Da " +0x601c: "Lian " +0x601d: "Si " +0x601e: "Chou " +0x601f: "Di " +0x6020: "Dai " +0x6021: "Yi " +0x6022: "Tu " +0x6023: "You " +0x6024: "Fu " +0x6025: "Ji " +0x6026: "Peng " +0x6027: "Xing " +0x6028: "Yuan " +0x6029: "Ni " +0x602a: "Guai " +0x602b: "Fu " +0x602c: "Xi " +0x602d: "Bi " +0x602e: "You " +0x602f: "Qie " +0x6030: "Xuan " +0x6031: "Cong " +0x6032: "Bing " +0x6033: "Huang " +0x6034: "Xu " +0x6035: "Chu " +0x6036: "Pi " +0x6037: "Xi " +0x6038: "Xi " +0x6039: "Tan " +0x603a: "Koraeru " +0x603b: "Zong " +0x603c: "Dui " +0x603d: "[?] " +0x603e: "Ki " +0x603f: "Yi " +0x6040: "Chi " +0x6041: "Ren " +0x6042: "Xun " +0x6043: "Shi " +0x6044: "Xi " +0x6045: "Lao " +0x6046: "Heng " +0x6047: "Kuang " +0x6048: "Mu " +0x6049: "Zhi " +0x604a: "Xie " +0x604b: "Lian " +0x604c: "Tiao " +0x604d: "Huang " +0x604e: "Die " +0x604f: "Hao " +0x6050: "Kong " +0x6051: "Gui " +0x6052: "Heng " +0x6053: "Xi " +0x6054: "Xiao " +0x6055: "Shu " +0x6056: "S " +0x6057: "Kua " +0x6058: "Qiu " +0x6059: "Yang " +0x605a: "Hui " +0x605b: "Hui " +0x605c: "Chi " +0x605d: "Jia " +0x605e: "Yi " +0x605f: "Xiong " +0x6060: "Guai " +0x6061: "Lin " +0x6062: "Hui " +0x6063: "Zi " +0x6064: "Xu " +0x6065: "Chi " +0x6066: "Xiang " +0x6067: "Nu " +0x6068: "Hen " +0x6069: "En " +0x606a: "Ke " +0x606b: "Tong " +0x606c: "Tian " +0x606d: "Gong " +0x606e: "Quan " +0x606f: "Xi " +0x6070: "Qia " +0x6071: "Yue " +0x6072: "Peng " +0x6073: "Ken " +0x6074: "De " +0x6075: "Hui " +0x6076: "E " +0x6077: "Kyuu " +0x6078: "Tong " +0x6079: "Yan " +0x607a: "Kai " +0x607b: "Ce " +0x607c: "Nao " +0x607d: "Yun " +0x607e: "Mang " +0x607f: "Yong " +0x6080: "Yong " +0x6081: "Yuan " +0x6082: "Pi " +0x6083: "Kun " +0x6084: "Qiao " +0x6085: "Yue " +0x6086: "Yu " +0x6087: "Yu " +0x6088: "Jie " +0x6089: "Xi " +0x608a: "Zhe " +0x608b: "Lin " +0x608c: "Ti " +0x608d: "Han " +0x608e: "Hao " +0x608f: "Qie " +0x6090: "Ti " +0x6091: "Bu " +0x6092: "Yi " +0x6093: "Qian " +0x6094: "Hui " +0x6095: "Xi " +0x6096: "Bei " +0x6097: "Man " +0x6098: "Yi " +0x6099: "Heng " +0x609a: "Song " +0x609b: "Quan " +0x609c: "Cheng " +0x609d: "Hui " +0x609e: "Wu " +0x609f: "Wu " +0x60a0: "You " +0x60a1: "Li " +0x60a2: "Liang " +0x60a3: "Huan " +0x60a4: "Cong " +0x60a5: "Yi " +0x60a6: "Yue " +0x60a7: "Li " +0x60a8: "Nin " +0x60a9: "Nao " +0x60aa: "E " +0x60ab: "Que " +0x60ac: "Xuan " +0x60ad: "Qian " +0x60ae: "Wu " +0x60af: "Min " +0x60b0: "Cong " +0x60b1: "Fei " +0x60b2: "Bei " +0x60b3: "Duo " +0x60b4: "Cui " +0x60b5: "Chang " +0x60b6: "Men " +0x60b7: "Li " +0x60b8: "Ji " +0x60b9: "Guan " +0x60ba: "Guan " +0x60bb: "Xing " +0x60bc: "Dao " +0x60bd: "Qi " +0x60be: "Kong " +0x60bf: "Tian " +0x60c0: "Lun " +0x60c1: "Xi " +0x60c2: "Kan " +0x60c3: "Kun " +0x60c4: "Ni " +0x60c5: "Qing " +0x60c6: "Chou " +0x60c7: "Dun " +0x60c8: "Guo " +0x60c9: "Chan " +0x60ca: "Liang " +0x60cb: "Wan " +0x60cc: "Yuan " +0x60cd: "Jin " +0x60ce: "Ji " +0x60cf: "Lin " +0x60d0: "Yu " +0x60d1: "Huo " +0x60d2: "He " +0x60d3: "Quan " +0x60d4: "Tan " +0x60d5: "Ti " +0x60d6: "Ti " +0x60d7: "Nie " +0x60d8: "Wang " +0x60d9: "Chuo " +0x60da: "Bu " +0x60db: "Hun " +0x60dc: "Xi " +0x60dd: "Tang " +0x60de: "Xin " +0x60df: "Wei " +0x60e0: "Hui " +0x60e1: "E " +0x60e2: "Rui " +0x60e3: "Zong " +0x60e4: "Jian " +0x60e5: "Yong " +0x60e6: "Dian " +0x60e7: "Ju " +0x60e8: "Can " +0x60e9: "Cheng " +0x60ea: "De " +0x60eb: "Bei " +0x60ec: "Qie " +0x60ed: "Can " +0x60ee: "Dan " +0x60ef: "Guan " +0x60f0: "Duo " +0x60f1: "Nao " +0x60f2: "Yun " +0x60f3: "Xiang " +0x60f4: "Zhui " +0x60f5: "Die " +0x60f6: "Huang " +0x60f7: "Chun " +0x60f8: "Qiong " +0x60f9: "Re " +0x60fa: "Xing " +0x60fb: "Ce " +0x60fc: "Bian " +0x60fd: "Hun " +0x60fe: "Zong " +0x60ff: "Ti " +/* x061 */ +0x6100: "Qiao " +0x6101: "Chou " +0x6102: "Bei " +0x6103: "Xuan " +0x6104: "Wei " +0x6105: "Ge " +0x6106: "Qian " +0x6107: "Wei " +0x6108: "Yu " +0x6109: "Yu " +0x610a: "Bi " +0x610b: "Xuan " +0x610c: "Huan " +0x610d: "Min " +0x610e: "Bi " +0x610f: "Yi " +0x6110: "Mian " +0x6111: "Yong " +0x6112: "Kai " +0x6113: "Dang " +0x6114: "Yin " +0x6115: "E " +0x6116: "Chen " +0x6117: "Mou " +0x6118: "Ke " +0x6119: "Ke " +0x611a: "Yu " +0x611b: "Ai " +0x611c: "Qie " +0x611d: "Yan " +0x611e: "Nuo " +0x611f: "Gan " +0x6120: "Yun " +0x6121: "Zong " +0x6122: "Sai " +0x6123: "Leng " +0x6124: "Fen " +0x6125: "[?] " +0x6126: "Kui " +0x6127: "Kui " +0x6128: "Que " +0x6129: "Gong " +0x612a: "Yun " +0x612b: "Su " +0x612c: "Su " +0x612d: "Qi " +0x612e: "Yao " +0x612f: "Song " +0x6130: "Huang " +0x6131: "Ji " +0x6132: "Gu " +0x6133: "Ju " +0x6134: "Chuang " +0x6135: "Ni " +0x6136: "Xie " +0x6137: "Kai " +0x6138: "Zheng " +0x6139: "Yong " +0x613a: "Cao " +0x613b: "Sun " +0x613c: "Shen " +0x613d: "Bo " +0x613e: "Kai " +0x613f: "Yuan " +0x6140: "Xie " +0x6141: "Hun " +0x6142: "Yong " +0x6143: "Yang " +0x6144: "Li " +0x6145: "Sao " +0x6146: "Tao " +0x6147: "Yin " +0x6148: "Ci " +0x6149: "Xu " +0x614a: "Qian " +0x614b: "Tai " +0x614c: "Huang " +0x614d: "Yun " +0x614e: "Shen " +0x614f: "Ming " +0x6150: "[?] " +0x6151: "She " +0x6152: "Cong " +0x6153: "Piao " +0x6154: "Mo " +0x6155: "Mu " +0x6156: "Guo " +0x6157: "Chi " +0x6158: "Can " +0x6159: "Can " +0x615a: "Can " +0x615b: "Cui " +0x615c: "Min " +0x615d: "Te " +0x615e: "Zhang " +0x615f: "Tong " +0x6160: "Ao " +0x6161: "Shuang " +0x6162: "Man " +0x6163: "Guan " +0x6164: "Que " +0x6165: "Zao " +0x6166: "Jiu " +0x6167: "Hui " +0x6168: "Kai " +0x6169: "Lian " +0x616a: "Ou " +0x616b: "Song " +0x616c: "Jin " +0x616d: "Yin " +0x616e: "Lu " +0x616f: "Shang " +0x6170: "Wei " +0x6171: "Tuan " +0x6172: "Man " +0x6173: "Qian " +0x6174: "She " +0x6175: "Yong " +0x6176: "Qing " +0x6177: "Kang " +0x6178: "Di " +0x6179: "Zhi " +0x617a: "Lou " +0x617b: "Juan " +0x617c: "Qi " +0x617d: "Qi " +0x617e: "Yu " +0x617f: "Ping " +0x6180: "Liao " +0x6181: "Cong " +0x6182: "You " +0x6183: "Chong " +0x6184: "Zhi " +0x6185: "Tong " +0x6186: "Cheng " +0x6187: "Qi " +0x6188: "Qu " +0x6189: "Peng " +0x618a: "Bei " +0x618b: "Bie " +0x618c: "Chun " +0x618d: "Jiao " +0x618e: "Zeng " +0x618f: "Chi " +0x6190: "Lian " +0x6191: "Ping " +0x6192: "Kui " +0x6193: "Hui " +0x6194: "Qiao " +0x6195: "Cheng " +0x6196: "Yin " +0x6197: "Yin " +0x6198: "Xi " +0x6199: "Xi " +0x619a: "Dan " +0x619b: "Tan " +0x619c: "Duo " +0x619d: "Dui " +0x619e: "Dui " +0x619f: "Su " +0x61a0: "Jue " +0x61a1: "Ce " +0x61a2: "Xiao " +0x61a3: "Fan " +0x61a4: "Fen " +0x61a5: "Lao " +0x61a6: "Lao " +0x61a7: "Chong " +0x61a8: "Han " +0x61a9: "Qi " +0x61aa: "Xian " +0x61ab: "Min " +0x61ac: "Jing " +0x61ad: "Liao " +0x61ae: "Wu " +0x61af: "Can " +0x61b0: "Jue " +0x61b1: "Cu " +0x61b2: "Xian " +0x61b3: "Tan " +0x61b4: "Sheng " +0x61b5: "Pi " +0x61b6: "Yi " +0x61b7: "Chu " +0x61b8: "Xian " +0x61b9: "Nao " +0x61ba: "Dan " +0x61bb: "Tan " +0x61bc: "Jing " +0x61bd: "Song " +0x61be: "Han " +0x61bf: "Jiao " +0x61c0: "Wai " +0x61c1: "Huan " +0x61c2: "Dong " +0x61c3: "Qin " +0x61c4: "Qin " +0x61c5: "Qu " +0x61c6: "Cao " +0x61c7: "Ken " +0x61c8: "Xie " +0x61c9: "Ying " +0x61ca: "Ao " +0x61cb: "Mao " +0x61cc: "Yi " +0x61cd: "Lin " +0x61ce: "Se " +0x61cf: "Jun " +0x61d0: "Huai " +0x61d1: "Men " +0x61d2: "Lan " +0x61d3: "Ai " +0x61d4: "Lin " +0x61d5: "Yan " +0x61d6: "Gua " +0x61d7: "Xia " +0x61d8: "Chi " +0x61d9: "Yu " +0x61da: "Yin " +0x61db: "Dai " +0x61dc: "Meng " +0x61dd: "Ai " +0x61de: "Meng " +0x61df: "Dui " +0x61e0: "Qi " +0x61e1: "Mo " +0x61e2: "Lan " +0x61e3: "Men " +0x61e4: "Chou " +0x61e5: "Zhi " +0x61e6: "Nuo " +0x61e7: "Nuo " +0x61e8: "Yan " +0x61e9: "Yang " +0x61ea: "Bo " +0x61eb: "Zhi " +0x61ec: "Kuang " +0x61ed: "Kuang " +0x61ee: "You " +0x61ef: "Fu " +0x61f0: "Liu " +0x61f1: "Mie " +0x61f2: "Cheng " +0x61f3: "[?] " +0x61f4: "Chan " +0x61f5: "Meng " +0x61f6: "Lan " +0x61f7: "Huai " +0x61f8: "Xuan " +0x61f9: "Rang " +0x61fa: "Chan " +0x61fb: "Ji " +0x61fc: "Ju " +0x61fd: "Huan " +0x61fe: "She " +0x61ff: "Yi " +/* x062 */ +0x6200: "Lian " +0x6201: "Nan " +0x6202: "Mi " +0x6203: "Tang " +0x6204: "Jue " +0x6205: "Gang " +0x6206: "Gang " +0x6207: "Gang " +0x6208: "Ge " +0x6209: "Yue " +0x620a: "Wu " +0x620b: "Jian " +0x620c: "Xu " +0x620d: "Shu " +0x620e: "Rong " +0x620f: "Xi " +0x6210: "Cheng " +0x6211: "Wo " +0x6212: "Jie " +0x6213: "Ge " +0x6214: "Jian " +0x6215: "Qiang " +0x6216: "Huo " +0x6217: "Qiang " +0x6218: "Zhan " +0x6219: "Dong " +0x621a: "Qi " +0x621b: "Jia " +0x621c: "Die " +0x621d: "Zei " +0x621e: "Jia " +0x621f: "Ji " +0x6220: "Shi " +0x6221: "Kan " +0x6222: "Ji " +0x6223: "Kui " +0x6224: "Gai " +0x6225: "Deng " +0x6226: "Zhan " +0x6227: "Chuang " +0x6228: "Ge " +0x6229: "Jian " +0x622a: "Jie " +0x622b: "Yu " +0x622c: "Jian " +0x622d: "Yan " +0x622e: "Lu " +0x622f: "Xi " +0x6230: "Zhan " +0x6231: "Xi " +0x6232: "Xi " +0x6233: "Chuo " +0x6234: "Dai " +0x6235: "Qu " +0x6236: "Hu " +0x6237: "Hu " +0x6238: "Hu " +0x6239: "E " +0x623a: "Shi " +0x623b: "Li " +0x623c: "Mao " +0x623d: "Hu " +0x623e: "Li " +0x623f: "Fang " +0x6240: "Suo " +0x6241: "Bian " +0x6242: "Dian " +0x6243: "Jiong " +0x6244: "Shang " +0x6245: "Yi " +0x6246: "Yi " +0x6247: "Shan " +0x6248: "Hu " +0x6249: "Fei " +0x624a: "Yan " +0x624b: "Shou " +0x624c: "T " +0x624d: "Cai " +0x624e: "Zha " +0x624f: "Qiu " +0x6250: "Le " +0x6251: "Bu " +0x6252: "Ba " +0x6253: "Da " +0x6254: "Reng " +0x6255: "Fu " +0x6256: "Hameru " +0x6257: "Zai " +0x6258: "Tuo " +0x6259: "Zhang " +0x625a: "Diao " +0x625b: "Kang " +0x625c: "Yu " +0x625d: "Ku " +0x625e: "Han " +0x625f: "Shen " +0x6260: "Cha " +0x6261: "Yi " +0x6262: "Gu " +0x6263: "Kou " +0x6264: "Wu " +0x6265: "Tuo " +0x6266: "Qian " +0x6267: "Zhi " +0x6268: "Ren " +0x6269: "Kuo " +0x626a: "Men " +0x626b: "Sao " +0x626c: "Yang " +0x626d: "Niu " +0x626e: "Ban " +0x626f: "Che " +0x6270: "Rao " +0x6271: "Xi " +0x6272: "Qian " +0x6273: "Ban " +0x6274: "Jia " +0x6275: "Yu " +0x6276: "Fu " +0x6277: "Ao " +0x6278: "Xi " +0x6279: "Pi " +0x627a: "Zhi " +0x627b: "Zi " +0x627c: "E " +0x627d: "Dun " +0x627e: "Zhao " +0x627f: "Cheng " +0x6280: "Ji " +0x6281: "Yan " +0x6282: "Kuang " +0x6283: "Bian " +0x6284: "Chao " +0x6285: "Ju " +0x6286: "Wen " +0x6287: "Hu " +0x6288: "Yue " +0x6289: "Jue " +0x628a: "Ba " +0x628b: "Qin " +0x628c: "Zhen " +0x628d: "Zheng " +0x628e: "Yun " +0x628f: "Wan " +0x6290: "Nu " +0x6291: "Yi " +0x6292: "Shu " +0x6293: "Zhua " +0x6294: "Pou " +0x6295: "Tou " +0x6296: "Dou " +0x6297: "Kang " +0x6298: "Zhe " +0x6299: "Pou " +0x629a: "Fu " +0x629b: "Pao " +0x629c: "Ba " +0x629d: "Ao " +0x629e: "Ze " +0x629f: "Tuan " +0x62a0: "Kou " +0x62a1: "Lun " +0x62a2: "Qiang " +0x62a3: "[?] " +0x62a4: "Hu " +0x62a5: "Bao " +0x62a6: "Bing " +0x62a7: "Zhi " +0x62a8: "Peng " +0x62a9: "Tan " +0x62aa: "Pu " +0x62ab: "Pi " +0x62ac: "Tai " +0x62ad: "Yao " +0x62ae: "Zhen " +0x62af: "Zha " +0x62b0: "Yang " +0x62b1: "Bao " +0x62b2: "He " +0x62b3: "Ni " +0x62b4: "Yi " +0x62b5: "Di " +0x62b6: "Chi " +0x62b7: "Pi " +0x62b8: "Za " +0x62b9: "Mo " +0x62ba: "Mo " +0x62bb: "Shen " +0x62bc: "Ya " +0x62bd: "Chou " +0x62be: "Qu " +0x62bf: "Min " +0x62c0: "Chu " +0x62c1: "Jia " +0x62c2: "Fu " +0x62c3: "Zhan " +0x62c4: "Zhu " +0x62c5: "Dan " +0x62c6: "Chai " +0x62c7: "Mu " +0x62c8: "Nian " +0x62c9: "La " +0x62ca: "Fu " +0x62cb: "Pao " +0x62cc: "Ban " +0x62cd: "Pai " +0x62ce: "Ling " +0x62cf: "Na " +0x62d0: "Guai " +0x62d1: "Qian " +0x62d2: "Ju " +0x62d3: "Tuo " +0x62d4: "Ba " +0x62d5: "Tuo " +0x62d6: "Tuo " +0x62d7: "Ao " +0x62d8: "Ju " +0x62d9: "Zhuo " +0x62da: "Pan " +0x62db: "Zhao " +0x62dc: "Bai " +0x62dd: "Bai " +0x62de: "Di " +0x62df: "Ni " +0x62e0: "Ju " +0x62e1: "Kuo " +0x62e2: "Long " +0x62e3: "Jian " +0x62e4: "[?] " +0x62e5: "Yong " +0x62e6: "Lan " +0x62e7: "Ning " +0x62e8: "Bo " +0x62e9: "Ze " +0x62ea: "Qian " +0x62eb: "Hen " +0x62ec: "Gua " +0x62ed: "Shi " +0x62ee: "Jie " +0x62ef: "Zheng " +0x62f0: "Nin " +0x62f1: "Gong " +0x62f2: "Gong " +0x62f3: "Quan " +0x62f4: "Shuan " +0x62f5: "Cun " +0x62f6: "Zan " +0x62f7: "Kao " +0x62f8: "Chi " +0x62f9: "Xie " +0x62fa: "Ce " +0x62fb: "Hui " +0x62fc: "Pin " +0x62fd: "Zhuai " +0x62fe: "Shi " +0x62ff: "Na " +/* x063 */ +0x6300: "Bo " +0x6301: "Chi " +0x6302: "Gua " +0x6303: "Zhi " +0x6304: "Kuo " +0x6305: "Duo " +0x6306: "Duo " +0x6307: "Zhi " +0x6308: "Qie " +0x6309: "An " +0x630a: "Nong " +0x630b: "Zhen " +0x630c: "Ge " +0x630d: "Jiao " +0x630e: "Ku " +0x630f: "Dong " +0x6310: "Ru " +0x6311: "Tiao " +0x6312: "Lie " +0x6313: "Zha " +0x6314: "Lu " +0x6315: "Die " +0x6316: "Wa " +0x6317: "Jue " +0x6318: "Mushiru " +0x6319: "Ju " +0x631a: "Zhi " +0x631b: "Luan " +0x631c: "Ya " +0x631d: "Zhua " +0x631e: "Ta " +0x631f: "Xie " +0x6320: "Nao " +0x6321: "Dang " +0x6322: "Jiao " +0x6323: "Zheng " +0x6324: "Ji " +0x6325: "Hui " +0x6326: "Xun " +0x6327: "Ku " +0x6328: "Ai " +0x6329: "Tuo " +0x632a: "Nuo " +0x632b: "Cuo " +0x632c: "Bo " +0x632d: "Geng " +0x632e: "Ti " +0x632f: "Zhen " +0x6330: "Cheng " +0x6331: "Suo " +0x6332: "Suo " +0x6333: "Keng " +0x6334: "Mei " +0x6335: "Long " +0x6336: "Ju " +0x6337: "Peng " +0x6338: "Jian " +0x6339: "Yi " +0x633a: "Ting " +0x633b: "Shan " +0x633c: "Nuo " +0x633d: "Wan " +0x633e: "Xie " +0x633f: "Cha " +0x6340: "Feng " +0x6341: "Jiao " +0x6342: "Wu " +0x6343: "Jun " +0x6344: "Jiu " +0x6345: "Tong " +0x6346: "Kun " +0x6347: "Huo " +0x6348: "Tu " +0x6349: "Zhuo " +0x634a: "Pou " +0x634b: "Le " +0x634c: "Ba " +0x634d: "Han " +0x634e: "Shao " +0x634f: "Nie " +0x6350: "Juan " +0x6351: "Ze " +0x6352: "Song " +0x6353: "Ye " +0x6354: "Jue " +0x6355: "Bu " +0x6356: "Huan " +0x6357: "Bu " +0x6358: "Zun " +0x6359: "Yi " +0x635a: "Zhai " +0x635b: "Lu " +0x635c: "Sou " +0x635d: "Tuo " +0x635e: "Lao " +0x635f: "Sun " +0x6360: "Bang " +0x6361: "Jian " +0x6362: "Huan " +0x6363: "Dao " +0x6364: "[?] " +0x6365: "Wan " +0x6366: "Qin " +0x6367: "Peng " +0x6368: "She " +0x6369: "Lie " +0x636a: "Min " +0x636b: "Men " +0x636c: "Fu " +0x636d: "Bai " +0x636e: "Ju " +0x636f: "Dao " +0x6370: "Wo " +0x6371: "Ai " +0x6372: "Juan " +0x6373: "Yue " +0x6374: "Zong " +0x6375: "Chen " +0x6376: "Chui " +0x6377: "Jie " +0x6378: "Tu " +0x6379: "Ben " +0x637a: "Na " +0x637b: "Nian " +0x637c: "Nuo " +0x637d: "Zu " +0x637e: "Wo " +0x637f: "Xi " +0x6380: "Xian " +0x6381: "Cheng " +0x6382: "Dian " +0x6383: "Sao " +0x6384: "Lun " +0x6385: "Qing " +0x6386: "Gang " +0x6387: "Duo " +0x6388: "Shou " +0x6389: "Diao " +0x638a: "Pou " +0x638b: "Di " +0x638c: "Zhang " +0x638d: "Gun " +0x638e: "Ji " +0x638f: "Tao " +0x6390: "Qia " +0x6391: "Qi " +0x6392: "Pai " +0x6393: "Shu " +0x6394: "Qian " +0x6395: "Ling " +0x6396: "Yi " +0x6397: "Ya " +0x6398: "Jue " +0x6399: "Zheng " +0x639a: "Liang " +0x639b: "Gua " +0x639c: "Yi " +0x639d: "Huo " +0x639e: "Shan " +0x639f: "Zheng " +0x63a0: "Lue " +0x63a1: "Cai " +0x63a2: "Tan " +0x63a3: "Che " +0x63a4: "Bing " +0x63a5: "Jie " +0x63a6: "Ti " +0x63a7: "Kong " +0x63a8: "Tui " +0x63a9: "Yan " +0x63aa: "Cuo " +0x63ab: "Zou " +0x63ac: "Ju " +0x63ad: "Tian " +0x63ae: "Qian " +0x63af: "Ken " +0x63b0: "Bai " +0x63b1: "Shou " +0x63b2: "Jie " +0x63b3: "Lu " +0x63b4: "Guo " +0x63b5: "Haba " +0x63b6: "[?] " +0x63b7: "Zhi " +0x63b8: "Dan " +0x63b9: "Mang " +0x63ba: "Xian " +0x63bb: "Sao " +0x63bc: "Guan " +0x63bd: "Peng " +0x63be: "Yuan " +0x63bf: "Nuo " +0x63c0: "Jian " +0x63c1: "Zhen " +0x63c2: "Jiu " +0x63c3: "Jian " +0x63c4: "Yu " +0x63c5: "Yan " +0x63c6: "Kui " +0x63c7: "Nan " +0x63c8: "Hong " +0x63c9: "Rou " +0x63ca: "Pi " +0x63cb: "Wei " +0x63cc: "Sai " +0x63cd: "Zou " +0x63ce: "Xuan " +0x63cf: "Miao " +0x63d0: "Ti " +0x63d1: "Nie " +0x63d2: "Cha " +0x63d3: "Shi " +0x63d4: "Zong " +0x63d5: "Zhen " +0x63d6: "Yi " +0x63d7: "Shun " +0x63d8: "Heng " +0x63d9: "Bian " +0x63da: "Yang " +0x63db: "Huan " +0x63dc: "Yan " +0x63dd: "Zuan " +0x63de: "An " +0x63df: "Xu " +0x63e0: "Ya " +0x63e1: "Wo " +0x63e2: "Ke " +0x63e3: "Chuai " +0x63e4: "Ji " +0x63e5: "Ti " +0x63e6: "La " +0x63e7: "La " +0x63e8: "Cheng " +0x63e9: "Kai " +0x63ea: "Jiu " +0x63eb: "Jiu " +0x63ec: "Tu " +0x63ed: "Jie " +0x63ee: "Hui " +0x63ef: "Geng " +0x63f0: "Chong " +0x63f1: "Shuo " +0x63f2: "She " +0x63f3: "Xie " +0x63f4: "Yuan " +0x63f5: "Qian " +0x63f6: "Ye " +0x63f7: "Cha " +0x63f8: "Zha " +0x63f9: "Bei " +0x63fa: "Yao " +0x63fb: "[?] " +0x63fc: "[?] " +0x63fd: "Lan " +0x63fe: "Wen " +0x63ff: "Qin " +/* x064 */ +0x6400: "Chan " +0x6401: "Ge " +0x6402: "Lou " +0x6403: "Zong " +0x6404: "Geng " +0x6405: "Jiao " +0x6406: "Gou " +0x6407: "Qin " +0x6408: "Yong " +0x6409: "Que " +0x640a: "Chou " +0x640b: "Chi " +0x640c: "Zhan " +0x640d: "Sun " +0x640e: "Sun " +0x640f: "Bo " +0x6410: "Chu " +0x6411: "Rong " +0x6412: "Beng " +0x6413: "Cuo " +0x6414: "Sao " +0x6415: "Ke " +0x6416: "Yao " +0x6417: "Dao " +0x6418: "Zhi " +0x6419: "Nu " +0x641a: "Xie " +0x641b: "Jian " +0x641c: "Sou " +0x641d: "Qiu " +0x641e: "Gao " +0x641f: "Xian " +0x6420: "Shuo " +0x6421: "Sang " +0x6422: "Jin " +0x6423: "Mie " +0x6424: "E " +0x6425: "Chui " +0x6426: "Nuo " +0x6427: "Shan " +0x6428: "Ta " +0x6429: "Jie " +0x642a: "Tang " +0x642b: "Pan " +0x642c: "Ban " +0x642d: "Da " +0x642e: "Li " +0x642f: "Tao " +0x6430: "Hu " +0x6431: "Zhi " +0x6432: "Wa " +0x6433: "Xia " +0x6434: "Qian " +0x6435: "Wen " +0x6436: "Qiang " +0x6437: "Tian " +0x6438: "Zhen " +0x6439: "E " +0x643a: "Xi " +0x643b: "Nuo " +0x643c: "Quan " +0x643d: "Cha " +0x643e: "Zha " +0x643f: "Ge " +0x6440: "Wu " +0x6441: "En " +0x6442: "She " +0x6443: "Kang " +0x6444: "She " +0x6445: "Shu " +0x6446: "Bai " +0x6447: "Yao " +0x6448: "Bin " +0x6449: "Sou " +0x644a: "Tan " +0x644b: "Sa " +0x644c: "Chan " +0x644d: "Suo " +0x644e: "Liao " +0x644f: "Chong " +0x6450: "Chuang " +0x6451: "Guo " +0x6452: "Bing " +0x6453: "Feng " +0x6454: "Shuai " +0x6455: "Di " +0x6456: "Qi " +0x6457: "Sou " +0x6458: "Zhai " +0x6459: "Lian " +0x645a: "Tang " +0x645b: "Chi " +0x645c: "Guan " +0x645d: "Lu " +0x645e: "Luo " +0x645f: "Lou " +0x6460: "Zong " +0x6461: "Gai " +0x6462: "Hu " +0x6463: "Zha " +0x6464: "Chuang " +0x6465: "Tang " +0x6466: "Hua " +0x6467: "Cui " +0x6468: "Nai " +0x6469: "Mo " +0x646a: "Jiang " +0x646b: "Gui " +0x646c: "Ying " +0x646d: "Zhi " +0x646e: "Ao " +0x646f: "Zhi " +0x6470: "Nie " +0x6471: "Man " +0x6472: "Shan " +0x6473: "Kou " +0x6474: "Shu " +0x6475: "Suo " +0x6476: "Tuan " +0x6477: "Jiao " +0x6478: "Mo " +0x6479: "Mo " +0x647a: "Zhe " +0x647b: "Xian " +0x647c: "Keng " +0x647d: "Piao " +0x647e: "Jiang " +0x647f: "Yin " +0x6480: "Gou " +0x6481: "Qian " +0x6482: "Lue " +0x6483: "Ji " +0x6484: "Ying " +0x6485: "Jue " +0x6486: "Pie " +0x6487: "Pie " +0x6488: "Lao " +0x6489: "Dun " +0x648a: "Xian " +0x648b: "Ruan " +0x648c: "Kui " +0x648d: "Zan " +0x648e: "Yi " +0x648f: "Xun " +0x6490: "Cheng " +0x6491: "Cheng " +0x6492: "Sa " +0x6493: "Nao " +0x6494: "Heng " +0x6495: "Si " +0x6496: "Qian " +0x6497: "Huang " +0x6498: "Da " +0x6499: "Zun " +0x649a: "Nian " +0x649b: "Lin " +0x649c: "Zheng " +0x649d: "Hui " +0x649e: "Zhuang " +0x649f: "Jiao " +0x64a0: "Ji " +0x64a1: "Cao " +0x64a2: "Dan " +0x64a3: "Dan " +0x64a4: "Che " +0x64a5: "Bo " +0x64a6: "Che " +0x64a7: "Jue " +0x64a8: "Xiao " +0x64a9: "Liao " +0x64aa: "Ben " +0x64ab: "Fu " +0x64ac: "Qiao " +0x64ad: "Bo " +0x64ae: "Cuo " +0x64af: "Zhuo " +0x64b0: "Zhuan " +0x64b1: "Tuo " +0x64b2: "Pu " +0x64b3: "Qin " +0x64b4: "Dun " +0x64b5: "Nian " +0x64b6: "[?] " +0x64b7: "Xie " +0x64b8: "Lu " +0x64b9: "Jiao " +0x64ba: "Cuan " +0x64bb: "Ta " +0x64bc: "Han " +0x64bd: "Qiao " +0x64be: "Zhua " +0x64bf: "Jian " +0x64c0: "Gan " +0x64c1: "Yong " +0x64c2: "Lei " +0x64c3: "Kuo " +0x64c4: "Lu " +0x64c5: "Shan " +0x64c6: "Zhuo " +0x64c7: "Ze " +0x64c8: "Pu " +0x64c9: "Chuo " +0x64ca: "Ji " +0x64cb: "Dang " +0x64cc: "Suo " +0x64cd: "Cao " +0x64ce: "Qing " +0x64cf: "Jing " +0x64d0: "Huan " +0x64d1: "Jie " +0x64d2: "Qin " +0x64d3: "Kuai " +0x64d4: "Dan " +0x64d5: "Xi " +0x64d6: "Ge " +0x64d7: "Pi " +0x64d8: "Bo " +0x64d9: "Ao " +0x64da: "Ju " +0x64db: "Ye " +0x64dc: "[?] " +0x64dd: "Mang " +0x64de: "Sou " +0x64df: "Mi " +0x64e0: "Ji " +0x64e1: "Tai " +0x64e2: "Zhuo " +0x64e3: "Dao " +0x64e4: "Xing " +0x64e5: "Lan " +0x64e6: "Ca " +0x64e7: "Ju " +0x64e8: "Ye " +0x64e9: "Ru " +0x64ea: "Ye " +0x64eb: "Ye " +0x64ec: "Ni " +0x64ed: "Hu " +0x64ee: "Ji " +0x64ef: "Bin " +0x64f0: "Ning " +0x64f1: "Ge " +0x64f2: "Zhi " +0x64f3: "Jie " +0x64f4: "Kuo " +0x64f5: "Mo " +0x64f6: "Jian " +0x64f7: "Xie " +0x64f8: "Lie " +0x64f9: "Tan " +0x64fa: "Bai " +0x64fb: "Sou " +0x64fc: "Lu " +0x64fd: "Lue " +0x64fe: "Rao " +0x64ff: "Zhi " +/* x065 */ +0x6500: "Pan " +0x6501: "Yang " +0x6502: "Lei " +0x6503: "Sa " +0x6504: "Shu " +0x6505: "Zan " +0x6506: "Nian " +0x6507: "Xian " +0x6508: "Jun " +0x6509: "Huo " +0x650a: "Li " +0x650b: "La " +0x650c: "Han " +0x650d: "Ying " +0x650e: "Lu " +0x650f: "Long " +0x6510: "Qian " +0x6511: "Qian " +0x6512: "Zan " +0x6513: "Qian " +0x6514: "Lan " +0x6515: "San " +0x6516: "Ying " +0x6517: "Mei " +0x6518: "Rang " +0x6519: "Chan " +0x651a: "[?] " +0x651b: "Cuan " +0x651c: "Xi " +0x651d: "She " +0x651e: "Luo " +0x651f: "Jun " +0x6520: "Mi " +0x6521: "Li " +0x6522: "Zan " +0x6523: "Luan " +0x6524: "Tan " +0x6525: "Zuan " +0x6526: "Li " +0x6527: "Dian " +0x6528: "Wa " +0x6529: "Dang " +0x652a: "Jiao " +0x652b: "Jue " +0x652c: "Lan " +0x652d: "Li " +0x652e: "Nang " +0x652f: "Zhi " +0x6530: "Gui " +0x6531: "Gui " +0x6532: "Qi " +0x6533: "Xin " +0x6534: "Pu " +0x6535: "Sui " +0x6536: "Shou " +0x6537: "Kao " +0x6538: "You " +0x6539: "Gai " +0x653a: "Yi " +0x653b: "Gong " +0x653c: "Gan " +0x653d: "Ban " +0x653e: "Fang " +0x653f: "Zheng " +0x6540: "Bo " +0x6541: "Dian " +0x6542: "Kou " +0x6543: "Min " +0x6544: "Wu " +0x6545: "Gu " +0x6546: "He " +0x6547: "Ce " +0x6548: "Xiao " +0x6549: "Mi " +0x654a: "Chu " +0x654b: "Ge " +0x654c: "Di " +0x654d: "Xu " +0x654e: "Jiao " +0x654f: "Min " +0x6550: "Chen " +0x6551: "Jiu " +0x6552: "Zhen " +0x6553: "Duo " +0x6554: "Yu " +0x6555: "Chi " +0x6556: "Ao " +0x6557: "Bai " +0x6558: "Xu " +0x6559: "Jiao " +0x655a: "Duo " +0x655b: "Lian " +0x655c: "Nie " +0x655d: "Bi " +0x655e: "Chang " +0x655f: "Dian " +0x6560: "Duo " +0x6561: "Yi " +0x6562: "Gan " +0x6563: "San " +0x6564: "Ke " +0x6565: "Yan " +0x6566: "Dun " +0x6567: "Qi " +0x6568: "Dou " +0x6569: "Xiao " +0x656a: "Duo " +0x656b: "Jiao " +0x656c: "Jing " +0x656d: "Yang " +0x656e: "Xia " +0x656f: "Min " +0x6570: "Shu " +0x6571: "Ai " +0x6572: "Qiao " +0x6573: "Ai " +0x6574: "Zheng " +0x6575: "Di " +0x6576: "Zhen " +0x6577: "Fu " +0x6578: "Shu " +0x6579: "Liao " +0x657a: "Qu " +0x657b: "Xiong " +0x657c: "Xi " +0x657d: "Jiao " +0x657e: "Sen " +0x657f: "Jiao " +0x6580: "Zhuo " +0x6581: "Yi " +0x6582: "Lian " +0x6583: "Bi " +0x6584: "Li " +0x6585: "Xiao " +0x6586: "Xiao " +0x6587: "Wen " +0x6588: "Xue " +0x6589: "Qi " +0x658a: "Qi " +0x658b: "Zhai " +0x658c: "Bin " +0x658d: "Jue " +0x658e: "Zhai " +0x658f: "[?] " +0x6590: "Fei " +0x6591: "Ban " +0x6592: "Ban " +0x6593: "Lan " +0x6594: "Yu " +0x6595: "Lan " +0x6596: "Wei " +0x6597: "Dou " +0x6598: "Sheng " +0x6599: "Liao " +0x659a: "Jia " +0x659b: "Hu " +0x659c: "Xie " +0x659d: "Jia " +0x659e: "Yu " +0x659f: "Zhen " +0x65a0: "Jiao " +0x65a1: "Wo " +0x65a2: "Tou " +0x65a3: "Chu " +0x65a4: "Jin " +0x65a5: "Chi " +0x65a6: "Yin " +0x65a7: "Fu " +0x65a8: "Qiang " +0x65a9: "Zhan " +0x65aa: "Qu " +0x65ab: "Zhuo " +0x65ac: "Zhan " +0x65ad: "Duan " +0x65ae: "Zhuo " +0x65af: "Si " +0x65b0: "Xin " +0x65b1: "Zhuo " +0x65b2: "Zhuo " +0x65b3: "Qin " +0x65b4: "Lin " +0x65b5: "Zhuo " +0x65b6: "Chu " +0x65b7: "Duan " +0x65b8: "Zhu " +0x65b9: "Fang " +0x65ba: "Xie " +0x65bb: "Hang " +0x65bc: "Yu " +0x65bd: "Shi " +0x65be: "Pei " +0x65bf: "You " +0x65c0: "Mye " +0x65c1: "Pang " +0x65c2: "Qi " +0x65c3: "Zhan " +0x65c4: "Mao " +0x65c5: "Lu " +0x65c6: "Pei " +0x65c7: "Pi " +0x65c8: "Liu " +0x65c9: "Fu " +0x65ca: "Fang " +0x65cb: "Xuan " +0x65cc: "Jing " +0x65cd: "Jing " +0x65ce: "Ni " +0x65cf: "Zu " +0x65d0: "Zhao " +0x65d1: "Yi " +0x65d2: "Liu " +0x65d3: "Shao " +0x65d4: "Jian " +0x65d5: "Es " +0x65d6: "Yi " +0x65d7: "Qi " +0x65d8: "Zhi " +0x65d9: "Fan " +0x65da: "Piao " +0x65db: "Fan " +0x65dc: "Zhan " +0x65dd: "Guai " +0x65de: "Sui " +0x65df: "Yu " +0x65e0: "Wu " +0x65e1: "Ji " +0x65e2: "Ji " +0x65e3: "Ji " +0x65e4: "Huo " +0x65e5: "Ri " +0x65e6: "Dan " +0x65e7: "Jiu " +0x65e8: "Zhi " +0x65e9: "Zao " +0x65ea: "Xie " +0x65eb: "Tiao " +0x65ec: "Xun " +0x65ed: "Xu " +0x65ee: "Xu " +0x65ef: "Xu " +0x65f0: "Gan " +0x65f1: "Han " +0x65f2: "Tai " +0x65f3: "Di " +0x65f4: "Xu " +0x65f5: "Chan " +0x65f6: "Shi " +0x65f7: "Kuang " +0x65f8: "Yang " +0x65f9: "Shi " +0x65fa: "Wang " +0x65fb: "Min " +0x65fc: "Min " +0x65fd: "Tun " +0x65fe: "Chun " +0x65ff: "Wu " +/* x066 */ +0x6600: "Yun " +0x6601: "Bei " +0x6602: "Ang " +0x6603: "Ze " +0x6604: "Ban " +0x6605: "Jie " +0x6606: "Kun " +0x6607: "Sheng " +0x6608: "Hu " +0x6609: "Fang " +0x660a: "Hao " +0x660b: "Gui " +0x660c: "Chang " +0x660d: "Xuan " +0x660e: "Ming " +0x660f: "Hun " +0x6610: "Fen " +0x6611: "Qin " +0x6612: "Hu " +0x6613: "Yi " +0x6614: "Xi " +0x6615: "Xin " +0x6616: "Yan " +0x6617: "Ze " +0x6618: "Fang " +0x6619: "Tan " +0x661a: "Shen " +0x661b: "Ju " +0x661c: "Yang " +0x661d: "Zan " +0x661e: "Bing " +0x661f: "Xing " +0x6620: "Ying " +0x6621: "Xuan " +0x6622: "Pei " +0x6623: "Zhen " +0x6624: "Ling " +0x6625: "Chun " +0x6626: "Hao " +0x6627: "Mei " +0x6628: "Zuo " +0x6629: "Mo " +0x662a: "Bian " +0x662b: "Xu " +0x662c: "Hun " +0x662d: "Zhao " +0x662e: "Zong " +0x662f: "Shi " +0x6630: "Shi " +0x6631: "Yu " +0x6632: "Fei " +0x6633: "Die " +0x6634: "Mao " +0x6635: "Ni " +0x6636: "Chang " +0x6637: "Wen " +0x6638: "Dong " +0x6639: "Ai " +0x663a: "Bing " +0x663b: "Ang " +0x663c: "Zhou " +0x663d: "Long " +0x663e: "Xian " +0x663f: "Kuang " +0x6640: "Tiao " +0x6641: "Chao " +0x6642: "Shi " +0x6643: "Huang " +0x6644: "Huang " +0x6645: "Xuan " +0x6646: "Kui " +0x6647: "Xu " +0x6648: "Jiao " +0x6649: "Jin " +0x664a: "Zhi " +0x664b: "Jin " +0x664c: "Shang " +0x664d: "Tong " +0x664e: "Hong " +0x664f: "Yan " +0x6650: "Gai " +0x6651: "Xiang " +0x6652: "Shai " +0x6653: "Xiao " +0x6654: "Ye " +0x6655: "Yun " +0x6656: "Hui " +0x6657: "Han " +0x6658: "Han " +0x6659: "Jun " +0x665a: "Wan " +0x665b: "Xian " +0x665c: "Kun " +0x665d: "Zhou " +0x665e: "Xi " +0x665f: "Cheng " +0x6660: "Sheng " +0x6661: "Bu " +0x6662: "Zhe " +0x6663: "Zhe " +0x6664: "Wu " +0x6665: "Han " +0x6666: "Hui " +0x6667: "Hao " +0x6668: "Chen " +0x6669: "Wan " +0x666a: "Tian " +0x666b: "Zhuo " +0x666c: "Zui " +0x666d: "Zhou " +0x666e: "Pu " +0x666f: "Jing " +0x6670: "Xi " +0x6671: "Shan " +0x6672: "Yi " +0x6673: "Xi " +0x6674: "Qing " +0x6675: "Qi " +0x6676: "Jing " +0x6677: "Gui " +0x6678: "Zhen " +0x6679: "Yi " +0x667a: "Zhi " +0x667b: "An " +0x667c: "Wan " +0x667d: "Lin " +0x667e: "Liang " +0x667f: "Chang " +0x6680: "Wang " +0x6681: "Xiao " +0x6682: "Zan " +0x6683: "Hi " +0x6684: "Xuan " +0x6685: "Xuan " +0x6686: "Yi " +0x6687: "Xia " +0x6688: "Yun " +0x6689: "Hui " +0x668a: "Fu " +0x668b: "Min " +0x668c: "Kui " +0x668d: "He " +0x668e: "Ying " +0x668f: "Du " +0x6690: "Wei " +0x6691: "Shu " +0x6692: "Qing " +0x6693: "Mao " +0x6694: "Nan " +0x6695: "Jian " +0x6696: "Nuan " +0x6697: "An " +0x6698: "Yang " +0x6699: "Chun " +0x669a: "Yao " +0x669b: "Suo " +0x669c: "Jin " +0x669d: "Ming " +0x669e: "Jiao " +0x669f: "Kai " +0x66a0: "Gao " +0x66a1: "Weng " +0x66a2: "Chang " +0x66a3: "Qi " +0x66a4: "Hao " +0x66a5: "Yan " +0x66a6: "Li " +0x66a7: "Ai " +0x66a8: "Ji " +0x66a9: "Gui " +0x66aa: "Men " +0x66ab: "Zan " +0x66ac: "Xie " +0x66ad: "Hao " +0x66ae: "Mu " +0x66af: "Mo " +0x66b0: "Cong " +0x66b1: "Ni " +0x66b2: "Zhang " +0x66b3: "Hui " +0x66b4: "Bao " +0x66b5: "Han " +0x66b6: "Xuan " +0x66b7: "Chuan " +0x66b8: "Liao " +0x66b9: "Xian " +0x66ba: "Dan " +0x66bb: "Jing " +0x66bc: "Pie " +0x66bd: "Lin " +0x66be: "Tun " +0x66bf: "Xi " +0x66c0: "Yi " +0x66c1: "Ji " +0x66c2: "Huang " +0x66c3: "Tai " +0x66c4: "Ye " +0x66c5: "Ye " +0x66c6: "Li " +0x66c7: "Tan " +0x66c8: "Tong " +0x66c9: "Xiao " +0x66ca: "Fei " +0x66cb: "Qin " +0x66cc: "Zhao " +0x66cd: "Hao " +0x66ce: "Yi " +0x66cf: "Xiang " +0x66d0: "Xing " +0x66d1: "Sen " +0x66d2: "Jiao " +0x66d3: "Bao " +0x66d4: "Jing " +0x66d5: "Yian " +0x66d6: "Ai " +0x66d7: "Ye " +0x66d8: "Ru " +0x66d9: "Shu " +0x66da: "Meng " +0x66db: "Xun " +0x66dc: "Yao " +0x66dd: "Pu " +0x66de: "Li " +0x66df: "Chen " +0x66e0: "Kuang " +0x66e1: "Die " +0x66e2: "[?] " +0x66e3: "Yan " +0x66e4: "Huo " +0x66e5: "Lu " +0x66e6: "Xi " +0x66e7: "Rong " +0x66e8: "Long " +0x66e9: "Nang " +0x66ea: "Luo " +0x66eb: "Luan " +0x66ec: "Shai " +0x66ed: "Tang " +0x66ee: "Yan " +0x66ef: "Chu " +0x66f0: "Yue " +0x66f1: "Yue " +0x66f2: "Qu " +0x66f3: "Yi " +0x66f4: "Geng " +0x66f5: "Ye " +0x66f6: "Hu " +0x66f7: "He " +0x66f8: "Shu " +0x66f9: "Cao " +0x66fa: "Cao " +0x66fb: "Noboru " +0x66fc: "Man " +0x66fd: "Ceng " +0x66fe: "Ceng " +0x66ff: "Ti " +/* x067 */ +0x6700: "Zui " +0x6701: "Can " +0x6702: "Xu " +0x6703: "Hui " +0x6704: "Yin " +0x6705: "Qie " +0x6706: "Fen " +0x6707: "Pi " +0x6708: "Yue " +0x6709: "You " +0x670a: "Ruan " +0x670b: "Peng " +0x670c: "Ban " +0x670d: "Fu " +0x670e: "Ling " +0x670f: "Fei " +0x6710: "Qu " +0x6711: "[?] " +0x6712: "Nu " +0x6713: "Tiao " +0x6714: "Shuo " +0x6715: "Zhen " +0x6716: "Lang " +0x6717: "Lang " +0x6718: "Juan " +0x6719: "Ming " +0x671a: "Huang " +0x671b: "Wang " +0x671c: "Tun " +0x671d: "Zhao " +0x671e: "Ji " +0x671f: "Qi " +0x6720: "Ying " +0x6721: "Zong " +0x6722: "Wang " +0x6723: "Tong " +0x6724: "Lang " +0x6725: "[?] " +0x6726: "Meng " +0x6727: "Long " +0x6728: "Mu " +0x6729: "Deng " +0x672a: "Wei " +0x672b: "Mo " +0x672c: "Ben " +0x672d: "Zha " +0x672e: "Zhu " +0x672f: "Zhu " +0x6730: "[?] " +0x6731: "Zhu " +0x6732: "Ren " +0x6733: "Ba " +0x6734: "Po " +0x6735: "Duo " +0x6736: "Duo " +0x6737: "Dao " +0x6738: "Li " +0x6739: "Qiu " +0x673a: "Ji " +0x673b: "Jiu " +0x673c: "Bi " +0x673d: "Xiu " +0x673e: "Ting " +0x673f: "Ci " +0x6740: "Sha " +0x6741: "Eburi " +0x6742: "Za " +0x6743: "Quan " +0x6744: "Qian " +0x6745: "Yu " +0x6746: "Gan " +0x6747: "Wu " +0x6748: "Cha " +0x6749: "Shan " +0x674a: "Xun " +0x674b: "Fan " +0x674c: "Wu " +0x674d: "Zi " +0x674e: "Li " +0x674f: "Xing " +0x6750: "Cai " +0x6751: "Cun " +0x6752: "Ren " +0x6753: "Shao " +0x6754: "Tuo " +0x6755: "Di " +0x6756: "Zhang " +0x6757: "Mang " +0x6758: "Chi " +0x6759: "Yi " +0x675a: "Gu " +0x675b: "Gong " +0x675c: "Du " +0x675d: "Yi " +0x675e: "Qi " +0x675f: "Shu " +0x6760: "Gang " +0x6761: "Tiao " +0x6762: "Moku " +0x6763: "Soma " +0x6764: "Tochi " +0x6765: "Lai " +0x6766: "Sugi " +0x6767: "Mang " +0x6768: "Yang " +0x6769: "Ma " +0x676a: "Miao " +0x676b: "Si " +0x676c: "Yuan " +0x676d: "Hang " +0x676e: "Fei " +0x676f: "Bei " +0x6770: "Jie " +0x6771: "Dong " +0x6772: "Gao " +0x6773: "Yao " +0x6774: "Xian " +0x6775: "Chu " +0x6776: "Qun " +0x6777: "Pa " +0x6778: "Shu " +0x6779: "Hua " +0x677a: "Xin " +0x677b: "Chou " +0x677c: "Zhu " +0x677d: "Chou " +0x677e: "Song " +0x677f: "Ban " +0x6780: "Song " +0x6781: "Ji " +0x6782: "Yue " +0x6783: "Jin " +0x6784: "Gou " +0x6785: "Ji " +0x6786: "Mao " +0x6787: "Pi " +0x6788: "Bi " +0x6789: "Wang " +0x678a: "Ang " +0x678b: "Fang " +0x678c: "Fen " +0x678d: "Yi " +0x678e: "Fu " +0x678f: "Nan " +0x6790: "Xi " +0x6791: "Hu " +0x6792: "Ya " +0x6793: "Dou " +0x6794: "Xun " +0x6795: "Zhen " +0x6796: "Yao " +0x6797: "Lin " +0x6798: "Rui " +0x6799: "E " +0x679a: "Mei " +0x679b: "Zhao " +0x679c: "Guo " +0x679d: "Zhi " +0x679e: "Cong " +0x679f: "Yun " +0x67a0: "Waku " +0x67a1: "Dou " +0x67a2: "Shu " +0x67a3: "Zao " +0x67a4: "[?] " +0x67a5: "Li " +0x67a6: "Haze " +0x67a7: "Jian " +0x67a8: "Cheng " +0x67a9: "Matsu " +0x67aa: "Qiang " +0x67ab: "Feng " +0x67ac: "Nan " +0x67ad: "Xiao " +0x67ae: "Xian " +0x67af: "Ku " +0x67b0: "Ping " +0x67b1: "Yi " +0x67b2: "Xi " +0x67b3: "Zhi " +0x67b4: "Guai " +0x67b5: "Xiao " +0x67b6: "Jia " +0x67b7: "Jia " +0x67b8: "Gou " +0x67b9: "Fu " +0x67ba: "Mo " +0x67bb: "Yi " +0x67bc: "Ye " +0x67bd: "Ye " +0x67be: "Shi " +0x67bf: "Nie " +0x67c0: "Bi " +0x67c1: "Duo " +0x67c2: "Yi " +0x67c3: "Ling " +0x67c4: "Bing " +0x67c5: "Ni " +0x67c6: "La " +0x67c7: "He " +0x67c8: "Pan " +0x67c9: "Fan " +0x67ca: "Zhong " +0x67cb: "Dai " +0x67cc: "Ci " +0x67cd: "Yang " +0x67ce: "Fu " +0x67cf: "Bo " +0x67d0: "Mou " +0x67d1: "Gan " +0x67d2: "Qi " +0x67d3: "Ran " +0x67d4: "Rou " +0x67d5: "Mao " +0x67d6: "Zhao " +0x67d7: "Song " +0x67d8: "Zhe " +0x67d9: "Xia " +0x67da: "You " +0x67db: "Shen " +0x67dc: "Ju " +0x67dd: "Tuo " +0x67de: "Zuo " +0x67df: "Nan " +0x67e0: "Ning " +0x67e1: "Yong " +0x67e2: "Di " +0x67e3: "Zhi " +0x67e4: "Zha " +0x67e5: "Cha " +0x67e6: "Dan " +0x67e7: "Gu " +0x67e8: "Pu " +0x67e9: "Jiu " +0x67ea: "Ao " +0x67eb: "Fu " +0x67ec: "Jian " +0x67ed: "Bo " +0x67ee: "Duo " +0x67ef: "Ke " +0x67f0: "Nai " +0x67f1: "Zhu " +0x67f2: "Bi " +0x67f3: "Liu " +0x67f4: "Chai " +0x67f5: "Zha " +0x67f6: "Si " +0x67f7: "Zhu " +0x67f8: "Pei " +0x67f9: "Shi " +0x67fa: "Guai " +0x67fb: "Cha " +0x67fc: "Yao " +0x67fd: "Jue " +0x67fe: "Jiu " +0x67ff: "Shi " +/* x068 */ +0x6800: "Zhi " +0x6801: "Liu " +0x6802: "Mei " +0x6803: "Hoy " +0x6804: "Rong " +0x6805: "Zha " +0x6806: "[?] " +0x6807: "Biao " +0x6808: "Zhan " +0x6809: "Jie " +0x680a: "Long " +0x680b: "Dong " +0x680c: "Lu " +0x680d: "Sayng " +0x680e: "Li " +0x680f: "Lan " +0x6810: "Yong " +0x6811: "Shu " +0x6812: "Xun " +0x6813: "Shuan " +0x6814: "Qi " +0x6815: "Zhen " +0x6816: "Qi " +0x6817: "Li " +0x6818: "Yi " +0x6819: "Xiang " +0x681a: "Zhen " +0x681b: "Li " +0x681c: "Su " +0x681d: "Gua " +0x681e: "Kan " +0x681f: "Bing " +0x6820: "Ren " +0x6821: "Xiao " +0x6822: "Bo " +0x6823: "Ren " +0x6824: "Bing " +0x6825: "Zi " +0x6826: "Chou " +0x6827: "Yi " +0x6828: "Jie " +0x6829: "Xu " +0x682a: "Zhu " +0x682b: "Jian " +0x682c: "Zui " +0x682d: "Er " +0x682e: "Er " +0x682f: "You " +0x6830: "Fa " +0x6831: "Gong " +0x6832: "Kao " +0x6833: "Lao " +0x6834: "Zhan " +0x6835: "Li " +0x6836: "Yin " +0x6837: "Yang " +0x6838: "He " +0x6839: "Gen " +0x683a: "Zhi " +0x683b: "Chi " +0x683c: "Ge " +0x683d: "Zai " +0x683e: "Luan " +0x683f: "Fu " +0x6840: "Jie " +0x6841: "Hang " +0x6842: "Gui " +0x6843: "Tao " +0x6844: "Guang " +0x6845: "Wei " +0x6846: "Kuang " +0x6847: "Ru " +0x6848: "An " +0x6849: "An " +0x684a: "Juan " +0x684b: "Yi " +0x684c: "Zhuo " +0x684d: "Ku " +0x684e: "Zhi " +0x684f: "Qiong " +0x6850: "Tong " +0x6851: "Sang " +0x6852: "Sang " +0x6853: "Huan " +0x6854: "Jie " +0x6855: "Jiu " +0x6856: "Xue " +0x6857: "Duo " +0x6858: "Zhui " +0x6859: "Yu " +0x685a: "Zan " +0x685b: "Kasei " +0x685c: "Ying " +0x685d: "Masu " +0x685e: "[?] " +0x685f: "Zhan " +0x6860: "Ya " +0x6861: "Nao " +0x6862: "Zhen " +0x6863: "Dang " +0x6864: "Qi " +0x6865: "Qiao " +0x6866: "Hua " +0x6867: "Kuai " +0x6868: "Jiang " +0x6869: "Zhuang " +0x686a: "Xun " +0x686b: "Suo " +0x686c: "Sha " +0x686d: "Zhen " +0x686e: "Bei " +0x686f: "Ting " +0x6870: "Gua " +0x6871: "Jing " +0x6872: "Bo " +0x6873: "Ben " +0x6874: "Fu " +0x6875: "Rui " +0x6876: "Tong " +0x6877: "Jue " +0x6878: "Xi " +0x6879: "Lang " +0x687a: "Liu " +0x687b: "Feng " +0x687c: "Qi " +0x687d: "Wen " +0x687e: "Jun " +0x687f: "Gan " +0x6880: "Cu " +0x6881: "Liang " +0x6882: "Qiu " +0x6883: "Ting " +0x6884: "You " +0x6885: "Mei " +0x6886: "Bang " +0x6887: "Long " +0x6888: "Peng " +0x6889: "Zhuang " +0x688a: "Di " +0x688b: "Xuan " +0x688c: "Tu " +0x688d: "Zao " +0x688e: "Ao " +0x688f: "Gu " +0x6890: "Bi " +0x6891: "Di " +0x6892: "Han " +0x6893: "Zi " +0x6894: "Zhi " +0x6895: "Ren " +0x6896: "Bei " +0x6897: "Geng " +0x6898: "Jian " +0x6899: "Huan " +0x689a: "Wan " +0x689b: "Nuo " +0x689c: "Jia " +0x689d: "Tiao " +0x689e: "Ji " +0x689f: "Xiao " +0x68a0: "Lu " +0x68a1: "Huan " +0x68a2: "Shao " +0x68a3: "Cen " +0x68a4: "Fen " +0x68a5: "Song " +0x68a6: "Meng " +0x68a7: "Wu " +0x68a8: "Li " +0x68a9: "Li " +0x68aa: "Dou " +0x68ab: "Cen " +0x68ac: "Ying " +0x68ad: "Suo " +0x68ae: "Ju " +0x68af: "Ti " +0x68b0: "Jie " +0x68b1: "Kun " +0x68b2: "Zhuo " +0x68b3: "Shu " +0x68b4: "Chan " +0x68b5: "Fan " +0x68b6: "Wei " +0x68b7: "Jing " +0x68b8: "Li " +0x68b9: "Bing " +0x68ba: "Fumoto " +0x68bb: "Shikimi " +0x68bc: "Tao " +0x68bd: "Zhi " +0x68be: "Lai " +0x68bf: "Lian " +0x68c0: "Jian " +0x68c1: "Zhuo " +0x68c2: "Ling " +0x68c3: "Li " +0x68c4: "Qi " +0x68c5: "Bing " +0x68c6: "Zhun " +0x68c7: "Cong " +0x68c8: "Qian " +0x68c9: "Mian " +0x68ca: "Qi " +0x68cb: "Qi " +0x68cc: "Cai " +0x68cd: "Gun " +0x68ce: "Chan " +0x68cf: "Te " +0x68d0: "Fei " +0x68d1: "Pai " +0x68d2: "Bang " +0x68d3: "Pou " +0x68d4: "Hun " +0x68d5: "Zong " +0x68d6: "Cheng " +0x68d7: "Zao " +0x68d8: "Ji " +0x68d9: "Li " +0x68da: "Peng " +0x68db: "Yu " +0x68dc: "Yu " +0x68dd: "Gu " +0x68de: "Hun " +0x68df: "Dong " +0x68e0: "Tang " +0x68e1: "Gang " +0x68e2: "Wang " +0x68e3: "Di " +0x68e4: "Xi " +0x68e5: "Fan " +0x68e6: "Cheng " +0x68e7: "Zhan " +0x68e8: "Qi " +0x68e9: "Yuan " +0x68ea: "Yan " +0x68eb: "Yu " +0x68ec: "Quan " +0x68ed: "Yi " +0x68ee: "Sen " +0x68ef: "Ren " +0x68f0: "Chui " +0x68f1: "Leng " +0x68f2: "Qi " +0x68f3: "Zhuo " +0x68f4: "Fu " +0x68f5: "Ke " +0x68f6: "Lai " +0x68f7: "Zou " +0x68f8: "Zou " +0x68f9: "Zhuo " +0x68fa: "Guan " +0x68fb: "Fen " +0x68fc: "Fen " +0x68fd: "Chen " +0x68fe: "Qiong " +0x68ff: "Nie " +/* x069 */ +0x6900: "Wan " +0x6901: "Guo " +0x6902: "Lu " +0x6903: "Hao " +0x6904: "Jie " +0x6905: "Yi " +0x6906: "Chou " +0x6907: "Ju " +0x6908: "Ju " +0x6909: "Cheng " +0x690a: "Zuo " +0x690b: "Liang " +0x690c: "Qiang " +0x690d: "Zhi " +0x690e: "Zhui " +0x690f: "Ya " +0x6910: "Ju " +0x6911: "Bei " +0x6912: "Jiao " +0x6913: "Zhuo " +0x6914: "Zi " +0x6915: "Bin " +0x6916: "Peng " +0x6917: "Ding " +0x6918: "Chu " +0x6919: "Chang " +0x691a: "Kunugi " +0x691b: "Momiji " +0x691c: "Jian " +0x691d: "Gui " +0x691e: "Xi " +0x691f: "Du " +0x6920: "Qian " +0x6921: "Kunugi " +0x6922: "Soko " +0x6923: "Shide " +0x6924: "Luo " +0x6925: "Zhi " +0x6926: "Ken " +0x6927: "Myeng " +0x6928: "Tafu " +0x6929: "[?] " +0x692a: "Peng " +0x692b: "Zhan " +0x692c: "[?] " +0x692d: "Tuo " +0x692e: "Sen " +0x692f: "Duo " +0x6930: "Ye " +0x6931: "Fou " +0x6932: "Wei " +0x6933: "Wei " +0x6934: "Duan " +0x6935: "Jia " +0x6936: "Zong " +0x6937: "Jian " +0x6938: "Yi " +0x6939: "Shen " +0x693a: "Xi " +0x693b: "Yan " +0x693c: "Yan " +0x693d: "Chuan " +0x693e: "Zhan " +0x693f: "Chun " +0x6940: "Yu " +0x6941: "He " +0x6942: "Zha " +0x6943: "Wo " +0x6944: "Pian " +0x6945: "Bi " +0x6946: "Yao " +0x6947: "Huo " +0x6948: "Xu " +0x6949: "Ruo " +0x694a: "Yang " +0x694b: "La " +0x694c: "Yan " +0x694d: "Ben " +0x694e: "Hun " +0x694f: "Kui " +0x6950: "Jie " +0x6951: "Kui " +0x6952: "Si " +0x6953: "Feng " +0x6954: "Xie " +0x6955: "Tuo " +0x6956: "Zhi " +0x6957: "Jian " +0x6958: "Mu " +0x6959: "Mao " +0x695a: "Chu " +0x695b: "Hu " +0x695c: "Hu " +0x695d: "Lian " +0x695e: "Leng " +0x695f: "Ting " +0x6960: "Nan " +0x6961: "Yu " +0x6962: "You " +0x6963: "Mei " +0x6964: "Song " +0x6965: "Xuan " +0x6966: "Xuan " +0x6967: "Ying " +0x6968: "Zhen " +0x6969: "Pian " +0x696a: "Ye " +0x696b: "Ji " +0x696c: "Jie " +0x696d: "Ye " +0x696e: "Chu " +0x696f: "Shun " +0x6970: "Yu " +0x6971: "Cou " +0x6972: "Wei " +0x6973: "Mei " +0x6974: "Di " +0x6975: "Ji " +0x6976: "Jie " +0x6977: "Kai " +0x6978: "Qiu " +0x6979: "Ying " +0x697a: "Rou " +0x697b: "Heng " +0x697c: "Lou " +0x697d: "Le " +0x697e: "Hazou " +0x697f: "Katsura " +0x6980: "Pin " +0x6981: "Muro " +0x6982: "Gai " +0x6983: "Tan " +0x6984: "Lan " +0x6985: "Yun " +0x6986: "Yu " +0x6987: "Chen " +0x6988: "Lu " +0x6989: "Ju " +0x698a: "Sakaki " +0x698b: "[?] " +0x698c: "Pi " +0x698d: "Xie " +0x698e: "Jia " +0x698f: "Yi " +0x6990: "Zhan " +0x6991: "Fu " +0x6992: "Nai " +0x6993: "Mi " +0x6994: "Lang " +0x6995: "Rong " +0x6996: "Gu " +0x6997: "Jian " +0x6998: "Ju " +0x6999: "Ta " +0x699a: "Yao " +0x699b: "Zhen " +0x699c: "Bang " +0x699d: "Sha " +0x699e: "Yuan " +0x699f: "Zi " +0x69a0: "Ming " +0x69a1: "Su " +0x69a2: "Jia " +0x69a3: "Yao " +0x69a4: "Jie " +0x69a5: "Huang " +0x69a6: "Gan " +0x69a7: "Fei " +0x69a8: "Zha " +0x69a9: "Qian " +0x69aa: "Ma " +0x69ab: "Sun " +0x69ac: "Yuan " +0x69ad: "Xie " +0x69ae: "Rong " +0x69af: "Shi " +0x69b0: "Zhi " +0x69b1: "Cui " +0x69b2: "Yun " +0x69b3: "Ting " +0x69b4: "Liu " +0x69b5: "Rong " +0x69b6: "Tang " +0x69b7: "Que " +0x69b8: "Zhai " +0x69b9: "Si " +0x69ba: "Sheng " +0x69bb: "Ta " +0x69bc: "Ke " +0x69bd: "Xi " +0x69be: "Gu " +0x69bf: "Qi " +0x69c0: "Kao " +0x69c1: "Gao " +0x69c2: "Sun " +0x69c3: "Pan " +0x69c4: "Tao " +0x69c5: "Ge " +0x69c6: "Xun " +0x69c7: "Dian " +0x69c8: "Nou " +0x69c9: "Ji " +0x69ca: "Shuo " +0x69cb: "Gou " +0x69cc: "Chui " +0x69cd: "Qiang " +0x69ce: "Cha " +0x69cf: "Qian " +0x69d0: "Huai " +0x69d1: "Mei " +0x69d2: "Xu " +0x69d3: "Gang " +0x69d4: "Gao " +0x69d5: "Zhuo " +0x69d6: "Tuo " +0x69d7: "Hashi " +0x69d8: "Yang " +0x69d9: "Dian " +0x69da: "Jia " +0x69db: "Jian " +0x69dc: "Zui " +0x69dd: "Kashi " +0x69de: "Ori " +0x69df: "Bin " +0x69e0: "Zhu " +0x69e1: "[?] " +0x69e2: "Xi " +0x69e3: "Qi " +0x69e4: "Lian " +0x69e5: "Hui " +0x69e6: "Yong " +0x69e7: "Qian " +0x69e8: "Guo " +0x69e9: "Gai " +0x69ea: "Gai " +0x69eb: "Tuan " +0x69ec: "Hua " +0x69ed: "Cu " +0x69ee: "Sen " +0x69ef: "Cui " +0x69f0: "Beng " +0x69f1: "You " +0x69f2: "Hu " +0x69f3: "Jiang " +0x69f4: "Hu " +0x69f5: "Huan " +0x69f6: "Kui " +0x69f7: "Yi " +0x69f8: "Nie " +0x69f9: "Gao " +0x69fa: "Kang " +0x69fb: "Gui " +0x69fc: "Gui " +0x69fd: "Cao " +0x69fe: "Man " +0x69ff: "Jin " +/* x06a */ +0x6a00: "Di " +0x6a01: "Zhuang " +0x6a02: "Le " +0x6a03: "Lang " +0x6a04: "Chen " +0x6a05: "Cong " +0x6a06: "Li " +0x6a07: "Xiu " +0x6a08: "Qing " +0x6a09: "Shuang " +0x6a0a: "Fan " +0x6a0b: "Tong " +0x6a0c: "Guan " +0x6a0d: "Ji " +0x6a0e: "Suo " +0x6a0f: "Lei " +0x6a10: "Lu " +0x6a11: "Liang " +0x6a12: "Mi " +0x6a13: "Lou " +0x6a14: "Chao " +0x6a15: "Su " +0x6a16: "Ke " +0x6a17: "Shu " +0x6a18: "Tang " +0x6a19: "Biao " +0x6a1a: "Lu " +0x6a1b: "Jiu " +0x6a1c: "Shu " +0x6a1d: "Zha " +0x6a1e: "Shu " +0x6a1f: "Zhang " +0x6a20: "Men " +0x6a21: "Mo " +0x6a22: "Niao " +0x6a23: "Yang " +0x6a24: "Tiao " +0x6a25: "Peng " +0x6a26: "Zhu " +0x6a27: "Sha " +0x6a28: "Xi " +0x6a29: "Quan " +0x6a2a: "Heng " +0x6a2b: "Jian " +0x6a2c: "Cong " +0x6a2d: "[?] " +0x6a2e: "Hokuso " +0x6a2f: "Qiang " +0x6a30: "Tara " +0x6a31: "Ying " +0x6a32: "Er " +0x6a33: "Xin " +0x6a34: "Zhi " +0x6a35: "Qiao " +0x6a36: "Zui " +0x6a37: "Cong " +0x6a38: "Pu " +0x6a39: "Shu " +0x6a3a: "Hua " +0x6a3b: "Kui " +0x6a3c: "Zhen " +0x6a3d: "Zun " +0x6a3e: "Yue " +0x6a3f: "Zhan " +0x6a40: "Xi " +0x6a41: "Xun " +0x6a42: "Dian " +0x6a43: "Fa " +0x6a44: "Gan " +0x6a45: "Mo " +0x6a46: "Wu " +0x6a47: "Qiao " +0x6a48: "Nao " +0x6a49: "Lin " +0x6a4a: "Liu " +0x6a4b: "Qiao " +0x6a4c: "Xian " +0x6a4d: "Run " +0x6a4e: "Fan " +0x6a4f: "Zhan " +0x6a50: "Tuo " +0x6a51: "Lao " +0x6a52: "Yun " +0x6a53: "Shun " +0x6a54: "Tui " +0x6a55: "Cheng " +0x6a56: "Tang " +0x6a57: "Meng " +0x6a58: "Ju " +0x6a59: "Cheng " +0x6a5a: "Su " +0x6a5b: "Jue " +0x6a5c: "Jue " +0x6a5d: "Tan " +0x6a5e: "Hui " +0x6a5f: "Ji " +0x6a60: "Nuo " +0x6a61: "Xiang " +0x6a62: "Tuo " +0x6a63: "Ning " +0x6a64: "Rui " +0x6a65: "Zhu " +0x6a66: "Chuang " +0x6a67: "Zeng " +0x6a68: "Fen " +0x6a69: "Qiong " +0x6a6a: "Ran " +0x6a6b: "Heng " +0x6a6c: "Cen " +0x6a6d: "Gu " +0x6a6e: "Liu " +0x6a6f: "Lao " +0x6a70: "Gao " +0x6a71: "Chu " +0x6a72: "Zusa " +0x6a73: "Nude " +0x6a74: "Ca " +0x6a75: "San " +0x6a76: "Ji " +0x6a77: "Dou " +0x6a78: "Shou " +0x6a79: "Lu " +0x6a7a: "[?] " +0x6a7b: "[?] " +0x6a7c: "Yuan " +0x6a7d: "Ta " +0x6a7e: "Shu " +0x6a7f: "Jiang " +0x6a80: "Tan " +0x6a81: "Lin " +0x6a82: "Nong " +0x6a83: "Yin " +0x6a84: "Xi " +0x6a85: "Sui " +0x6a86: "Shan " +0x6a87: "Zui " +0x6a88: "Xuan " +0x6a89: "Cheng " +0x6a8a: "Gan " +0x6a8b: "Ju " +0x6a8c: "Zui " +0x6a8d: "Yi " +0x6a8e: "Qin " +0x6a8f: "Pu " +0x6a90: "Yan " +0x6a91: "Lei " +0x6a92: "Feng " +0x6a93: "Hui " +0x6a94: "Dang " +0x6a95: "Ji " +0x6a96: "Sui " +0x6a97: "Bo " +0x6a98: "Bi " +0x6a99: "Ding " +0x6a9a: "Chu " +0x6a9b: "Zhua " +0x6a9c: "Kuai " +0x6a9d: "Ji " +0x6a9e: "Jie " +0x6a9f: "Jia " +0x6aa0: "Qing " +0x6aa1: "Zhe " +0x6aa2: "Jian " +0x6aa3: "Qiang " +0x6aa4: "Dao " +0x6aa5: "Yi " +0x6aa6: "Biao " +0x6aa7: "Song " +0x6aa8: "She " +0x6aa9: "Lin " +0x6aaa: "Kunugi " +0x6aab: "Cha " +0x6aac: "Meng " +0x6aad: "Yin " +0x6aae: "Tao " +0x6aaf: "Tai " +0x6ab0: "Mian " +0x6ab1: "Qi " +0x6ab2: "Toan " +0x6ab3: "Bin " +0x6ab4: "Huo " +0x6ab5: "Ji " +0x6ab6: "Qian " +0x6ab7: "Mi " +0x6ab8: "Ning " +0x6ab9: "Yi " +0x6aba: "Gao " +0x6abb: "Jian " +0x6abc: "Yin " +0x6abd: "Er " +0x6abe: "Qing " +0x6abf: "Yan " +0x6ac0: "Qi " +0x6ac1: "Mi " +0x6ac2: "Zhao " +0x6ac3: "Gui " +0x6ac4: "Chun " +0x6ac5: "Ji " +0x6ac6: "Kui " +0x6ac7: "Po " +0x6ac8: "Deng " +0x6ac9: "Chu " +0x6aca: "[?] " +0x6acb: "Mian " +0x6acc: "You " +0x6acd: "Zhi " +0x6ace: "Guang " +0x6acf: "Qian " +0x6ad0: "Lei " +0x6ad1: "Lei " +0x6ad2: "Sa " +0x6ad3: "Lu " +0x6ad4: "Li " +0x6ad5: "Cuan " +0x6ad6: "Lu " +0x6ad7: "Mie " +0x6ad8: "Hui " +0x6ad9: "Ou " +0x6ada: "Lu " +0x6adb: "Jie " +0x6adc: "Gao " +0x6add: "Du " +0x6ade: "Yuan " +0x6adf: "Li " +0x6ae0: "Fei " +0x6ae1: "Zhuo " +0x6ae2: "Sou " +0x6ae3: "Lian " +0x6ae4: "Tamo " +0x6ae5: "Chu " +0x6ae6: "[?] " +0x6ae7: "Zhu " +0x6ae8: "Lu " +0x6ae9: "Yan " +0x6aea: "Li " +0x6aeb: "Zhu " +0x6aec: "Chen " +0x6aed: "Jie " +0x6aee: "E " +0x6aef: "Su " +0x6af0: "Huai " +0x6af1: "Nie " +0x6af2: "Yu " +0x6af3: "Long " +0x6af4: "Lai " +0x6af5: "[?] " +0x6af6: "Xian " +0x6af7: "Kwi " +0x6af8: "Ju " +0x6af9: "Xiao " +0x6afa: "Ling " +0x6afb: "Ying " +0x6afc: "Jian " +0x6afd: "Yin " +0x6afe: "You " +0x6aff: "Ying " +/* x06b */ +0x6b00: "Xiang " +0x6b01: "Nong " +0x6b02: "Bo " +0x6b03: "Chan " +0x6b04: "Lan " +0x6b05: "Ju " +0x6b06: "Shuang " +0x6b07: "She " +0x6b08: "Wei " +0x6b09: "Cong " +0x6b0a: "Quan " +0x6b0b: "Qu " +0x6b0c: "Cang " +0x6b0d: "[?] " +0x6b0e: "Yu " +0x6b0f: "Luo " +0x6b10: "Li " +0x6b11: "Zan " +0x6b12: "Luan " +0x6b13: "Dang " +0x6b14: "Jue " +0x6b15: "Em " +0x6b16: "Lan " +0x6b17: "Lan " +0x6b18: "Zhu " +0x6b19: "Lei " +0x6b1a: "Li " +0x6b1b: "Ba " +0x6b1c: "Nang " +0x6b1d: "Yu " +0x6b1e: "Ling " +0x6b1f: "Tsuki " +0x6b20: "Qian " +0x6b21: "Ci " +0x6b22: "Huan " +0x6b23: "Xin " +0x6b24: "Yu " +0x6b25: "Yu " +0x6b26: "Qian " +0x6b27: "Ou " +0x6b28: "Xu " +0x6b29: "Chao " +0x6b2a: "Chu " +0x6b2b: "Chi " +0x6b2c: "Kai " +0x6b2d: "Yi " +0x6b2e: "Jue " +0x6b2f: "Xi " +0x6b30: "Xu " +0x6b31: "Xia " +0x6b32: "Yu " +0x6b33: "Kuai " +0x6b34: "Lang " +0x6b35: "Kuan " +0x6b36: "Shuo " +0x6b37: "Xi " +0x6b38: "Ai " +0x6b39: "Yi " +0x6b3a: "Qi " +0x6b3b: "Hu " +0x6b3c: "Chi " +0x6b3d: "Qin " +0x6b3e: "Kuan " +0x6b3f: "Kan " +0x6b40: "Kuan " +0x6b41: "Kan " +0x6b42: "Chuan " +0x6b43: "Sha " +0x6b44: "Gua " +0x6b45: "Yin " +0x6b46: "Xin " +0x6b47: "Xie " +0x6b48: "Yu " +0x6b49: "Qian " +0x6b4a: "Xiao " +0x6b4b: "Yi " +0x6b4c: "Ge " +0x6b4d: "Wu " +0x6b4e: "Tan " +0x6b4f: "Jin " +0x6b50: "Ou " +0x6b51: "Hu " +0x6b52: "Ti " +0x6b53: "Huan " +0x6b54: "Xu " +0x6b55: "Pen " +0x6b56: "Xi " +0x6b57: "Xiao " +0x6b58: "Xu " +0x6b59: "Xi " +0x6b5a: "Sen " +0x6b5b: "Lian " +0x6b5c: "Chu " +0x6b5d: "Yi " +0x6b5e: "Kan " +0x6b5f: "Yu " +0x6b60: "Chuo " +0x6b61: "Huan " +0x6b62: "Zhi " +0x6b63: "Zheng " +0x6b64: "Ci " +0x6b65: "Bu " +0x6b66: "Wu " +0x6b67: "Qi " +0x6b68: "Bu " +0x6b69: "Bu " +0x6b6a: "Wai " +0x6b6b: "Ju " +0x6b6c: "Qian " +0x6b6d: "Chi " +0x6b6e: "Se " +0x6b6f: "Chi " +0x6b70: "Se " +0x6b71: "Zhong " +0x6b72: "Sui " +0x6b73: "Sui " +0x6b74: "Li " +0x6b75: "Cuo " +0x6b76: "Yu " +0x6b77: "Li " +0x6b78: "Gui " +0x6b79: "Dai " +0x6b7a: "Dai " +0x6b7b: "Si " +0x6b7c: "Jian " +0x6b7d: "Zhe " +0x6b7e: "Mo " +0x6b7f: "Mo " +0x6b80: "Yao " +0x6b81: "Mo " +0x6b82: "Cu " +0x6b83: "Yang " +0x6b84: "Tian " +0x6b85: "Sheng " +0x6b86: "Dai " +0x6b87: "Shang " +0x6b88: "Xu " +0x6b89: "Xun " +0x6b8a: "Shu " +0x6b8b: "Can " +0x6b8c: "Jue " +0x6b8d: "Piao " +0x6b8e: "Qia " +0x6b8f: "Qiu " +0x6b90: "Su " +0x6b91: "Qing " +0x6b92: "Yun " +0x6b93: "Lian " +0x6b94: "Yi " +0x6b95: "Fou " +0x6b96: "Zhi " +0x6b97: "Ye " +0x6b98: "Can " +0x6b99: "Hun " +0x6b9a: "Dan " +0x6b9b: "Ji " +0x6b9c: "Ye " +0x6b9d: "Zhen " +0x6b9e: "Yun " +0x6b9f: "Wen " +0x6ba0: "Chou " +0x6ba1: "Bin " +0x6ba2: "Ti " +0x6ba3: "Jin " +0x6ba4: "Shang " +0x6ba5: "Yin " +0x6ba6: "Diao " +0x6ba7: "Cu " +0x6ba8: "Hui " +0x6ba9: "Cuan " +0x6baa: "Yi " +0x6bab: "Dan " +0x6bac: "Du " +0x6bad: "Jiang " +0x6bae: "Lian " +0x6baf: "Bin " +0x6bb0: "Du " +0x6bb1: "Tsukusu " +0x6bb2: "Jian " +0x6bb3: "Shu " +0x6bb4: "Ou " +0x6bb5: "Duan " +0x6bb6: "Zhu " +0x6bb7: "Yin " +0x6bb8: "Qing " +0x6bb9: "Yi " +0x6bba: "Sha " +0x6bbb: "Que " +0x6bbc: "Ke " +0x6bbd: "Yao " +0x6bbe: "Jun " +0x6bbf: "Dian " +0x6bc0: "Hui " +0x6bc1: "Hui " +0x6bc2: "Gu " +0x6bc3: "Que " +0x6bc4: "Ji " +0x6bc5: "Yi " +0x6bc6: "Ou " +0x6bc7: "Hui " +0x6bc8: "Duan " +0x6bc9: "Yi " +0x6bca: "Xiao " +0x6bcb: "Wu " +0x6bcc: "Guan " +0x6bcd: "Mu " +0x6bce: "Mei " +0x6bcf: "Mei " +0x6bd0: "Ai " +0x6bd1: "Zuo " +0x6bd2: "Du " +0x6bd3: "Yu " +0x6bd4: "Bi " +0x6bd5: "Bi " +0x6bd6: "Bi " +0x6bd7: "Pi " +0x6bd8: "Pi " +0x6bd9: "Bi " +0x6bda: "Chan " +0x6bdb: "Mao " +0x6bdc: "[?] " +0x6bdd: "[?] " +0x6bde: "Pu " +0x6bdf: "Mushiru " +0x6be0: "Jia " +0x6be1: "Zhan " +0x6be2: "Sai " +0x6be3: "Mu " +0x6be4: "Tuo " +0x6be5: "Xun " +0x6be6: "Er " +0x6be7: "Rong " +0x6be8: "Xian " +0x6be9: "Ju " +0x6bea: "Mu " +0x6beb: "Hao " +0x6bec: "Qiu " +0x6bed: "Dou " +0x6bee: "Mushiru " +0x6bef: "Tan " +0x6bf0: "Pei " +0x6bf1: "Ju " +0x6bf2: "Duo " +0x6bf3: "Cui " +0x6bf4: "Bi " +0x6bf5: "San " +0x6bf6: "[?] " +0x6bf7: "Mao " +0x6bf8: "Sui " +0x6bf9: "Yu " +0x6bfa: "Yu " +0x6bfb: "Tuo " +0x6bfc: "He " +0x6bfd: "Jian " +0x6bfe: "Ta " +0x6bff: "San " +/* x06c */ +0x6c00: "Lu " +0x6c01: "Mu " +0x6c02: "Li " +0x6c03: "Tong " +0x6c04: "Rong " +0x6c05: "Chang " +0x6c06: "Pu " +0x6c07: "Luo " +0x6c08: "Zhan " +0x6c09: "Sao " +0x6c0a: "Zhan " +0x6c0b: "Meng " +0x6c0c: "Luo " +0x6c0d: "Qu " +0x6c0e: "Die " +0x6c0f: "Shi " +0x6c10: "Di " +0x6c11: "Min " +0x6c12: "Jue " +0x6c13: "Mang " +0x6c14: "Qi " +0x6c15: "Pie " +0x6c16: "Nai " +0x6c17: "Qi " +0x6c18: "Dao " +0x6c19: "Xian " +0x6c1a: "Chuan " +0x6c1b: "Fen " +0x6c1c: "Ri " +0x6c1d: "Nei " +0x6c1e: "[?] " +0x6c1f: "Fu " +0x6c20: "Shen " +0x6c21: "Dong " +0x6c22: "Qing " +0x6c23: "Qi " +0x6c24: "Yin " +0x6c25: "Xi " +0x6c26: "Hai " +0x6c27: "Yang " +0x6c28: "An " +0x6c29: "Ya " +0x6c2a: "Ke " +0x6c2b: "Qing " +0x6c2c: "Ya " +0x6c2d: "Dong " +0x6c2e: "Dan " +0x6c2f: "Lu " +0x6c30: "Qing " +0x6c31: "Yang " +0x6c32: "Yun " +0x6c33: "Yun " +0x6c34: "Shui " +0x6c35: "San " +0x6c36: "Zheng " +0x6c37: "Bing " +0x6c38: "Yong " +0x6c39: "Dang " +0x6c3a: "Shitamizu " +0x6c3b: "Le " +0x6c3c: "Ni " +0x6c3d: "Tun " +0x6c3e: "Fan " +0x6c3f: "Gui " +0x6c40: "Ting " +0x6c41: "Zhi " +0x6c42: "Qiu " +0x6c43: "Bin " +0x6c44: "Ze " +0x6c45: "Mian " +0x6c46: "Cuan " +0x6c47: "Hui " +0x6c48: "Diao " +0x6c49: "Yi " +0x6c4a: "Cha " +0x6c4b: "Zhuo " +0x6c4c: "Chuan " +0x6c4d: "Wan " +0x6c4e: "Fan " +0x6c4f: "Dai " +0x6c50: "Xi " +0x6c51: "Tuo " +0x6c52: "Mang " +0x6c53: "Qiu " +0x6c54: "Qi " +0x6c55: "Shan " +0x6c56: "Pai " +0x6c57: "Han " +0x6c58: "Qian " +0x6c59: "Wu " +0x6c5a: "Wu " +0x6c5b: "Xun " +0x6c5c: "Si " +0x6c5d: "Ru " +0x6c5e: "Gong " +0x6c5f: "Jiang " +0x6c60: "Chi " +0x6c61: "Wu " +0x6c62: "Tsuchi " +0x6c63: "[?] " +0x6c64: "Tang " +0x6c65: "Zhi " +0x6c66: "Chi " +0x6c67: "Qian " +0x6c68: "Mi " +0x6c69: "Yu " +0x6c6a: "Wang " +0x6c6b: "Qing " +0x6c6c: "Jing " +0x6c6d: "Rui " +0x6c6e: "Jun " +0x6c6f: "Hong " +0x6c70: "Tai " +0x6c71: "Quan " +0x6c72: "Ji " +0x6c73: "Bian " +0x6c74: "Bian " +0x6c75: "Gan " +0x6c76: "Wen " +0x6c77: "Zhong " +0x6c78: "Fang " +0x6c79: "Xiong " +0x6c7a: "Jue " +0x6c7b: "Hang " +0x6c7c: "Niou " +0x6c7d: "Qi " +0x6c7e: "Fen " +0x6c7f: "Xu " +0x6c80: "Xu " +0x6c81: "Qin " +0x6c82: "Yi " +0x6c83: "Wo " +0x6c84: "Yun " +0x6c85: "Yuan " +0x6c86: "Hang " +0x6c87: "Yan " +0x6c88: "Chen " +0x6c89: "Chen " +0x6c8a: "Dan " +0x6c8b: "You " +0x6c8c: "Dun " +0x6c8d: "Hu " +0x6c8e: "Huo " +0x6c8f: "Qie " +0x6c90: "Mu " +0x6c91: "Rou " +0x6c92: "Mei " +0x6c93: "Ta " +0x6c94: "Mian " +0x6c95: "Wu " +0x6c96: "Chong " +0x6c97: "Tian " +0x6c98: "Bi " +0x6c99: "Sha " +0x6c9a: "Zhi " +0x6c9b: "Pei " +0x6c9c: "Pan " +0x6c9d: "Zhui " +0x6c9e: "Za " +0x6c9f: "Gou " +0x6ca0: "Liu " +0x6ca1: "Mei " +0x6ca2: "Ze " +0x6ca3: "Feng " +0x6ca4: "Ou " +0x6ca5: "Li " +0x6ca6: "Lun " +0x6ca7: "Cang " +0x6ca8: "Feng " +0x6ca9: "Wei " +0x6caa: "Hu " +0x6cab: "Mo " +0x6cac: "Mei " +0x6cad: "Shu " +0x6cae: "Ju " +0x6caf: "Zan " +0x6cb0: "Tuo " +0x6cb1: "Tuo " +0x6cb2: "Tuo " +0x6cb3: "He " +0x6cb4: "Li " +0x6cb5: "Mi " +0x6cb6: "Yi " +0x6cb7: "Fa " +0x6cb8: "Fei " +0x6cb9: "You " +0x6cba: "Tian " +0x6cbb: "Zhi " +0x6cbc: "Zhao " +0x6cbd: "Gu " +0x6cbe: "Zhan " +0x6cbf: "Yan " +0x6cc0: "Si " +0x6cc1: "Kuang " +0x6cc2: "Jiong " +0x6cc3: "Ju " +0x6cc4: "Xie " +0x6cc5: "Qiu " +0x6cc6: "Yi " +0x6cc7: "Jia " +0x6cc8: "Zhong " +0x6cc9: "Quan " +0x6cca: "Bo " +0x6ccb: "Hui " +0x6ccc: "Mi " +0x6ccd: "Ben " +0x6cce: "Zhuo " +0x6ccf: "Chu " +0x6cd0: "Le " +0x6cd1: "You " +0x6cd2: "Gu " +0x6cd3: "Hong " +0x6cd4: "Gan " +0x6cd5: "Fa " +0x6cd6: "Mao " +0x6cd7: "Si " +0x6cd8: "Hu " +0x6cd9: "Ping " +0x6cda: "Ci " +0x6cdb: "Fan " +0x6cdc: "Chi " +0x6cdd: "Su " +0x6cde: "Ning " +0x6cdf: "Cheng " +0x6ce0: "Ling " +0x6ce1: "Pao " +0x6ce2: "Bo " +0x6ce3: "Qi " +0x6ce4: "Si " +0x6ce5: "Ni " +0x6ce6: "Ju " +0x6ce7: "Yue " +0x6ce8: "Zhu " +0x6ce9: "Sheng " +0x6cea: "Lei " +0x6ceb: "Xuan " +0x6cec: "Xue " +0x6ced: "Fu " +0x6cee: "Pan " +0x6cef: "Min " +0x6cf0: "Tai " +0x6cf1: "Yang " +0x6cf2: "Ji " +0x6cf3: "Yong " +0x6cf4: "Guan " +0x6cf5: "Beng " +0x6cf6: "Xue " +0x6cf7: "Long " +0x6cf8: "Lu " +0x6cf9: "[?] " +0x6cfa: "Bo " +0x6cfb: "Xie " +0x6cfc: "Po " +0x6cfd: "Ze " +0x6cfe: "Jing " +0x6cff: "Yin " +/* x06d */ +0x6d00: "Zhou " +0x6d01: "Ji " +0x6d02: "Yi " +0x6d03: "Hui " +0x6d04: "Hui " +0x6d05: "Zui " +0x6d06: "Cheng " +0x6d07: "Yin " +0x6d08: "Wei " +0x6d09: "Hou " +0x6d0a: "Jian " +0x6d0b: "Yang " +0x6d0c: "Lie " +0x6d0d: "Si " +0x6d0e: "Ji " +0x6d0f: "Er " +0x6d10: "Xing " +0x6d11: "Fu " +0x6d12: "Sa " +0x6d13: "Suo " +0x6d14: "Zhi " +0x6d15: "Yin " +0x6d16: "Wu " +0x6d17: "Xi " +0x6d18: "Kao " +0x6d19: "Zhu " +0x6d1a: "Jiang " +0x6d1b: "Luo " +0x6d1c: "[?] " +0x6d1d: "An " +0x6d1e: "Dong " +0x6d1f: "Yi " +0x6d20: "Mou " +0x6d21: "Lei " +0x6d22: "Yi " +0x6d23: "Mi " +0x6d24: "Quan " +0x6d25: "Jin " +0x6d26: "Mo " +0x6d27: "Wei " +0x6d28: "Xiao " +0x6d29: "Xie " +0x6d2a: "Hong " +0x6d2b: "Xu " +0x6d2c: "Shuo " +0x6d2d: "Kuang " +0x6d2e: "Tao " +0x6d2f: "Qie " +0x6d30: "Ju " +0x6d31: "Er " +0x6d32: "Zhou " +0x6d33: "Ru " +0x6d34: "Ping " +0x6d35: "Xun " +0x6d36: "Xiong " +0x6d37: "Zhi " +0x6d38: "Guang " +0x6d39: "Huan " +0x6d3a: "Ming " +0x6d3b: "Huo " +0x6d3c: "Wa " +0x6d3d: "Qia " +0x6d3e: "Pai " +0x6d3f: "Wu " +0x6d40: "Qu " +0x6d41: "Liu " +0x6d42: "Yi " +0x6d43: "Jia " +0x6d44: "Jing " +0x6d45: "Qian " +0x6d46: "Jiang " +0x6d47: "Jiao " +0x6d48: "Cheng " +0x6d49: "Shi " +0x6d4a: "Zhuo " +0x6d4b: "Ce " +0x6d4c: "Pal " +0x6d4d: "Kuai " +0x6d4e: "Ji " +0x6d4f: "Liu " +0x6d50: "Chan " +0x6d51: "Hun " +0x6d52: "Hu " +0x6d53: "Nong " +0x6d54: "Xun " +0x6d55: "Jin " +0x6d56: "Lie " +0x6d57: "Qiu " +0x6d58: "Wei " +0x6d59: "Zhe " +0x6d5a: "Jun " +0x6d5b: "Han " +0x6d5c: "Bang " +0x6d5d: "Mang " +0x6d5e: "Zhuo " +0x6d5f: "You " +0x6d60: "Xi " +0x6d61: "Bo " +0x6d62: "Dou " +0x6d63: "Wan " +0x6d64: "Hong " +0x6d65: "Yi " +0x6d66: "Pu " +0x6d67: "Ying " +0x6d68: "Lan " +0x6d69: "Hao " +0x6d6a: "Lang " +0x6d6b: "Han " +0x6d6c: "Li " +0x6d6d: "Geng " +0x6d6e: "Fu " +0x6d6f: "Wu " +0x6d70: "Lian " +0x6d71: "Chun " +0x6d72: "Feng " +0x6d73: "Yi " +0x6d74: "Yu " +0x6d75: "Tong " +0x6d76: "Lao " +0x6d77: "Hai " +0x6d78: "Jin " +0x6d79: "Jia " +0x6d7a: "Chong " +0x6d7b: "Weng " +0x6d7c: "Mei " +0x6d7d: "Sui " +0x6d7e: "Cheng " +0x6d7f: "Pei " +0x6d80: "Xian " +0x6d81: "Shen " +0x6d82: "Tu " +0x6d83: "Kun " +0x6d84: "Pin " +0x6d85: "Nie " +0x6d86: "Han " +0x6d87: "Jing " +0x6d88: "Xiao " +0x6d89: "She " +0x6d8a: "Nian " +0x6d8b: "Tu " +0x6d8c: "Yong " +0x6d8d: "Xiao " +0x6d8e: "Xian " +0x6d8f: "Ting " +0x6d90: "E " +0x6d91: "Su " +0x6d92: "Tun " +0x6d93: "Juan " +0x6d94: "Cen " +0x6d95: "Ti " +0x6d96: "Li " +0x6d97: "Shui " +0x6d98: "Si " +0x6d99: "Lei " +0x6d9a: "Shui " +0x6d9b: "Tao " +0x6d9c: "Du " +0x6d9d: "Lao " +0x6d9e: "Lai " +0x6d9f: "Lian " +0x6da0: "Wei " +0x6da1: "Wo " +0x6da2: "Yun " +0x6da3: "Huan " +0x6da4: "Di " +0x6da5: "[?] " +0x6da6: "Run " +0x6da7: "Jian " +0x6da8: "Zhang " +0x6da9: "Se " +0x6daa: "Fu " +0x6dab: "Guan " +0x6dac: "Xing " +0x6dad: "Shou " +0x6dae: "Shuan " +0x6daf: "Ya " +0x6db0: "Chuo " +0x6db1: "Zhang " +0x6db2: "Ye " +0x6db3: "Kong " +0x6db4: "Wo " +0x6db5: "Han " +0x6db6: "Tuo " +0x6db7: "Dong " +0x6db8: "He " +0x6db9: "Wo " +0x6dba: "Ju " +0x6dbb: "Gan " +0x6dbc: "Liang " +0x6dbd: "Hun " +0x6dbe: "Ta " +0x6dbf: "Zhuo " +0x6dc0: "Dian " +0x6dc1: "Qie " +0x6dc2: "De " +0x6dc3: "Juan " +0x6dc4: "Zi " +0x6dc5: "Xi " +0x6dc6: "Yao " +0x6dc7: "Qi " +0x6dc8: "Gu " +0x6dc9: "Guo " +0x6dca: "Han " +0x6dcb: "Lin " +0x6dcc: "Tang " +0x6dcd: "Zhou " +0x6dce: "Peng " +0x6dcf: "Hao " +0x6dd0: "Chang " +0x6dd1: "Shu " +0x6dd2: "Qi " +0x6dd3: "Fang " +0x6dd4: "Chi " +0x6dd5: "Lu " +0x6dd6: "Nao " +0x6dd7: "Ju " +0x6dd8: "Tao " +0x6dd9: "Cong " +0x6dda: "Lei " +0x6ddb: "Zhi " +0x6ddc: "Peng " +0x6ddd: "Fei " +0x6dde: "Song " +0x6ddf: "Tian " +0x6de0: "Pi " +0x6de1: "Dan " +0x6de2: "Yu " +0x6de3: "Ni " +0x6de4: "Yu " +0x6de5: "Lu " +0x6de6: "Gan " +0x6de7: "Mi " +0x6de8: "Jing " +0x6de9: "Ling " +0x6dea: "Lun " +0x6deb: "Yin " +0x6dec: "Cui " +0x6ded: "Qu " +0x6dee: "Huai " +0x6def: "Yu " +0x6df0: "Nian " +0x6df1: "Shen " +0x6df2: "Piao " +0x6df3: "Chun " +0x6df4: "Wa " +0x6df5: "Yuan " +0x6df6: "Lai " +0x6df7: "Hun " +0x6df8: "Qing " +0x6df9: "Yan " +0x6dfa: "Qian " +0x6dfb: "Tian " +0x6dfc: "Miao " +0x6dfd: "Zhi " +0x6dfe: "Yin " +0x6dff: "Mi " +/* x06e */ +0x6e00: "Ben " +0x6e01: "Yuan " +0x6e02: "Wen " +0x6e03: "Re " +0x6e04: "Fei " +0x6e05: "Qing " +0x6e06: "Yuan " +0x6e07: "Ke " +0x6e08: "Ji " +0x6e09: "She " +0x6e0a: "Yuan " +0x6e0b: "Shibui " +0x6e0c: "Lu " +0x6e0d: "Zi " +0x6e0e: "Du " +0x6e0f: "[?] " +0x6e10: "Jian " +0x6e11: "Min " +0x6e12: "Pi " +0x6e13: "Tani " +0x6e14: "Yu " +0x6e15: "Yuan " +0x6e16: "Shen " +0x6e17: "Shen " +0x6e18: "Rou " +0x6e19: "Huan " +0x6e1a: "Zhu " +0x6e1b: "Jian " +0x6e1c: "Nuan " +0x6e1d: "Yu " +0x6e1e: "Qiu " +0x6e1f: "Ting " +0x6e20: "Qu " +0x6e21: "Du " +0x6e22: "Feng " +0x6e23: "Zha " +0x6e24: "Bo " +0x6e25: "Wo " +0x6e26: "Wo " +0x6e27: "Di " +0x6e28: "Wei " +0x6e29: "Wen " +0x6e2a: "Ru " +0x6e2b: "Xie " +0x6e2c: "Ce " +0x6e2d: "Wei " +0x6e2e: "Ge " +0x6e2f: "Gang " +0x6e30: "Yan " +0x6e31: "Hong " +0x6e32: "Xuan " +0x6e33: "Mi " +0x6e34: "Ke " +0x6e35: "Mao " +0x6e36: "Ying " +0x6e37: "Yan " +0x6e38: "You " +0x6e39: "Hong " +0x6e3a: "Miao " +0x6e3b: "Xing " +0x6e3c: "Mei " +0x6e3d: "Zai " +0x6e3e: "Hun " +0x6e3f: "Nai " +0x6e40: "Kui " +0x6e41: "Shi " +0x6e42: "E " +0x6e43: "Pai " +0x6e44: "Mei " +0x6e45: "Lian " +0x6e46: "Qi " +0x6e47: "Qi " +0x6e48: "Mei " +0x6e49: "Tian " +0x6e4a: "Cou " +0x6e4b: "Wei " +0x6e4c: "Can " +0x6e4d: "Tuan " +0x6e4e: "Mian " +0x6e4f: "Hui " +0x6e50: "Mo " +0x6e51: "Xu " +0x6e52: "Ji " +0x6e53: "Pen " +0x6e54: "Jian " +0x6e55: "Jian " +0x6e56: "Hu " +0x6e57: "Feng " +0x6e58: "Xiang " +0x6e59: "Yi " +0x6e5a: "Yin " +0x6e5b: "Zhan " +0x6e5c: "Shi " +0x6e5d: "Jie " +0x6e5e: "Cheng " +0x6e5f: "Huang " +0x6e60: "Tan " +0x6e61: "Yu " +0x6e62: "Bi " +0x6e63: "Min " +0x6e64: "Shi " +0x6e65: "Tu " +0x6e66: "Sheng " +0x6e67: "Yong " +0x6e68: "Qu " +0x6e69: "Zhong " +0x6e6a: "Suei " +0x6e6b: "Jiu " +0x6e6c: "Jiao " +0x6e6d: "Qiou " +0x6e6e: "Yin " +0x6e6f: "Tang " +0x6e70: "Long " +0x6e71: "Huo " +0x6e72: "Yuan " +0x6e73: "Nan " +0x6e74: "Ban " +0x6e75: "You " +0x6e76: "Quan " +0x6e77: "Chui " +0x6e78: "Liang " +0x6e79: "Chan " +0x6e7a: "Yan " +0x6e7b: "Chun " +0x6e7c: "Nie " +0x6e7d: "Zi " +0x6e7e: "Wan " +0x6e7f: "Shi " +0x6e80: "Man " +0x6e81: "Ying " +0x6e82: "Ratsu " +0x6e83: "Kui " +0x6e84: "[?] " +0x6e85: "Jian " +0x6e86: "Xu " +0x6e87: "Lu " +0x6e88: "Gui " +0x6e89: "Gai " +0x6e8a: "[?] " +0x6e8b: "[?] " +0x6e8c: "Po " +0x6e8d: "Jin " +0x6e8e: "Gui " +0x6e8f: "Tang " +0x6e90: "Yuan " +0x6e91: "Suo " +0x6e92: "Yuan " +0x6e93: "Lian " +0x6e94: "Yao " +0x6e95: "Meng " +0x6e96: "Zhun " +0x6e97: "Sheng " +0x6e98: "Ke " +0x6e99: "Tai " +0x6e9a: "Da " +0x6e9b: "Wa " +0x6e9c: "Liu " +0x6e9d: "Gou " +0x6e9e: "Sao " +0x6e9f: "Ming " +0x6ea0: "Zha " +0x6ea1: "Shi " +0x6ea2: "Yi " +0x6ea3: "Lun " +0x6ea4: "Ma " +0x6ea5: "Pu " +0x6ea6: "Wei " +0x6ea7: "Li " +0x6ea8: "Cai " +0x6ea9: "Wu " +0x6eaa: "Xi " +0x6eab: "Wen " +0x6eac: "Qiang " +0x6ead: "Ze " +0x6eae: "Shi " +0x6eaf: "Su " +0x6eb0: "Yi " +0x6eb1: "Zhen " +0x6eb2: "Sou " +0x6eb3: "Yun " +0x6eb4: "Xiu " +0x6eb5: "Yin " +0x6eb6: "Rong " +0x6eb7: "Hun " +0x6eb8: "Su " +0x6eb9: "Su " +0x6eba: "Ni " +0x6ebb: "Ta " +0x6ebc: "Shi " +0x6ebd: "Ru " +0x6ebe: "Wei " +0x6ebf: "Pan " +0x6ec0: "Chu " +0x6ec1: "Chu " +0x6ec2: "Pang " +0x6ec3: "Weng " +0x6ec4: "Cang " +0x6ec5: "Mie " +0x6ec6: "He " +0x6ec7: "Dian " +0x6ec8: "Hao " +0x6ec9: "Huang " +0x6eca: "Xi " +0x6ecb: "Zi " +0x6ecc: "Di " +0x6ecd: "Zhi " +0x6ece: "Ying " +0x6ecf: "Fu " +0x6ed0: "Jie " +0x6ed1: "Hua " +0x6ed2: "Ge " +0x6ed3: "Zi " +0x6ed4: "Tao " +0x6ed5: "Teng " +0x6ed6: "Sui " +0x6ed7: "Bi " +0x6ed8: "Jiao " +0x6ed9: "Hui " +0x6eda: "Gun " +0x6edb: "Yin " +0x6edc: "Gao " +0x6edd: "Long " +0x6ede: "Zhi " +0x6edf: "Yan " +0x6ee0: "She " +0x6ee1: "Man " +0x6ee2: "Ying " +0x6ee3: "Chun " +0x6ee4: "Lu " +0x6ee5: "Lan " +0x6ee6: "Luan " +0x6ee7: "[?] " +0x6ee8: "Bin " +0x6ee9: "Tan " +0x6eea: "Yu " +0x6eeb: "Sou " +0x6eec: "Hu " +0x6eed: "Bi " +0x6eee: "Biao " +0x6eef: "Zhi " +0x6ef0: "Jiang " +0x6ef1: "Kou " +0x6ef2: "Shen " +0x6ef3: "Shang " +0x6ef4: "Di " +0x6ef5: "Mi " +0x6ef6: "Ao " +0x6ef7: "Lu " +0x6ef8: "Hu " +0x6ef9: "Hu " +0x6efa: "You " +0x6efb: "Chan " +0x6efc: "Fan " +0x6efd: "Yong " +0x6efe: "Gun " +0x6eff: "Man " +/* x06f */ +0x6f00: "Qing " +0x6f01: "Yu " +0x6f02: "Piao " +0x6f03: "Ji " +0x6f04: "Ya " +0x6f05: "Jiao " +0x6f06: "Qi " +0x6f07: "Xi " +0x6f08: "Ji " +0x6f09: "Lu " +0x6f0a: "Lu " +0x6f0b: "Long " +0x6f0c: "Jin " +0x6f0d: "Guo " +0x6f0e: "Cong " +0x6f0f: "Lou " +0x6f10: "Zhi " +0x6f11: "Gai " +0x6f12: "Qiang " +0x6f13: "Li " +0x6f14: "Yan " +0x6f15: "Cao " +0x6f16: "Jiao " +0x6f17: "Cong " +0x6f18: "Qun " +0x6f19: "Tuan " +0x6f1a: "Ou " +0x6f1b: "Teng " +0x6f1c: "Ye " +0x6f1d: "Xi " +0x6f1e: "Mi " +0x6f1f: "Tang " +0x6f20: "Mo " +0x6f21: "Shang " +0x6f22: "Han " +0x6f23: "Lian " +0x6f24: "Lan " +0x6f25: "Wa " +0x6f26: "Li " +0x6f27: "Qian " +0x6f28: "Feng " +0x6f29: "Xuan " +0x6f2a: "Yi " +0x6f2b: "Man " +0x6f2c: "Zi " +0x6f2d: "Mang " +0x6f2e: "Kang " +0x6f2f: "Lei " +0x6f30: "Peng " +0x6f31: "Shu " +0x6f32: "Zhang " +0x6f33: "Zhang " +0x6f34: "Chong " +0x6f35: "Xu " +0x6f36: "Huan " +0x6f37: "Kuo " +0x6f38: "Jian " +0x6f39: "Yan " +0x6f3a: "Chuang " +0x6f3b: "Liao " +0x6f3c: "Cui " +0x6f3d: "Ti " +0x6f3e: "Yang " +0x6f3f: "Jiang " +0x6f40: "Cong " +0x6f41: "Ying " +0x6f42: "Hong " +0x6f43: "Xun " +0x6f44: "Shu " +0x6f45: "Guan " +0x6f46: "Ying " +0x6f47: "Xiao " +0x6f48: "[?] " +0x6f49: "[?] " +0x6f4a: "Xu " +0x6f4b: "Lian " +0x6f4c: "Zhi " +0x6f4d: "Wei " +0x6f4e: "Pi " +0x6f4f: "Jue " +0x6f50: "Jiao " +0x6f51: "Po " +0x6f52: "Dang " +0x6f53: "Hui " +0x6f54: "Jie " +0x6f55: "Wu " +0x6f56: "Pa " +0x6f57: "Ji " +0x6f58: "Pan " +0x6f59: "Gui " +0x6f5a: "Xiao " +0x6f5b: "Qian " +0x6f5c: "Qian " +0x6f5d: "Xi " +0x6f5e: "Lu " +0x6f5f: "Xi " +0x6f60: "Xuan " +0x6f61: "Dun " +0x6f62: "Huang " +0x6f63: "Min " +0x6f64: "Run " +0x6f65: "Su " +0x6f66: "Liao " +0x6f67: "Zhen " +0x6f68: "Zhong " +0x6f69: "Yi " +0x6f6a: "Di " +0x6f6b: "Wan " +0x6f6c: "Dan " +0x6f6d: "Tan " +0x6f6e: "Chao " +0x6f6f: "Xun " +0x6f70: "Kui " +0x6f71: "Yie " +0x6f72: "Shao " +0x6f73: "Tu " +0x6f74: "Zhu " +0x6f75: "San " +0x6f76: "Hei " +0x6f77: "Bi " +0x6f78: "Shan " +0x6f79: "Chan " +0x6f7a: "Chan " +0x6f7b: "Shu " +0x6f7c: "Tong " +0x6f7d: "Pu " +0x6f7e: "Lin " +0x6f7f: "Wei " +0x6f80: "Se " +0x6f81: "Se " +0x6f82: "Cheng " +0x6f83: "Jiong " +0x6f84: "Cheng " +0x6f85: "Hua " +0x6f86: "Jiao " +0x6f87: "Lao " +0x6f88: "Che " +0x6f89: "Gan " +0x6f8a: "Cun " +0x6f8b: "Heng " +0x6f8c: "Si " +0x6f8d: "Shu " +0x6f8e: "Peng " +0x6f8f: "Han " +0x6f90: "Yun " +0x6f91: "Liu " +0x6f92: "Hong " +0x6f93: "Fu " +0x6f94: "Hao " +0x6f95: "He " +0x6f96: "Xian " +0x6f97: "Jian " +0x6f98: "Shan " +0x6f99: "Xi " +0x6f9a: "Oki " +0x6f9b: "[?] " +0x6f9c: "Lan " +0x6f9d: "[?] " +0x6f9e: "Yu " +0x6f9f: "Lin " +0x6fa0: "Min " +0x6fa1: "Zao " +0x6fa2: "Dang " +0x6fa3: "Wan " +0x6fa4: "Ze " +0x6fa5: "Xie " +0x6fa6: "Yu " +0x6fa7: "Li " +0x6fa8: "Shi " +0x6fa9: "Xue " +0x6faa: "Ling " +0x6fab: "Man " +0x6fac: "Zi " +0x6fad: "Yong " +0x6fae: "Kuai " +0x6faf: "Can " +0x6fb0: "Lian " +0x6fb1: "Dian " +0x6fb2: "Ye " +0x6fb3: "Ao " +0x6fb4: "Huan " +0x6fb5: "Zhen " +0x6fb6: "Chan " +0x6fb7: "Man " +0x6fb8: "Dan " +0x6fb9: "Dan " +0x6fba: "Yi " +0x6fbb: "Sui " +0x6fbc: "Pi " +0x6fbd: "Ju " +0x6fbe: "Ta " +0x6fbf: "Qin " +0x6fc0: "Ji " +0x6fc1: "Zhuo " +0x6fc2: "Lian " +0x6fc3: "Nong " +0x6fc4: "Guo " +0x6fc5: "Jin " +0x6fc6: "Fen " +0x6fc7: "Se " +0x6fc8: "Ji " +0x6fc9: "Sui " +0x6fca: "Hui " +0x6fcb: "Chu " +0x6fcc: "Ta " +0x6fcd: "Song " +0x6fce: "Ding " +0x6fcf: "[?] " +0x6fd0: "Zhu " +0x6fd1: "Lai " +0x6fd2: "Bin " +0x6fd3: "Lian " +0x6fd4: "Mi " +0x6fd5: "Shi " +0x6fd6: "Shu " +0x6fd7: "Mi " +0x6fd8: "Ning " +0x6fd9: "Ying " +0x6fda: "Ying " +0x6fdb: "Meng " +0x6fdc: "Jin " +0x6fdd: "Qi " +0x6fde: "Pi " +0x6fdf: "Ji " +0x6fe0: "Hao " +0x6fe1: "Ru " +0x6fe2: "Zui " +0x6fe3: "Wo " +0x6fe4: "Tao " +0x6fe5: "Yin " +0x6fe6: "Yin " +0x6fe7: "Dui " +0x6fe8: "Ci " +0x6fe9: "Huo " +0x6fea: "Jing " +0x6feb: "Lan " +0x6fec: "Jun " +0x6fed: "Ai " +0x6fee: "Pu " +0x6fef: "Zhuo " +0x6ff0: "Wei " +0x6ff1: "Bin " +0x6ff2: "Gu " +0x6ff3: "Qian " +0x6ff4: "Xing " +0x6ff5: "Hama " +0x6ff6: "Kuo " +0x6ff7: "Fei " +0x6ff8: "[?] " +0x6ff9: "Boku " +0x6ffa: "Jian " +0x6ffb: "Wei " +0x6ffc: "Luo " +0x6ffd: "Zan " +0x6ffe: "Lu " +0x6fff: "Li " +/* x070 */ +0x7000: "You " +0x7001: "Yang " +0x7002: "Lu " +0x7003: "Si " +0x7004: "Jie " +0x7005: "Ying " +0x7006: "Du " +0x7007: "Wang " +0x7008: "Hui " +0x7009: "Xie " +0x700a: "Pan " +0x700b: "Shen " +0x700c: "Biao " +0x700d: "Chan " +0x700e: "Mo " +0x700f: "Liu " +0x7010: "Jian " +0x7011: "Pu " +0x7012: "Se " +0x7013: "Cheng " +0x7014: "Gu " +0x7015: "Bin " +0x7016: "Huo " +0x7017: "Xian " +0x7018: "Lu " +0x7019: "Qin " +0x701a: "Han " +0x701b: "Ying " +0x701c: "Yong " +0x701d: "Li " +0x701e: "Jing " +0x701f: "Xiao " +0x7020: "Ying " +0x7021: "Sui " +0x7022: "Wei " +0x7023: "Xie " +0x7024: "Huai " +0x7025: "Hao " +0x7026: "Zhu " +0x7027: "Long " +0x7028: "Lai " +0x7029: "Dui " +0x702a: "Fan " +0x702b: "Hu " +0x702c: "Lai " +0x702d: "[?] " +0x702e: "[?] " +0x702f: "Ying " +0x7030: "Mi " +0x7031: "Ji " +0x7032: "Lian " +0x7033: "Jian " +0x7034: "Ying " +0x7035: "Fen " +0x7036: "Lin " +0x7037: "Yi " +0x7038: "Jian " +0x7039: "Yue " +0x703a: "Chan " +0x703b: "Dai " +0x703c: "Rang " +0x703d: "Jian " +0x703e: "Lan " +0x703f: "Fan " +0x7040: "Shuang " +0x7041: "Yuan " +0x7042: "Zhuo " +0x7043: "Feng " +0x7044: "She " +0x7045: "Lei " +0x7046: "Lan " +0x7047: "Cong " +0x7048: "Qu " +0x7049: "Yong " +0x704a: "Qian " +0x704b: "Fa " +0x704c: "Guan " +0x704d: "Que " +0x704e: "Yan " +0x704f: "Hao " +0x7050: "Hyeng " +0x7051: "Sa " +0x7052: "Zan " +0x7053: "Luan " +0x7054: "Yan " +0x7055: "Li " +0x7056: "Mi " +0x7057: "Shan " +0x7058: "Tan " +0x7059: "Dang " +0x705a: "Jiao " +0x705b: "Chan " +0x705c: "[?] " +0x705d: "Hao " +0x705e: "Ba " +0x705f: "Zhu " +0x7060: "Lan " +0x7061: "Lan " +0x7062: "Nang " +0x7063: "Wan " +0x7064: "Luan " +0x7065: "Xun " +0x7066: "Xian " +0x7067: "Yan " +0x7068: "Gan " +0x7069: "Yan " +0x706a: "Yu " +0x706b: "Huo " +0x706c: "Si " +0x706d: "Mie " +0x706e: "Guang " +0x706f: "Deng " +0x7070: "Hui " +0x7071: "Xiao " +0x7072: "Xiao " +0x7073: "Hu " +0x7074: "Hong " +0x7075: "Ling " +0x7076: "Zao " +0x7077: "Zhuan " +0x7078: "Jiu " +0x7079: "Zha " +0x707a: "Xie " +0x707b: "Chi " +0x707c: "Zhuo " +0x707d: "Zai " +0x707e: "Zai " +0x707f: "Can " +0x7080: "Yang " +0x7081: "Qi " +0x7082: "Zhong " +0x7083: "Fen " +0x7084: "Niu " +0x7085: "Jiong " +0x7086: "Wen " +0x7087: "Po " +0x7088: "Yi " +0x7089: "Lu " +0x708a: "Chui " +0x708b: "Pi " +0x708c: "Kai " +0x708d: "Pan " +0x708e: "Yan " +0x708f: "Kai " +0x7090: "Pang " +0x7091: "Mu " +0x7092: "Chao " +0x7093: "Liao " +0x7094: "Gui " +0x7095: "Kang " +0x7096: "Tun " +0x7097: "Guang " +0x7098: "Xin " +0x7099: "Zhi " +0x709a: "Guang " +0x709b: "Guang " +0x709c: "Wei " +0x709d: "Qiang " +0x709e: "[?] " +0x709f: "Da " +0x70a0: "Xia " +0x70a1: "Zheng " +0x70a2: "Zhu " +0x70a3: "Ke " +0x70a4: "Zhao " +0x70a5: "Fu " +0x70a6: "Ba " +0x70a7: "Duo " +0x70a8: "Duo " +0x70a9: "Ling " +0x70aa: "Zhuo " +0x70ab: "Xuan " +0x70ac: "Ju " +0x70ad: "Tan " +0x70ae: "Pao " +0x70af: "Jiong " +0x70b0: "Pao " +0x70b1: "Tai " +0x70b2: "Tai " +0x70b3: "Bing " +0x70b4: "Yang " +0x70b5: "Tong " +0x70b6: "Han " +0x70b7: "Zhu " +0x70b8: "Zha " +0x70b9: "Dian " +0x70ba: "Wei " +0x70bb: "Shi " +0x70bc: "Lian " +0x70bd: "Chi " +0x70be: "Huang " +0x70bf: "[?] " +0x70c0: "Hu " +0x70c1: "Shuo " +0x70c2: "Lan " +0x70c3: "Jing " +0x70c4: "Jiao " +0x70c5: "Xu " +0x70c6: "Xing " +0x70c7: "Quan " +0x70c8: "Lie " +0x70c9: "Huan " +0x70ca: "Yang " +0x70cb: "Xiao " +0x70cc: "Xiu " +0x70cd: "Xian " +0x70ce: "Yin " +0x70cf: "Wu " +0x70d0: "Zhou " +0x70d1: "Yao " +0x70d2: "Shi " +0x70d3: "Wei " +0x70d4: "Tong " +0x70d5: "Xue " +0x70d6: "Zai " +0x70d7: "Kai " +0x70d8: "Hong " +0x70d9: "Luo " +0x70da: "Xia " +0x70db: "Zhu " +0x70dc: "Xuan " +0x70dd: "Zheng " +0x70de: "Po " +0x70df: "Yan " +0x70e0: "Hui " +0x70e1: "Guang " +0x70e2: "Zhe " +0x70e3: "Hui " +0x70e4: "Kao " +0x70e5: "[?] " +0x70e6: "Fan " +0x70e7: "Shao " +0x70e8: "Ye " +0x70e9: "Hui " +0x70ea: "[?] " +0x70eb: "Tang " +0x70ec: "Jin " +0x70ed: "Re " +0x70ee: "[?] " +0x70ef: "Xi " +0x70f0: "Fu " +0x70f1: "Jiong " +0x70f2: "Che " +0x70f3: "Pu " +0x70f4: "Jing " +0x70f5: "Zhuo " +0x70f6: "Ting " +0x70f7: "Wan " +0x70f8: "Hai " +0x70f9: "Peng " +0x70fa: "Lang " +0x70fb: "Shan " +0x70fc: "Hu " +0x70fd: "Feng " +0x70fe: "Chi " +0x70ff: "Rong " +/* x071 */ +0x7100: "Hu " +0x7101: "Xi " +0x7102: "Shu " +0x7103: "He " +0x7104: "Xun " +0x7105: "Ku " +0x7106: "Jue " +0x7107: "Xiao " +0x7108: "Xi " +0x7109: "Yan " +0x710a: "Han " +0x710b: "Zhuang " +0x710c: "Jun " +0x710d: "Di " +0x710e: "Xie " +0x710f: "Ji " +0x7110: "Wu " +0x7111: "[?] " +0x7112: "[?] " +0x7113: "Han " +0x7114: "Yan " +0x7115: "Huan " +0x7116: "Men " +0x7117: "Ju " +0x7118: "Chou " +0x7119: "Bei " +0x711a: "Fen " +0x711b: "Lin " +0x711c: "Kun " +0x711d: "Hun " +0x711e: "Tun " +0x711f: "Xi " +0x7120: "Cui " +0x7121: "Wu " +0x7122: "Hong " +0x7123: "Ju " +0x7124: "Fu " +0x7125: "Wo " +0x7126: "Jiao " +0x7127: "Cong " +0x7128: "Feng " +0x7129: "Ping " +0x712a: "Qiong " +0x712b: "Ruo " +0x712c: "Xi " +0x712d: "Qiong " +0x712e: "Xin " +0x712f: "Zhuo " +0x7130: "Yan " +0x7131: "Yan " +0x7132: "Yi " +0x7133: "Jue " +0x7134: "Yu " +0x7135: "Gang " +0x7136: "Ran " +0x7137: "Pi " +0x7138: "Gu " +0x7139: "[?] " +0x713a: "Sheng " +0x713b: "Chang " +0x713c: "Shao " +0x713d: "[?] " +0x713e: "[?] " +0x713f: "[?] " +0x7140: "[?] " +0x7141: "Chen " +0x7142: "He " +0x7143: "Kui " +0x7144: "Zhong " +0x7145: "Duan " +0x7146: "Xia " +0x7147: "Hui " +0x7148: "Feng " +0x7149: "Lian " +0x714a: "Xuan " +0x714b: "Xing " +0x714c: "Huang " +0x714d: "Jiao " +0x714e: "Jian " +0x714f: "Bi " +0x7150: "Ying " +0x7151: "Zhu " +0x7152: "Wei " +0x7153: "Tuan " +0x7154: "Tian " +0x7155: "Xi " +0x7156: "Nuan " +0x7157: "Nuan " +0x7158: "Chan " +0x7159: "Yan " +0x715a: "Jiong " +0x715b: "Jiong " +0x715c: "Yu " +0x715d: "Mei " +0x715e: "Sha " +0x715f: "Wei " +0x7160: "Ye " +0x7161: "Xin " +0x7162: "Qiong " +0x7163: "Rou " +0x7164: "Mei " +0x7165: "Huan " +0x7166: "Xu " +0x7167: "Zhao " +0x7168: "Wei " +0x7169: "Fan " +0x716a: "Qiu " +0x716b: "Sui " +0x716c: "Yang " +0x716d: "Lie " +0x716e: "Zhu " +0x716f: "Jie " +0x7170: "Gao " +0x7171: "Gua " +0x7172: "Bao " +0x7173: "Hu " +0x7174: "Yun " +0x7175: "Xia " +0x7176: "[?] " +0x7177: "[?] " +0x7178: "Bian " +0x7179: "Gou " +0x717a: "Tui " +0x717b: "Tang " +0x717c: "Chao " +0x717d: "Shan " +0x717e: "N " +0x717f: "Bo " +0x7180: "Huang " +0x7181: "Xie " +0x7182: "Xi " +0x7183: "Wu " +0x7184: "Xi " +0x7185: "Yun " +0x7186: "He " +0x7187: "He " +0x7188: "Xi " +0x7189: "Yun " +0x718a: "Xiong " +0x718b: "Nai " +0x718c: "Shan " +0x718d: "Qiong " +0x718e: "Yao " +0x718f: "Xun " +0x7190: "Mi " +0x7191: "Lian " +0x7192: "Ying " +0x7193: "Wen " +0x7194: "Rong " +0x7195: "Oozutsu " +0x7196: "[?] " +0x7197: "Qiang " +0x7198: "Liu " +0x7199: "Xi " +0x719a: "Bi " +0x719b: "Biao " +0x719c: "Zong " +0x719d: "Lu " +0x719e: "Jian " +0x719f: "Shou " +0x71a0: "Yi " +0x71a1: "Lou " +0x71a2: "Feng " +0x71a3: "Sui " +0x71a4: "Yi " +0x71a5: "Tong " +0x71a6: "Jue " +0x71a7: "Zong " +0x71a8: "Yun " +0x71a9: "Hu " +0x71aa: "Yi " +0x71ab: "Zhi " +0x71ac: "Ao " +0x71ad: "Wei " +0x71ae: "Liao " +0x71af: "Han " +0x71b0: "Ou " +0x71b1: "Re " +0x71b2: "Jiong " +0x71b3: "Man " +0x71b4: "[?] " +0x71b5: "Shang " +0x71b6: "Cuan " +0x71b7: "Zeng " +0x71b8: "Jian " +0x71b9: "Xi " +0x71ba: "Xi " +0x71bb: "Xi " +0x71bc: "Yi " +0x71bd: "Xiao " +0x71be: "Chi " +0x71bf: "Huang " +0x71c0: "Chan " +0x71c1: "Ye " +0x71c2: "Qian " +0x71c3: "Ran " +0x71c4: "Yan " +0x71c5: "Xian " +0x71c6: "Qiao " +0x71c7: "Zun " +0x71c8: "Deng " +0x71c9: "Dun " +0x71ca: "Shen " +0x71cb: "Jiao " +0x71cc: "Fen " +0x71cd: "Si " +0x71ce: "Liao " +0x71cf: "Yu " +0x71d0: "Lin " +0x71d1: "Tong " +0x71d2: "Shao " +0x71d3: "Fen " +0x71d4: "Fan " +0x71d5: "Yan " +0x71d6: "Xun " +0x71d7: "Lan " +0x71d8: "Mei " +0x71d9: "Tang " +0x71da: "Yi " +0x71db: "Jing " +0x71dc: "Men " +0x71dd: "[?] " +0x71de: "[?] " +0x71df: "Ying " +0x71e0: "Yu " +0x71e1: "Yi " +0x71e2: "Xue " +0x71e3: "Lan " +0x71e4: "Tai " +0x71e5: "Zao " +0x71e6: "Can " +0x71e7: "Sui " +0x71e8: "Xi " +0x71e9: "Que " +0x71ea: "Cong " +0x71eb: "Lian " +0x71ec: "Hui " +0x71ed: "Zhu " +0x71ee: "Xie " +0x71ef: "Ling " +0x71f0: "Wei " +0x71f1: "Yi " +0x71f2: "Xie " +0x71f3: "Zhao " +0x71f4: "Hui " +0x71f5: "Tatsu " +0x71f6: "Nung " +0x71f7: "Lan " +0x71f8: "Ru " +0x71f9: "Xian " +0x71fa: "Kao " +0x71fb: "Xun " +0x71fc: "Jin " +0x71fd: "Chou " +0x71fe: "Chou " +0x71ff: "Yao " +/* x072 */ +0x7200: "He " +0x7201: "Lan " +0x7202: "Biao " +0x7203: "Rong " +0x7204: "Li " +0x7205: "Mo " +0x7206: "Bao " +0x7207: "Ruo " +0x7208: "Lu " +0x7209: "La " +0x720a: "Ao " +0x720b: "Xun " +0x720c: "Kuang " +0x720d: "Shuo " +0x720e: "[?] " +0x720f: "Li " +0x7210: "Lu " +0x7211: "Jue " +0x7212: "Liao " +0x7213: "Yan " +0x7214: "Xi " +0x7215: "Xie " +0x7216: "Long " +0x7217: "Ye " +0x7218: "[?] " +0x7219: "Rang " +0x721a: "Yue " +0x721b: "Lan " +0x721c: "Cong " +0x721d: "Jue " +0x721e: "Tong " +0x721f: "Guan " +0x7220: "[?] " +0x7221: "Che " +0x7222: "Mi " +0x7223: "Tang " +0x7224: "Lan " +0x7225: "Zhu " +0x7226: "[?] " +0x7227: "Ling " +0x7228: "Cuan " +0x7229: "Yu " +0x722a: "Zhua " +0x722b: "Tsumekanmuri " +0x722c: "Pa " +0x722d: "Zheng " +0x722e: "Pao " +0x722f: "Cheng " +0x7230: "Yuan " +0x7231: "Ai " +0x7232: "Wei " +0x7233: "[?] " +0x7234: "Jue " +0x7235: "Jue " +0x7236: "Fu " +0x7237: "Ye " +0x7238: "Ba " +0x7239: "Die " +0x723a: "Ye " +0x723b: "Yao " +0x723c: "Zu " +0x723d: "Shuang " +0x723e: "Er " +0x723f: "Qiang " +0x7240: "Chuang " +0x7241: "Ge " +0x7242: "Zang " +0x7243: "Die " +0x7244: "Qiang " +0x7245: "Yong " +0x7246: "Qiang " +0x7247: "Pian " +0x7248: "Ban " +0x7249: "Pan " +0x724a: "Shao " +0x724b: "Jian " +0x724c: "Pai " +0x724d: "Du " +0x724e: "Chuang " +0x724f: "Tou " +0x7250: "Zha " +0x7251: "Bian " +0x7252: "Die " +0x7253: "Bang " +0x7254: "Bo " +0x7255: "Chuang " +0x7256: "You " +0x7257: "[?] " +0x7258: "Du " +0x7259: "Ya " +0x725a: "Cheng " +0x725b: "Niu " +0x725c: "Ushihen " +0x725d: "Pin " +0x725e: "Jiu " +0x725f: "Mou " +0x7260: "Tuo " +0x7261: "Mu " +0x7262: "Lao " +0x7263: "Ren " +0x7264: "Mang " +0x7265: "Fang " +0x7266: "Mao " +0x7267: "Mu " +0x7268: "Gang " +0x7269: "Wu " +0x726a: "Yan " +0x726b: "Ge " +0x726c: "Bei " +0x726d: "Si " +0x726e: "Jian " +0x726f: "Gu " +0x7270: "You " +0x7271: "Ge " +0x7272: "Sheng " +0x7273: "Mu " +0x7274: "Di " +0x7275: "Qian " +0x7276: "Quan " +0x7277: "Quan " +0x7278: "Zi " +0x7279: "Te " +0x727a: "Xi " +0x727b: "Mang " +0x727c: "Keng " +0x727d: "Qian " +0x727e: "Wu " +0x727f: "Gu " +0x7280: "Xi " +0x7281: "Li " +0x7282: "Li " +0x7283: "Pou " +0x7284: "Ji " +0x7285: "Gang " +0x7286: "Zhi " +0x7287: "Ben " +0x7288: "Quan " +0x7289: "Run " +0x728a: "Du " +0x728b: "Ju " +0x728c: "Jia " +0x728d: "Jian " +0x728e: "Feng " +0x728f: "Pian " +0x7290: "Ke " +0x7291: "Ju " +0x7292: "Kao " +0x7293: "Chu " +0x7294: "Xi " +0x7295: "Bei " +0x7296: "Luo " +0x7297: "Jie " +0x7298: "Ma " +0x7299: "San " +0x729a: "Wei " +0x729b: "Li " +0x729c: "Dun " +0x729d: "Tong " +0x729e: "[?] " +0x729f: "Jiang " +0x72a0: "Ikenie " +0x72a1: "Li " +0x72a2: "Du " +0x72a3: "Lie " +0x72a4: "Pi " +0x72a5: "Piao " +0x72a6: "Bao " +0x72a7: "Xi " +0x72a8: "Chou " +0x72a9: "Wei " +0x72aa: "Kui " +0x72ab: "Chou " +0x72ac: "Quan " +0x72ad: "Fan " +0x72ae: "Ba " +0x72af: "Fan " +0x72b0: "Qiu " +0x72b1: "Ji " +0x72b2: "Cai " +0x72b3: "Chuo " +0x72b4: "An " +0x72b5: "Jie " +0x72b6: "Zhuang " +0x72b7: "Guang " +0x72b8: "Ma " +0x72b9: "You " +0x72ba: "Kang " +0x72bb: "Bo " +0x72bc: "Hou " +0x72bd: "Ya " +0x72be: "Yin " +0x72bf: "Huan " +0x72c0: "Zhuang " +0x72c1: "Yun " +0x72c2: "Kuang " +0x72c3: "Niu " +0x72c4: "Di " +0x72c5: "Qing " +0x72c6: "Zhong " +0x72c7: "Mu " +0x72c8: "Bei " +0x72c9: "Pi " +0x72ca: "Ju " +0x72cb: "Ni " +0x72cc: "Sheng " +0x72cd: "Pao " +0x72ce: "Xia " +0x72cf: "Tuo " +0x72d0: "Hu " +0x72d1: "Ling " +0x72d2: "Fei " +0x72d3: "Pi " +0x72d4: "Ni " +0x72d5: "Ao " +0x72d6: "You " +0x72d7: "Gou " +0x72d8: "Yue " +0x72d9: "Ju " +0x72da: "Dan " +0x72db: "Po " +0x72dc: "Gu " +0x72dd: "Xian " +0x72de: "Ning " +0x72df: "Huan " +0x72e0: "Hen " +0x72e1: "Jiao " +0x72e2: "He " +0x72e3: "Zhao " +0x72e4: "Ji " +0x72e5: "Xun " +0x72e6: "Shan " +0x72e7: "Ta " +0x72e8: "Rong " +0x72e9: "Shou " +0x72ea: "Tong " +0x72eb: "Lao " +0x72ec: "Du " +0x72ed: "Xia " +0x72ee: "Shi " +0x72ef: "Hua " +0x72f0: "Zheng " +0x72f1: "Yu " +0x72f2: "Sun " +0x72f3: "Yu " +0x72f4: "Bi " +0x72f5: "Mang " +0x72f6: "Xi " +0x72f7: "Juan " +0x72f8: "Li " +0x72f9: "Xia " +0x72fa: "Yin " +0x72fb: "Suan " +0x72fc: "Lang " +0x72fd: "Bei " +0x72fe: "Zhi " +0x72ff: "Yan " +/* x073 */ +0x7300: "Sha " +0x7301: "Li " +0x7302: "Han " +0x7303: "Xian " +0x7304: "Jing " +0x7305: "Pai " +0x7306: "Fei " +0x7307: "Yao " +0x7308: "Ba " +0x7309: "Qi " +0x730a: "Ni " +0x730b: "Biao " +0x730c: "Yin " +0x730d: "Lai " +0x730e: "Xi " +0x730f: "Jian " +0x7310: "Qiang " +0x7311: "Kun " +0x7312: "Yan " +0x7313: "Guo " +0x7314: "Zong " +0x7315: "Mi " +0x7316: "Chang " +0x7317: "Yi " +0x7318: "Zhi " +0x7319: "Zheng " +0x731a: "Ya " +0x731b: "Meng " +0x731c: "Cai " +0x731d: "Cu " +0x731e: "She " +0x731f: "Kari " +0x7320: "Cen " +0x7321: "Luo " +0x7322: "Hu " +0x7323: "Zong " +0x7324: "Ji " +0x7325: "Wei " +0x7326: "Feng " +0x7327: "Wo " +0x7328: "Yuan " +0x7329: "Xing " +0x732a: "Zhu " +0x732b: "Mao " +0x732c: "Wei " +0x732d: "Yuan " +0x732e: "Xian " +0x732f: "Tuan " +0x7330: "Ya " +0x7331: "Nao " +0x7332: "Xie " +0x7333: "Jia " +0x7334: "Hou " +0x7335: "Bian " +0x7336: "You " +0x7337: "You " +0x7338: "Mei " +0x7339: "Zha " +0x733a: "Yao " +0x733b: "Sun " +0x733c: "Bo " +0x733d: "Ming " +0x733e: "Hua " +0x733f: "Yuan " +0x7340: "Sou " +0x7341: "Ma " +0x7342: "Yuan " +0x7343: "Dai " +0x7344: "Yu " +0x7345: "Shi " +0x7346: "Hao " +0x7347: "[?] " +0x7348: "Yi " +0x7349: "Zhen " +0x734a: "Chuang " +0x734b: "Hao " +0x734c: "Man " +0x734d: "Jing " +0x734e: "Jiang " +0x734f: "Mu " +0x7350: "Zhang " +0x7351: "Chan " +0x7352: "Ao " +0x7353: "Ao " +0x7354: "Hao " +0x7355: "Cui " +0x7356: "Fen " +0x7357: "Jue " +0x7358: "Bi " +0x7359: "Bi " +0x735a: "Huang " +0x735b: "Pu " +0x735c: "Lin " +0x735d: "Yu " +0x735e: "Tong " +0x735f: "Yao " +0x7360: "Liao " +0x7361: "Shuo " +0x7362: "Xiao " +0x7363: "Swu " +0x7364: "Ton " +0x7365: "Xi " +0x7366: "Ge " +0x7367: "Juan " +0x7368: "Du " +0x7369: "Hui " +0x736a: "Kuai " +0x736b: "Xian " +0x736c: "Xie " +0x736d: "Ta " +0x736e: "Xian " +0x736f: "Xun " +0x7370: "Ning " +0x7371: "Pin " +0x7372: "Huo " +0x7373: "Nou " +0x7374: "Meng " +0x7375: "Lie " +0x7376: "Nao " +0x7377: "Guang " +0x7378: "Shou " +0x7379: "Lu " +0x737a: "Ta " +0x737b: "Xian " +0x737c: "Mi " +0x737d: "Rang " +0x737e: "Huan " +0x737f: "Nao " +0x7380: "Luo " +0x7381: "Xian " +0x7382: "Qi " +0x7383: "Jue " +0x7384: "Xuan " +0x7385: "Miao " +0x7386: "Zi " +0x7387: "Lu " +0x7388: "Lu " +0x7389: "Yu " +0x738a: "Su " +0x738b: "Wang " +0x738c: "Qiu " +0x738d: "Ga " +0x738e: "Ding " +0x738f: "Le " +0x7390: "Ba " +0x7391: "Ji " +0x7392: "Hong " +0x7393: "Di " +0x7394: "Quan " +0x7395: "Gan " +0x7396: "Jiu " +0x7397: "Yu " +0x7398: "Ji " +0x7399: "Yu " +0x739a: "Yang " +0x739b: "Ma " +0x739c: "Gong " +0x739d: "Wu " +0x739e: "Fu " +0x739f: "Wen " +0x73a0: "Jie " +0x73a1: "Ya " +0x73a2: "Fen " +0x73a3: "Bian " +0x73a4: "Beng " +0x73a5: "Yue " +0x73a6: "Jue " +0x73a7: "Yun " +0x73a8: "Jue " +0x73a9: "Wan " +0x73aa: "Jian " +0x73ab: "Mei " +0x73ac: "Dan " +0x73ad: "Pi " +0x73ae: "Wei " +0x73af: "Huan " +0x73b0: "Xian " +0x73b1: "Qiang " +0x73b2: "Ling " +0x73b3: "Dai " +0x73b4: "Yi " +0x73b5: "An " +0x73b6: "Ping " +0x73b7: "Dian " +0x73b8: "Fu " +0x73b9: "Xuan " +0x73ba: "Xi " +0x73bb: "Bo " +0x73bc: "Ci " +0x73bd: "Gou " +0x73be: "Jia " +0x73bf: "Shao " +0x73c0: "Po " +0x73c1: "Ci " +0x73c2: "Ke " +0x73c3: "Ran " +0x73c4: "Sheng " +0x73c5: "Shen " +0x73c6: "Yi " +0x73c7: "Zu " +0x73c8: "Jia " +0x73c9: "Min " +0x73ca: "Shan " +0x73cb: "Liu " +0x73cc: "Bi " +0x73cd: "Zhen " +0x73ce: "Zhen " +0x73cf: "Jue " +0x73d0: "Fa " +0x73d1: "Long " +0x73d2: "Jin " +0x73d3: "Jiao " +0x73d4: "Jian " +0x73d5: "Li " +0x73d6: "Guang " +0x73d7: "Xian " +0x73d8: "Zhou " +0x73d9: "Gong " +0x73da: "Yan " +0x73db: "Xiu " +0x73dc: "Yang " +0x73dd: "Xu " +0x73de: "Luo " +0x73df: "Su " +0x73e0: "Zhu " +0x73e1: "Qin " +0x73e2: "Ken " +0x73e3: "Xun " +0x73e4: "Bao " +0x73e5: "Er " +0x73e6: "Xiang " +0x73e7: "Yao " +0x73e8: "Xia " +0x73e9: "Heng " +0x73ea: "Gui " +0x73eb: "Chong " +0x73ec: "Xu " +0x73ed: "Ban " +0x73ee: "Pei " +0x73ef: "[?] " +0x73f0: "Dang " +0x73f1: "Ei " +0x73f2: "Hun " +0x73f3: "Wen " +0x73f4: "E " +0x73f5: "Cheng " +0x73f6: "Ti " +0x73f7: "Wu " +0x73f8: "Wu " +0x73f9: "Cheng " +0x73fa: "Jun " +0x73fb: "Mei " +0x73fc: "Bei " +0x73fd: "Ting " +0x73fe: "Xian " +0x73ff: "Chuo " +/* x074 */ +0x7400: "Han " +0x7401: "Xuan " +0x7402: "Yan " +0x7403: "Qiu " +0x7404: "Quan " +0x7405: "Lang " +0x7406: "Li " +0x7407: "Xiu " +0x7408: "Fu " +0x7409: "Liu " +0x740a: "Ye " +0x740b: "Xi " +0x740c: "Ling " +0x740d: "Li " +0x740e: "Jin " +0x740f: "Lian " +0x7410: "Suo " +0x7411: "Chiisai " +0x7412: "[?] " +0x7413: "Wan " +0x7414: "Dian " +0x7415: "Pin " +0x7416: "Zhan " +0x7417: "Cui " +0x7418: "Min " +0x7419: "Yu " +0x741a: "Ju " +0x741b: "Chen " +0x741c: "Lai " +0x741d: "Wen " +0x741e: "Sheng " +0x741f: "Wei " +0x7420: "Dian " +0x7421: "Chu " +0x7422: "Zhuo " +0x7423: "Pei " +0x7424: "Cheng " +0x7425: "Hu " +0x7426: "Qi " +0x7427: "E " +0x7428: "Kun " +0x7429: "Chang " +0x742a: "Qi " +0x742b: "Beng " +0x742c: "Wan " +0x742d: "Lu " +0x742e: "Cong " +0x742f: "Guan " +0x7430: "Yan " +0x7431: "Diao " +0x7432: "Bei " +0x7433: "Lin " +0x7434: "Qin " +0x7435: "Pi " +0x7436: "Pa " +0x7437: "Que " +0x7438: "Zhuo " +0x7439: "Qin " +0x743a: "Fa " +0x743b: "[?] " +0x743c: "Qiong " +0x743d: "Du " +0x743e: "Jie " +0x743f: "Hun " +0x7440: "Yu " +0x7441: "Mao " +0x7442: "Mei " +0x7443: "Chun " +0x7444: "Xuan " +0x7445: "Ti " +0x7446: "Xing " +0x7447: "Dai " +0x7448: "Rou " +0x7449: "Min " +0x744a: "Zhen " +0x744b: "Wei " +0x744c: "Ruan " +0x744d: "Huan " +0x744e: "Jie " +0x744f: "Chuan " +0x7450: "Jian " +0x7451: "Zhuan " +0x7452: "Yang " +0x7453: "Lian " +0x7454: "Quan " +0x7455: "Xia " +0x7456: "Duan " +0x7457: "Yuan " +0x7458: "Ye " +0x7459: "Nao " +0x745a: "Hu " +0x745b: "Ying " +0x745c: "Yu " +0x745d: "Huang " +0x745e: "Rui " +0x745f: "Se " +0x7460: "Liu " +0x7461: "Shi " +0x7462: "Rong " +0x7463: "Suo " +0x7464: "Yao " +0x7465: "Wen " +0x7466: "Wu " +0x7467: "Jin " +0x7468: "Jin " +0x7469: "Ying " +0x746a: "Ma " +0x746b: "Tao " +0x746c: "Liu " +0x746d: "Tang " +0x746e: "Li " +0x746f: "Lang " +0x7470: "Gui " +0x7471: "Zhen " +0x7472: "Qiang " +0x7473: "Cuo " +0x7474: "Jue " +0x7475: "Zhao " +0x7476: "Yao " +0x7477: "Ai " +0x7478: "Bin " +0x7479: "Tu " +0x747a: "Chang " +0x747b: "Kun " +0x747c: "Zhuan " +0x747d: "Cong " +0x747e: "Jin " +0x747f: "Yi " +0x7480: "Cui " +0x7481: "Cong " +0x7482: "Qi " +0x7483: "Li " +0x7484: "Ying " +0x7485: "Suo " +0x7486: "Qiu " +0x7487: "Xuan " +0x7488: "Ao " +0x7489: "Lian " +0x748a: "Man " +0x748b: "Zhang " +0x748c: "Yin " +0x748d: "[?] " +0x748e: "Ying " +0x748f: "Zhi " +0x7490: "Lu " +0x7491: "Wu " +0x7492: "Deng " +0x7493: "Xiou " +0x7494: "Zeng " +0x7495: "Xun " +0x7496: "Qu " +0x7497: "Dang " +0x7498: "Lin " +0x7499: "Liao " +0x749a: "Qiong " +0x749b: "Su " +0x749c: "Huang " +0x749d: "Gui " +0x749e: "Pu " +0x749f: "Jing " +0x74a0: "Fan " +0x74a1: "Jin " +0x74a2: "Liu " +0x74a3: "Ji " +0x74a4: "[?] " +0x74a5: "Jing " +0x74a6: "Ai " +0x74a7: "Bi " +0x74a8: "Can " +0x74a9: "Qu " +0x74aa: "Zao " +0x74ab: "Dang " +0x74ac: "Jiao " +0x74ad: "Gun " +0x74ae: "Tan " +0x74af: "Hui " +0x74b0: "Huan " +0x74b1: "Se " +0x74b2: "Sui " +0x74b3: "Tian " +0x74b4: "[?] " +0x74b5: "Yu " +0x74b6: "Jin " +0x74b7: "Lu " +0x74b8: "Bin " +0x74b9: "Shou " +0x74ba: "Wen " +0x74bb: "Zui " +0x74bc: "Lan " +0x74bd: "Xi " +0x74be: "Ji " +0x74bf: "Xuan " +0x74c0: "Ruan " +0x74c1: "Huo " +0x74c2: "Gai " +0x74c3: "Lei " +0x74c4: "Du " +0x74c5: "Li " +0x74c6: "Zhi " +0x74c7: "Rou " +0x74c8: "Li " +0x74c9: "Zan " +0x74ca: "Qiong " +0x74cb: "Zhe " +0x74cc: "Gui " +0x74cd: "Sui " +0x74ce: "La " +0x74cf: "Long " +0x74d0: "Lu " +0x74d1: "Li " +0x74d2: "Zan " +0x74d3: "Lan " +0x74d4: "Ying " +0x74d5: "Mi " +0x74d6: "Xiang " +0x74d7: "Xi " +0x74d8: "Guan " +0x74d9: "Dao " +0x74da: "Zan " +0x74db: "Huan " +0x74dc: "Gua " +0x74dd: "Bo " +0x74de: "Die " +0x74df: "Bao " +0x74e0: "Hu " +0x74e1: "Zhi " +0x74e2: "Piao " +0x74e3: "Ban " +0x74e4: "Rang " +0x74e5: "Li " +0x74e6: "Wa " +0x74e7: "Dekaguramu " +0x74e8: "Jiang " +0x74e9: "Qian " +0x74ea: "Fan " +0x74eb: "Pen " +0x74ec: "Fang " +0x74ed: "Dan " +0x74ee: "Weng " +0x74ef: "Ou " +0x74f0: "Deshiguramu " +0x74f1: "Miriguramu " +0x74f2: "Thon " +0x74f3: "Hu " +0x74f4: "Ling " +0x74f5: "Yi " +0x74f6: "Ping " +0x74f7: "Ci " +0x74f8: "Hekutogura " +0x74f9: "Juan " +0x74fa: "Chang " +0x74fb: "Chi " +0x74fc: "Sarake " +0x74fd: "Dang " +0x74fe: "Meng " +0x74ff: "Pou " +/* x075 */ +0x7500: "Zhui " +0x7501: "Ping " +0x7502: "Bian " +0x7503: "Zhou " +0x7504: "Zhen " +0x7505: "Senchigura " +0x7506: "Ci " +0x7507: "Ying " +0x7508: "Qi " +0x7509: "Xian " +0x750a: "Lou " +0x750b: "Di " +0x750c: "Ou " +0x750d: "Meng " +0x750e: "Zhuan " +0x750f: "Peng " +0x7510: "Lin " +0x7511: "Zeng " +0x7512: "Wu " +0x7513: "Pi " +0x7514: "Dan " +0x7515: "Weng " +0x7516: "Ying " +0x7517: "Yan " +0x7518: "Gan " +0x7519: "Dai " +0x751a: "Shen " +0x751b: "Tian " +0x751c: "Tian " +0x751d: "Han " +0x751e: "Chang " +0x751f: "Sheng " +0x7520: "Qing " +0x7521: "Sheng " +0x7522: "Chan " +0x7523: "Chan " +0x7524: "Rui " +0x7525: "Sheng " +0x7526: "Su " +0x7527: "Sen " +0x7528: "Yong " +0x7529: "Shuai " +0x752a: "Lu " +0x752b: "Fu " +0x752c: "Yong " +0x752d: "Beng " +0x752e: "Feng " +0x752f: "Ning " +0x7530: "Tian " +0x7531: "You " +0x7532: "Jia " +0x7533: "Shen " +0x7534: "Zha " +0x7535: "Dian " +0x7536: "Fu " +0x7537: "Nan " +0x7538: "Dian " +0x7539: "Ping " +0x753a: "Ting " +0x753b: "Hua " +0x753c: "Ting " +0x753d: "Quan " +0x753e: "Zi " +0x753f: "Meng " +0x7540: "Bi " +0x7541: "Qi " +0x7542: "Liu " +0x7543: "Xun " +0x7544: "Liu " +0x7545: "Chang " +0x7546: "Mu " +0x7547: "Yun " +0x7548: "Fan " +0x7549: "Fu " +0x754a: "Geng " +0x754b: "Tian " +0x754c: "Jie " +0x754d: "Jie " +0x754e: "Quan " +0x754f: "Wei " +0x7550: "Fu " +0x7551: "Tian " +0x7552: "Mu " +0x7553: "Tap " +0x7554: "Pan " +0x7555: "Jiang " +0x7556: "Wa " +0x7557: "Da " +0x7558: "Nan " +0x7559: "Liu " +0x755a: "Ben " +0x755b: "Zhen " +0x755c: "Chu " +0x755d: "Mu " +0x755e: "Mu " +0x755f: "Ce " +0x7560: "Cen " +0x7561: "Gai " +0x7562: "Bi " +0x7563: "Da " +0x7564: "Zhi " +0x7565: "Lue " +0x7566: "Qi " +0x7567: "Lue " +0x7568: "Pan " +0x7569: "Kesa " +0x756a: "Fan " +0x756b: "Hua " +0x756c: "Yu " +0x756d: "Yu " +0x756e: "Mu " +0x756f: "Jun " +0x7570: "Yi " +0x7571: "Liu " +0x7572: "Yu " +0x7573: "Die " +0x7574: "Chou " +0x7575: "Hua " +0x7576: "Dang " +0x7577: "Chuo " +0x7578: "Ji " +0x7579: "Wan " +0x757a: "Jiang " +0x757b: "Sheng " +0x757c: "Chang " +0x757d: "Tuan " +0x757e: "Lei " +0x757f: "Ji " +0x7580: "Cha " +0x7581: "Liu " +0x7582: "Tatamu " +0x7583: "Tuan " +0x7584: "Lin " +0x7585: "Jiang " +0x7586: "Jiang " +0x7587: "Chou " +0x7588: "Bo " +0x7589: "Die " +0x758a: "Die " +0x758b: "Pi " +0x758c: "Nie " +0x758d: "Dan " +0x758e: "Shu " +0x758f: "Shu " +0x7590: "Zhi " +0x7591: "Yi " +0x7592: "Chuang " +0x7593: "Nai " +0x7594: "Ding " +0x7595: "Bi " +0x7596: "Jie " +0x7597: "Liao " +0x7598: "Gong " +0x7599: "Ge " +0x759a: "Jiu " +0x759b: "Zhou " +0x759c: "Xia " +0x759d: "Shan " +0x759e: "Xu " +0x759f: "Nue " +0x75a0: "Li " +0x75a1: "Yang " +0x75a2: "Chen " +0x75a3: "You " +0x75a4: "Ba " +0x75a5: "Jie " +0x75a6: "Jue " +0x75a7: "Zhi " +0x75a8: "Xia " +0x75a9: "Cui " +0x75aa: "Bi " +0x75ab: "Yi " +0x75ac: "Li " +0x75ad: "Zong " +0x75ae: "Chuang " +0x75af: "Feng " +0x75b0: "Zhu " +0x75b1: "Pao " +0x75b2: "Pi " +0x75b3: "Gan " +0x75b4: "Ke " +0x75b5: "Ci " +0x75b6: "Xie " +0x75b7: "Qi " +0x75b8: "Dan " +0x75b9: "Zhen " +0x75ba: "Fa " +0x75bb: "Zhi " +0x75bc: "Teng " +0x75bd: "Ju " +0x75be: "Ji " +0x75bf: "Fei " +0x75c0: "Qu " +0x75c1: "Dian " +0x75c2: "Jia " +0x75c3: "Xian " +0x75c4: "Cha " +0x75c5: "Bing " +0x75c6: "Ni " +0x75c7: "Zheng " +0x75c8: "Yong " +0x75c9: "Jing " +0x75ca: "Quan " +0x75cb: "Chong " +0x75cc: "Tong " +0x75cd: "Yi " +0x75ce: "Kai " +0x75cf: "Wei " +0x75d0: "Hui " +0x75d1: "Duo " +0x75d2: "Yang " +0x75d3: "Chi " +0x75d4: "Zhi " +0x75d5: "Hen " +0x75d6: "Ya " +0x75d7: "Mei " +0x75d8: "Dou " +0x75d9: "Jing " +0x75da: "Xiao " +0x75db: "Tong " +0x75dc: "Tu " +0x75dd: "Mang " +0x75de: "Pi " +0x75df: "Xiao " +0x75e0: "Suan " +0x75e1: "Pu " +0x75e2: "Li " +0x75e3: "Zhi " +0x75e4: "Cuo " +0x75e5: "Duo " +0x75e6: "Wu " +0x75e7: "Sha " +0x75e8: "Lao " +0x75e9: "Shou " +0x75ea: "Huan " +0x75eb: "Xian " +0x75ec: "Yi " +0x75ed: "Peng " +0x75ee: "Zhang " +0x75ef: "Guan " +0x75f0: "Tan " +0x75f1: "Fei " +0x75f2: "Ma " +0x75f3: "Lin " +0x75f4: "Chi " +0x75f5: "Ji " +0x75f6: "Dian " +0x75f7: "An " +0x75f8: "Chi " +0x75f9: "Bi " +0x75fa: "Bei " +0x75fb: "Min " +0x75fc: "Gu " +0x75fd: "Dui " +0x75fe: "E " +0x75ff: "Wei " +/* x076 */ +0x7600: "Yu " +0x7601: "Cui " +0x7602: "Ya " +0x7603: "Zhu " +0x7604: "Cu " +0x7605: "Dan " +0x7606: "Shen " +0x7607: "Zhung " +0x7608: "Ji " +0x7609: "Yu " +0x760a: "Hou " +0x760b: "Feng " +0x760c: "La " +0x760d: "Yang " +0x760e: "Shen " +0x760f: "Tu " +0x7610: "Yu " +0x7611: "Gua " +0x7612: "Wen " +0x7613: "Huan " +0x7614: "Ku " +0x7615: "Jia " +0x7616: "Yin " +0x7617: "Yi " +0x7618: "Lu " +0x7619: "Sao " +0x761a: "Jue " +0x761b: "Chi " +0x761c: "Xi " +0x761d: "Guan " +0x761e: "Yi " +0x761f: "Wen " +0x7620: "Ji " +0x7621: "Chuang " +0x7622: "Ban " +0x7623: "Lei " +0x7624: "Liu " +0x7625: "Chai " +0x7626: "Shou " +0x7627: "Nue " +0x7628: "Dian " +0x7629: "Da " +0x762a: "Pie " +0x762b: "Tan " +0x762c: "Zhang " +0x762d: "Biao " +0x762e: "Shen " +0x762f: "Cu " +0x7630: "Luo " +0x7631: "Yi " +0x7632: "Zong " +0x7633: "Chou " +0x7634: "Zhang " +0x7635: "Zhai " +0x7636: "Sou " +0x7637: "Suo " +0x7638: "Que " +0x7639: "Diao " +0x763a: "Lou " +0x763b: "Lu " +0x763c: "Mo " +0x763d: "Jin " +0x763e: "Yin " +0x763f: "Ying " +0x7640: "Huang " +0x7641: "Fu " +0x7642: "Liao " +0x7643: "Long " +0x7644: "Qiao " +0x7645: "Liu " +0x7646: "Lao " +0x7647: "Xian " +0x7648: "Fei " +0x7649: "Dan " +0x764a: "Yin " +0x764b: "He " +0x764c: "Yan " +0x764d: "Ban " +0x764e: "Xian " +0x764f: "Guan " +0x7650: "Guai " +0x7651: "Nong " +0x7652: "Yu " +0x7653: "Wei " +0x7654: "Yi " +0x7655: "Yong " +0x7656: "Pi " +0x7657: "Lei " +0x7658: "Li " +0x7659: "Shu " +0x765a: "Dan " +0x765b: "Lin " +0x765c: "Dian " +0x765d: "Lin " +0x765e: "Lai " +0x765f: "Pie " +0x7660: "Ji " +0x7661: "Chi " +0x7662: "Yang " +0x7663: "Xian " +0x7664: "Jie " +0x7665: "Zheng " +0x7666: "[?] " +0x7667: "Li " +0x7668: "Huo " +0x7669: "Lai " +0x766a: "Shaku " +0x766b: "Dian " +0x766c: "Xian " +0x766d: "Ying " +0x766e: "Yin " +0x766f: "Qu " +0x7670: "Yong " +0x7671: "Tan " +0x7672: "Dian " +0x7673: "Luo " +0x7674: "Luan " +0x7675: "Luan " +0x7676: "Bo " +0x7677: "[?] " +0x7678: "Gui " +0x7679: "Po " +0x767a: "Fa " +0x767b: "Deng " +0x767c: "Fa " +0x767d: "Bai " +0x767e: "Bai " +0x767f: "Qie " +0x7680: "Bi " +0x7681: "Zao " +0x7682: "Zao " +0x7683: "Mao " +0x7684: "De " +0x7685: "Pa " +0x7686: "Jie " +0x7687: "Huang " +0x7688: "Gui " +0x7689: "Ci " +0x768a: "Ling " +0x768b: "Gao " +0x768c: "Mo " +0x768d: "Ji " +0x768e: "Jiao " +0x768f: "Peng " +0x7690: "Gao " +0x7691: "Ai " +0x7692: "E " +0x7693: "Hao " +0x7694: "Han " +0x7695: "Bi " +0x7696: "Wan " +0x7697: "Chou " +0x7698: "Qian " +0x7699: "Xi " +0x769a: "Ai " +0x769b: "Jiong " +0x769c: "Hao " +0x769d: "Huang " +0x769e: "Hao " +0x769f: "Ze " +0x76a0: "Cui " +0x76a1: "Hao " +0x76a2: "Xiao " +0x76a3: "Ye " +0x76a4: "Po " +0x76a5: "Hao " +0x76a6: "Jiao " +0x76a7: "Ai " +0x76a8: "Xing " +0x76a9: "Huang " +0x76aa: "Li " +0x76ab: "Piao " +0x76ac: "He " +0x76ad: "Jiao " +0x76ae: "Pi " +0x76af: "Gan " +0x76b0: "Pao " +0x76b1: "Zhou " +0x76b2: "Jun " +0x76b3: "Qiu " +0x76b4: "Cun " +0x76b5: "Que " +0x76b6: "Zha " +0x76b7: "Gu " +0x76b8: "Jun " +0x76b9: "Jun " +0x76ba: "Zhou " +0x76bb: "Zha " +0x76bc: "Gu " +0x76bd: "Zhan " +0x76be: "Du " +0x76bf: "Min " +0x76c0: "Qi " +0x76c1: "Ying " +0x76c2: "Yu " +0x76c3: "Bei " +0x76c4: "Zhao " +0x76c5: "Zhong " +0x76c6: "Pen " +0x76c7: "He " +0x76c8: "Ying " +0x76c9: "He " +0x76ca: "Yi " +0x76cb: "Bo " +0x76cc: "Wan " +0x76cd: "He " +0x76ce: "Ang " +0x76cf: "Zhan " +0x76d0: "Yan " +0x76d1: "Jian " +0x76d2: "He " +0x76d3: "Yu " +0x76d4: "Kui " +0x76d5: "Fan " +0x76d6: "Gai " +0x76d7: "Dao " +0x76d8: "Pan " +0x76d9: "Fu " +0x76da: "Qiu " +0x76db: "Sheng " +0x76dc: "Dao " +0x76dd: "Lu " +0x76de: "Zhan " +0x76df: "Meng " +0x76e0: "Li " +0x76e1: "Jin " +0x76e2: "Xu " +0x76e3: "Jian " +0x76e4: "Pan " +0x76e5: "Guan " +0x76e6: "An " +0x76e7: "Lu " +0x76e8: "Shu " +0x76e9: "Zhou " +0x76ea: "Dang " +0x76eb: "An " +0x76ec: "Gu " +0x76ed: "Li " +0x76ee: "Mu " +0x76ef: "Cheng " +0x76f0: "Gan " +0x76f1: "Xu " +0x76f2: "Mang " +0x76f3: "Mang " +0x76f4: "Zhi " +0x76f5: "Qi " +0x76f6: "Ruan " +0x76f7: "Tian " +0x76f8: "Xiang " +0x76f9: "Dun " +0x76fa: "Xin " +0x76fb: "Xi " +0x76fc: "Pan " +0x76fd: "Feng " +0x76fe: "Dun " +0x76ff: "Min " +/* x077 */ +0x7700: "Ming " +0x7701: "Sheng " +0x7702: "Shi " +0x7703: "Yun " +0x7704: "Mian " +0x7705: "Pan " +0x7706: "Fang " +0x7707: "Miao " +0x7708: "Dan " +0x7709: "Mei " +0x770a: "Mao " +0x770b: "Kan " +0x770c: "Xian " +0x770d: "Ou " +0x770e: "Shi " +0x770f: "Yang " +0x7710: "Zheng " +0x7711: "Yao " +0x7712: "Shen " +0x7713: "Huo " +0x7714: "Da " +0x7715: "Zhen " +0x7716: "Kuang " +0x7717: "Ju " +0x7718: "Shen " +0x7719: "Chi " +0x771a: "Sheng " +0x771b: "Mei " +0x771c: "Mo " +0x771d: "Zhu " +0x771e: "Zhen " +0x771f: "Zhen " +0x7720: "Mian " +0x7721: "Di " +0x7722: "Yuan " +0x7723: "Die " +0x7724: "Yi " +0x7725: "Zi " +0x7726: "Zi " +0x7727: "Chao " +0x7728: "Zha " +0x7729: "Xuan " +0x772a: "Bing " +0x772b: "Mi " +0x772c: "Long " +0x772d: "Sui " +0x772e: "Dong " +0x772f: "Mi " +0x7730: "Die " +0x7731: "Yi " +0x7732: "Er " +0x7733: "Ming " +0x7734: "Xuan " +0x7735: "Chi " +0x7736: "Kuang " +0x7737: "Juan " +0x7738: "Mou " +0x7739: "Zhen " +0x773a: "Tiao " +0x773b: "Yang " +0x773c: "Yan " +0x773d: "Mo " +0x773e: "Zhong " +0x773f: "Mai " +0x7740: "Zhao " +0x7741: "Zheng " +0x7742: "Mei " +0x7743: "Jun " +0x7744: "Shao " +0x7745: "Han " +0x7746: "Huan " +0x7747: "Di " +0x7748: "Cheng " +0x7749: "Cuo " +0x774a: "Juan " +0x774b: "E " +0x774c: "Wan " +0x774d: "Xian " +0x774e: "Xi " +0x774f: "Kun " +0x7750: "Lai " +0x7751: "Jian " +0x7752: "Shan " +0x7753: "Tian " +0x7754: "Hun " +0x7755: "Wan " +0x7756: "Ling " +0x7757: "Shi " +0x7758: "Qiong " +0x7759: "Lie " +0x775a: "Yai " +0x775b: "Jing " +0x775c: "Zheng " +0x775d: "Li " +0x775e: "Lai " +0x775f: "Sui " +0x7760: "Juan " +0x7761: "Shui " +0x7762: "Sui " +0x7763: "Du " +0x7764: "Bi " +0x7765: "Bi " +0x7766: "Mu " +0x7767: "Hun " +0x7768: "Ni " +0x7769: "Lu " +0x776a: "Yi " +0x776b: "Jie " +0x776c: "Cai " +0x776d: "Zhou " +0x776e: "Yu " +0x776f: "Hun " +0x7770: "Ma " +0x7771: "Xia " +0x7772: "Xing " +0x7773: "Xi " +0x7774: "Gun " +0x7775: "Cai " +0x7776: "Chun " +0x7777: "Jian " +0x7778: "Mei " +0x7779: "Du " +0x777a: "Hou " +0x777b: "Xuan " +0x777c: "Ti " +0x777d: "Kui " +0x777e: "Gao " +0x777f: "Rui " +0x7780: "Mou " +0x7781: "Xu " +0x7782: "Fa " +0x7783: "Wen " +0x7784: "Miao " +0x7785: "Chou " +0x7786: "Kui " +0x7787: "Mi " +0x7788: "Weng " +0x7789: "Kou " +0x778a: "Dang " +0x778b: "Chen " +0x778c: "Ke " +0x778d: "Sou " +0x778e: "Xia " +0x778f: "Qiong " +0x7790: "Mao " +0x7791: "Ming " +0x7792: "Man " +0x7793: "Shui " +0x7794: "Ze " +0x7795: "Zhang " +0x7796: "Yi " +0x7797: "Diao " +0x7798: "Ou " +0x7799: "Mo " +0x779a: "Shun " +0x779b: "Cong " +0x779c: "Lou " +0x779d: "Chi " +0x779e: "Man " +0x779f: "Piao " +0x77a0: "Cheng " +0x77a1: "Ji " +0x77a2: "Meng " +0x77a3: "[?] " +0x77a4: "Run " +0x77a5: "Pie " +0x77a6: "Xi " +0x77a7: "Qiao " +0x77a8: "Pu " +0x77a9: "Zhu " +0x77aa: "Deng " +0x77ab: "Shen " +0x77ac: "Shun " +0x77ad: "Liao " +0x77ae: "Che " +0x77af: "Xian " +0x77b0: "Kan " +0x77b1: "Ye " +0x77b2: "Xu " +0x77b3: "Tong " +0x77b4: "Mou " +0x77b5: "Lin " +0x77b6: "Kui " +0x77b7: "Xian " +0x77b8: "Ye " +0x77b9: "Ai " +0x77ba: "Hui " +0x77bb: "Zhan " +0x77bc: "Jian " +0x77bd: "Gu " +0x77be: "Zhao " +0x77bf: "Qu " +0x77c0: "Wei " +0x77c1: "Chou " +0x77c2: "Sao " +0x77c3: "Ning " +0x77c4: "Xun " +0x77c5: "Yao " +0x77c6: "Huo " +0x77c7: "Meng " +0x77c8: "Mian " +0x77c9: "Bin " +0x77ca: "Mian " +0x77cb: "Li " +0x77cc: "Kuang " +0x77cd: "Jue " +0x77ce: "Xuan " +0x77cf: "Mian " +0x77d0: "Huo " +0x77d1: "Lu " +0x77d2: "Meng " +0x77d3: "Long " +0x77d4: "Guan " +0x77d5: "Man " +0x77d6: "Xi " +0x77d7: "Chu " +0x77d8: "Tang " +0x77d9: "Kan " +0x77da: "Zhu " +0x77db: "Mao " +0x77dc: "Jin " +0x77dd: "Lin " +0x77de: "Yu " +0x77df: "Shuo " +0x77e0: "Ce " +0x77e1: "Jue " +0x77e2: "Shi " +0x77e3: "Yi " +0x77e4: "Shen " +0x77e5: "Zhi " +0x77e6: "Hou " +0x77e7: "Shen " +0x77e8: "Ying " +0x77e9: "Ju " +0x77ea: "Zhou " +0x77eb: "Jiao " +0x77ec: "Cuo " +0x77ed: "Duan " +0x77ee: "Ai " +0x77ef: "Jiao " +0x77f0: "Zeng " +0x77f1: "Huo " +0x77f2: "Bai " +0x77f3: "Shi " +0x77f4: "Ding " +0x77f5: "Qi " +0x77f6: "Ji " +0x77f7: "Zi " +0x77f8: "Gan " +0x77f9: "Wu " +0x77fa: "Tuo " +0x77fb: "Ku " +0x77fc: "Qiang " +0x77fd: "Xi " +0x77fe: "Fan " +0x77ff: "Kuang " +/* x078 */ +0x7800: "Dang " +0x7801: "Ma " +0x7802: "Sha " +0x7803: "Dan " +0x7804: "Jue " +0x7805: "Li " +0x7806: "Fu " +0x7807: "Min " +0x7808: "Nuo " +0x7809: "Huo " +0x780a: "Kang " +0x780b: "Zhi " +0x780c: "Qi " +0x780d: "Kan " +0x780e: "Jie " +0x780f: "Fen " +0x7810: "E " +0x7811: "Ya " +0x7812: "Pi " +0x7813: "Zhe " +0x7814: "Yan " +0x7815: "Sui " +0x7816: "Zhuan " +0x7817: "Che " +0x7818: "Dun " +0x7819: "Pan " +0x781a: "Yan " +0x781b: "[?] " +0x781c: "Feng " +0x781d: "Fa " +0x781e: "Mo " +0x781f: "Zha " +0x7820: "Qu " +0x7821: "Yu " +0x7822: "Luo " +0x7823: "Tuo " +0x7824: "Tuo " +0x7825: "Di " +0x7826: "Zhai " +0x7827: "Zhen " +0x7828: "Ai " +0x7829: "Fei " +0x782a: "Mu " +0x782b: "Zhu " +0x782c: "Li " +0x782d: "Bian " +0x782e: "Nu " +0x782f: "Ping " +0x7830: "Peng " +0x7831: "Ling " +0x7832: "Pao " +0x7833: "Le " +0x7834: "Po " +0x7835: "Bo " +0x7836: "Po " +0x7837: "Shen " +0x7838: "Za " +0x7839: "Nuo " +0x783a: "Li " +0x783b: "Long " +0x783c: "Tong " +0x783d: "[?] " +0x783e: "Li " +0x783f: "Aragane " +0x7840: "Chu " +0x7841: "Keng " +0x7842: "Quan " +0x7843: "Zhu " +0x7844: "Kuang " +0x7845: "Huo " +0x7846: "E " +0x7847: "Nao " +0x7848: "Jia " +0x7849: "Lu " +0x784a: "Wei " +0x784b: "Ai " +0x784c: "Luo " +0x784d: "Ken " +0x784e: "Xing " +0x784f: "Yan " +0x7850: "Tong " +0x7851: "Peng " +0x7852: "Xi " +0x7853: "[?] " +0x7854: "Hong " +0x7855: "Shuo " +0x7856: "Xia " +0x7857: "Qiao " +0x7858: "[?] " +0x7859: "Wei " +0x785a: "Qiao " +0x785b: "[?] " +0x785c: "Keng " +0x785d: "Xiao " +0x785e: "Que " +0x785f: "Chan " +0x7860: "Lang " +0x7861: "Hong " +0x7862: "Yu " +0x7863: "Xiao " +0x7864: "Xia " +0x7865: "Mang " +0x7866: "Long " +0x7867: "Iong " +0x7868: "Che " +0x7869: "Che " +0x786a: "E " +0x786b: "Liu " +0x786c: "Ying " +0x786d: "Mang " +0x786e: "Que " +0x786f: "Yan " +0x7870: "Sha " +0x7871: "Kun " +0x7872: "Yu " +0x7873: "[?] " +0x7874: "Kaki " +0x7875: "Lu " +0x7876: "Chen " +0x7877: "Jian " +0x7878: "Nue " +0x7879: "Song " +0x787a: "Zhuo " +0x787b: "Keng " +0x787c: "Peng " +0x787d: "Yan " +0x787e: "Zhui " +0x787f: "Kong " +0x7880: "Ceng " +0x7881: "Qi " +0x7882: "Zong " +0x7883: "Qing " +0x7884: "Lin " +0x7885: "Jun " +0x7886: "Bo " +0x7887: "Ding " +0x7888: "Min " +0x7889: "Diao " +0x788a: "Jian " +0x788b: "He " +0x788c: "Lu " +0x788d: "Ai " +0x788e: "Sui " +0x788f: "Que " +0x7890: "Ling " +0x7891: "Bei " +0x7892: "Yin " +0x7893: "Dui " +0x7894: "Wu " +0x7895: "Qi " +0x7896: "Lun " +0x7897: "Wan " +0x7898: "Dian " +0x7899: "Gang " +0x789a: "Pei " +0x789b: "Qi " +0x789c: "Chen " +0x789d: "Ruan " +0x789e: "Yan " +0x789f: "Die " +0x78a0: "Ding " +0x78a1: "Du " +0x78a2: "Tuo " +0x78a3: "Jie " +0x78a4: "Ying " +0x78a5: "Bian " +0x78a6: "Ke " +0x78a7: "Bi " +0x78a8: "Wei " +0x78a9: "Shuo " +0x78aa: "Zhen " +0x78ab: "Duan " +0x78ac: "Xia " +0x78ad: "Dang " +0x78ae: "Ti " +0x78af: "Nao " +0x78b0: "Peng " +0x78b1: "Jian " +0x78b2: "Di " +0x78b3: "Tan " +0x78b4: "Cha " +0x78b5: "Seki " +0x78b6: "Qi " +0x78b7: "[?] " +0x78b8: "Feng " +0x78b9: "Xuan " +0x78ba: "Que " +0x78bb: "Que " +0x78bc: "Ma " +0x78bd: "Gong " +0x78be: "Nian " +0x78bf: "Su " +0x78c0: "E " +0x78c1: "Ci " +0x78c2: "Liu " +0x78c3: "Si " +0x78c4: "Tang " +0x78c5: "Bang " +0x78c6: "Hua " +0x78c7: "Pi " +0x78c8: "Wei " +0x78c9: "Sang " +0x78ca: "Lei " +0x78cb: "Cuo " +0x78cc: "Zhen " +0x78cd: "Xia " +0x78ce: "Qi " +0x78cf: "Lian " +0x78d0: "Pan " +0x78d1: "Wei " +0x78d2: "Yun " +0x78d3: "Dui " +0x78d4: "Zhe " +0x78d5: "Ke " +0x78d6: "La " +0x78d7: "[?] " +0x78d8: "Qing " +0x78d9: "Gun " +0x78da: "Zhuan " +0x78db: "Chan " +0x78dc: "Qi " +0x78dd: "Ao " +0x78de: "Peng " +0x78df: "Lu " +0x78e0: "Lu " +0x78e1: "Kan " +0x78e2: "Qiang " +0x78e3: "Chen " +0x78e4: "Yin " +0x78e5: "Lei " +0x78e6: "Biao " +0x78e7: "Qi " +0x78e8: "Mo " +0x78e9: "Qi " +0x78ea: "Cui " +0x78eb: "Zong " +0x78ec: "Qing " +0x78ed: "Chuo " +0x78ee: "[?] " +0x78ef: "Ji " +0x78f0: "Shan " +0x78f1: "Lao " +0x78f2: "Qu " +0x78f3: "Zeng " +0x78f4: "Deng " +0x78f5: "Jian " +0x78f6: "Xi " +0x78f7: "Lin " +0x78f8: "Ding " +0x78f9: "Dian " +0x78fa: "Huang " +0x78fb: "Pan " +0x78fc: "Za " +0x78fd: "Qiao " +0x78fe: "Di " +0x78ff: "Li " +/* x079 */ +0x7900: "Tani " +0x7901: "Jiao " +0x7902: "[?] " +0x7903: "Zhang " +0x7904: "Qiao " +0x7905: "Dun " +0x7906: "Xian " +0x7907: "Yu " +0x7908: "Zhui " +0x7909: "He " +0x790a: "Huo " +0x790b: "Zhai " +0x790c: "Lei " +0x790d: "Ke " +0x790e: "Chu " +0x790f: "Ji " +0x7910: "Que " +0x7911: "Dang " +0x7912: "Yi " +0x7913: "Jiang " +0x7914: "Pi " +0x7915: "Pi " +0x7916: "Yu " +0x7917: "Pin " +0x7918: "Qi " +0x7919: "Ai " +0x791a: "Kai " +0x791b: "Jian " +0x791c: "Yu " +0x791d: "Ruan " +0x791e: "Meng " +0x791f: "Pao " +0x7920: "Ci " +0x7921: "[?] " +0x7922: "[?] " +0x7923: "Mie " +0x7924: "Ca " +0x7925: "Xian " +0x7926: "Kuang " +0x7927: "Lei " +0x7928: "Lei " +0x7929: "Zhi " +0x792a: "Li " +0x792b: "Li " +0x792c: "Fan " +0x792d: "Que " +0x792e: "Pao " +0x792f: "Ying " +0x7930: "Li " +0x7931: "Long " +0x7932: "Long " +0x7933: "Mo " +0x7934: "Bo " +0x7935: "Shuang " +0x7936: "Guan " +0x7937: "Lan " +0x7938: "Zan " +0x7939: "Yan " +0x793a: "Shi " +0x793b: "Shi " +0x793c: "Li " +0x793d: "Reng " +0x793e: "She " +0x793f: "Yue " +0x7940: "Si " +0x7941: "Qi " +0x7942: "Ta " +0x7943: "Ma " +0x7944: "Xie " +0x7945: "Xian " +0x7946: "Xian " +0x7947: "Zhi " +0x7948: "Qi " +0x7949: "Zhi " +0x794a: "Beng " +0x794b: "Dui " +0x794c: "Zhong " +0x794d: "[?] " +0x794e: "Yi " +0x794f: "Shi " +0x7950: "You " +0x7951: "Zhi " +0x7952: "Tiao " +0x7953: "Fu " +0x7954: "Fu " +0x7955: "Mi " +0x7956: "Zu " +0x7957: "Zhi " +0x7958: "Suan " +0x7959: "Mei " +0x795a: "Zuo " +0x795b: "Qu " +0x795c: "Hu " +0x795d: "Zhu " +0x795e: "Shen " +0x795f: "Sui " +0x7960: "Ci " +0x7961: "Chai " +0x7962: "Mi " +0x7963: "Lu " +0x7964: "Yu " +0x7965: "Xiang " +0x7966: "Wu " +0x7967: "Tiao " +0x7968: "Piao " +0x7969: "Zhu " +0x796a: "Gui " +0x796b: "Xia " +0x796c: "Zhi " +0x796d: "Ji " +0x796e: "Gao " +0x796f: "Zhen " +0x7970: "Gao " +0x7971: "Shui " +0x7972: "Jin " +0x7973: "Chen " +0x7974: "Gai " +0x7975: "Kun " +0x7976: "Di " +0x7977: "Dao " +0x7978: "Huo " +0x7979: "Tao " +0x797a: "Qi " +0x797b: "Gu " +0x797c: "Guan " +0x797d: "Zui " +0x797e: "Ling " +0x797f: "Lu " +0x7980: "Bing " +0x7981: "Jin " +0x7982: "Dao " +0x7983: "Zhi " +0x7984: "Lu " +0x7985: "Shan " +0x7986: "Bei " +0x7987: "Zhe " +0x7988: "Hui " +0x7989: "You " +0x798a: "Xi " +0x798b: "Yin " +0x798c: "Zi " +0x798d: "Huo " +0x798e: "Zhen " +0x798f: "Fu " +0x7990: "Yuan " +0x7991: "Wu " +0x7992: "Xian " +0x7993: "Yang " +0x7994: "Ti " +0x7995: "Yi " +0x7996: "Mei " +0x7997: "Si " +0x7998: "Di " +0x7999: "[?] " +0x799a: "Zhuo " +0x799b: "Zhen " +0x799c: "Yong " +0x799d: "Ji " +0x799e: "Gao " +0x799f: "Tang " +0x79a0: "Si " +0x79a1: "Ma " +0x79a2: "Ta " +0x79a3: "[?] " +0x79a4: "Xuan " +0x79a5: "Qi " +0x79a6: "Yu " +0x79a7: "Xi " +0x79a8: "Ji " +0x79a9: "Si " +0x79aa: "Chan " +0x79ab: "Tan " +0x79ac: "Kuai " +0x79ad: "Sui " +0x79ae: "Li " +0x79af: "Nong " +0x79b0: "Ni " +0x79b1: "Dao " +0x79b2: "Li " +0x79b3: "Rang " +0x79b4: "Yue " +0x79b5: "Ti " +0x79b6: "Zan " +0x79b7: "Lei " +0x79b8: "Rou " +0x79b9: "Yu " +0x79ba: "Yu " +0x79bb: "Chi " +0x79bc: "Xie " +0x79bd: "Qin " +0x79be: "He " +0x79bf: "Tu " +0x79c0: "Xiu " +0x79c1: "Si " +0x79c2: "Ren " +0x79c3: "Tu " +0x79c4: "Zi " +0x79c5: "Cha " +0x79c6: "Gan " +0x79c7: "Yi " +0x79c8: "Xian " +0x79c9: "Bing " +0x79ca: "Nian " +0x79cb: "Qiu " +0x79cc: "Qiu " +0x79cd: "Chong " +0x79ce: "Fen " +0x79cf: "Hao " +0x79d0: "Yun " +0x79d1: "Ke " +0x79d2: "Miao " +0x79d3: "Zhi " +0x79d4: "Geng " +0x79d5: "Bi " +0x79d6: "Zhi " +0x79d7: "Yu " +0x79d8: "Mi " +0x79d9: "Ku " +0x79da: "Ban " +0x79db: "Pi " +0x79dc: "Ni " +0x79dd: "Li " +0x79de: "You " +0x79df: "Zu " +0x79e0: "Pi " +0x79e1: "Ba " +0x79e2: "Ling " +0x79e3: "Mo " +0x79e4: "Cheng " +0x79e5: "Nian " +0x79e6: "Qin " +0x79e7: "Yang " +0x79e8: "Zuo " +0x79e9: "Zhi " +0x79ea: "Zhi " +0x79eb: "Shu " +0x79ec: "Ju " +0x79ed: "Zi " +0x79ee: "Huo " +0x79ef: "Ji " +0x79f0: "Cheng " +0x79f1: "Tong " +0x79f2: "Zhi " +0x79f3: "Huo " +0x79f4: "He " +0x79f5: "Yin " +0x79f6: "Zi " +0x79f7: "Zhi " +0x79f8: "Jie " +0x79f9: "Ren " +0x79fa: "Du " +0x79fb: "Yi " +0x79fc: "Zhu " +0x79fd: "Hui " +0x79fe: "Nong " +0x79ff: "Fu " +/* x07a */ +0x7a00: "Xi " +0x7a01: "Kao " +0x7a02: "Lang " +0x7a03: "Fu " +0x7a04: "Ze " +0x7a05: "Shui " +0x7a06: "Lu " +0x7a07: "Kun " +0x7a08: "Gan " +0x7a09: "Geng " +0x7a0a: "Ti " +0x7a0b: "Cheng " +0x7a0c: "Tu " +0x7a0d: "Shao " +0x7a0e: "Shui " +0x7a0f: "Ya " +0x7a10: "Lun " +0x7a11: "Lu " +0x7a12: "Gu " +0x7a13: "Zuo " +0x7a14: "Ren " +0x7a15: "Zhun " +0x7a16: "Bang " +0x7a17: "Bai " +0x7a18: "Ji " +0x7a19: "Zhi " +0x7a1a: "Zhi " +0x7a1b: "Kun " +0x7a1c: "Leng " +0x7a1d: "Peng " +0x7a1e: "Ke " +0x7a1f: "Bing " +0x7a20: "Chou " +0x7a21: "Zu " +0x7a22: "Yu " +0x7a23: "Su " +0x7a24: "Lue " +0x7a25: "[?] " +0x7a26: "Yi " +0x7a27: "Xi " +0x7a28: "Bian " +0x7a29: "Ji " +0x7a2a: "Fu " +0x7a2b: "Bi " +0x7a2c: "Nuo " +0x7a2d: "Jie " +0x7a2e: "Zhong " +0x7a2f: "Zong " +0x7a30: "Xu " +0x7a31: "Cheng " +0x7a32: "Dao " +0x7a33: "Wen " +0x7a34: "Lian " +0x7a35: "Zi " +0x7a36: "Yu " +0x7a37: "Ji " +0x7a38: "Xu " +0x7a39: "Zhen " +0x7a3a: "Zhi " +0x7a3b: "Dao " +0x7a3c: "Jia " +0x7a3d: "Ji " +0x7a3e: "Gao " +0x7a3f: "Gao " +0x7a40: "Gu " +0x7a41: "Rong " +0x7a42: "Sui " +0x7a43: "You " +0x7a44: "Ji " +0x7a45: "Kang " +0x7a46: "Mu " +0x7a47: "Shan " +0x7a48: "Men " +0x7a49: "Zhi " +0x7a4a: "Ji " +0x7a4b: "Lu " +0x7a4c: "Su " +0x7a4d: "Ji " +0x7a4e: "Ying " +0x7a4f: "Wen " +0x7a50: "Qiu " +0x7a51: "Se " +0x7a52: "[?] " +0x7a53: "Yi " +0x7a54: "Huang " +0x7a55: "Qie " +0x7a56: "Ji " +0x7a57: "Sui " +0x7a58: "Xiao " +0x7a59: "Pu " +0x7a5a: "Jiao " +0x7a5b: "Zhuo " +0x7a5c: "Tong " +0x7a5d: "Sai " +0x7a5e: "Lu " +0x7a5f: "Sui " +0x7a60: "Nong " +0x7a61: "Se " +0x7a62: "Hui " +0x7a63: "Rang " +0x7a64: "Nuo " +0x7a65: "Yu " +0x7a66: "Bin " +0x7a67: "Ji " +0x7a68: "Tui " +0x7a69: "Wen " +0x7a6a: "Cheng " +0x7a6b: "Huo " +0x7a6c: "Gong " +0x7a6d: "Lu " +0x7a6e: "Biao " +0x7a6f: "[?] " +0x7a70: "Rang " +0x7a71: "Zhuo " +0x7a72: "Li " +0x7a73: "Zan " +0x7a74: "Xue " +0x7a75: "Wa " +0x7a76: "Jiu " +0x7a77: "Qiong " +0x7a78: "Xi " +0x7a79: "Qiong " +0x7a7a: "Kong " +0x7a7b: "Yu " +0x7a7c: "Sen " +0x7a7d: "Jing " +0x7a7e: "Yao " +0x7a7f: "Chuan " +0x7a80: "Zhun " +0x7a81: "Tu " +0x7a82: "Lao " +0x7a83: "Qie " +0x7a84: "Zhai " +0x7a85: "Yao " +0x7a86: "Bian " +0x7a87: "Bao " +0x7a88: "Yao " +0x7a89: "Bing " +0x7a8a: "Wa " +0x7a8b: "Zhu " +0x7a8c: "Jiao " +0x7a8d: "Qiao " +0x7a8e: "Diao " +0x7a8f: "Wu " +0x7a90: "Gui " +0x7a91: "Yao " +0x7a92: "Zhi " +0x7a93: "Chuang " +0x7a94: "Yao " +0x7a95: "Tiao " +0x7a96: "Jiao " +0x7a97: "Chuang " +0x7a98: "Jiong " +0x7a99: "Xiao " +0x7a9a: "Cheng " +0x7a9b: "Kou " +0x7a9c: "Cuan " +0x7a9d: "Wo " +0x7a9e: "Dan " +0x7a9f: "Ku " +0x7aa0: "Ke " +0x7aa1: "Zhui " +0x7aa2: "Xu " +0x7aa3: "Su " +0x7aa4: "Guan " +0x7aa5: "Kui " +0x7aa6: "Dou " +0x7aa7: "[?] " +0x7aa8: "Yin " +0x7aa9: "Wo " +0x7aaa: "Wa " +0x7aab: "Ya " +0x7aac: "Yu " +0x7aad: "Ju " +0x7aae: "Qiong " +0x7aaf: "Yao " +0x7ab0: "Yao " +0x7ab1: "Tiao " +0x7ab2: "Chao " +0x7ab3: "Yu " +0x7ab4: "Tian " +0x7ab5: "Diao " +0x7ab6: "Ju " +0x7ab7: "Liao " +0x7ab8: "Xi " +0x7ab9: "Wu " +0x7aba: "Kui " +0x7abb: "Chuang " +0x7abc: "Zhao " +0x7abd: "[?] " +0x7abe: "Kuan " +0x7abf: "Long " +0x7ac0: "Cheng " +0x7ac1: "Cui " +0x7ac2: "Piao " +0x7ac3: "Zao " +0x7ac4: "Cuan " +0x7ac5: "Qiao " +0x7ac6: "Qiong " +0x7ac7: "Dou " +0x7ac8: "Zao " +0x7ac9: "Long " +0x7aca: "Qie " +0x7acb: "Li " +0x7acc: "Chu " +0x7acd: "Shi " +0x7ace: "Fou " +0x7acf: "Qian " +0x7ad0: "Chu " +0x7ad1: "Hong " +0x7ad2: "Qi " +0x7ad3: "Qian " +0x7ad4: "Gong " +0x7ad5: "Shi " +0x7ad6: "Shu " +0x7ad7: "Miao " +0x7ad8: "Ju " +0x7ad9: "Zhan " +0x7ada: "Zhu " +0x7adb: "Ling " +0x7adc: "Long " +0x7add: "Bing " +0x7ade: "Jing " +0x7adf: "Jing " +0x7ae0: "Zhang " +0x7ae1: "Yi " +0x7ae2: "Si " +0x7ae3: "Jun " +0x7ae4: "Hong " +0x7ae5: "Tong " +0x7ae6: "Song " +0x7ae7: "Jing " +0x7ae8: "Diao " +0x7ae9: "Yi " +0x7aea: "Shu " +0x7aeb: "Jing " +0x7aec: "Qu " +0x7aed: "Jie " +0x7aee: "Ping " +0x7aef: "Duan " +0x7af0: "Shao " +0x7af1: "Zhuan " +0x7af2: "Ceng " +0x7af3: "Deng " +0x7af4: "Cui " +0x7af5: "Huai " +0x7af6: "Jing " +0x7af7: "Kan " +0x7af8: "Jing " +0x7af9: "Zhu " +0x7afa: "Zhu " +0x7afb: "Le " +0x7afc: "Peng " +0x7afd: "Yu " +0x7afe: "Chi " +0x7aff: "Gan " +/* x07b */ +0x7b00: "Mang " +0x7b01: "Zhu " +0x7b02: "Utsubo " +0x7b03: "Du " +0x7b04: "Ji " +0x7b05: "Xiao " +0x7b06: "Ba " +0x7b07: "Suan " +0x7b08: "Ji " +0x7b09: "Zhen " +0x7b0a: "Zhao " +0x7b0b: "Sun " +0x7b0c: "Ya " +0x7b0d: "Zhui " +0x7b0e: "Yuan " +0x7b0f: "Hu " +0x7b10: "Gang " +0x7b11: "Xiao " +0x7b12: "Cen " +0x7b13: "Pi " +0x7b14: "Bi " +0x7b15: "Jian " +0x7b16: "Yi " +0x7b17: "Dong " +0x7b18: "Shan " +0x7b19: "Sheng " +0x7b1a: "Xia " +0x7b1b: "Di " +0x7b1c: "Zhu " +0x7b1d: "Na " +0x7b1e: "Chi " +0x7b1f: "Gu " +0x7b20: "Li " +0x7b21: "Qie " +0x7b22: "Min " +0x7b23: "Bao " +0x7b24: "Tiao " +0x7b25: "Si " +0x7b26: "Fu " +0x7b27: "Ce " +0x7b28: "Ben " +0x7b29: "Pei " +0x7b2a: "Da " +0x7b2b: "Zi " +0x7b2c: "Di " +0x7b2d: "Ling " +0x7b2e: "Ze " +0x7b2f: "Nu " +0x7b30: "Fu " +0x7b31: "Gou " +0x7b32: "Fan " +0x7b33: "Jia " +0x7b34: "Ge " +0x7b35: "Fan " +0x7b36: "Shi " +0x7b37: "Mao " +0x7b38: "Po " +0x7b39: "Sey " +0x7b3a: "Jian " +0x7b3b: "Qiong " +0x7b3c: "Long " +0x7b3d: "Souke " +0x7b3e: "Bian " +0x7b3f: "Luo " +0x7b40: "Gui " +0x7b41: "Qu " +0x7b42: "Chi " +0x7b43: "Yin " +0x7b44: "Yao " +0x7b45: "Xian " +0x7b46: "Bi " +0x7b47: "Qiong " +0x7b48: "Gua " +0x7b49: "Deng " +0x7b4a: "Jiao " +0x7b4b: "Jin " +0x7b4c: "Quan " +0x7b4d: "Sun " +0x7b4e: "Ru " +0x7b4f: "Fa " +0x7b50: "Kuang " +0x7b51: "Zhu " +0x7b52: "Tong " +0x7b53: "Ji " +0x7b54: "Da " +0x7b55: "Xing " +0x7b56: "Ce " +0x7b57: "Zhong " +0x7b58: "Kou " +0x7b59: "Lai " +0x7b5a: "Bi " +0x7b5b: "Shai " +0x7b5c: "Dang " +0x7b5d: "Zheng " +0x7b5e: "Ce " +0x7b5f: "Fu " +0x7b60: "Yun " +0x7b61: "Tu " +0x7b62: "Pa " +0x7b63: "Li " +0x7b64: "Lang " +0x7b65: "Ju " +0x7b66: "Guan " +0x7b67: "Jian " +0x7b68: "Han " +0x7b69: "Tong " +0x7b6a: "Xia " +0x7b6b: "Zhi " +0x7b6c: "Cheng " +0x7b6d: "Suan " +0x7b6e: "Shi " +0x7b6f: "Zhu " +0x7b70: "Zuo " +0x7b71: "Xiao " +0x7b72: "Shao " +0x7b73: "Ting " +0x7b74: "Ce " +0x7b75: "Yan " +0x7b76: "Gao " +0x7b77: "Kuai " +0x7b78: "Gan " +0x7b79: "Chou " +0x7b7a: "Kago " +0x7b7b: "Gang " +0x7b7c: "Yun " +0x7b7d: "O " +0x7b7e: "Qian " +0x7b7f: "Xiao " +0x7b80: "Jian " +0x7b81: "Pu " +0x7b82: "Lai " +0x7b83: "Zou " +0x7b84: "Bi " +0x7b85: "Bi " +0x7b86: "Bi " +0x7b87: "Ge " +0x7b88: "Chi " +0x7b89: "Guai " +0x7b8a: "Yu " +0x7b8b: "Jian " +0x7b8c: "Zhao " +0x7b8d: "Gu " +0x7b8e: "Chi " +0x7b8f: "Zheng " +0x7b90: "Jing " +0x7b91: "Sha " +0x7b92: "Zhou " +0x7b93: "Lu " +0x7b94: "Bo " +0x7b95: "Ji " +0x7b96: "Lin " +0x7b97: "Suan " +0x7b98: "Jun " +0x7b99: "Fu " +0x7b9a: "Zha " +0x7b9b: "Gu " +0x7b9c: "Kong " +0x7b9d: "Qian " +0x7b9e: "Quan " +0x7b9f: "Jun " +0x7ba0: "Chui " +0x7ba1: "Guan " +0x7ba2: "Yuan " +0x7ba3: "Ce " +0x7ba4: "Ju " +0x7ba5: "Bo " +0x7ba6: "Ze " +0x7ba7: "Qie " +0x7ba8: "Tuo " +0x7ba9: "Luo " +0x7baa: "Dan " +0x7bab: "Xiao " +0x7bac: "Ruo " +0x7bad: "Jian " +0x7bae: "Xuan " +0x7baf: "Bian " +0x7bb0: "Sun " +0x7bb1: "Xiang " +0x7bb2: "Xian " +0x7bb3: "Ping " +0x7bb4: "Zhen " +0x7bb5: "Sheng " +0x7bb6: "Hu " +0x7bb7: "Shi " +0x7bb8: "Zhu " +0x7bb9: "Yue " +0x7bba: "Chun " +0x7bbb: "Lu " +0x7bbc: "Wu " +0x7bbd: "Dong " +0x7bbe: "Xiao " +0x7bbf: "Ji " +0x7bc0: "Jie " +0x7bc1: "Huang " +0x7bc2: "Xing " +0x7bc3: "Mei " +0x7bc4: "Fan " +0x7bc5: "Chui " +0x7bc6: "Zhuan " +0x7bc7: "Pian " +0x7bc8: "Feng " +0x7bc9: "Zhu " +0x7bca: "Hong " +0x7bcb: "Qie " +0x7bcc: "Hou " +0x7bcd: "Qiu " +0x7bce: "Miao " +0x7bcf: "Qian " +0x7bd0: "[?] " +0x7bd1: "Kui " +0x7bd2: "Sik " +0x7bd3: "Lou " +0x7bd4: "Yun " +0x7bd5: "He " +0x7bd6: "Tang " +0x7bd7: "Yue " +0x7bd8: "Chou " +0x7bd9: "Gao " +0x7bda: "Fei " +0x7bdb: "Ruo " +0x7bdc: "Zheng " +0x7bdd: "Gou " +0x7bde: "Nie " +0x7bdf: "Qian " +0x7be0: "Xiao " +0x7be1: "Cuan " +0x7be2: "Gong " +0x7be3: "Pang " +0x7be4: "Du " +0x7be5: "Li " +0x7be6: "Bi " +0x7be7: "Zhuo " +0x7be8: "Chu " +0x7be9: "Shai " +0x7bea: "Chi " +0x7beb: "Zhu " +0x7bec: "Qiang " +0x7bed: "Long " +0x7bee: "Lan " +0x7bef: "Jian " +0x7bf0: "Bu " +0x7bf1: "Li " +0x7bf2: "Hui " +0x7bf3: "Bi " +0x7bf4: "Di " +0x7bf5: "Cong " +0x7bf6: "Yan " +0x7bf7: "Peng " +0x7bf8: "Sen " +0x7bf9: "Zhuan " +0x7bfa: "Pai " +0x7bfb: "Piao " +0x7bfc: "Dou " +0x7bfd: "Yu " +0x7bfe: "Mie " +0x7bff: "Zhuan " +/* x07c */ +0x7c00: "Ze " +0x7c01: "Xi " +0x7c02: "Guo " +0x7c03: "Yi " +0x7c04: "Hu " +0x7c05: "Chan " +0x7c06: "Kou " +0x7c07: "Cu " +0x7c08: "Ping " +0x7c09: "Chou " +0x7c0a: "Ji " +0x7c0b: "Gui " +0x7c0c: "Su " +0x7c0d: "Lou " +0x7c0e: "Zha " +0x7c0f: "Lu " +0x7c10: "Nian " +0x7c11: "Suo " +0x7c12: "Cuan " +0x7c13: "Sasara " +0x7c14: "Suo " +0x7c15: "Le " +0x7c16: "Duan " +0x7c17: "Yana " +0x7c18: "Xiao " +0x7c19: "Bo " +0x7c1a: "Mi " +0x7c1b: "Si " +0x7c1c: "Dang " +0x7c1d: "Liao " +0x7c1e: "Dan " +0x7c1f: "Dian " +0x7c20: "Fu " +0x7c21: "Jian " +0x7c22: "Min " +0x7c23: "Kui " +0x7c24: "Dai " +0x7c25: "Qiao " +0x7c26: "Deng " +0x7c27: "Huang " +0x7c28: "Sun " +0x7c29: "Lao " +0x7c2a: "Zan " +0x7c2b: "Xiao " +0x7c2c: "Du " +0x7c2d: "Shi " +0x7c2e: "Zan " +0x7c2f: "[?] " +0x7c30: "Pai " +0x7c31: "Hata " +0x7c32: "Pai " +0x7c33: "Gan " +0x7c34: "Ju " +0x7c35: "Du " +0x7c36: "Lu " +0x7c37: "Yan " +0x7c38: "Bo " +0x7c39: "Dang " +0x7c3a: "Sai " +0x7c3b: "Ke " +0x7c3c: "Long " +0x7c3d: "Qian " +0x7c3e: "Lian " +0x7c3f: "Bo " +0x7c40: "Zhou " +0x7c41: "Lai " +0x7c42: "[?] " +0x7c43: "Lan " +0x7c44: "Kui " +0x7c45: "Yu " +0x7c46: "Yue " +0x7c47: "Hao " +0x7c48: "Zhen " +0x7c49: "Tai " +0x7c4a: "Ti " +0x7c4b: "Mi " +0x7c4c: "Chou " +0x7c4d: "Ji " +0x7c4e: "[?] " +0x7c4f: "Hata " +0x7c50: "Teng " +0x7c51: "Zhuan " +0x7c52: "Zhou " +0x7c53: "Fan " +0x7c54: "Sou " +0x7c55: "Zhou " +0x7c56: "Kuji " +0x7c57: "Zhuo " +0x7c58: "Teng " +0x7c59: "Lu " +0x7c5a: "Lu " +0x7c5b: "Jian " +0x7c5c: "Tuo " +0x7c5d: "Ying " +0x7c5e: "Yu " +0x7c5f: "Lai " +0x7c60: "Long " +0x7c61: "Shinshi " +0x7c62: "Lian " +0x7c63: "Lan " +0x7c64: "Qian " +0x7c65: "Yue " +0x7c66: "Zhong " +0x7c67: "Qu " +0x7c68: "Lian " +0x7c69: "Bian " +0x7c6a: "Duan " +0x7c6b: "Zuan " +0x7c6c: "Li " +0x7c6d: "Si " +0x7c6e: "Luo " +0x7c6f: "Ying " +0x7c70: "Yue " +0x7c71: "Zhuo " +0x7c72: "Xu " +0x7c73: "Mi " +0x7c74: "Di " +0x7c75: "Fan " +0x7c76: "Shen " +0x7c77: "Zhe " +0x7c78: "Shen " +0x7c79: "Nu " +0x7c7a: "Xie " +0x7c7b: "Lei " +0x7c7c: "Xian " +0x7c7d: "Zi " +0x7c7e: "Ni " +0x7c7f: "Cun " +0x7c80: "[?] " +0x7c81: "Qian " +0x7c82: "Kume " +0x7c83: "Bi " +0x7c84: "Ban " +0x7c85: "Wu " +0x7c86: "Sha " +0x7c87: "Kang " +0x7c88: "Rou " +0x7c89: "Fen " +0x7c8a: "Bi " +0x7c8b: "Cui " +0x7c8c: "[?] " +0x7c8d: "Li " +0x7c8e: "Chi " +0x7c8f: "Nukamiso " +0x7c90: "Ro " +0x7c91: "Ba " +0x7c92: "Li " +0x7c93: "Gan " +0x7c94: "Ju " +0x7c95: "Po " +0x7c96: "Mo " +0x7c97: "Cu " +0x7c98: "Nian " +0x7c99: "Zhou " +0x7c9a: "Li " +0x7c9b: "Su " +0x7c9c: "Tiao " +0x7c9d: "Li " +0x7c9e: "Qi " +0x7c9f: "Su " +0x7ca0: "Hong " +0x7ca1: "Tong " +0x7ca2: "Zi " +0x7ca3: "Ce " +0x7ca4: "Yue " +0x7ca5: "Zhou " +0x7ca6: "Lin " +0x7ca7: "Zhuang " +0x7ca8: "Bai " +0x7ca9: "[?] " +0x7caa: "Fen " +0x7cab: "Ji " +0x7cac: "[?] " +0x7cad: "Sukumo " +0x7cae: "Liang " +0x7caf: "Xian " +0x7cb0: "Fu " +0x7cb1: "Liang " +0x7cb2: "Can " +0x7cb3: "Geng " +0x7cb4: "Li " +0x7cb5: "Yue " +0x7cb6: "Lu " +0x7cb7: "Ju " +0x7cb8: "Qi " +0x7cb9: "Cui " +0x7cba: "Bai " +0x7cbb: "Zhang " +0x7cbc: "Lin " +0x7cbd: "Zong " +0x7cbe: "Jing " +0x7cbf: "Guo " +0x7cc0: "Kouji " +0x7cc1: "San " +0x7cc2: "San " +0x7cc3: "Tang " +0x7cc4: "Bian " +0x7cc5: "Rou " +0x7cc6: "Mian " +0x7cc7: "Hou " +0x7cc8: "Xu " +0x7cc9: "Zong " +0x7cca: "Hu " +0x7ccb: "Jian " +0x7ccc: "Zan " +0x7ccd: "Ci " +0x7cce: "Li " +0x7ccf: "Xie " +0x7cd0: "Fu " +0x7cd1: "Ni " +0x7cd2: "Bei " +0x7cd3: "Gu " +0x7cd4: "Xiu " +0x7cd5: "Gao " +0x7cd6: "Tang " +0x7cd7: "Qiu " +0x7cd8: "Sukumo " +0x7cd9: "Cao " +0x7cda: "Zhuang " +0x7cdb: "Tang " +0x7cdc: "Mi " +0x7cdd: "San " +0x7cde: "Fen " +0x7cdf: "Zao " +0x7ce0: "Kang " +0x7ce1: "Jiang " +0x7ce2: "Mo " +0x7ce3: "San " +0x7ce4: "San " +0x7ce5: "Nuo " +0x7ce6: "Xi " +0x7ce7: "Liang " +0x7ce8: "Jiang " +0x7ce9: "Kuai " +0x7cea: "Bo " +0x7ceb: "Huan " +0x7cec: "[?] " +0x7ced: "Zong " +0x7cee: "Xian " +0x7cef: "Nuo " +0x7cf0: "Tuan " +0x7cf1: "Nie " +0x7cf2: "Li " +0x7cf3: "Zuo " +0x7cf4: "Di " +0x7cf5: "Nie " +0x7cf6: "Tiao " +0x7cf7: "Lan " +0x7cf8: "Mi " +0x7cf9: "Jiao " +0x7cfa: "Jiu " +0x7cfb: "Xi " +0x7cfc: "Gong " +0x7cfd: "Zheng " +0x7cfe: "Jiu " +0x7cff: "You " +/* x07d */ +0x7d00: "Ji " +0x7d01: "Cha " +0x7d02: "Zhou " +0x7d03: "Xun " +0x7d04: "Yue " +0x7d05: "Hong " +0x7d06: "Yu " +0x7d07: "He " +0x7d08: "Wan " +0x7d09: "Ren " +0x7d0a: "Wen " +0x7d0b: "Wen " +0x7d0c: "Qiu " +0x7d0d: "Na " +0x7d0e: "Zi " +0x7d0f: "Tou " +0x7d10: "Niu " +0x7d11: "Fou " +0x7d12: "Jie " +0x7d13: "Shu " +0x7d14: "Chun " +0x7d15: "Pi " +0x7d16: "Yin " +0x7d17: "Sha " +0x7d18: "Hong " +0x7d19: "Zhi " +0x7d1a: "Ji " +0x7d1b: "Fen " +0x7d1c: "Yun " +0x7d1d: "Ren " +0x7d1e: "Dan " +0x7d1f: "Jin " +0x7d20: "Su " +0x7d21: "Fang " +0x7d22: "Suo " +0x7d23: "Cui " +0x7d24: "Jiu " +0x7d25: "Zha " +0x7d26: "Kinu " +0x7d27: "Jin " +0x7d28: "Fu " +0x7d29: "Zhi " +0x7d2a: "Ci " +0x7d2b: "Zi " +0x7d2c: "Chou " +0x7d2d: "Hong " +0x7d2e: "Zha " +0x7d2f: "Lei " +0x7d30: "Xi " +0x7d31: "Fu " +0x7d32: "Xie " +0x7d33: "Shen " +0x7d34: "Bei " +0x7d35: "Zhu " +0x7d36: "Qu " +0x7d37: "Ling " +0x7d38: "Zhu " +0x7d39: "Shao " +0x7d3a: "Gan " +0x7d3b: "Yang " +0x7d3c: "Fu " +0x7d3d: "Tuo " +0x7d3e: "Zhen " +0x7d3f: "Dai " +0x7d40: "Zhuo " +0x7d41: "Shi " +0x7d42: "Zhong " +0x7d43: "Xian " +0x7d44: "Zu " +0x7d45: "Jiong " +0x7d46: "Ban " +0x7d47: "Ju " +0x7d48: "Mo " +0x7d49: "Shu " +0x7d4a: "Zui " +0x7d4b: "Wata " +0x7d4c: "Jing " +0x7d4d: "Ren " +0x7d4e: "Heng " +0x7d4f: "Xie " +0x7d50: "Jie " +0x7d51: "Zhu " +0x7d52: "Chou " +0x7d53: "Gua " +0x7d54: "Bai " +0x7d55: "Jue " +0x7d56: "Kuang " +0x7d57: "Hu " +0x7d58: "Ci " +0x7d59: "Geng " +0x7d5a: "Geng " +0x7d5b: "Tao " +0x7d5c: "Xie " +0x7d5d: "Ku " +0x7d5e: "Jiao " +0x7d5f: "Quan " +0x7d60: "Gai " +0x7d61: "Luo " +0x7d62: "Xuan " +0x7d63: "Bing " +0x7d64: "Xian " +0x7d65: "Fu " +0x7d66: "Gei " +0x7d67: "Tong " +0x7d68: "Rong " +0x7d69: "Tiao " +0x7d6a: "Yin " +0x7d6b: "Lei " +0x7d6c: "Xie " +0x7d6d: "Quan " +0x7d6e: "Xu " +0x7d6f: "Lun " +0x7d70: "Die " +0x7d71: "Tong " +0x7d72: "Si " +0x7d73: "Jiang " +0x7d74: "Xiang " +0x7d75: "Hui " +0x7d76: "Jue " +0x7d77: "Zhi " +0x7d78: "Jian " +0x7d79: "Juan " +0x7d7a: "Chi " +0x7d7b: "Mian " +0x7d7c: "Zhen " +0x7d7d: "Lu " +0x7d7e: "Cheng " +0x7d7f: "Qiu " +0x7d80: "Shu " +0x7d81: "Bang " +0x7d82: "Tong " +0x7d83: "Xiao " +0x7d84: "Wan " +0x7d85: "Qin " +0x7d86: "Geng " +0x7d87: "Xiu " +0x7d88: "Ti " +0x7d89: "Xiu " +0x7d8a: "Xie " +0x7d8b: "Hong " +0x7d8c: "Xi " +0x7d8d: "Fu " +0x7d8e: "Ting " +0x7d8f: "Sui " +0x7d90: "Dui " +0x7d91: "Kun " +0x7d92: "Fu " +0x7d93: "Jing " +0x7d94: "Hu " +0x7d95: "Zhi " +0x7d96: "Yan " +0x7d97: "Jiong " +0x7d98: "Feng " +0x7d99: "Ji " +0x7d9a: "Sok " +0x7d9b: "Kase " +0x7d9c: "Zong " +0x7d9d: "Lin " +0x7d9e: "Duo " +0x7d9f: "Li " +0x7da0: "Lu " +0x7da1: "Liang " +0x7da2: "Chou " +0x7da3: "Quan " +0x7da4: "Shao " +0x7da5: "Qi " +0x7da6: "Qi " +0x7da7: "Zhun " +0x7da8: "Qi " +0x7da9: "Wan " +0x7daa: "Qian " +0x7dab: "Xian " +0x7dac: "Shou " +0x7dad: "Wei " +0x7dae: "Qi " +0x7daf: "Tao " +0x7db0: "Wan " +0x7db1: "Gang " +0x7db2: "Wang " +0x7db3: "Beng " +0x7db4: "Zhui " +0x7db5: "Cai " +0x7db6: "Guo " +0x7db7: "Cui " +0x7db8: "Lun " +0x7db9: "Liu " +0x7dba: "Qi " +0x7dbb: "Zhan " +0x7dbc: "Bei " +0x7dbd: "Chuo " +0x7dbe: "Ling " +0x7dbf: "Mian " +0x7dc0: "Qi " +0x7dc1: "Qie " +0x7dc2: "Tan " +0x7dc3: "Zong " +0x7dc4: "Gun " +0x7dc5: "Zou " +0x7dc6: "Yi " +0x7dc7: "Zi " +0x7dc8: "Xing " +0x7dc9: "Liang " +0x7dca: "Jin " +0x7dcb: "Fei " +0x7dcc: "Rui " +0x7dcd: "Min " +0x7dce: "Yu " +0x7dcf: "Zong " +0x7dd0: "Fan " +0x7dd1: "Lu " +0x7dd2: "Xu " +0x7dd3: "Yingl " +0x7dd4: "Zhang " +0x7dd5: "Kasuri " +0x7dd6: "Xu " +0x7dd7: "Xiang " +0x7dd8: "Jian " +0x7dd9: "Ke " +0x7dda: "Xian " +0x7ddb: "Ruan " +0x7ddc: "Mian " +0x7ddd: "Qi " +0x7dde: "Duan " +0x7ddf: "Zhong " +0x7de0: "Di " +0x7de1: "Min " +0x7de2: "Miao " +0x7de3: "Yuan " +0x7de4: "Xie " +0x7de5: "Bao " +0x7de6: "Si " +0x7de7: "Qiu " +0x7de8: "Bian " +0x7de9: "Huan " +0x7dea: "Geng " +0x7deb: "Cong " +0x7dec: "Mian " +0x7ded: "Wei " +0x7dee: "Fu " +0x7def: "Wei " +0x7df0: "Yu " +0x7df1: "Gou " +0x7df2: "Miao " +0x7df3: "Xie " +0x7df4: "Lian " +0x7df5: "Zong " +0x7df6: "Bian " +0x7df7: "Yun " +0x7df8: "Yin " +0x7df9: "Ti " +0x7dfa: "Gua " +0x7dfb: "Zhi " +0x7dfc: "Yun " +0x7dfd: "Cheng " +0x7dfe: "Chan " +0x7dff: "Dai " +/* x07e */ +0x7e00: "Xia " +0x7e01: "Yuan " +0x7e02: "Zong " +0x7e03: "Xu " +0x7e04: "Nawa " +0x7e05: "Odoshi " +0x7e06: "Geng " +0x7e07: "Sen " +0x7e08: "Ying " +0x7e09: "Jin " +0x7e0a: "Yi " +0x7e0b: "Zhui " +0x7e0c: "Ni " +0x7e0d: "Bang " +0x7e0e: "Gu " +0x7e0f: "Pan " +0x7e10: "Zhou " +0x7e11: "Jian " +0x7e12: "Cuo " +0x7e13: "Quan " +0x7e14: "Shuang " +0x7e15: "Yun " +0x7e16: "Xia " +0x7e17: "Shuai " +0x7e18: "Xi " +0x7e19: "Rong " +0x7e1a: "Tao " +0x7e1b: "Fu " +0x7e1c: "Yun " +0x7e1d: "Zhen " +0x7e1e: "Gao " +0x7e1f: "Ru " +0x7e20: "Hu " +0x7e21: "Zai " +0x7e22: "Teng " +0x7e23: "Xian " +0x7e24: "Su " +0x7e25: "Zhen " +0x7e26: "Zong " +0x7e27: "Tao " +0x7e28: "Horo " +0x7e29: "Cai " +0x7e2a: "Bi " +0x7e2b: "Feng " +0x7e2c: "Cu " +0x7e2d: "Li " +0x7e2e: "Suo " +0x7e2f: "Yin " +0x7e30: "Xi " +0x7e31: "Zong " +0x7e32: "Lei " +0x7e33: "Zhuan " +0x7e34: "Qian " +0x7e35: "Man " +0x7e36: "Zhi " +0x7e37: "Lu " +0x7e38: "Mo " +0x7e39: "Piao " +0x7e3a: "Lian " +0x7e3b: "Mi " +0x7e3c: "Xuan " +0x7e3d: "Zong " +0x7e3e: "Ji " +0x7e3f: "Shan " +0x7e40: "Sui " +0x7e41: "Fan " +0x7e42: "Shuai " +0x7e43: "Beng " +0x7e44: "Yi " +0x7e45: "Sao " +0x7e46: "Mou " +0x7e47: "Zhou " +0x7e48: "Qiang " +0x7e49: "Hun " +0x7e4a: "Sem " +0x7e4b: "Xi " +0x7e4c: "Jung " +0x7e4d: "Xiu " +0x7e4e: "Ran " +0x7e4f: "Xuan " +0x7e50: "Hui " +0x7e51: "Qiao " +0x7e52: "Zeng " +0x7e53: "Zuo " +0x7e54: "Zhi " +0x7e55: "Shan " +0x7e56: "San " +0x7e57: "Lin " +0x7e58: "Yu " +0x7e59: "Fan " +0x7e5a: "Liao " +0x7e5b: "Chuo " +0x7e5c: "Zun " +0x7e5d: "Jian " +0x7e5e: "Rao " +0x7e5f: "Chan " +0x7e60: "Rui " +0x7e61: "Xiu " +0x7e62: "Hui " +0x7e63: "Hua " +0x7e64: "Zuan " +0x7e65: "Xi " +0x7e66: "Qiang " +0x7e67: "Un " +0x7e68: "Da " +0x7e69: "Sheng " +0x7e6a: "Hui " +0x7e6b: "Xi " +0x7e6c: "Se " +0x7e6d: "Jian " +0x7e6e: "Jiang " +0x7e6f: "Huan " +0x7e70: "Zao " +0x7e71: "Cong " +0x7e72: "Jie " +0x7e73: "Jiao " +0x7e74: "Bo " +0x7e75: "Chan " +0x7e76: "Yi " +0x7e77: "Nao " +0x7e78: "Sui " +0x7e79: "Yi " +0x7e7a: "Shai " +0x7e7b: "Xu " +0x7e7c: "Ji " +0x7e7d: "Bin " +0x7e7e: "Qian " +0x7e7f: "Lan " +0x7e80: "Pu " +0x7e81: "Xun " +0x7e82: "Zuan " +0x7e83: "Qi " +0x7e84: "Peng " +0x7e85: "Li " +0x7e86: "Mo " +0x7e87: "Lei " +0x7e88: "Xie " +0x7e89: "Zuan " +0x7e8a: "Kuang " +0x7e8b: "You " +0x7e8c: "Xu " +0x7e8d: "Lei " +0x7e8e: "Xian " +0x7e8f: "Chan " +0x7e90: "Kou " +0x7e91: "Lu " +0x7e92: "Chan " +0x7e93: "Ying " +0x7e94: "Cai " +0x7e95: "Xiang " +0x7e96: "Xian " +0x7e97: "Zui " +0x7e98: "Zuan " +0x7e99: "Luo " +0x7e9a: "Xi " +0x7e9b: "Dao " +0x7e9c: "Lan " +0x7e9d: "Lei " +0x7e9e: "Lian " +0x7e9f: "Si " +0x7ea0: "Jiu " +0x7ea1: "Yu " +0x7ea2: "Hong " +0x7ea3: "Zhou " +0x7ea4: "Xian " +0x7ea5: "He " +0x7ea6: "Yue " +0x7ea7: "Ji " +0x7ea8: "Wan " +0x7ea9: "Kuang " +0x7eaa: "Ji " +0x7eab: "Ren " +0x7eac: "Wei " +0x7ead: "Yun " +0x7eae: "Hong " +0x7eaf: "Chun " +0x7eb0: "Pi " +0x7eb1: "Sha " +0x7eb2: "Gang " +0x7eb3: "Na " +0x7eb4: "Ren " +0x7eb5: "Zong " +0x7eb6: "Lun " +0x7eb7: "Fen " +0x7eb8: "Zhi " +0x7eb9: "Wen " +0x7eba: "Fang " +0x7ebb: "Zhu " +0x7ebc: "Yin " +0x7ebd: "Niu " +0x7ebe: "Shu " +0x7ebf: "Xian " +0x7ec0: "Gan " +0x7ec1: "Xie " +0x7ec2: "Fu " +0x7ec3: "Lian " +0x7ec4: "Zu " +0x7ec5: "Shen " +0x7ec6: "Xi " +0x7ec7: "Zhi " +0x7ec8: "Zhong " +0x7ec9: "Zhou " +0x7eca: "Ban " +0x7ecb: "Fu " +0x7ecc: "Zhuo " +0x7ecd: "Shao " +0x7ece: "Yi " +0x7ecf: "Jing " +0x7ed0: "Dai " +0x7ed1: "Bang " +0x7ed2: "Rong " +0x7ed3: "Jie " +0x7ed4: "Ku " +0x7ed5: "Rao " +0x7ed6: "Die " +0x7ed7: "Heng " +0x7ed8: "Hui " +0x7ed9: "Gei " +0x7eda: "Xuan " +0x7edb: "Jiang " +0x7edc: "Luo " +0x7edd: "Jue " +0x7ede: "Jiao " +0x7edf: "Tong " +0x7ee0: "Geng " +0x7ee1: "Xiao " +0x7ee2: "Juan " +0x7ee3: "Xiu " +0x7ee4: "Xi " +0x7ee5: "Sui " +0x7ee6: "Tao " +0x7ee7: "Ji " +0x7ee8: "Ti " +0x7ee9: "Ji " +0x7eea: "Xu " +0x7eeb: "Ling " +0x7eec: "[?] " +0x7eed: "Xu " +0x7eee: "Qi " +0x7eef: "Fei " +0x7ef0: "Chuo " +0x7ef1: "Zhang " +0x7ef2: "Gun " +0x7ef3: "Sheng " +0x7ef4: "Wei " +0x7ef5: "Mian " +0x7ef6: "Shou " +0x7ef7: "Beng " +0x7ef8: "Chou " +0x7ef9: "Tao " +0x7efa: "Liu " +0x7efb: "Quan " +0x7efc: "Zong " +0x7efd: "Zhan " +0x7efe: "Wan " +0x7eff: "Lu " +/* x07f */ +0x7f00: "Zhui " +0x7f01: "Zi " +0x7f02: "Ke " +0x7f03: "Xiang " +0x7f04: "Jian " +0x7f05: "Mian " +0x7f06: "Lan " +0x7f07: "Ti " +0x7f08: "Miao " +0x7f09: "Qi " +0x7f0a: "Yun " +0x7f0b: "Hui " +0x7f0c: "Si " +0x7f0d: "Duo " +0x7f0e: "Duan " +0x7f0f: "Bian " +0x7f10: "Xian " +0x7f11: "Gou " +0x7f12: "Zhui " +0x7f13: "Huan " +0x7f14: "Di " +0x7f15: "Lu " +0x7f16: "Bian " +0x7f17: "Min " +0x7f18: "Yuan " +0x7f19: "Jin " +0x7f1a: "Fu " +0x7f1b: "Ru " +0x7f1c: "Zhen " +0x7f1d: "Feng " +0x7f1e: "Shuai " +0x7f1f: "Gao " +0x7f20: "Chan " +0x7f21: "Li " +0x7f22: "Yi " +0x7f23: "Jian " +0x7f24: "Bin " +0x7f25: "Piao " +0x7f26: "Man " +0x7f27: "Lei " +0x7f28: "Ying " +0x7f29: "Suo " +0x7f2a: "Mou " +0x7f2b: "Sao " +0x7f2c: "Xie " +0x7f2d: "Liao " +0x7f2e: "Shan " +0x7f2f: "Zeng " +0x7f30: "Jiang " +0x7f31: "Qian " +0x7f32: "Zao " +0x7f33: "Huan " +0x7f34: "Jiao " +0x7f35: "Zuan " +0x7f36: "Fou " +0x7f37: "Xie " +0x7f38: "Gang " +0x7f39: "Fou " +0x7f3a: "Que " +0x7f3b: "Fou " +0x7f3c: "Kaakeru " +0x7f3d: "Bo " +0x7f3e: "Ping " +0x7f3f: "Hou " +0x7f40: "[?] " +0x7f41: "Gang " +0x7f42: "Ying " +0x7f43: "Ying " +0x7f44: "Qing " +0x7f45: "Xia " +0x7f46: "Guan " +0x7f47: "Zun " +0x7f48: "Tan " +0x7f49: "Chang " +0x7f4a: "Qi " +0x7f4b: "Weng " +0x7f4c: "Ying " +0x7f4d: "Lei " +0x7f4e: "Tan " +0x7f4f: "Lu " +0x7f50: "Guan " +0x7f51: "Wang " +0x7f52: "Wang " +0x7f53: "Gang " +0x7f54: "Wang " +0x7f55: "Han " +0x7f56: "[?] " +0x7f57: "Luo " +0x7f58: "Fu " +0x7f59: "Mi " +0x7f5a: "Fa " +0x7f5b: "Gu " +0x7f5c: "Zhu " +0x7f5d: "Ju " +0x7f5e: "Mao " +0x7f5f: "Gu " +0x7f60: "Min " +0x7f61: "Gang " +0x7f62: "Ba " +0x7f63: "Gua " +0x7f64: "Ti " +0x7f65: "Juan " +0x7f66: "Fu " +0x7f67: "Lin " +0x7f68: "Yan " +0x7f69: "Zhao " +0x7f6a: "Zui " +0x7f6b: "Gua " +0x7f6c: "Zhuo " +0x7f6d: "Yu " +0x7f6e: "Zhi " +0x7f6f: "An " +0x7f70: "Fa " +0x7f71: "Nan " +0x7f72: "Shu " +0x7f73: "Si " +0x7f74: "Pi " +0x7f75: "Ma " +0x7f76: "Liu " +0x7f77: "Ba " +0x7f78: "Fa " +0x7f79: "Li " +0x7f7a: "Chao " +0x7f7b: "Wei " +0x7f7c: "Bi " +0x7f7d: "Ji " +0x7f7e: "Zeng " +0x7f7f: "Tong " +0x7f80: "Liu " +0x7f81: "Ji " +0x7f82: "Juan " +0x7f83: "Mi " +0x7f84: "Zhao " +0x7f85: "Luo " +0x7f86: "Pi " +0x7f87: "Ji " +0x7f88: "Ji " +0x7f89: "Luan " +0x7f8a: "Yang " +0x7f8b: "Mie " +0x7f8c: "Qiang " +0x7f8d: "Ta " +0x7f8e: "Mei " +0x7f8f: "Yang " +0x7f90: "You " +0x7f91: "You " +0x7f92: "Fen " +0x7f93: "Ba " +0x7f94: "Gao " +0x7f95: "Yang " +0x7f96: "Gu " +0x7f97: "Qiang " +0x7f98: "Zang " +0x7f99: "Gao " +0x7f9a: "Ling " +0x7f9b: "Yi " +0x7f9c: "Zhu " +0x7f9d: "Di " +0x7f9e: "Xiu " +0x7f9f: "Qian " +0x7fa0: "Yi " +0x7fa1: "Xian " +0x7fa2: "Rong " +0x7fa3: "Qun " +0x7fa4: "Qun " +0x7fa5: "Qian " +0x7fa6: "Huan " +0x7fa7: "Zui " +0x7fa8: "Xian " +0x7fa9: "Yi " +0x7faa: "Yashinau " +0x7fab: "Qiang " +0x7fac: "Xian " +0x7fad: "Yu " +0x7fae: "Geng " +0x7faf: "Jie " +0x7fb0: "Tang " +0x7fb1: "Yuan " +0x7fb2: "Xi " +0x7fb3: "Fan " +0x7fb4: "Shan " +0x7fb5: "Fen " +0x7fb6: "Shan " +0x7fb7: "Lian " +0x7fb8: "Lei " +0x7fb9: "Geng " +0x7fba: "Nou " +0x7fbb: "Qiang " +0x7fbc: "Chan " +0x7fbd: "Yu " +0x7fbe: "Gong " +0x7fbf: "Yi " +0x7fc0: "Chong " +0x7fc1: "Weng " +0x7fc2: "Fen " +0x7fc3: "Hong " +0x7fc4: "Chi " +0x7fc5: "Chi " +0x7fc6: "Cui " +0x7fc7: "Fu " +0x7fc8: "Xia " +0x7fc9: "Pen " +0x7fca: "Yi " +0x7fcb: "La " +0x7fcc: "Yi " +0x7fcd: "Pi " +0x7fce: "Ling " +0x7fcf: "Liu " +0x7fd0: "Zhi " +0x7fd1: "Qu " +0x7fd2: "Xi " +0x7fd3: "Xie " +0x7fd4: "Xiang " +0x7fd5: "Xi " +0x7fd6: "Xi " +0x7fd7: "Qi " +0x7fd8: "Qiao " +0x7fd9: "Hui " +0x7fda: "Hui " +0x7fdb: "Xiao " +0x7fdc: "Se " +0x7fdd: "Hong " +0x7fde: "Jiang " +0x7fdf: "Di " +0x7fe0: "Cui " +0x7fe1: "Fei " +0x7fe2: "Tao " +0x7fe3: "Sha " +0x7fe4: "Chi " +0x7fe5: "Zhu " +0x7fe6: "Jian " +0x7fe7: "Xuan " +0x7fe8: "Shi " +0x7fe9: "Pian " +0x7fea: "Zong " +0x7feb: "Wan " +0x7fec: "Hui " +0x7fed: "Hou " +0x7fee: "He " +0x7fef: "He " +0x7ff0: "Han " +0x7ff1: "Ao " +0x7ff2: "Piao " +0x7ff3: "Yi " +0x7ff4: "Lian " +0x7ff5: "Qu " +0x7ff6: "[?] " +0x7ff7: "Lin " +0x7ff8: "Pen " +0x7ff9: "Qiao " +0x7ffa: "Ao " +0x7ffb: "Fan " +0x7ffc: "Yi " +0x7ffd: "Hui " +0x7ffe: "Xuan " +0x7fff: "Dao " +/* x080 */ +0x8000: "Yao " +0x8001: "Lao " +0x8002: "[?] " +0x8003: "Kao " +0x8004: "Mao " +0x8005: "Zhe " +0x8006: "Qi " +0x8007: "Gou " +0x8008: "Gou " +0x8009: "Gou " +0x800a: "Die " +0x800b: "Die " +0x800c: "Er " +0x800d: "Shua " +0x800e: "Ruan " +0x800f: "Er " +0x8010: "Nai " +0x8011: "Zhuan " +0x8012: "Lei " +0x8013: "Ting " +0x8014: "Zi " +0x8015: "Geng " +0x8016: "Chao " +0x8017: "Hao " +0x8018: "Yun " +0x8019: "Pa " +0x801a: "Pi " +0x801b: "Chi " +0x801c: "Si " +0x801d: "Chu " +0x801e: "Jia " +0x801f: "Ju " +0x8020: "He " +0x8021: "Chu " +0x8022: "Lao " +0x8023: "Lun " +0x8024: "Ji " +0x8025: "Tang " +0x8026: "Ou " +0x8027: "Lou " +0x8028: "Nou " +0x8029: "Gou " +0x802a: "Pang " +0x802b: "Ze " +0x802c: "Lou " +0x802d: "Ji " +0x802e: "Lao " +0x802f: "Huo " +0x8030: "You " +0x8031: "Mo " +0x8032: "Huai " +0x8033: "Er " +0x8034: "Zhe " +0x8035: "Ting " +0x8036: "Ye " +0x8037: "Da " +0x8038: "Song " +0x8039: "Qin " +0x803a: "Yun " +0x803b: "Chi " +0x803c: "Dan " +0x803d: "Dan " +0x803e: "Hong " +0x803f: "Geng " +0x8040: "Zhi " +0x8041: "[?] " +0x8042: "Nie " +0x8043: "Dan " +0x8044: "Zhen " +0x8045: "Che " +0x8046: "Ling " +0x8047: "Zheng " +0x8048: "You " +0x8049: "Wa " +0x804a: "Liao " +0x804b: "Long " +0x804c: "Zhi " +0x804d: "Ning " +0x804e: "Tiao " +0x804f: "Er " +0x8050: "Ya " +0x8051: "Die " +0x8052: "Gua " +0x8053: "[?] " +0x8054: "Lian " +0x8055: "Hao " +0x8056: "Sheng " +0x8057: "Lie " +0x8058: "Pin " +0x8059: "Jing " +0x805a: "Ju " +0x805b: "Bi " +0x805c: "Di " +0x805d: "Guo " +0x805e: "Wen " +0x805f: "Xu " +0x8060: "Ping " +0x8061: "Cong " +0x8062: "Shikato " +0x8063: "[?] " +0x8064: "Ting " +0x8065: "Yu " +0x8066: "Cong " +0x8067: "Kui " +0x8068: "Tsuraneru " +0x8069: "Kui " +0x806a: "Cong " +0x806b: "Lian " +0x806c: "Weng " +0x806d: "Kui " +0x806e: "Lian " +0x806f: "Lian " +0x8070: "Cong " +0x8071: "Ao " +0x8072: "Sheng " +0x8073: "Song " +0x8074: "Ting " +0x8075: "Kui " +0x8076: "Nie " +0x8077: "Zhi " +0x8078: "Dan " +0x8079: "Ning " +0x807a: "Qie " +0x807b: "Ji " +0x807c: "Ting " +0x807d: "Ting " +0x807e: "Long " +0x807f: "Yu " +0x8080: "Yu " +0x8081: "Zhao " +0x8082: "Si " +0x8083: "Su " +0x8084: "Yi " +0x8085: "Su " +0x8086: "Si " +0x8087: "Zhao " +0x8088: "Zhao " +0x8089: "Rou " +0x808a: "Yi " +0x808b: "Le " +0x808c: "Ji " +0x808d: "Qiu " +0x808e: "Ken " +0x808f: "Cao " +0x8090: "Ge " +0x8091: "Di " +0x8092: "Huan " +0x8093: "Huang " +0x8094: "Yi " +0x8095: "Ren " +0x8096: "Xiao " +0x8097: "Ru " +0x8098: "Zhou " +0x8099: "Yuan " +0x809a: "Du " +0x809b: "Gang " +0x809c: "Rong " +0x809d: "Gan " +0x809e: "Cha " +0x809f: "Wo " +0x80a0: "Chang " +0x80a1: "Gu " +0x80a2: "Zhi " +0x80a3: "Han " +0x80a4: "Fu " +0x80a5: "Fei " +0x80a6: "Fen " +0x80a7: "Pei " +0x80a8: "Pang " +0x80a9: "Jian " +0x80aa: "Fang " +0x80ab: "Zhun " +0x80ac: "You " +0x80ad: "Na " +0x80ae: "Hang " +0x80af: "Ken " +0x80b0: "Ran " +0x80b1: "Gong " +0x80b2: "Yu " +0x80b3: "Wen " +0x80b4: "Yao " +0x80b5: "Jin " +0x80b6: "Pi " +0x80b7: "Qian " +0x80b8: "Xi " +0x80b9: "Xi " +0x80ba: "Fei " +0x80bb: "Ken " +0x80bc: "Jing " +0x80bd: "Tai " +0x80be: "Shen " +0x80bf: "Zhong " +0x80c0: "Zhang " +0x80c1: "Xie " +0x80c2: "Shen " +0x80c3: "Wei " +0x80c4: "Zhou " +0x80c5: "Die " +0x80c6: "Dan " +0x80c7: "Fei " +0x80c8: "Ba " +0x80c9: "Bo " +0x80ca: "Qu " +0x80cb: "Tian " +0x80cc: "Bei " +0x80cd: "Gua " +0x80ce: "Tai " +0x80cf: "Zi " +0x80d0: "Ku " +0x80d1: "Zhi " +0x80d2: "Ni " +0x80d3: "Ping " +0x80d4: "Zi " +0x80d5: "Fu " +0x80d6: "Pang " +0x80d7: "Zhen " +0x80d8: "Xian " +0x80d9: "Zuo " +0x80da: "Pei " +0x80db: "Jia " +0x80dc: "Sheng " +0x80dd: "Zhi " +0x80de: "Bao " +0x80df: "Mu " +0x80e0: "Qu " +0x80e1: "Hu " +0x80e2: "Ke " +0x80e3: "Yi " +0x80e4: "Yin " +0x80e5: "Xu " +0x80e6: "Yang " +0x80e7: "Long " +0x80e8: "Dong " +0x80e9: "Ka " +0x80ea: "Lu " +0x80eb: "Jing " +0x80ec: "Nu " +0x80ed: "Yan " +0x80ee: "Pang " +0x80ef: "Kua " +0x80f0: "Yi " +0x80f1: "Guang " +0x80f2: "Gai " +0x80f3: "Ge " +0x80f4: "Dong " +0x80f5: "Zhi " +0x80f6: "Xiao " +0x80f7: "Xiong " +0x80f8: "Xiong " +0x80f9: "Er " +0x80fa: "E " +0x80fb: "Xing " +0x80fc: "Pian " +0x80fd: "Neng " +0x80fe: "Zi " +0x80ff: "Gui " +/* x081 */ +0x8100: "Cheng " +0x8101: "Tiao " +0x8102: "Zhi " +0x8103: "Cui " +0x8104: "Mei " +0x8105: "Xie " +0x8106: "Cui " +0x8107: "Xie " +0x8108: "Mo " +0x8109: "Mai " +0x810a: "Ji " +0x810b: "Obiyaakasu " +0x810c: "[?] " +0x810d: "Kuai " +0x810e: "Sa " +0x810f: "Zang " +0x8110: "Qi " +0x8111: "Nao " +0x8112: "Mi " +0x8113: "Nong " +0x8114: "Luan " +0x8115: "Wan " +0x8116: "Bo " +0x8117: "Wen " +0x8118: "Guan " +0x8119: "Qiu " +0x811a: "Jiao " +0x811b: "Jing " +0x811c: "Rou " +0x811d: "Heng " +0x811e: "Cuo " +0x811f: "Lie " +0x8120: "Shan " +0x8121: "Ting " +0x8122: "Mei " +0x8123: "Chun " +0x8124: "Shen " +0x8125: "Xie " +0x8126: "De " +0x8127: "Zui " +0x8128: "Cu " +0x8129: "Xiu " +0x812a: "Xin " +0x812b: "Tuo " +0x812c: "Pao " +0x812d: "Cheng " +0x812e: "Nei " +0x812f: "Fu " +0x8130: "Dou " +0x8131: "Tuo " +0x8132: "Niao " +0x8133: "Noy " +0x8134: "Pi " +0x8135: "Gu " +0x8136: "Gua " +0x8137: "Li " +0x8138: "Lian " +0x8139: "Zhang " +0x813a: "Cui " +0x813b: "Jie " +0x813c: "Liang " +0x813d: "Zhou " +0x813e: "Pi " +0x813f: "Biao " +0x8140: "Lun " +0x8141: "Pian " +0x8142: "Guo " +0x8143: "Kui " +0x8144: "Chui " +0x8145: "Dan " +0x8146: "Tian " +0x8147: "Nei " +0x8148: "Jing " +0x8149: "Jie " +0x814a: "La " +0x814b: "Yi " +0x814c: "An " +0x814d: "Ren " +0x814e: "Shen " +0x814f: "Chuo " +0x8150: "Fu " +0x8151: "Fu " +0x8152: "Ju " +0x8153: "Fei " +0x8154: "Qiang " +0x8155: "Wan " +0x8156: "Dong " +0x8157: "Pi " +0x8158: "Guo " +0x8159: "Zong " +0x815a: "Ding " +0x815b: "Wu " +0x815c: "Mei " +0x815d: "Ruan " +0x815e: "Zhuan " +0x815f: "Zhi " +0x8160: "Cou " +0x8161: "Gua " +0x8162: "Ou " +0x8163: "Di " +0x8164: "An " +0x8165: "Xing " +0x8166: "Nao " +0x8167: "Yu " +0x8168: "Chuan " +0x8169: "Nan " +0x816a: "Yun " +0x816b: "Zhong " +0x816c: "Rou " +0x816d: "E " +0x816e: "Sai " +0x816f: "Tu " +0x8170: "Yao " +0x8171: "Jian " +0x8172: "Wei " +0x8173: "Jiao " +0x8174: "Yu " +0x8175: "Jia " +0x8176: "Duan " +0x8177: "Bi " +0x8178: "Chang " +0x8179: "Fu " +0x817a: "Xian " +0x817b: "Ni " +0x817c: "Mian " +0x817d: "Wa " +0x817e: "Teng " +0x817f: "Tui " +0x8180: "Bang " +0x8181: "Qian " +0x8182: "Lu " +0x8183: "Wa " +0x8184: "Sou " +0x8185: "Tang " +0x8186: "Su " +0x8187: "Zhui " +0x8188: "Ge " +0x8189: "Yi " +0x818a: "Bo " +0x818b: "Liao " +0x818c: "Ji " +0x818d: "Pi " +0x818e: "Xie " +0x818f: "Gao " +0x8190: "Lu " +0x8191: "Bin " +0x8192: "Ou " +0x8193: "Chang " +0x8194: "Lu " +0x8195: "Guo " +0x8196: "Pang " +0x8197: "Chuai " +0x8198: "Piao " +0x8199: "Jiang " +0x819a: "Fu " +0x819b: "Tang " +0x819c: "Mo " +0x819d: "Xi " +0x819e: "Zhuan " +0x819f: "Lu " +0x81a0: "Jiao " +0x81a1: "Ying " +0x81a2: "Lu " +0x81a3: "Zhi " +0x81a4: "Tara " +0x81a5: "Chun " +0x81a6: "Lian " +0x81a7: "Tong " +0x81a8: "Peng " +0x81a9: "Ni " +0x81aa: "Zha " +0x81ab: "Liao " +0x81ac: "Cui " +0x81ad: "Gui " +0x81ae: "Xiao " +0x81af: "Teng " +0x81b0: "Fan " +0x81b1: "Zhi " +0x81b2: "Jiao " +0x81b3: "Shan " +0x81b4: "Wu " +0x81b5: "Cui " +0x81b6: "Run " +0x81b7: "Xiang " +0x81b8: "Sui " +0x81b9: "Fen " +0x81ba: "Ying " +0x81bb: "Tan " +0x81bc: "Zhua " +0x81bd: "Dan " +0x81be: "Kuai " +0x81bf: "Nong " +0x81c0: "Tun " +0x81c1: "Lian " +0x81c2: "Bi " +0x81c3: "Yong " +0x81c4: "Jue " +0x81c5: "Chu " +0x81c6: "Yi " +0x81c7: "Juan " +0x81c8: "La " +0x81c9: "Lian " +0x81ca: "Sao " +0x81cb: "Tun " +0x81cc: "Gu " +0x81cd: "Qi " +0x81ce: "Cui " +0x81cf: "Bin " +0x81d0: "Xun " +0x81d1: "Ru " +0x81d2: "Huo " +0x81d3: "Zang " +0x81d4: "Xian " +0x81d5: "Biao " +0x81d6: "Xing " +0x81d7: "Kuan " +0x81d8: "La " +0x81d9: "Yan " +0x81da: "Lu " +0x81db: "Huo " +0x81dc: "Zang " +0x81dd: "Luo " +0x81de: "Qu " +0x81df: "Zang " +0x81e0: "Luan " +0x81e1: "Ni " +0x81e2: "Zang " +0x81e3: "Chen " +0x81e4: "Qian " +0x81e5: "Wo " +0x81e6: "Guang " +0x81e7: "Zang " +0x81e8: "Lin " +0x81e9: "Guang " +0x81ea: "Zi " +0x81eb: "Jiao " +0x81ec: "Nie " +0x81ed: "Chou " +0x81ee: "Ji " +0x81ef: "Gao " +0x81f0: "Chou " +0x81f1: "Mian " +0x81f2: "Nie " +0x81f3: "Zhi " +0x81f4: "Zhi " +0x81f5: "Ge " +0x81f6: "Jian " +0x81f7: "Die " +0x81f8: "Zhi " +0x81f9: "Xiu " +0x81fa: "Tai " +0x81fb: "Zhen " +0x81fc: "Jiu " +0x81fd: "Xian " +0x81fe: "Yu " +0x81ff: "Cha " +/* x082 */ +0x8200: "Yao " +0x8201: "Yu " +0x8202: "Chong " +0x8203: "Xi " +0x8204: "Xi " +0x8205: "Jiu " +0x8206: "Yu " +0x8207: "Yu " +0x8208: "Xing " +0x8209: "Ju " +0x820a: "Jiu " +0x820b: "Xin " +0x820c: "She " +0x820d: "She " +0x820e: "Yadoru " +0x820f: "Jiu " +0x8210: "Shi " +0x8211: "Tan " +0x8212: "Shu " +0x8213: "Shi " +0x8214: "Tian " +0x8215: "Dan " +0x8216: "Pu " +0x8217: "Pu " +0x8218: "Guan " +0x8219: "Hua " +0x821a: "Tan " +0x821b: "Chuan " +0x821c: "Shun " +0x821d: "Xia " +0x821e: "Wu " +0x821f: "Zhou " +0x8220: "Dao " +0x8221: "Gang " +0x8222: "Shan " +0x8223: "Yi " +0x8224: "[?] " +0x8225: "Pa " +0x8226: "Tai " +0x8227: "Fan " +0x8228: "Ban " +0x8229: "Chuan " +0x822a: "Hang " +0x822b: "Fang " +0x822c: "Ban " +0x822d: "Que " +0x822e: "Hesaki " +0x822f: "Zhong " +0x8230: "Jian " +0x8231: "Cang " +0x8232: "Ling " +0x8233: "Zhu " +0x8234: "Ze " +0x8235: "Duo " +0x8236: "Bo " +0x8237: "Xian " +0x8238: "Ge " +0x8239: "Chuan " +0x823a: "Jia " +0x823b: "Lu " +0x823c: "Hong " +0x823d: "Pang " +0x823e: "Xi " +0x823f: "[?] " +0x8240: "Fu " +0x8241: "Zao " +0x8242: "Feng " +0x8243: "Li " +0x8244: "Shao " +0x8245: "Yu " +0x8246: "Lang " +0x8247: "Ting " +0x8248: "[?] " +0x8249: "Wei " +0x824a: "Bo " +0x824b: "Meng " +0x824c: "Nian " +0x824d: "Ju " +0x824e: "Huang " +0x824f: "Shou " +0x8250: "Zong " +0x8251: "Bian " +0x8252: "Mao " +0x8253: "Die " +0x8254: "[?] " +0x8255: "Bang " +0x8256: "Cha " +0x8257: "Yi " +0x8258: "Sao " +0x8259: "Cang " +0x825a: "Cao " +0x825b: "Lou " +0x825c: "Dai " +0x825d: "Sori " +0x825e: "Yao " +0x825f: "Tong " +0x8260: "Yofune " +0x8261: "Dang " +0x8262: "Tan " +0x8263: "Lu " +0x8264: "Yi " +0x8265: "Jie " +0x8266: "Jian " +0x8267: "Huo " +0x8268: "Meng " +0x8269: "Qi " +0x826a: "Lu " +0x826b: "Lu " +0x826c: "Chan " +0x826d: "Shuang " +0x826e: "Gen " +0x826f: "Liang " +0x8270: "Jian " +0x8271: "Jian " +0x8272: "Se " +0x8273: "Yan " +0x8274: "Fu " +0x8275: "Ping " +0x8276: "Yan " +0x8277: "Yan " +0x8278: "Cao " +0x8279: "Cao " +0x827a: "Yi " +0x827b: "Le " +0x827c: "Ting " +0x827d: "Qiu " +0x827e: "Ai " +0x827f: "Nai " +0x8280: "Tiao " +0x8281: "Jiao " +0x8282: "Jie " +0x8283: "Peng " +0x8284: "Wan " +0x8285: "Yi " +0x8286: "Chai " +0x8287: "Mian " +0x8288: "Mie " +0x8289: "Gan " +0x828a: "Qian " +0x828b: "Yu " +0x828c: "Yu " +0x828d: "Shuo " +0x828e: "Qiong " +0x828f: "Tu " +0x8290: "Xia " +0x8291: "Qi " +0x8292: "Mang " +0x8293: "Zi " +0x8294: "Hui " +0x8295: "Sui " +0x8296: "Zhi " +0x8297: "Xiang " +0x8298: "Bi " +0x8299: "Fu " +0x829a: "Tun " +0x829b: "Wei " +0x829c: "Wu " +0x829d: "Zhi " +0x829e: "Qi " +0x829f: "Shan " +0x82a0: "Wen " +0x82a1: "Qian " +0x82a2: "Ren " +0x82a3: "Fou " +0x82a4: "Kou " +0x82a5: "Jie " +0x82a6: "Lu " +0x82a7: "Xu " +0x82a8: "Ji " +0x82a9: "Qin " +0x82aa: "Qi " +0x82ab: "Yuan " +0x82ac: "Fen " +0x82ad: "Ba " +0x82ae: "Rui " +0x82af: "Xin " +0x82b0: "Ji " +0x82b1: "Hua " +0x82b2: "Hua " +0x82b3: "Fang " +0x82b4: "Wu " +0x82b5: "Jue " +0x82b6: "Gou " +0x82b7: "Zhi " +0x82b8: "Yun " +0x82b9: "Qin " +0x82ba: "Ao " +0x82bb: "Chu " +0x82bc: "Mao " +0x82bd: "Ya " +0x82be: "Fei " +0x82bf: "Reng " +0x82c0: "Hang " +0x82c1: "Cong " +0x82c2: "Yin " +0x82c3: "You " +0x82c4: "Bian " +0x82c5: "Yi " +0x82c6: "Susa " +0x82c7: "Wei " +0x82c8: "Li " +0x82c9: "Pi " +0x82ca: "E " +0x82cb: "Xian " +0x82cc: "Chang " +0x82cd: "Cang " +0x82ce: "Meng " +0x82cf: "Su " +0x82d0: "Yi " +0x82d1: "Yuan " +0x82d2: "Ran " +0x82d3: "Ling " +0x82d4: "Tai " +0x82d5: "Tiao " +0x82d6: "Di " +0x82d7: "Miao " +0x82d8: "Qiong " +0x82d9: "Li " +0x82da: "Yong " +0x82db: "Ke " +0x82dc: "Mu " +0x82dd: "Pei " +0x82de: "Bao " +0x82df: "Gou " +0x82e0: "Min " +0x82e1: "Yi " +0x82e2: "Yi " +0x82e3: "Ju " +0x82e4: "Pi " +0x82e5: "Ruo " +0x82e6: "Ku " +0x82e7: "Zhu " +0x82e8: "Ni " +0x82e9: "Bo " +0x82ea: "Bing " +0x82eb: "Shan " +0x82ec: "Qiu " +0x82ed: "Yao " +0x82ee: "Xian " +0x82ef: "Ben " +0x82f0: "Hong " +0x82f1: "Ying " +0x82f2: "Zha " +0x82f3: "Dong " +0x82f4: "Ju " +0x82f5: "Die " +0x82f6: "Nie " +0x82f7: "Gan " +0x82f8: "Hu " +0x82f9: "Ping " +0x82fa: "Mei " +0x82fb: "Fu " +0x82fc: "Sheng " +0x82fd: "Gu " +0x82fe: "Bi " +0x82ff: "Wei " +/* x083 */ +0x8300: "Fu " +0x8301: "Zhuo " +0x8302: "Mao " +0x8303: "Fan " +0x8304: "Qie " +0x8305: "Mao " +0x8306: "Mao " +0x8307: "Ba " +0x8308: "Zi " +0x8309: "Mo " +0x830a: "Zi " +0x830b: "Di " +0x830c: "Chi " +0x830d: "Ji " +0x830e: "Jing " +0x830f: "Long " +0x8310: "[?] " +0x8311: "Niao " +0x8312: "[?] " +0x8313: "Xue " +0x8314: "Ying " +0x8315: "Qiong " +0x8316: "Ge " +0x8317: "Ming " +0x8318: "Li " +0x8319: "Rong " +0x831a: "Yin " +0x831b: "Gen " +0x831c: "Qian " +0x831d: "Chai " +0x831e: "Chen " +0x831f: "Yu " +0x8320: "Xiu " +0x8321: "Zi " +0x8322: "Lie " +0x8323: "Wu " +0x8324: "Ji " +0x8325: "Kui " +0x8326: "Ce " +0x8327: "Chong " +0x8328: "Ci " +0x8329: "Gou " +0x832a: "Guang " +0x832b: "Mang " +0x832c: "Chi " +0x832d: "Jiao " +0x832e: "Jiao " +0x832f: "Fu " +0x8330: "Yu " +0x8331: "Zhu " +0x8332: "Zi " +0x8333: "Jiang " +0x8334: "Hui " +0x8335: "Yin " +0x8336: "Cha " +0x8337: "Fa " +0x8338: "Rong " +0x8339: "Ru " +0x833a: "Chong " +0x833b: "Mang " +0x833c: "Tong " +0x833d: "Zhong " +0x833e: "[?] " +0x833f: "Zhu " +0x8340: "Xun " +0x8341: "Huan " +0x8342: "Kua " +0x8343: "Quan " +0x8344: "Gai " +0x8345: "Da " +0x8346: "Jing " +0x8347: "Xing " +0x8348: "Quan " +0x8349: "Cao " +0x834a: "Jing " +0x834b: "Er " +0x834c: "An " +0x834d: "Shou " +0x834e: "Chi " +0x834f: "Ren " +0x8350: "Jian " +0x8351: "Ti " +0x8352: "Huang " +0x8353: "Ping " +0x8354: "Li " +0x8355: "Jin " +0x8356: "Lao " +0x8357: "Shu " +0x8358: "Zhuang " +0x8359: "Da " +0x835a: "Jia " +0x835b: "Rao " +0x835c: "Bi " +0x835d: "Ze " +0x835e: "Qiao " +0x835f: "Hui " +0x8360: "Qi " +0x8361: "Dang " +0x8362: "[?] " +0x8363: "Rong " +0x8364: "Hun " +0x8365: "Ying " +0x8366: "Luo " +0x8367: "Ying " +0x8368: "Xun " +0x8369: "Jin " +0x836a: "Sun " +0x836b: "Yin " +0x836c: "Mai " +0x836d: "Hong " +0x836e: "Zhou " +0x836f: "Yao " +0x8370: "Du " +0x8371: "Wei " +0x8372: "Chu " +0x8373: "Dou " +0x8374: "Fu " +0x8375: "Ren " +0x8376: "Yin " +0x8377: "He " +0x8378: "Bi " +0x8379: "Bu " +0x837a: "Yun " +0x837b: "Di " +0x837c: "Tu " +0x837d: "Sui " +0x837e: "Sui " +0x837f: "Cheng " +0x8380: "Chen " +0x8381: "Wu " +0x8382: "Bie " +0x8383: "Xi " +0x8384: "Geng " +0x8385: "Li " +0x8386: "Fu " +0x8387: "Zhu " +0x8388: "Mo " +0x8389: "Li " +0x838a: "Zhuang " +0x838b: "Ji " +0x838c: "Duo " +0x838d: "Qiu " +0x838e: "Sha " +0x838f: "Suo " +0x8390: "Chen " +0x8391: "Feng " +0x8392: "Ju " +0x8393: "Mei " +0x8394: "Meng " +0x8395: "Xing " +0x8396: "Jing " +0x8397: "Che " +0x8398: "Xin " +0x8399: "Jun " +0x839a: "Yan " +0x839b: "Ting " +0x839c: "Diao " +0x839d: "Cuo " +0x839e: "Wan " +0x839f: "Han " +0x83a0: "You " +0x83a1: "Cuo " +0x83a2: "Jia " +0x83a3: "Wang " +0x83a4: "You " +0x83a5: "Niu " +0x83a6: "Shao " +0x83a7: "Xian " +0x83a8: "Lang " +0x83a9: "Fu " +0x83aa: "E " +0x83ab: "Mo " +0x83ac: "Wen " +0x83ad: "Jie " +0x83ae: "Nan " +0x83af: "Mu " +0x83b0: "Kan " +0x83b1: "Lai " +0x83b2: "Lian " +0x83b3: "Shi " +0x83b4: "Wo " +0x83b5: "Usagi " +0x83b6: "Lian " +0x83b7: "Huo " +0x83b8: "You " +0x83b9: "Ying " +0x83ba: "Ying " +0x83bb: "Nuc " +0x83bc: "Chun " +0x83bd: "Mang " +0x83be: "Mang " +0x83bf: "Ci " +0x83c0: "Wan " +0x83c1: "Jing " +0x83c2: "Di " +0x83c3: "Qu " +0x83c4: "Dong " +0x83c5: "Jian " +0x83c6: "Zou " +0x83c7: "Gu " +0x83c8: "La " +0x83c9: "Lu " +0x83ca: "Ju " +0x83cb: "Wei " +0x83cc: "Jun " +0x83cd: "Nie " +0x83ce: "Kun " +0x83cf: "He " +0x83d0: "Pu " +0x83d1: "Zi " +0x83d2: "Gao " +0x83d3: "Guo " +0x83d4: "Fu " +0x83d5: "Lun " +0x83d6: "Chang " +0x83d7: "Chou " +0x83d8: "Song " +0x83d9: "Chui " +0x83da: "Zhan " +0x83db: "Men " +0x83dc: "Cai " +0x83dd: "Ba " +0x83de: "Li " +0x83df: "Tu " +0x83e0: "Bo " +0x83e1: "Han " +0x83e2: "Bao " +0x83e3: "Qin " +0x83e4: "Juan " +0x83e5: "Xi " +0x83e6: "Qin " +0x83e7: "Di " +0x83e8: "Jie " +0x83e9: "Pu " +0x83ea: "Dang " +0x83eb: "Jin " +0x83ec: "Zhao " +0x83ed: "Tai " +0x83ee: "Geng " +0x83ef: "Hua " +0x83f0: "Gu " +0x83f1: "Ling " +0x83f2: "Fei " +0x83f3: "Jin " +0x83f4: "An " +0x83f5: "Wang " +0x83f6: "Beng " +0x83f7: "Zhou " +0x83f8: "Yan " +0x83f9: "Ju " +0x83fa: "Jian " +0x83fb: "Lin " +0x83fc: "Tan " +0x83fd: "Shu " +0x83fe: "Tian " +0x83ff: "Dao " +/* x084 */ +0x8400: "Hu " +0x8401: "Qi " +0x8402: "He " +0x8403: "Cui " +0x8404: "Tao " +0x8405: "Chun " +0x8406: "Bei " +0x8407: "Chang " +0x8408: "Huan " +0x8409: "Fei " +0x840a: "Lai " +0x840b: "Qi " +0x840c: "Meng " +0x840d: "Ping " +0x840e: "Wei " +0x840f: "Dan " +0x8410: "Sha " +0x8411: "Huan " +0x8412: "Yan " +0x8413: "Yi " +0x8414: "Tiao " +0x8415: "Qi " +0x8416: "Wan " +0x8417: "Ce " +0x8418: "Nai " +0x8419: "Kutabireru " +0x841a: "Tuo " +0x841b: "Jiu " +0x841c: "Tie " +0x841d: "Luo " +0x841e: "[?] " +0x841f: "[?] " +0x8420: "Meng " +0x8421: "[?] " +0x8422: "Yaji " +0x8423: "[?] " +0x8424: "Ying " +0x8425: "Ying " +0x8426: "Ying " +0x8427: "Xiao " +0x8428: "Sa " +0x8429: "Qiu " +0x842a: "Ke " +0x842b: "Xiang " +0x842c: "Wan " +0x842d: "Yu " +0x842e: "Yu " +0x842f: "Fu " +0x8430: "Lian " +0x8431: "Xuan " +0x8432: "Yuan " +0x8433: "Nan " +0x8434: "Ze " +0x8435: "Wo " +0x8436: "Chun " +0x8437: "Xiao " +0x8438: "Yu " +0x8439: "Pian " +0x843a: "Mao " +0x843b: "An " +0x843c: "E " +0x843d: "Luo " +0x843e: "Ying " +0x843f: "Huo " +0x8440: "Gua " +0x8441: "Jiang " +0x8442: "Mian " +0x8443: "Zuo " +0x8444: "Zuo " +0x8445: "Ju " +0x8446: "Bao " +0x8447: "Rou " +0x8448: "Xi " +0x8449: "Xie " +0x844a: "An " +0x844b: "Qu " +0x844c: "Jian " +0x844d: "Fu " +0x844e: "Lu " +0x844f: "Jing " +0x8450: "Pen " +0x8451: "Feng " +0x8452: "Hong " +0x8453: "Hong " +0x8454: "Hou " +0x8455: "Yan " +0x8456: "Tu " +0x8457: "Zhu " +0x8458: "Zi " +0x8459: "Xiang " +0x845a: "Shen " +0x845b: "Ge " +0x845c: "Jie " +0x845d: "Jing " +0x845e: "Mi " +0x845f: "Huang " +0x8460: "Shen " +0x8461: "Pu " +0x8462: "Gai " +0x8463: "Dong " +0x8464: "Zhou " +0x8465: "Qian " +0x8466: "Wei " +0x8467: "Bo " +0x8468: "Wei " +0x8469: "Pa " +0x846a: "Ji " +0x846b: "Hu " +0x846c: "Zang " +0x846d: "Jia " +0x846e: "Duan " +0x846f: "Yao " +0x8470: "Jun " +0x8471: "Cong " +0x8472: "Quan " +0x8473: "Wei " +0x8474: "Xian " +0x8475: "Kui " +0x8476: "Ting " +0x8477: "Hun " +0x8478: "Xi " +0x8479: "Shi " +0x847a: "Qi " +0x847b: "Lan " +0x847c: "Zong " +0x847d: "Yao " +0x847e: "Yuan " +0x847f: "Mei " +0x8480: "Yun " +0x8481: "Shu " +0x8482: "Di " +0x8483: "Zhuan " +0x8484: "Guan " +0x8485: "Sukumo " +0x8486: "Xue " +0x8487: "Chan " +0x8488: "Kai " +0x8489: "Kui " +0x848a: "[?] " +0x848b: "Jiang " +0x848c: "Lou " +0x848d: "Wei " +0x848e: "Pai " +0x848f: "[?] " +0x8490: "Sou " +0x8491: "Yin " +0x8492: "Shi " +0x8493: "Chun " +0x8494: "Shi " +0x8495: "Yun " +0x8496: "Zhen " +0x8497: "Lang " +0x8498: "Nu " +0x8499: "Meng " +0x849a: "He " +0x849b: "Que " +0x849c: "Suan " +0x849d: "Yuan " +0x849e: "Li " +0x849f: "Ju " +0x84a0: "Xi " +0x84a1: "Pang " +0x84a2: "Chu " +0x84a3: "Xu " +0x84a4: "Tu " +0x84a5: "Liu " +0x84a6: "Wo " +0x84a7: "Zhen " +0x84a8: "Qian " +0x84a9: "Zu " +0x84aa: "Po " +0x84ab: "Cuo " +0x84ac: "Yuan " +0x84ad: "Chu " +0x84ae: "Yu " +0x84af: "Kuai " +0x84b0: "Pan " +0x84b1: "Pu " +0x84b2: "Pu " +0x84b3: "Na " +0x84b4: "Shuo " +0x84b5: "Xi " +0x84b6: "Fen " +0x84b7: "Yun " +0x84b8: "Zheng " +0x84b9: "Jian " +0x84ba: "Ji " +0x84bb: "Ruo " +0x84bc: "Cang " +0x84bd: "En " +0x84be: "Mi " +0x84bf: "Hao " +0x84c0: "Sun " +0x84c1: "Zhen " +0x84c2: "Ming " +0x84c3: "Sou " +0x84c4: "Xu " +0x84c5: "Liu " +0x84c6: "Xi " +0x84c7: "Gu " +0x84c8: "Lang " +0x84c9: "Rong " +0x84ca: "Weng " +0x84cb: "Gai " +0x84cc: "Cuo " +0x84cd: "Shi " +0x84ce: "Tang " +0x84cf: "Luo " +0x84d0: "Ru " +0x84d1: "Suo " +0x84d2: "Xian " +0x84d3: "Bei " +0x84d4: "Yao " +0x84d5: "Gui " +0x84d6: "Bi " +0x84d7: "Zong " +0x84d8: "Gun " +0x84d9: "Za " +0x84da: "Xiu " +0x84db: "Ce " +0x84dc: "Hai " +0x84dd: "Lan " +0x84de: "[?] " +0x84df: "Ji " +0x84e0: "Li " +0x84e1: "Can " +0x84e2: "Lang " +0x84e3: "Yu " +0x84e4: "[?] " +0x84e5: "Ying " +0x84e6: "Mo " +0x84e7: "Diao " +0x84e8: "Tiao " +0x84e9: "Mao " +0x84ea: "Tong " +0x84eb: "Zhu " +0x84ec: "Peng " +0x84ed: "An " +0x84ee: "Lian " +0x84ef: "Cong " +0x84f0: "Xi " +0x84f1: "Ping " +0x84f2: "Qiu " +0x84f3: "Jin " +0x84f4: "Chun " +0x84f5: "Jie " +0x84f6: "Wei " +0x84f7: "Tui " +0x84f8: "Cao " +0x84f9: "Yu " +0x84fa: "Yi " +0x84fb: "Ji " +0x84fc: "Liao " +0x84fd: "Bi " +0x84fe: "Lu " +0x84ff: "Su " +/* x085 */ +0x8500: "Bu " +0x8501: "Zhang " +0x8502: "Luo " +0x8503: "Jiang " +0x8504: "Man " +0x8505: "Yan " +0x8506: "Ling " +0x8507: "Ji " +0x8508: "Piao " +0x8509: "Gun " +0x850a: "Han " +0x850b: "Di " +0x850c: "Su " +0x850d: "Lu " +0x850e: "She " +0x850f: "Shang " +0x8510: "Di " +0x8511: "Mie " +0x8512: "Xun " +0x8513: "Man " +0x8514: "Bo " +0x8515: "Di " +0x8516: "Cuo " +0x8517: "Zhe " +0x8518: "Sen " +0x8519: "Xuan " +0x851a: "Wei " +0x851b: "Hu " +0x851c: "Ao " +0x851d: "Mi " +0x851e: "Lou " +0x851f: "Cu " +0x8520: "Zhong " +0x8521: "Cai " +0x8522: "Po " +0x8523: "Jiang " +0x8524: "Mi " +0x8525: "Cong " +0x8526: "Niao " +0x8527: "Hui " +0x8528: "Jun " +0x8529: "Yin " +0x852a: "Jian " +0x852b: "Yan " +0x852c: "Shu " +0x852d: "Yin " +0x852e: "Kui " +0x852f: "Chen " +0x8530: "Hu " +0x8531: "Sha " +0x8532: "Kou " +0x8533: "Qian " +0x8534: "Ma " +0x8535: "Zang " +0x8536: "Sonoko " +0x8537: "Qiang " +0x8538: "Dou " +0x8539: "Lian " +0x853a: "Lin " +0x853b: "Kou " +0x853c: "Ai " +0x853d: "Bi " +0x853e: "Li " +0x853f: "Wei " +0x8540: "Ji " +0x8541: "Xun " +0x8542: "Sheng " +0x8543: "Fan " +0x8544: "Meng " +0x8545: "Ou " +0x8546: "Chan " +0x8547: "Dian " +0x8548: "Xun " +0x8549: "Jiao " +0x854a: "Rui " +0x854b: "Rui " +0x854c: "Lei " +0x854d: "Yu " +0x854e: "Qiao " +0x854f: "Chu " +0x8550: "Hua " +0x8551: "Jian " +0x8552: "Mai " +0x8553: "Yun " +0x8554: "Bao " +0x8555: "You " +0x8556: "Qu " +0x8557: "Lu " +0x8558: "Rao " +0x8559: "Hui " +0x855a: "E " +0x855b: "Teng " +0x855c: "Fei " +0x855d: "Jue " +0x855e: "Zui " +0x855f: "Fa " +0x8560: "Ru " +0x8561: "Fen " +0x8562: "Kui " +0x8563: "Shun " +0x8564: "Rui " +0x8565: "Ya " +0x8566: "Xu " +0x8567: "Fu " +0x8568: "Jue " +0x8569: "Dang " +0x856a: "Wu " +0x856b: "Tong " +0x856c: "Si " +0x856d: "Xiao " +0x856e: "Xi " +0x856f: "Long " +0x8570: "Yun " +0x8571: "[?] " +0x8572: "Qi " +0x8573: "Jian " +0x8574: "Yun " +0x8575: "Sun " +0x8576: "Ling " +0x8577: "Yu " +0x8578: "Xia " +0x8579: "Yong " +0x857a: "Ji " +0x857b: "Hong " +0x857c: "Si " +0x857d: "Nong " +0x857e: "Lei " +0x857f: "Xuan " +0x8580: "Yun " +0x8581: "Yu " +0x8582: "Xi " +0x8583: "Hao " +0x8584: "Bo " +0x8585: "Hao " +0x8586: "Ai " +0x8587: "Wei " +0x8588: "Hui " +0x8589: "Wei " +0x858a: "Ji " +0x858b: "Ci " +0x858c: "Xiang " +0x858d: "Luan " +0x858e: "Mie " +0x858f: "Yi " +0x8590: "Leng " +0x8591: "Jiang " +0x8592: "Can " +0x8593: "Shen " +0x8594: "Qiang " +0x8595: "Lian " +0x8596: "Ke " +0x8597: "Yuan " +0x8598: "Da " +0x8599: "Ti " +0x859a: "Tang " +0x859b: "Xie " +0x859c: "Bi " +0x859d: "Zhan " +0x859e: "Sun " +0x859f: "Lian " +0x85a0: "Fan " +0x85a1: "Ding " +0x85a2: "Jie " +0x85a3: "Gu " +0x85a4: "Xie " +0x85a5: "Shu " +0x85a6: "Jian " +0x85a7: "Kao " +0x85a8: "Hong " +0x85a9: "Sa " +0x85aa: "Xin " +0x85ab: "Xun " +0x85ac: "Yao " +0x85ad: "Hie " +0x85ae: "Sou " +0x85af: "Shu " +0x85b0: "Xun " +0x85b1: "Dui " +0x85b2: "Pin " +0x85b3: "Wei " +0x85b4: "Neng " +0x85b5: "Chou " +0x85b6: "Mai " +0x85b7: "Ru " +0x85b8: "Piao " +0x85b9: "Tai " +0x85ba: "Qi " +0x85bb: "Zao " +0x85bc: "Chen " +0x85bd: "Zhen " +0x85be: "Er " +0x85bf: "Ni " +0x85c0: "Ying " +0x85c1: "Gao " +0x85c2: "Cong " +0x85c3: "Xiao " +0x85c4: "Qi " +0x85c5: "Fa " +0x85c6: "Jian " +0x85c7: "Xu " +0x85c8: "Kui " +0x85c9: "Jie " +0x85ca: "Bian " +0x85cb: "Diao " +0x85cc: "Mi " +0x85cd: "Lan " +0x85ce: "Jin " +0x85cf: "Cang " +0x85d0: "Miao " +0x85d1: "Qiong " +0x85d2: "Qie " +0x85d3: "Xian " +0x85d4: "[?] " +0x85d5: "Ou " +0x85d6: "Xian " +0x85d7: "Su " +0x85d8: "Lu " +0x85d9: "Yi " +0x85da: "Xu " +0x85db: "Xie " +0x85dc: "Li " +0x85dd: "Yi " +0x85de: "La " +0x85df: "Lei " +0x85e0: "Xiao " +0x85e1: "Di " +0x85e2: "Zhi " +0x85e3: "Bei " +0x85e4: "Teng " +0x85e5: "Yao " +0x85e6: "Mo " +0x85e7: "Huan " +0x85e8: "Piao " +0x85e9: "Fan " +0x85ea: "Sou " +0x85eb: "Tan " +0x85ec: "Tui " +0x85ed: "Qiong " +0x85ee: "Qiao " +0x85ef: "Wei " +0x85f0: "Liu " +0x85f1: "Hui " +0x85f2: "[?] " +0x85f3: "Gao " +0x85f4: "Yun " +0x85f5: "[?] " +0x85f6: "Li " +0x85f7: "Shu " +0x85f8: "Chu " +0x85f9: "Ai " +0x85fa: "Lin " +0x85fb: "Zao " +0x85fc: "Xuan " +0x85fd: "Chen " +0x85fe: "Lai " +0x85ff: "Huo " +/* x086 */ +0x8600: "Tuo " +0x8601: "Wu " +0x8602: "Rui " +0x8603: "Rui " +0x8604: "Qi " +0x8605: "Heng " +0x8606: "Lu " +0x8607: "Su " +0x8608: "Tui " +0x8609: "Mang " +0x860a: "Yun " +0x860b: "Pin " +0x860c: "Yu " +0x860d: "Xun " +0x860e: "Ji " +0x860f: "Jiong " +0x8610: "Xian " +0x8611: "Mo " +0x8612: "Hagi " +0x8613: "Su " +0x8614: "Jiong " +0x8615: "[?] " +0x8616: "Nie " +0x8617: "Bo " +0x8618: "Rang " +0x8619: "Yi " +0x861a: "Xian " +0x861b: "Yu " +0x861c: "Ju " +0x861d: "Lian " +0x861e: "Lian " +0x861f: "Yin " +0x8620: "Qiang " +0x8621: "Ying " +0x8622: "Long " +0x8623: "Tong " +0x8624: "Wei " +0x8625: "Yue " +0x8626: "Ling " +0x8627: "Qu " +0x8628: "Yao " +0x8629: "Fan " +0x862a: "Mi " +0x862b: "Lan " +0x862c: "Kui " +0x862d: "Lan " +0x862e: "Ji " +0x862f: "Dang " +0x8630: "Katsura " +0x8631: "Lei " +0x8632: "Lei " +0x8633: "Hua " +0x8634: "Feng " +0x8635: "Zhi " +0x8636: "Wei " +0x8637: "Kui " +0x8638: "Zhan " +0x8639: "Huai " +0x863a: "Li " +0x863b: "Ji " +0x863c: "Mi " +0x863d: "Lei " +0x863e: "Huai " +0x863f: "Luo " +0x8640: "Ji " +0x8641: "Kui " +0x8642: "Lu " +0x8643: "Jian " +0x8644: "San " +0x8645: "[?] " +0x8646: "Lei " +0x8647: "Quan " +0x8648: "Xiao " +0x8649: "Yi " +0x864a: "Luan " +0x864b: "Men " +0x864c: "Bie " +0x864d: "Hu " +0x864e: "Hu " +0x864f: "Lu " +0x8650: "Nue " +0x8651: "Lu " +0x8652: "Si " +0x8653: "Xiao " +0x8654: "Qian " +0x8655: "Chu " +0x8656: "Hu " +0x8657: "Xu " +0x8658: "Cuo " +0x8659: "Fu " +0x865a: "Xu " +0x865b: "Xu " +0x865c: "Lu " +0x865d: "Hu " +0x865e: "Yu " +0x865f: "Hao " +0x8660: "Jiao " +0x8661: "Ju " +0x8662: "Guo " +0x8663: "Bao " +0x8664: "Yan " +0x8665: "Zhan " +0x8666: "Zhan " +0x8667: "Kui " +0x8668: "Ban " +0x8669: "Xi " +0x866a: "Shu " +0x866b: "Chong " +0x866c: "Qiu " +0x866d: "Diao " +0x866e: "Ji " +0x866f: "Qiu " +0x8670: "Cheng " +0x8671: "Shi " +0x8672: "[?] " +0x8673: "Di " +0x8674: "Zhe " +0x8675: "She " +0x8676: "Yu " +0x8677: "Gan " +0x8678: "Zi " +0x8679: "Hong " +0x867a: "Hui " +0x867b: "Meng " +0x867c: "Ge " +0x867d: "Sui " +0x867e: "Xia " +0x867f: "Chai " +0x8680: "Shi " +0x8681: "Yi " +0x8682: "Ma " +0x8683: "Xiang " +0x8684: "Fang " +0x8685: "E " +0x8686: "Pa " +0x8687: "Chi " +0x8688: "Qian " +0x8689: "Wen " +0x868a: "Wen " +0x868b: "Rui " +0x868c: "Bang " +0x868d: "Bi " +0x868e: "Yue " +0x868f: "Yue " +0x8690: "Jun " +0x8691: "Qi " +0x8692: "Ran " +0x8693: "Yin " +0x8694: "Qi " +0x8695: "Tian " +0x8696: "Yuan " +0x8697: "Jue " +0x8698: "Hui " +0x8699: "Qin " +0x869a: "Qi " +0x869b: "Zhong " +0x869c: "Ya " +0x869d: "Ci " +0x869e: "Mu " +0x869f: "Wang " +0x86a0: "Fen " +0x86a1: "Fen " +0x86a2: "Hang " +0x86a3: "Gong " +0x86a4: "Zao " +0x86a5: "Fu " +0x86a6: "Ran " +0x86a7: "Jie " +0x86a8: "Fu " +0x86a9: "Chi " +0x86aa: "Dou " +0x86ab: "Piao " +0x86ac: "Xian " +0x86ad: "Ni " +0x86ae: "Te " +0x86af: "Qiu " +0x86b0: "You " +0x86b1: "Zha " +0x86b2: "Ping " +0x86b3: "Chi " +0x86b4: "You " +0x86b5: "He " +0x86b6: "Han " +0x86b7: "Ju " +0x86b8: "Li " +0x86b9: "Fu " +0x86ba: "Ran " +0x86bb: "Zha " +0x86bc: "Gou " +0x86bd: "Pi " +0x86be: "Bo " +0x86bf: "Xian " +0x86c0: "Zhu " +0x86c1: "Diao " +0x86c2: "Bie " +0x86c3: "Bing " +0x86c4: "Gu " +0x86c5: "Ran " +0x86c6: "Qu " +0x86c7: "She " +0x86c8: "Tie " +0x86c9: "Ling " +0x86ca: "Gu " +0x86cb: "Dan " +0x86cc: "Gu " +0x86cd: "Ying " +0x86ce: "Li " +0x86cf: "Cheng " +0x86d0: "Qu " +0x86d1: "Mou " +0x86d2: "Ge " +0x86d3: "Ci " +0x86d4: "Hui " +0x86d5: "Hui " +0x86d6: "Mang " +0x86d7: "Fu " +0x86d8: "Yang " +0x86d9: "Wa " +0x86da: "Lie " +0x86db: "Zhu " +0x86dc: "Yi " +0x86dd: "Xian " +0x86de: "Kuo " +0x86df: "Jiao " +0x86e0: "Li " +0x86e1: "Yi " +0x86e2: "Ping " +0x86e3: "Ji " +0x86e4: "Ha " +0x86e5: "She " +0x86e6: "Yi " +0x86e7: "Wang " +0x86e8: "Mo " +0x86e9: "Qiong " +0x86ea: "Qie " +0x86eb: "Gui " +0x86ec: "Gong " +0x86ed: "Zhi " +0x86ee: "Man " +0x86ef: "Ebi " +0x86f0: "Zhi " +0x86f1: "Jia " +0x86f2: "Rao " +0x86f3: "Si " +0x86f4: "Qi " +0x86f5: "Xing " +0x86f6: "Lie " +0x86f7: "Qiu " +0x86f8: "Shao " +0x86f9: "Yong " +0x86fa: "Jia " +0x86fb: "Shui " +0x86fc: "Che " +0x86fd: "Bai " +0x86fe: "E " +0x86ff: "Han " +/* x087 */ +0x8700: "Shu " +0x8701: "Xuan " +0x8702: "Feng " +0x8703: "Shen " +0x8704: "Zhen " +0x8705: "Fu " +0x8706: "Xian " +0x8707: "Zhe " +0x8708: "Wu " +0x8709: "Fu " +0x870a: "Li " +0x870b: "Lang " +0x870c: "Bi " +0x870d: "Chu " +0x870e: "Yuan " +0x870f: "You " +0x8710: "Jie " +0x8711: "Dan " +0x8712: "Yan " +0x8713: "Ting " +0x8714: "Dian " +0x8715: "Shui " +0x8716: "Hui " +0x8717: "Gua " +0x8718: "Zhi " +0x8719: "Song " +0x871a: "Fei " +0x871b: "Ju " +0x871c: "Mi " +0x871d: "Qi " +0x871e: "Qi " +0x871f: "Yu " +0x8720: "Jun " +0x8721: "Zha " +0x8722: "Meng " +0x8723: "Qiang " +0x8724: "Si " +0x8725: "Xi " +0x8726: "Lun " +0x8727: "Li " +0x8728: "Die " +0x8729: "Tiao " +0x872a: "Tao " +0x872b: "Kun " +0x872c: "Gan " +0x872d: "Han " +0x872e: "Yu " +0x872f: "Bang " +0x8730: "Fei " +0x8731: "Pi " +0x8732: "Wei " +0x8733: "Dun " +0x8734: "Yi " +0x8735: "Yuan " +0x8736: "Su " +0x8737: "Quan " +0x8738: "Qian " +0x8739: "Rui " +0x873a: "Ni " +0x873b: "Qing " +0x873c: "Wei " +0x873d: "Liang " +0x873e: "Guo " +0x873f: "Wan " +0x8740: "Dong " +0x8741: "E " +0x8742: "Ban " +0x8743: "Di " +0x8744: "Wang " +0x8745: "Can " +0x8746: "Yang " +0x8747: "Ying " +0x8748: "Guo " +0x8749: "Chan " +0x874a: "[?] " +0x874b: "La " +0x874c: "Ke " +0x874d: "Ji " +0x874e: "He " +0x874f: "Ting " +0x8750: "Mai " +0x8751: "Xu " +0x8752: "Mian " +0x8753: "Yu " +0x8754: "Jie " +0x8755: "Shi " +0x8756: "Xuan " +0x8757: "Huang " +0x8758: "Yan " +0x8759: "Bian " +0x875a: "Rou " +0x875b: "Wei " +0x875c: "Fu " +0x875d: "Yuan " +0x875e: "Mei " +0x875f: "Wei " +0x8760: "Fu " +0x8761: "Ruan " +0x8762: "Xie " +0x8763: "You " +0x8764: "Qiu " +0x8765: "Mao " +0x8766: "Xia " +0x8767: "Ying " +0x8768: "Shi " +0x8769: "Chong " +0x876a: "Tang " +0x876b: "Zhu " +0x876c: "Zong " +0x876d: "Ti " +0x876e: "Fu " +0x876f: "Yuan " +0x8770: "Hui " +0x8771: "Meng " +0x8772: "La " +0x8773: "Du " +0x8774: "Hu " +0x8775: "Qiu " +0x8776: "Die " +0x8777: "Li " +0x8778: "Gua " +0x8779: "Yun " +0x877a: "Ju " +0x877b: "Nan " +0x877c: "Lou " +0x877d: "Qun " +0x877e: "Rong " +0x877f: "Ying " +0x8780: "Jiang " +0x8781: "[?] " +0x8782: "Lang " +0x8783: "Pang " +0x8784: "Si " +0x8785: "Xi " +0x8786: "Ci " +0x8787: "Xi " +0x8788: "Yuan " +0x8789: "Weng " +0x878a: "Lian " +0x878b: "Sou " +0x878c: "Ban " +0x878d: "Rong " +0x878e: "Rong " +0x878f: "Ji " +0x8790: "Wu " +0x8791: "Qiu " +0x8792: "Han " +0x8793: "Qin " +0x8794: "Yi " +0x8795: "Bi " +0x8796: "Hua " +0x8797: "Tang " +0x8798: "Yi " +0x8799: "Du " +0x879a: "Nai " +0x879b: "He " +0x879c: "Hu " +0x879d: "Hui " +0x879e: "Ma " +0x879f: "Ming " +0x87a0: "Yi " +0x87a1: "Wen " +0x87a2: "Ying " +0x87a3: "Teng " +0x87a4: "Yu " +0x87a5: "Cang " +0x87a6: "So " +0x87a7: "Ebi " +0x87a8: "Man " +0x87a9: "[?] " +0x87aa: "Shang " +0x87ab: "Zhe " +0x87ac: "Cao " +0x87ad: "Chi " +0x87ae: "Di " +0x87af: "Ao " +0x87b0: "Lu " +0x87b1: "Wei " +0x87b2: "Zhi " +0x87b3: "Tang " +0x87b4: "Chen " +0x87b5: "Piao " +0x87b6: "Qu " +0x87b7: "Pi " +0x87b8: "Yu " +0x87b9: "Jian " +0x87ba: "Luo " +0x87bb: "Lou " +0x87bc: "Qin " +0x87bd: "Zhong " +0x87be: "Yin " +0x87bf: "Jiang " +0x87c0: "Shuai " +0x87c1: "Wen " +0x87c2: "Jiao " +0x87c3: "Wan " +0x87c4: "Zhi " +0x87c5: "Zhe " +0x87c6: "Ma " +0x87c7: "Ma " +0x87c8: "Guo " +0x87c9: "Liu " +0x87ca: "Mao " +0x87cb: "Xi " +0x87cc: "Cong " +0x87cd: "Li " +0x87ce: "Man " +0x87cf: "Xiao " +0x87d0: "Kamakiri " +0x87d1: "Zhang " +0x87d2: "Mang " +0x87d3: "Xiang " +0x87d4: "Mo " +0x87d5: "Zui " +0x87d6: "Si " +0x87d7: "Qiu " +0x87d8: "Te " +0x87d9: "Zhi " +0x87da: "Peng " +0x87db: "Peng " +0x87dc: "Jiao " +0x87dd: "Qu " +0x87de: "Bie " +0x87df: "Liao " +0x87e0: "Pan " +0x87e1: "Gui " +0x87e2: "Xi " +0x87e3: "Ji " +0x87e4: "Zhuan " +0x87e5: "Huang " +0x87e6: "Fei " +0x87e7: "Lao " +0x87e8: "Jue " +0x87e9: "Jue " +0x87ea: "Hui " +0x87eb: "Yin " +0x87ec: "Chan " +0x87ed: "Jiao " +0x87ee: "Shan " +0x87ef: "Rao " +0x87f0: "Xiao " +0x87f1: "Mou " +0x87f2: "Chong " +0x87f3: "Xun " +0x87f4: "Si " +0x87f5: "[?] " +0x87f6: "Cheng " +0x87f7: "Dang " +0x87f8: "Li " +0x87f9: "Xie " +0x87fa: "Shan " +0x87fb: "Yi " +0x87fc: "Jing " +0x87fd: "Da " +0x87fe: "Chan " +0x87ff: "Qi " +/* x088 */ +0x8800: "Ci " +0x8801: "Xiang " +0x8802: "She " +0x8803: "Luo " +0x8804: "Qin " +0x8805: "Ying " +0x8806: "Chai " +0x8807: "Li " +0x8808: "Ze " +0x8809: "Xuan " +0x880a: "Lian " +0x880b: "Zhu " +0x880c: "Ze " +0x880d: "Xie " +0x880e: "Mang " +0x880f: "Xie " +0x8810: "Qi " +0x8811: "Rong " +0x8812: "Jian " +0x8813: "Meng " +0x8814: "Hao " +0x8815: "Ruan " +0x8816: "Huo " +0x8817: "Zhuo " +0x8818: "Jie " +0x8819: "Bin " +0x881a: "He " +0x881b: "Mie " +0x881c: "Fan " +0x881d: "Lei " +0x881e: "Jie " +0x881f: "La " +0x8820: "Mi " +0x8821: "Li " +0x8822: "Chun " +0x8823: "Li " +0x8824: "Qiu " +0x8825: "Nie " +0x8826: "Lu " +0x8827: "Du " +0x8828: "Xiao " +0x8829: "Zhu " +0x882a: "Long " +0x882b: "Li " +0x882c: "Long " +0x882d: "Feng " +0x882e: "Ye " +0x882f: "Beng " +0x8830: "Shang " +0x8831: "Gu " +0x8832: "Juan " +0x8833: "Ying " +0x8834: "[?] " +0x8835: "Xi " +0x8836: "Can " +0x8837: "Qu " +0x8838: "Quan " +0x8839: "Du " +0x883a: "Can " +0x883b: "Man " +0x883c: "Jue " +0x883d: "Jie " +0x883e: "Zhu " +0x883f: "Zha " +0x8840: "Xie " +0x8841: "Huang " +0x8842: "Niu " +0x8843: "Pei " +0x8844: "Nu " +0x8845: "Xin " +0x8846: "Zhong " +0x8847: "Mo " +0x8848: "Er " +0x8849: "Ke " +0x884a: "Mie " +0x884b: "Xi " +0x884c: "Xing " +0x884d: "Yan " +0x884e: "Kan " +0x884f: "Yuan " +0x8850: "[?] " +0x8851: "Ling " +0x8852: "Xuan " +0x8853: "Shu " +0x8854: "Xian " +0x8855: "Tong " +0x8856: "Long " +0x8857: "Jie " +0x8858: "Xian " +0x8859: "Ya " +0x885a: "Hu " +0x885b: "Wei " +0x885c: "Dao " +0x885d: "Chong " +0x885e: "Wei " +0x885f: "Dao " +0x8860: "Zhun " +0x8861: "Heng " +0x8862: "Qu " +0x8863: "Yi " +0x8864: "Yi " +0x8865: "Bu " +0x8866: "Gan " +0x8867: "Yu " +0x8868: "Biao " +0x8869: "Cha " +0x886a: "Yi " +0x886b: "Shan " +0x886c: "Chen " +0x886d: "Fu " +0x886e: "Gun " +0x886f: "Fen " +0x8870: "Shuai " +0x8871: "Jie " +0x8872: "Na " +0x8873: "Zhong " +0x8874: "Dan " +0x8875: "Ri " +0x8876: "Zhong " +0x8877: "Zhong " +0x8878: "Xie " +0x8879: "Qi " +0x887a: "Xie " +0x887b: "Ran " +0x887c: "Zhi " +0x887d: "Ren " +0x887e: "Qin " +0x887f: "Jin " +0x8880: "Jun " +0x8881: "Yuan " +0x8882: "Mei " +0x8883: "Chai " +0x8884: "Ao " +0x8885: "Niao " +0x8886: "Hui " +0x8887: "Ran " +0x8888: "Jia " +0x8889: "Tuo " +0x888a: "Ling " +0x888b: "Dai " +0x888c: "Bao " +0x888d: "Pao " +0x888e: "Yao " +0x888f: "Zuo " +0x8890: "Bi " +0x8891: "Shao " +0x8892: "Tan " +0x8893: "Ju " +0x8894: "He " +0x8895: "Shu " +0x8896: "Xiu " +0x8897: "Zhen " +0x8898: "Yi " +0x8899: "Pa " +0x889a: "Bo " +0x889b: "Di " +0x889c: "Wa " +0x889d: "Fu " +0x889e: "Gun " +0x889f: "Zhi " +0x88a0: "Zhi " +0x88a1: "Ran " +0x88a2: "Pan " +0x88a3: "Yi " +0x88a4: "Mao " +0x88a5: "Tuo " +0x88a6: "Na " +0x88a7: "Kou " +0x88a8: "Xian " +0x88a9: "Chan " +0x88aa: "Qu " +0x88ab: "Bei " +0x88ac: "Gun " +0x88ad: "Xi " +0x88ae: "Ne " +0x88af: "Bo " +0x88b0: "Horo " +0x88b1: "Fu " +0x88b2: "Yi " +0x88b3: "Chi " +0x88b4: "Ku " +0x88b5: "Ren " +0x88b6: "Jiang " +0x88b7: "Jia " +0x88b8: "Cun " +0x88b9: "Mo " +0x88ba: "Jie " +0x88bb: "Er " +0x88bc: "Luo " +0x88bd: "Ru " +0x88be: "Zhu " +0x88bf: "Gui " +0x88c0: "Yin " +0x88c1: "Cai " +0x88c2: "Lie " +0x88c3: "Kamishimo " +0x88c4: "Yuki " +0x88c5: "Zhuang " +0x88c6: "Dang " +0x88c7: "[?] " +0x88c8: "Kun " +0x88c9: "Ken " +0x88ca: "Niao " +0x88cb: "Shu " +0x88cc: "Jia " +0x88cd: "Kun " +0x88ce: "Cheng " +0x88cf: "Li " +0x88d0: "Juan " +0x88d1: "Shen " +0x88d2: "Pou " +0x88d3: "Ge " +0x88d4: "Yi " +0x88d5: "Yu " +0x88d6: "Zhen " +0x88d7: "Liu " +0x88d8: "Qiu " +0x88d9: "Qun " +0x88da: "Ji " +0x88db: "Yi " +0x88dc: "Bu " +0x88dd: "Zhuang " +0x88de: "Shui " +0x88df: "Sha " +0x88e0: "Qun " +0x88e1: "Li " +0x88e2: "Lian " +0x88e3: "Lian " +0x88e4: "Ku " +0x88e5: "Jian " +0x88e6: "Fou " +0x88e7: "Chan " +0x88e8: "Bi " +0x88e9: "Gun " +0x88ea: "Tao " +0x88eb: "Yuan " +0x88ec: "Ling " +0x88ed: "Chi " +0x88ee: "Chang " +0x88ef: "Chou " +0x88f0: "Duo " +0x88f1: "Biao " +0x88f2: "Liang " +0x88f3: "Chang " +0x88f4: "Pei " +0x88f5: "Pei " +0x88f6: "Fei " +0x88f7: "Yuan " +0x88f8: "Luo " +0x88f9: "Guo " +0x88fa: "Yan " +0x88fb: "Du " +0x88fc: "Xi " +0x88fd: "Zhi " +0x88fe: "Ju " +0x88ff: "Qi " +/* x089 */ +0x8900: "Ji " +0x8901: "Zhi " +0x8902: "Gua " +0x8903: "Ken " +0x8904: "Che " +0x8905: "Ti " +0x8906: "Ti " +0x8907: "Fu " +0x8908: "Chong " +0x8909: "Xie " +0x890a: "Bian " +0x890b: "Die " +0x890c: "Kun " +0x890d: "Duan " +0x890e: "Xiu " +0x890f: "Xiu " +0x8910: "He " +0x8911: "Yuan " +0x8912: "Bao " +0x8913: "Bao " +0x8914: "Fu " +0x8915: "Yu " +0x8916: "Tuan " +0x8917: "Yan " +0x8918: "Hui " +0x8919: "Bei " +0x891a: "Chu " +0x891b: "Lu " +0x891c: "Ena " +0x891d: "Hitoe " +0x891e: "Yun " +0x891f: "Da " +0x8920: "Gou " +0x8921: "Da " +0x8922: "Huai " +0x8923: "Rong " +0x8924: "Yuan " +0x8925: "Ru " +0x8926: "Nai " +0x8927: "Jiong " +0x8928: "Suo " +0x8929: "Ban " +0x892a: "Tun " +0x892b: "Chi " +0x892c: "Sang " +0x892d: "Niao " +0x892e: "Ying " +0x892f: "Jie " +0x8930: "Qian " +0x8931: "Huai " +0x8932: "Ku " +0x8933: "Lian " +0x8934: "Bao " +0x8935: "Li " +0x8936: "Zhe " +0x8937: "Shi " +0x8938: "Lu " +0x8939: "Yi " +0x893a: "Die " +0x893b: "Xie " +0x893c: "Xian " +0x893d: "Wei " +0x893e: "Biao " +0x893f: "Cao " +0x8940: "Ji " +0x8941: "Jiang " +0x8942: "Sen " +0x8943: "Bao " +0x8944: "Xiang " +0x8945: "Chihaya " +0x8946: "Pu " +0x8947: "Jian " +0x8948: "Zhuan " +0x8949: "Jian " +0x894a: "Zui " +0x894b: "Ji " +0x894c: "Dan " +0x894d: "Za " +0x894e: "Fan " +0x894f: "Bo " +0x8950: "Xiang " +0x8951: "Xin " +0x8952: "Bie " +0x8953: "Rao " +0x8954: "Man " +0x8955: "Lan " +0x8956: "Ao " +0x8957: "Duo " +0x8958: "Gui " +0x8959: "Cao " +0x895a: "Sui " +0x895b: "Nong " +0x895c: "Chan " +0x895d: "Lian " +0x895e: "Bi " +0x895f: "Jin " +0x8960: "Dang " +0x8961: "Shu " +0x8962: "Tan " +0x8963: "Bi " +0x8964: "Lan " +0x8965: "Pu " +0x8966: "Ru " +0x8967: "Zhi " +0x8968: "[?] " +0x8969: "Shu " +0x896a: "Wa " +0x896b: "Shi " +0x896c: "Bai " +0x896d: "Xie " +0x896e: "Bo " +0x896f: "Chen " +0x8970: "Lai " +0x8971: "Long " +0x8972: "Xi " +0x8973: "Xian " +0x8974: "Lan " +0x8975: "Zhe " +0x8976: "Dai " +0x8977: "Tasuki " +0x8978: "Zan " +0x8979: "Shi " +0x897a: "Jian " +0x897b: "Pan " +0x897c: "Yi " +0x897d: "Ran " +0x897e: "Ya " +0x897f: "Xi " +0x8980: "Xi " +0x8981: "Yao " +0x8982: "Feng " +0x8983: "Tan " +0x8984: "[?] " +0x8985: "Biao " +0x8986: "Fu " +0x8987: "Ba " +0x8988: "He " +0x8989: "Ji " +0x898a: "Ji " +0x898b: "Jian " +0x898c: "Guan " +0x898d: "Bian " +0x898e: "Yan " +0x898f: "Gui " +0x8990: "Jue " +0x8991: "Pian " +0x8992: "Mao " +0x8993: "Mi " +0x8994: "Mi " +0x8995: "Mie " +0x8996: "Shi " +0x8997: "Si " +0x8998: "Zhan " +0x8999: "Luo " +0x899a: "Jue " +0x899b: "Mi " +0x899c: "Tiao " +0x899d: "Lian " +0x899e: "Yao " +0x899f: "Zhi " +0x89a0: "Jun " +0x89a1: "Xi " +0x89a2: "Shan " +0x89a3: "Wei " +0x89a4: "Xi " +0x89a5: "Tian " +0x89a6: "Yu " +0x89a7: "Lan " +0x89a8: "E " +0x89a9: "Du " +0x89aa: "Qin " +0x89ab: "Pang " +0x89ac: "Ji " +0x89ad: "Ming " +0x89ae: "Ying " +0x89af: "Gou " +0x89b0: "Qu " +0x89b1: "Zhan " +0x89b2: "Jin " +0x89b3: "Guan " +0x89b4: "Deng " +0x89b5: "Jian " +0x89b6: "Luo " +0x89b7: "Qu " +0x89b8: "Jian " +0x89b9: "Wei " +0x89ba: "Jue " +0x89bb: "Qu " +0x89bc: "Luo " +0x89bd: "Lan " +0x89be: "Shen " +0x89bf: "Di " +0x89c0: "Guan " +0x89c1: "Jian " +0x89c2: "Guan " +0x89c3: "Yan " +0x89c4: "Gui " +0x89c5: "Mi " +0x89c6: "Shi " +0x89c7: "Zhan " +0x89c8: "Lan " +0x89c9: "Jue " +0x89ca: "Ji " +0x89cb: "Xi " +0x89cc: "Di " +0x89cd: "Tian " +0x89ce: "Yu " +0x89cf: "Gou " +0x89d0: "Jin " +0x89d1: "Qu " +0x89d2: "Jiao " +0x89d3: "Jiu " +0x89d4: "Jin " +0x89d5: "Cu " +0x89d6: "Jue " +0x89d7: "Zhi " +0x89d8: "Chao " +0x89d9: "Ji " +0x89da: "Gu " +0x89db: "Dan " +0x89dc: "Zui " +0x89dd: "Di " +0x89de: "Shang " +0x89df: "Hua " +0x89e0: "Quan " +0x89e1: "Ge " +0x89e2: "Chi " +0x89e3: "Jie " +0x89e4: "Gui " +0x89e5: "Gong " +0x89e6: "Hong " +0x89e7: "Jie " +0x89e8: "Hun " +0x89e9: "Qiu " +0x89ea: "Xing " +0x89eb: "Su " +0x89ec: "Ni " +0x89ed: "Ji " +0x89ee: "Lu " +0x89ef: "Zhi " +0x89f0: "Zha " +0x89f1: "Bi " +0x89f2: "Xing " +0x89f3: "Hu " +0x89f4: "Shang " +0x89f5: "Gong " +0x89f6: "Zhi " +0x89f7: "Xue " +0x89f8: "Chu " +0x89f9: "Xi " +0x89fa: "Yi " +0x89fb: "Lu " +0x89fc: "Jue " +0x89fd: "Xi " +0x89fe: "Yan " +0x89ff: "Xi " +/* x08a */ +0x8a00: "Yan " +0x8a01: "Yan " +0x8a02: "Ding " +0x8a03: "Fu " +0x8a04: "Qiu " +0x8a05: "Qiu " +0x8a06: "Jiao " +0x8a07: "Hong " +0x8a08: "Ji " +0x8a09: "Fan " +0x8a0a: "Xun " +0x8a0b: "Diao " +0x8a0c: "Hong " +0x8a0d: "Cha " +0x8a0e: "Tao " +0x8a0f: "Xu " +0x8a10: "Jie " +0x8a11: "Yi " +0x8a12: "Ren " +0x8a13: "Xun " +0x8a14: "Yin " +0x8a15: "Shan " +0x8a16: "Qi " +0x8a17: "Tuo " +0x8a18: "Ji " +0x8a19: "Xun " +0x8a1a: "Yin " +0x8a1b: "E " +0x8a1c: "Fen " +0x8a1d: "Ya " +0x8a1e: "Yao " +0x8a1f: "Song " +0x8a20: "Shen " +0x8a21: "Yin " +0x8a22: "Xin " +0x8a23: "Jue " +0x8a24: "Xiao " +0x8a25: "Ne " +0x8a26: "Chen " +0x8a27: "You " +0x8a28: "Zhi " +0x8a29: "Xiong " +0x8a2a: "Fang " +0x8a2b: "Xin " +0x8a2c: "Chao " +0x8a2d: "She " +0x8a2e: "Xian " +0x8a2f: "Sha " +0x8a30: "Tun " +0x8a31: "Xu " +0x8a32: "Yi " +0x8a33: "Yi " +0x8a34: "Su " +0x8a35: "Chi " +0x8a36: "He " +0x8a37: "Shen " +0x8a38: "He " +0x8a39: "Xu " +0x8a3a: "Zhen " +0x8a3b: "Zhu " +0x8a3c: "Zheng " +0x8a3d: "Gou " +0x8a3e: "Zi " +0x8a3f: "Zi " +0x8a40: "Zhan " +0x8a41: "Gu " +0x8a42: "Fu " +0x8a43: "Quan " +0x8a44: "Die " +0x8a45: "Ling " +0x8a46: "Di " +0x8a47: "Yang " +0x8a48: "Li " +0x8a49: "Nao " +0x8a4a: "Pan " +0x8a4b: "Zhou " +0x8a4c: "Gan " +0x8a4d: "Yi " +0x8a4e: "Ju " +0x8a4f: "Ao " +0x8a50: "Zha " +0x8a51: "Tuo " +0x8a52: "Yi " +0x8a53: "Qu " +0x8a54: "Zhao " +0x8a55: "Ping " +0x8a56: "Bi " +0x8a57: "Xiong " +0x8a58: "Qu " +0x8a59: "Ba " +0x8a5a: "Da " +0x8a5b: "Zu " +0x8a5c: "Tao " +0x8a5d: "Zhu " +0x8a5e: "Ci " +0x8a5f: "Zhe " +0x8a60: "Yong " +0x8a61: "Xu " +0x8a62: "Xun " +0x8a63: "Yi " +0x8a64: "Huang " +0x8a65: "He " +0x8a66: "Shi " +0x8a67: "Cha " +0x8a68: "Jiao " +0x8a69: "Shi " +0x8a6a: "Hen " +0x8a6b: "Cha " +0x8a6c: "Gou " +0x8a6d: "Gui " +0x8a6e: "Quan " +0x8a6f: "Hui " +0x8a70: "Jie " +0x8a71: "Hua " +0x8a72: "Gai " +0x8a73: "Xiang " +0x8a74: "Wei " +0x8a75: "Shen " +0x8a76: "Chou " +0x8a77: "Tong " +0x8a78: "Mi " +0x8a79: "Zhan " +0x8a7a: "Ming " +0x8a7b: "E " +0x8a7c: "Hui " +0x8a7d: "Yan " +0x8a7e: "Xiong " +0x8a7f: "Gua " +0x8a80: "Er " +0x8a81: "Beng " +0x8a82: "Tiao " +0x8a83: "Chi " +0x8a84: "Lei " +0x8a85: "Zhu " +0x8a86: "Kuang " +0x8a87: "Kua " +0x8a88: "Wu " +0x8a89: "Yu " +0x8a8a: "Teng " +0x8a8b: "Ji " +0x8a8c: "Zhi " +0x8a8d: "Ren " +0x8a8e: "Su " +0x8a8f: "Lang " +0x8a90: "E " +0x8a91: "Kuang " +0x8a92: "E " +0x8a93: "Shi " +0x8a94: "Ting " +0x8a95: "Dan " +0x8a96: "Bo " +0x8a97: "Chan " +0x8a98: "You " +0x8a99: "Heng " +0x8a9a: "Qiao " +0x8a9b: "Qin " +0x8a9c: "Shua " +0x8a9d: "An " +0x8a9e: "Yu " +0x8a9f: "Xiao " +0x8aa0: "Cheng " +0x8aa1: "Jie " +0x8aa2: "Xian " +0x8aa3: "Wu " +0x8aa4: "Wu " +0x8aa5: "Gao " +0x8aa6: "Song " +0x8aa7: "Pu " +0x8aa8: "Hui " +0x8aa9: "Jing " +0x8aaa: "Shuo " +0x8aab: "Zhen " +0x8aac: "Shuo " +0x8aad: "Du " +0x8aae: "Yasashi " +0x8aaf: "Chang " +0x8ab0: "Shui " +0x8ab1: "Jie " +0x8ab2: "Ke " +0x8ab3: "Qu " +0x8ab4: "Cong " +0x8ab5: "Xiao " +0x8ab6: "Sui " +0x8ab7: "Wang " +0x8ab8: "Xuan " +0x8ab9: "Fei " +0x8aba: "Chi " +0x8abb: "Ta " +0x8abc: "Yi " +0x8abd: "Na " +0x8abe: "Yin " +0x8abf: "Diao " +0x8ac0: "Pi " +0x8ac1: "Chuo " +0x8ac2: "Chan " +0x8ac3: "Chen " +0x8ac4: "Zhun " +0x8ac5: "Ji " +0x8ac6: "Qi " +0x8ac7: "Tan " +0x8ac8: "Zhui " +0x8ac9: "Wei " +0x8aca: "Ju " +0x8acb: "Qing " +0x8acc: "Jian " +0x8acd: "Zheng " +0x8ace: "Ze " +0x8acf: "Zou " +0x8ad0: "Qian " +0x8ad1: "Zhuo " +0x8ad2: "Liang " +0x8ad3: "Jian " +0x8ad4: "Zhu " +0x8ad5: "Hao " +0x8ad6: "Lun " +0x8ad7: "Shen " +0x8ad8: "Biao " +0x8ad9: "Huai " +0x8ada: "Pian " +0x8adb: "Yu " +0x8adc: "Die " +0x8add: "Xu " +0x8ade: "Pian " +0x8adf: "Shi " +0x8ae0: "Xuan " +0x8ae1: "Shi " +0x8ae2: "Hun " +0x8ae3: "Hua " +0x8ae4: "E " +0x8ae5: "Zhong " +0x8ae6: "Di " +0x8ae7: "Xie " +0x8ae8: "Fu " +0x8ae9: "Pu " +0x8aea: "Ting " +0x8aeb: "Jian " +0x8aec: "Qi " +0x8aed: "Yu " +0x8aee: "Zi " +0x8aef: "Chuan " +0x8af0: "Xi " +0x8af1: "Hui " +0x8af2: "Yin " +0x8af3: "An " +0x8af4: "Xian " +0x8af5: "Nan " +0x8af6: "Chen " +0x8af7: "Feng " +0x8af8: "Zhu " +0x8af9: "Yang " +0x8afa: "Yan " +0x8afb: "Heng " +0x8afc: "Xuan " +0x8afd: "Ge " +0x8afe: "Nuo " +0x8aff: "Qi " +/* x08b */ +0x8b00: "Mou " +0x8b01: "Ye " +0x8b02: "Wei " +0x8b03: "[?] " +0x8b04: "Teng " +0x8b05: "Zou " +0x8b06: "Shan " +0x8b07: "Jian " +0x8b08: "Bo " +0x8b09: "Ku " +0x8b0a: "Huang " +0x8b0b: "Huo " +0x8b0c: "Ge " +0x8b0d: "Ying " +0x8b0e: "Mi " +0x8b0f: "Xiao " +0x8b10: "Mi " +0x8b11: "Xi " +0x8b12: "Qiang " +0x8b13: "Chen " +0x8b14: "Nue " +0x8b15: "Ti " +0x8b16: "Su " +0x8b17: "Bang " +0x8b18: "Chi " +0x8b19: "Qian " +0x8b1a: "Shi " +0x8b1b: "Jiang " +0x8b1c: "Yuan " +0x8b1d: "Xie " +0x8b1e: "Xue " +0x8b1f: "Tao " +0x8b20: "Yao " +0x8b21: "Yao " +0x8b22: "[?] " +0x8b23: "Yu " +0x8b24: "Biao " +0x8b25: "Cong " +0x8b26: "Qing " +0x8b27: "Li " +0x8b28: "Mo " +0x8b29: "Mo " +0x8b2a: "Shang " +0x8b2b: "Zhe " +0x8b2c: "Miu " +0x8b2d: "Jian " +0x8b2e: "Ze " +0x8b2f: "Jie " +0x8b30: "Lian " +0x8b31: "Lou " +0x8b32: "Can " +0x8b33: "Ou " +0x8b34: "Guan " +0x8b35: "Xi " +0x8b36: "Zhuo " +0x8b37: "Ao " +0x8b38: "Ao " +0x8b39: "Jin " +0x8b3a: "Zhe " +0x8b3b: "Yi " +0x8b3c: "Hu " +0x8b3d: "Jiang " +0x8b3e: "Man " +0x8b3f: "Chao " +0x8b40: "Han " +0x8b41: "Hua " +0x8b42: "Chan " +0x8b43: "Xu " +0x8b44: "Zeng " +0x8b45: "Se " +0x8b46: "Xi " +0x8b47: "She " +0x8b48: "Dui " +0x8b49: "Zheng " +0x8b4a: "Nao " +0x8b4b: "Lan " +0x8b4c: "E " +0x8b4d: "Ying " +0x8b4e: "Jue " +0x8b4f: "Ji " +0x8b50: "Zun " +0x8b51: "Jiao " +0x8b52: "Bo " +0x8b53: "Hui " +0x8b54: "Zhuan " +0x8b55: "Mu " +0x8b56: "Zen " +0x8b57: "Zha " +0x8b58: "Shi " +0x8b59: "Qiao " +0x8b5a: "Tan " +0x8b5b: "Zen " +0x8b5c: "Pu " +0x8b5d: "Sheng " +0x8b5e: "Xuan " +0x8b5f: "Zao " +0x8b60: "Tan " +0x8b61: "Dang " +0x8b62: "Sui " +0x8b63: "Qian " +0x8b64: "Ji " +0x8b65: "Jiao " +0x8b66: "Jing " +0x8b67: "Lian " +0x8b68: "Nou " +0x8b69: "Yi " +0x8b6a: "Ai " +0x8b6b: "Zhan " +0x8b6c: "Pi " +0x8b6d: "Hui " +0x8b6e: "Hua " +0x8b6f: "Yi " +0x8b70: "Yi " +0x8b71: "Shan " +0x8b72: "Rang " +0x8b73: "Nou " +0x8b74: "Qian " +0x8b75: "Zhui " +0x8b76: "Ta " +0x8b77: "Hu " +0x8b78: "Zhou " +0x8b79: "Hao " +0x8b7a: "Ye " +0x8b7b: "Ying " +0x8b7c: "Jian " +0x8b7d: "Yu " +0x8b7e: "Jian " +0x8b7f: "Hui " +0x8b80: "Du " +0x8b81: "Zhe " +0x8b82: "Xuan " +0x8b83: "Zan " +0x8b84: "Lei " +0x8b85: "Shen " +0x8b86: "Wei " +0x8b87: "Chan " +0x8b88: "Li " +0x8b89: "Yi " +0x8b8a: "Bian " +0x8b8b: "Zhe " +0x8b8c: "Yan " +0x8b8d: "E " +0x8b8e: "Chou " +0x8b8f: "Wei " +0x8b90: "Chou " +0x8b91: "Yao " +0x8b92: "Chan " +0x8b93: "Rang " +0x8b94: "Yin " +0x8b95: "Lan " +0x8b96: "Chen " +0x8b97: "Huo " +0x8b98: "Zhe " +0x8b99: "Huan " +0x8b9a: "Zan " +0x8b9b: "Yi " +0x8b9c: "Dang " +0x8b9d: "Zhan " +0x8b9e: "Yan " +0x8b9f: "Du " +0x8ba0: "Yan " +0x8ba1: "Ji " +0x8ba2: "Ding " +0x8ba3: "Fu " +0x8ba4: "Ren " +0x8ba5: "Ji " +0x8ba6: "Jie " +0x8ba7: "Hong " +0x8ba8: "Tao " +0x8ba9: "Rang " +0x8baa: "Shan " +0x8bab: "Qi " +0x8bac: "Tuo " +0x8bad: "Xun " +0x8bae: "Yi " +0x8baf: "Xun " +0x8bb0: "Ji " +0x8bb1: "Ren " +0x8bb2: "Jiang " +0x8bb3: "Hui " +0x8bb4: "Ou " +0x8bb5: "Ju " +0x8bb6: "Ya " +0x8bb7: "Ne " +0x8bb8: "Xu " +0x8bb9: "E " +0x8bba: "Lun " +0x8bbb: "Xiong " +0x8bbc: "Song " +0x8bbd: "Feng " +0x8bbe: "She " +0x8bbf: "Fang " +0x8bc0: "Jue " +0x8bc1: "Zheng " +0x8bc2: "Gu " +0x8bc3: "He " +0x8bc4: "Ping " +0x8bc5: "Zu " +0x8bc6: "Shi " +0x8bc7: "Xiong " +0x8bc8: "Zha " +0x8bc9: "Su " +0x8bca: "Zhen " +0x8bcb: "Di " +0x8bcc: "Zou " +0x8bcd: "Ci " +0x8bce: "Qu " +0x8bcf: "Zhao " +0x8bd0: "Bi " +0x8bd1: "Yi " +0x8bd2: "Yi " +0x8bd3: "Kuang " +0x8bd4: "Lei " +0x8bd5: "Shi " +0x8bd6: "Gua " +0x8bd7: "Shi " +0x8bd8: "Jie " +0x8bd9: "Hui " +0x8bda: "Cheng " +0x8bdb: "Zhu " +0x8bdc: "Shen " +0x8bdd: "Hua " +0x8bde: "Dan " +0x8bdf: "Gou " +0x8be0: "Quan " +0x8be1: "Gui " +0x8be2: "Xun " +0x8be3: "Yi " +0x8be4: "Zheng " +0x8be5: "Gai " +0x8be6: "Xiang " +0x8be7: "Cha " +0x8be8: "Hun " +0x8be9: "Xu " +0x8bea: "Zhou " +0x8beb: "Jie " +0x8bec: "Wu " +0x8bed: "Yu " +0x8bee: "Qiao " +0x8bef: "Wu " +0x8bf0: "Gao " +0x8bf1: "You " +0x8bf2: "Hui " +0x8bf3: "Kuang " +0x8bf4: "Shuo " +0x8bf5: "Song " +0x8bf6: "Ai " +0x8bf7: "Qing " +0x8bf8: "Zhu " +0x8bf9: "Zou " +0x8bfa: "Nuo " +0x8bfb: "Du " +0x8bfc: "Zhuo " +0x8bfd: "Fei " +0x8bfe: "Ke " +0x8bff: "Wei " +/* x08c */ +0x8c00: "Yu " +0x8c01: "Shui " +0x8c02: "Shen " +0x8c03: "Diao " +0x8c04: "Chan " +0x8c05: "Liang " +0x8c06: "Zhun " +0x8c07: "Sui " +0x8c08: "Tan " +0x8c09: "Shen " +0x8c0a: "Yi " +0x8c0b: "Mou " +0x8c0c: "Chen " +0x8c0d: "Die " +0x8c0e: "Huang " +0x8c0f: "Jian " +0x8c10: "Xie " +0x8c11: "Nue " +0x8c12: "Ye " +0x8c13: "Wei " +0x8c14: "E " +0x8c15: "Yu " +0x8c16: "Xuan " +0x8c17: "Chan " +0x8c18: "Zi " +0x8c19: "An " +0x8c1a: "Yan " +0x8c1b: "Di " +0x8c1c: "Mi " +0x8c1d: "Pian " +0x8c1e: "Xu " +0x8c1f: "Mo " +0x8c20: "Dang " +0x8c21: "Su " +0x8c22: "Xie " +0x8c23: "Yao " +0x8c24: "Bang " +0x8c25: "Shi " +0x8c26: "Qian " +0x8c27: "Mi " +0x8c28: "Jin " +0x8c29: "Man " +0x8c2a: "Zhe " +0x8c2b: "Jian " +0x8c2c: "Miu " +0x8c2d: "Tan " +0x8c2e: "Zen " +0x8c2f: "Qiao " +0x8c30: "Lan " +0x8c31: "Pu " +0x8c32: "Jue " +0x8c33: "Yan " +0x8c34: "Qian " +0x8c35: "Zhan " +0x8c36: "Chen " +0x8c37: "Gu " +0x8c38: "Qian " +0x8c39: "Hong " +0x8c3a: "Xia " +0x8c3b: "Jue " +0x8c3c: "Hong " +0x8c3d: "Han " +0x8c3e: "Hong " +0x8c3f: "Xi " +0x8c40: "Xi " +0x8c41: "Huo " +0x8c42: "Liao " +0x8c43: "Han " +0x8c44: "Du " +0x8c45: "Long " +0x8c46: "Dou " +0x8c47: "Jiang " +0x8c48: "Qi " +0x8c49: "Shi " +0x8c4a: "Li " +0x8c4b: "Deng " +0x8c4c: "Wan " +0x8c4d: "Bi " +0x8c4e: "Shu " +0x8c4f: "Xian " +0x8c50: "Feng " +0x8c51: "Zhi " +0x8c52: "Zhi " +0x8c53: "Yan " +0x8c54: "Yan " +0x8c55: "Shi " +0x8c56: "Chu " +0x8c57: "Hui " +0x8c58: "Tun " +0x8c59: "Yi " +0x8c5a: "Tun " +0x8c5b: "Yi " +0x8c5c: "Jian " +0x8c5d: "Ba " +0x8c5e: "Hou " +0x8c5f: "E " +0x8c60: "Cu " +0x8c61: "Xiang " +0x8c62: "Huan " +0x8c63: "Jian " +0x8c64: "Ken " +0x8c65: "Gai " +0x8c66: "Qu " +0x8c67: "Fu " +0x8c68: "Xi " +0x8c69: "Bin " +0x8c6a: "Hao " +0x8c6b: "Yu " +0x8c6c: "Zhu " +0x8c6d: "Jia " +0x8c6e: "[?] " +0x8c6f: "Xi " +0x8c70: "Bo " +0x8c71: "Wen " +0x8c72: "Huan " +0x8c73: "Bin " +0x8c74: "Di " +0x8c75: "Zong " +0x8c76: "Fen " +0x8c77: "Yi " +0x8c78: "Zhi " +0x8c79: "Bao " +0x8c7a: "Chai " +0x8c7b: "Han " +0x8c7c: "Pi " +0x8c7d: "Na " +0x8c7e: "Pi " +0x8c7f: "Gou " +0x8c80: "Na " +0x8c81: "You " +0x8c82: "Diao " +0x8c83: "Mo " +0x8c84: "Si " +0x8c85: "Xiu " +0x8c86: "Huan " +0x8c87: "Kun " +0x8c88: "He " +0x8c89: "He " +0x8c8a: "Mo " +0x8c8b: "Han " +0x8c8c: "Mao " +0x8c8d: "Li " +0x8c8e: "Ni " +0x8c8f: "Bi " +0x8c90: "Yu " +0x8c91: "Jia " +0x8c92: "Tuan " +0x8c93: "Mao " +0x8c94: "Pi " +0x8c95: "Xi " +0x8c96: "E " +0x8c97: "Ju " +0x8c98: "Mo " +0x8c99: "Chu " +0x8c9a: "Tan " +0x8c9b: "Huan " +0x8c9c: "Jue " +0x8c9d: "Bei " +0x8c9e: "Zhen " +0x8c9f: "Yuan " +0x8ca0: "Fu " +0x8ca1: "Cai " +0x8ca2: "Gong " +0x8ca3: "Te " +0x8ca4: "Yi " +0x8ca5: "Hang " +0x8ca6: "Wan " +0x8ca7: "Pin " +0x8ca8: "Huo " +0x8ca9: "Fan " +0x8caa: "Tan " +0x8cab: "Guan " +0x8cac: "Ze " +0x8cad: "Zhi " +0x8cae: "Er " +0x8caf: "Zhu " +0x8cb0: "Shi " +0x8cb1: "Bi " +0x8cb2: "Zi " +0x8cb3: "Er " +0x8cb4: "Gui " +0x8cb5: "Pian " +0x8cb6: "Bian " +0x8cb7: "Mai " +0x8cb8: "Dai " +0x8cb9: "Sheng " +0x8cba: "Kuang " +0x8cbb: "Fei " +0x8cbc: "Tie " +0x8cbd: "Yi " +0x8cbe: "Chi " +0x8cbf: "Mao " +0x8cc0: "He " +0x8cc1: "Bi " +0x8cc2: "Lu " +0x8cc3: "Ren " +0x8cc4: "Hui " +0x8cc5: "Gai " +0x8cc6: "Pian " +0x8cc7: "Zi " +0x8cc8: "Jia " +0x8cc9: "Xu " +0x8cca: "Zei " +0x8ccb: "Jiao " +0x8ccc: "Gai " +0x8ccd: "Zang " +0x8cce: "Jian " +0x8ccf: "Ying " +0x8cd0: "Xun " +0x8cd1: "Zhen " +0x8cd2: "She " +0x8cd3: "Bin " +0x8cd4: "Bin " +0x8cd5: "Qiu " +0x8cd6: "She " +0x8cd7: "Chuan " +0x8cd8: "Zang " +0x8cd9: "Zhou " +0x8cda: "Lai " +0x8cdb: "Zan " +0x8cdc: "Si " +0x8cdd: "Chen " +0x8cde: "Shang " +0x8cdf: "Tian " +0x8ce0: "Pei " +0x8ce1: "Geng " +0x8ce2: "Xian " +0x8ce3: "Mai " +0x8ce4: "Jian " +0x8ce5: "Sui " +0x8ce6: "Fu " +0x8ce7: "Tan " +0x8ce8: "Cong " +0x8ce9: "Cong " +0x8cea: "Zhi " +0x8ceb: "Ji " +0x8cec: "Zhang " +0x8ced: "Du " +0x8cee: "Jin " +0x8cef: "Xiong " +0x8cf0: "Shun " +0x8cf1: "Yun " +0x8cf2: "Bao " +0x8cf3: "Zai " +0x8cf4: "Lai " +0x8cf5: "Feng " +0x8cf6: "Cang " +0x8cf7: "Ji " +0x8cf8: "Sheng " +0x8cf9: "Ai " +0x8cfa: "Zhuan " +0x8cfb: "Fu " +0x8cfc: "Gou " +0x8cfd: "Sai " +0x8cfe: "Ze " +0x8cff: "Liao " +/* x08d */ +0x8d00: "Wei " +0x8d01: "Bai " +0x8d02: "Chen " +0x8d03: "Zhuan " +0x8d04: "Zhi " +0x8d05: "Zhui " +0x8d06: "Biao " +0x8d07: "Yun " +0x8d08: "Zeng " +0x8d09: "Tan " +0x8d0a: "Zan " +0x8d0b: "Yan " +0x8d0c: "[?] " +0x8d0d: "Shan " +0x8d0e: "Wan " +0x8d0f: "Ying " +0x8d10: "Jin " +0x8d11: "Gan " +0x8d12: "Xian " +0x8d13: "Zang " +0x8d14: "Bi " +0x8d15: "Du " +0x8d16: "Shu " +0x8d17: "Yan " +0x8d18: "[?] " +0x8d19: "Xuan " +0x8d1a: "Long " +0x8d1b: "Gan " +0x8d1c: "Zang " +0x8d1d: "Bei " +0x8d1e: "Zhen " +0x8d1f: "Fu " +0x8d20: "Yuan " +0x8d21: "Gong " +0x8d22: "Cai " +0x8d23: "Ze " +0x8d24: "Xian " +0x8d25: "Bai " +0x8d26: "Zhang " +0x8d27: "Huo " +0x8d28: "Zhi " +0x8d29: "Fan " +0x8d2a: "Tan " +0x8d2b: "Pin " +0x8d2c: "Bian " +0x8d2d: "Gou " +0x8d2e: "Zhu " +0x8d2f: "Guan " +0x8d30: "Er " +0x8d31: "Jian " +0x8d32: "Bi " +0x8d33: "Shi " +0x8d34: "Tie " +0x8d35: "Gui " +0x8d36: "Kuang " +0x8d37: "Dai " +0x8d38: "Mao " +0x8d39: "Fei " +0x8d3a: "He " +0x8d3b: "Yi " +0x8d3c: "Zei " +0x8d3d: "Zhi " +0x8d3e: "Jia " +0x8d3f: "Hui " +0x8d40: "Zi " +0x8d41: "Ren " +0x8d42: "Lu " +0x8d43: "Zang " +0x8d44: "Zi " +0x8d45: "Gai " +0x8d46: "Jin " +0x8d47: "Qiu " +0x8d48: "Zhen " +0x8d49: "Lai " +0x8d4a: "She " +0x8d4b: "Fu " +0x8d4c: "Du " +0x8d4d: "Ji " +0x8d4e: "Shu " +0x8d4f: "Shang " +0x8d50: "Si " +0x8d51: "Bi " +0x8d52: "Zhou " +0x8d53: "Geng " +0x8d54: "Pei " +0x8d55: "Tan " +0x8d56: "Lai " +0x8d57: "Feng " +0x8d58: "Zhui " +0x8d59: "Fu " +0x8d5a: "Zhuan " +0x8d5b: "Sai " +0x8d5c: "Ze " +0x8d5d: "Yan " +0x8d5e: "Zan " +0x8d5f: "Yun " +0x8d60: "Zeng " +0x8d61: "Shan " +0x8d62: "Ying " +0x8d63: "Gan " +0x8d64: "Chi " +0x8d65: "Xi " +0x8d66: "She " +0x8d67: "Nan " +0x8d68: "Xiong " +0x8d69: "Xi " +0x8d6a: "Cheng " +0x8d6b: "He " +0x8d6c: "Cheng " +0x8d6d: "Zhe " +0x8d6e: "Xia " +0x8d6f: "Tang " +0x8d70: "Zou " +0x8d71: "Zou " +0x8d72: "Li " +0x8d73: "Jiu " +0x8d74: "Fu " +0x8d75: "Zhao " +0x8d76: "Gan " +0x8d77: "Qi " +0x8d78: "Shan " +0x8d79: "Qiong " +0x8d7a: "Qin " +0x8d7b: "Xian " +0x8d7c: "Ci " +0x8d7d: "Jue " +0x8d7e: "Qin " +0x8d7f: "Chi " +0x8d80: "Ci " +0x8d81: "Chen " +0x8d82: "Chen " +0x8d83: "Die " +0x8d84: "Ju " +0x8d85: "Chao " +0x8d86: "Di " +0x8d87: "Se " +0x8d88: "Zhan " +0x8d89: "Zhu " +0x8d8a: "Yue " +0x8d8b: "Qu " +0x8d8c: "Jie " +0x8d8d: "Chi " +0x8d8e: "Chu " +0x8d8f: "Gua " +0x8d90: "Xue " +0x8d91: "Ci " +0x8d92: "Tiao " +0x8d93: "Duo " +0x8d94: "Lie " +0x8d95: "Gan " +0x8d96: "Suo " +0x8d97: "Cu " +0x8d98: "Xi " +0x8d99: "Zhao " +0x8d9a: "Su " +0x8d9b: "Yin " +0x8d9c: "Ju " +0x8d9d: "Jian " +0x8d9e: "Que " +0x8d9f: "Tang " +0x8da0: "Chuo " +0x8da1: "Cui " +0x8da2: "Lu " +0x8da3: "Qu " +0x8da4: "Dang " +0x8da5: "Qiu " +0x8da6: "Zi " +0x8da7: "Ti " +0x8da8: "Qu " +0x8da9: "Chi " +0x8daa: "Huang " +0x8dab: "Qiao " +0x8dac: "Qiao " +0x8dad: "Yao " +0x8dae: "Zao " +0x8daf: "Ti " +0x8db0: "[?] " +0x8db1: "Zan " +0x8db2: "Zan " +0x8db3: "Zu " +0x8db4: "Pa " +0x8db5: "Bao " +0x8db6: "Ku " +0x8db7: "Ke " +0x8db8: "Dun " +0x8db9: "Jue " +0x8dba: "Fu " +0x8dbb: "Chen " +0x8dbc: "Jian " +0x8dbd: "Fang " +0x8dbe: "Zhi " +0x8dbf: "Sa " +0x8dc0: "Yue " +0x8dc1: "Pa " +0x8dc2: "Qi " +0x8dc3: "Yue " +0x8dc4: "Qiang " +0x8dc5: "Tuo " +0x8dc6: "Tai " +0x8dc7: "Yi " +0x8dc8: "Nian " +0x8dc9: "Ling " +0x8dca: "Mei " +0x8dcb: "Ba " +0x8dcc: "Die " +0x8dcd: "Ku " +0x8dce: "Tuo " +0x8dcf: "Jia " +0x8dd0: "Ci " +0x8dd1: "Pao " +0x8dd2: "Qia " +0x8dd3: "Zhu " +0x8dd4: "Ju " +0x8dd5: "Die " +0x8dd6: "Zhi " +0x8dd7: "Fu " +0x8dd8: "Pan " +0x8dd9: "Ju " +0x8dda: "Shan " +0x8ddb: "Bo " +0x8ddc: "Ni " +0x8ddd: "Ju " +0x8dde: "Li " +0x8ddf: "Gen " +0x8de0: "Yi " +0x8de1: "Ji " +0x8de2: "Dai " +0x8de3: "Xian " +0x8de4: "Jiao " +0x8de5: "Duo " +0x8de6: "Zhu " +0x8de7: "Zhuan " +0x8de8: "Kua " +0x8de9: "Zhuai " +0x8dea: "Gui " +0x8deb: "Qiong " +0x8dec: "Kui " +0x8ded: "Xiang " +0x8dee: "Chi " +0x8def: "Lu " +0x8df0: "Beng " +0x8df1: "Zhi " +0x8df2: "Jia " +0x8df3: "Tiao " +0x8df4: "Cai " +0x8df5: "Jian " +0x8df6: "Ta " +0x8df7: "Qiao " +0x8df8: "Bi " +0x8df9: "Xian " +0x8dfa: "Duo " +0x8dfb: "Ji " +0x8dfc: "Ju " +0x8dfd: "Ji " +0x8dfe: "Shu " +0x8dff: "Tu " +/* x08e */ +0x8e00: "Chu " +0x8e01: "Jing " +0x8e02: "Nie " +0x8e03: "Xiao " +0x8e04: "Bo " +0x8e05: "Chi " +0x8e06: "Qun " +0x8e07: "Mou " +0x8e08: "Shu " +0x8e09: "Lang " +0x8e0a: "Yong " +0x8e0b: "Jiao " +0x8e0c: "Chou " +0x8e0d: "Qiao " +0x8e0e: "[?] " +0x8e0f: "Ta " +0x8e10: "Jian " +0x8e11: "Qi " +0x8e12: "Wo " +0x8e13: "Wei " +0x8e14: "Zhuo " +0x8e15: "Jie " +0x8e16: "Ji " +0x8e17: "Nie " +0x8e18: "Ju " +0x8e19: "Ju " +0x8e1a: "Lun " +0x8e1b: "Lu " +0x8e1c: "Leng " +0x8e1d: "Huai " +0x8e1e: "Ju " +0x8e1f: "Chi " +0x8e20: "Wan " +0x8e21: "Quan " +0x8e22: "Ti " +0x8e23: "Bo " +0x8e24: "Zu " +0x8e25: "Qie " +0x8e26: "Ji " +0x8e27: "Cu " +0x8e28: "Zong " +0x8e29: "Cai " +0x8e2a: "Zong " +0x8e2b: "Peng " +0x8e2c: "Zhi " +0x8e2d: "Zheng " +0x8e2e: "Dian " +0x8e2f: "Zhi " +0x8e30: "Yu " +0x8e31: "Duo " +0x8e32: "Dun " +0x8e33: "Chun " +0x8e34: "Yong " +0x8e35: "Zhong " +0x8e36: "Di " +0x8e37: "Zhe " +0x8e38: "Chen " +0x8e39: "Chuai " +0x8e3a: "Jian " +0x8e3b: "Gua " +0x8e3c: "Tang " +0x8e3d: "Ju " +0x8e3e: "Fu " +0x8e3f: "Zu " +0x8e40: "Die " +0x8e41: "Pian " +0x8e42: "Rou " +0x8e43: "Nuo " +0x8e44: "Ti " +0x8e45: "Cha " +0x8e46: "Tui " +0x8e47: "Jian " +0x8e48: "Dao " +0x8e49: "Cuo " +0x8e4a: "Xi " +0x8e4b: "Ta " +0x8e4c: "Qiang " +0x8e4d: "Zhan " +0x8e4e: "Dian " +0x8e4f: "Ti " +0x8e50: "Ji " +0x8e51: "Nie " +0x8e52: "Man " +0x8e53: "Liu " +0x8e54: "Zhan " +0x8e55: "Bi " +0x8e56: "Chong " +0x8e57: "Lu " +0x8e58: "Liao " +0x8e59: "Cu " +0x8e5a: "Tang " +0x8e5b: "Dai " +0x8e5c: "Suo " +0x8e5d: "Xi " +0x8e5e: "Kui " +0x8e5f: "Ji " +0x8e60: "Zhi " +0x8e61: "Qiang " +0x8e62: "Di " +0x8e63: "Man " +0x8e64: "Zong " +0x8e65: "Lian " +0x8e66: "Beng " +0x8e67: "Zao " +0x8e68: "Nian " +0x8e69: "Bie " +0x8e6a: "Tui " +0x8e6b: "Ju " +0x8e6c: "Deng " +0x8e6d: "Ceng " +0x8e6e: "Xian " +0x8e6f: "Fan " +0x8e70: "Chu " +0x8e71: "Zhong " +0x8e72: "Dun " +0x8e73: "Bo " +0x8e74: "Cu " +0x8e75: "Zu " +0x8e76: "Jue " +0x8e77: "Jue " +0x8e78: "Lin " +0x8e79: "Ta " +0x8e7a: "Qiao " +0x8e7b: "Qiao " +0x8e7c: "Pu " +0x8e7d: "Liao " +0x8e7e: "Dun " +0x8e7f: "Cuan " +0x8e80: "Kuang " +0x8e81: "Zao " +0x8e82: "Ta " +0x8e83: "Bi " +0x8e84: "Bi " +0x8e85: "Zhu " +0x8e86: "Ju " +0x8e87: "Chu " +0x8e88: "Qiao " +0x8e89: "Dun " +0x8e8a: "Chou " +0x8e8b: "Ji " +0x8e8c: "Wu " +0x8e8d: "Yue " +0x8e8e: "Nian " +0x8e8f: "Lin " +0x8e90: "Lie " +0x8e91: "Zhi " +0x8e92: "Li " +0x8e93: "Zhi " +0x8e94: "Chan " +0x8e95: "Chu " +0x8e96: "Duan " +0x8e97: "Wei " +0x8e98: "Long " +0x8e99: "Lin " +0x8e9a: "Xian " +0x8e9b: "Wei " +0x8e9c: "Zuan " +0x8e9d: "Lan " +0x8e9e: "Xie " +0x8e9f: "Rang " +0x8ea0: "Xie " +0x8ea1: "Nie " +0x8ea2: "Ta " +0x8ea3: "Qu " +0x8ea4: "Jie " +0x8ea5: "Cuan " +0x8ea6: "Zuan " +0x8ea7: "Xi " +0x8ea8: "Kui " +0x8ea9: "Jue " +0x8eaa: "Lin " +0x8eab: "Shen " +0x8eac: "Gong " +0x8ead: "Dan " +0x8eae: "Segare " +0x8eaf: "Qu " +0x8eb0: "Ti " +0x8eb1: "Duo " +0x8eb2: "Duo " +0x8eb3: "Gong " +0x8eb4: "Lang " +0x8eb5: "Nerau " +0x8eb6: "Luo " +0x8eb7: "Ai " +0x8eb8: "Ji " +0x8eb9: "Ju " +0x8eba: "Tang " +0x8ebb: "Utsuke " +0x8ebc: "[?] " +0x8ebd: "Yan " +0x8ebe: "Shitsuke " +0x8ebf: "Kang " +0x8ec0: "Qu " +0x8ec1: "Lou " +0x8ec2: "Lao " +0x8ec3: "Tuo " +0x8ec4: "Zhi " +0x8ec5: "Yagate " +0x8ec6: "Ti " +0x8ec7: "Dao " +0x8ec8: "Yagate " +0x8ec9: "Yu " +0x8eca: "Che " +0x8ecb: "Ya " +0x8ecc: "Gui " +0x8ecd: "Jun " +0x8ece: "Wei " +0x8ecf: "Yue " +0x8ed0: "Xin " +0x8ed1: "Di " +0x8ed2: "Xuan " +0x8ed3: "Fan " +0x8ed4: "Ren " +0x8ed5: "Shan " +0x8ed6: "Qiang " +0x8ed7: "Shu " +0x8ed8: "Tun " +0x8ed9: "Chen " +0x8eda: "Dai " +0x8edb: "E " +0x8edc: "Na " +0x8edd: "Qi " +0x8ede: "Mao " +0x8edf: "Ruan " +0x8ee0: "Ren " +0x8ee1: "Fan " +0x8ee2: "Zhuan " +0x8ee3: "Hong " +0x8ee4: "Hu " +0x8ee5: "Qu " +0x8ee6: "Huang " +0x8ee7: "Di " +0x8ee8: "Ling " +0x8ee9: "Dai " +0x8eea: "Ao " +0x8eeb: "Zhen " +0x8eec: "Fan " +0x8eed: "Kuang " +0x8eee: "Ang " +0x8eef: "Peng " +0x8ef0: "Bei " +0x8ef1: "Gu " +0x8ef2: "Ku " +0x8ef3: "Pao " +0x8ef4: "Zhu " +0x8ef5: "Rong " +0x8ef6: "E " +0x8ef7: "Ba " +0x8ef8: "Zhou " +0x8ef9: "Zhi " +0x8efa: "Yao " +0x8efb: "Ke " +0x8efc: "Yi " +0x8efd: "Qing " +0x8efe: "Shi " +0x8eff: "Ping " +/* x08f */ +0x8f00: "Er " +0x8f01: "Qiong " +0x8f02: "Ju " +0x8f03: "Jiao " +0x8f04: "Guang " +0x8f05: "Lu " +0x8f06: "Kai " +0x8f07: "Quan " +0x8f08: "Zhou " +0x8f09: "Zai " +0x8f0a: "Zhi " +0x8f0b: "She " +0x8f0c: "Liang " +0x8f0d: "Yu " +0x8f0e: "Shao " +0x8f0f: "You " +0x8f10: "Huan " +0x8f11: "Yun " +0x8f12: "Zhe " +0x8f13: "Wan " +0x8f14: "Fu " +0x8f15: "Qing " +0x8f16: "Zhou " +0x8f17: "Ni " +0x8f18: "Ling " +0x8f19: "Zhe " +0x8f1a: "Zhan " +0x8f1b: "Liang " +0x8f1c: "Zi " +0x8f1d: "Hui " +0x8f1e: "Wang " +0x8f1f: "Chuo " +0x8f20: "Guo " +0x8f21: "Kan " +0x8f22: "Yi " +0x8f23: "Peng " +0x8f24: "Qian " +0x8f25: "Gun " +0x8f26: "Nian " +0x8f27: "Pian " +0x8f28: "Guan " +0x8f29: "Bei " +0x8f2a: "Lun " +0x8f2b: "Pai " +0x8f2c: "Liang " +0x8f2d: "Ruan " +0x8f2e: "Rou " +0x8f2f: "Ji " +0x8f30: "Yang " +0x8f31: "Xian " +0x8f32: "Chuan " +0x8f33: "Cou " +0x8f34: "Qun " +0x8f35: "Ge " +0x8f36: "You " +0x8f37: "Hong " +0x8f38: "Shu " +0x8f39: "Fu " +0x8f3a: "Zi " +0x8f3b: "Fu " +0x8f3c: "Wen " +0x8f3d: "Ben " +0x8f3e: "Zhan " +0x8f3f: "Yu " +0x8f40: "Wen " +0x8f41: "Tao " +0x8f42: "Gu " +0x8f43: "Zhen " +0x8f44: "Xia " +0x8f45: "Yuan " +0x8f46: "Lu " +0x8f47: "Jiu " +0x8f48: "Chao " +0x8f49: "Zhuan " +0x8f4a: "Wei " +0x8f4b: "Hun " +0x8f4c: "Sori " +0x8f4d: "Che " +0x8f4e: "Jiao " +0x8f4f: "Zhan " +0x8f50: "Pu " +0x8f51: "Lao " +0x8f52: "Fen " +0x8f53: "Fan " +0x8f54: "Lin " +0x8f55: "Ge " +0x8f56: "Se " +0x8f57: "Kan " +0x8f58: "Huan " +0x8f59: "Yi " +0x8f5a: "Ji " +0x8f5b: "Dui " +0x8f5c: "Er " +0x8f5d: "Yu " +0x8f5e: "Xian " +0x8f5f: "Hong " +0x8f60: "Lei " +0x8f61: "Pei " +0x8f62: "Li " +0x8f63: "Li " +0x8f64: "Lu " +0x8f65: "Lin " +0x8f66: "Che " +0x8f67: "Ya " +0x8f68: "Gui " +0x8f69: "Xuan " +0x8f6a: "Di " +0x8f6b: "Ren " +0x8f6c: "Zhuan " +0x8f6d: "E " +0x8f6e: "Lun " +0x8f6f: "Ruan " +0x8f70: "Hong " +0x8f71: "Ku " +0x8f72: "Ke " +0x8f73: "Lu " +0x8f74: "Zhou " +0x8f75: "Zhi " +0x8f76: "Yi " +0x8f77: "Hu " +0x8f78: "Zhen " +0x8f79: "Li " +0x8f7a: "Yao " +0x8f7b: "Qing " +0x8f7c: "Shi " +0x8f7d: "Zai " +0x8f7e: "Zhi " +0x8f7f: "Jiao " +0x8f80: "Zhou " +0x8f81: "Quan " +0x8f82: "Lu " +0x8f83: "Jiao " +0x8f84: "Zhe " +0x8f85: "Fu " +0x8f86: "Liang " +0x8f87: "Nian " +0x8f88: "Bei " +0x8f89: "Hui " +0x8f8a: "Gun " +0x8f8b: "Wang " +0x8f8c: "Liang " +0x8f8d: "Chuo " +0x8f8e: "Zi " +0x8f8f: "Cou " +0x8f90: "Fu " +0x8f91: "Ji " +0x8f92: "Wen " +0x8f93: "Shu " +0x8f94: "Pei " +0x8f95: "Yuan " +0x8f96: "Xia " +0x8f97: "Zhan " +0x8f98: "Lu " +0x8f99: "Che " +0x8f9a: "Lin " +0x8f9b: "Xin " +0x8f9c: "Gu " +0x8f9d: "Ci " +0x8f9e: "Ci " +0x8f9f: "Pi " +0x8fa0: "Zui " +0x8fa1: "Bian " +0x8fa2: "La " +0x8fa3: "La " +0x8fa4: "Ci " +0x8fa5: "Xue " +0x8fa6: "Ban " +0x8fa7: "Bian " +0x8fa8: "Bian " +0x8fa9: "Bian " +0x8faa: "[?] " +0x8fab: "Bian " +0x8fac: "Ban " +0x8fad: "Ci " +0x8fae: "Bian " +0x8faf: "Bian " +0x8fb0: "Chen " +0x8fb1: "Ru " +0x8fb2: "Nong " +0x8fb3: "Nong " +0x8fb4: "Zhen " +0x8fb5: "Chuo " +0x8fb6: "Chuo " +0x8fb7: "Suberu " +0x8fb8: "Reng " +0x8fb9: "Bian " +0x8fba: "Bian " +0x8fbb: "Sip " +0x8fbc: "Ip " +0x8fbd: "Liao " +0x8fbe: "Da " +0x8fbf: "Chan " +0x8fc0: "Gan " +0x8fc1: "Qian " +0x8fc2: "Yu " +0x8fc3: "Yu " +0x8fc4: "Qi " +0x8fc5: "Xun " +0x8fc6: "Yi " +0x8fc7: "Guo " +0x8fc8: "Mai " +0x8fc9: "Qi " +0x8fca: "Za " +0x8fcb: "Wang " +0x8fcc: "Jia " +0x8fcd: "Zhun " +0x8fce: "Ying " +0x8fcf: "Ti " +0x8fd0: "Yun " +0x8fd1: "Jin " +0x8fd2: "Hang " +0x8fd3: "Ya " +0x8fd4: "Fan " +0x8fd5: "Wu " +0x8fd6: "Da " +0x8fd7: "E " +0x8fd8: "Huan " +0x8fd9: "Zhe " +0x8fda: "Totemo " +0x8fdb: "Jin " +0x8fdc: "Yuan " +0x8fdd: "Wei " +0x8fde: "Lian " +0x8fdf: "Chi " +0x8fe0: "Che " +0x8fe1: "Ni " +0x8fe2: "Tiao " +0x8fe3: "Zhi " +0x8fe4: "Yi " +0x8fe5: "Jiong " +0x8fe6: "Jia " +0x8fe7: "Chen " +0x8fe8: "Dai " +0x8fe9: "Er " +0x8fea: "Di " +0x8feb: "Po " +0x8fec: "Wang " +0x8fed: "Die " +0x8fee: "Ze " +0x8fef: "Tao " +0x8ff0: "Shu " +0x8ff1: "Tuo " +0x8ff2: "Kep " +0x8ff3: "Jing " +0x8ff4: "Hui " +0x8ff5: "Tong " +0x8ff6: "You " +0x8ff7: "Mi " +0x8ff8: "Beng " +0x8ff9: "Ji " +0x8ffa: "Nai " +0x8ffb: "Yi " +0x8ffc: "Jie " +0x8ffd: "Zhui " +0x8ffe: "Lie " +0x8fff: "Xun " +/* x090 */ +0x9000: "Tui " +0x9001: "Song " +0x9002: "Gua " +0x9003: "Tao " +0x9004: "Pang " +0x9005: "Hou " +0x9006: "Ni " +0x9007: "Dun " +0x9008: "Jiong " +0x9009: "Xuan " +0x900a: "Xun " +0x900b: "Bu " +0x900c: "You " +0x900d: "Xiao " +0x900e: "Qiu " +0x900f: "Tou " +0x9010: "Zhu " +0x9011: "Qiu " +0x9012: "Di " +0x9013: "Di " +0x9014: "Tu " +0x9015: "Jing " +0x9016: "Ti " +0x9017: "Dou " +0x9018: "Yi " +0x9019: "Zhe " +0x901a: "Tong " +0x901b: "Guang " +0x901c: "Wu " +0x901d: "Shi " +0x901e: "Cheng " +0x901f: "Su " +0x9020: "Zao " +0x9021: "Qun " +0x9022: "Feng " +0x9023: "Lian " +0x9024: "Suo " +0x9025: "Hui " +0x9026: "Li " +0x9027: "Sako " +0x9028: "Lai " +0x9029: "Ben " +0x902a: "Cuo " +0x902b: "Jue " +0x902c: "Beng " +0x902d: "Huan " +0x902e: "Dai " +0x902f: "Lu " +0x9030: "You " +0x9031: "Zhou " +0x9032: "Jin " +0x9033: "Yu " +0x9034: "Chuo " +0x9035: "Kui " +0x9036: "Wei " +0x9037: "Ti " +0x9038: "Yi " +0x9039: "Da " +0x903a: "Yuan " +0x903b: "Luo " +0x903c: "Bi " +0x903d: "Nuo " +0x903e: "Yu " +0x903f: "Dang " +0x9040: "Sui " +0x9041: "Dun " +0x9042: "Sui " +0x9043: "Yan " +0x9044: "Chuan " +0x9045: "Chi " +0x9046: "Ti " +0x9047: "Yu " +0x9048: "Shi " +0x9049: "Zhen " +0x904a: "You " +0x904b: "Yun " +0x904c: "E " +0x904d: "Bian " +0x904e: "Guo " +0x904f: "E " +0x9050: "Xia " +0x9051: "Huang " +0x9052: "Qiu " +0x9053: "Dao " +0x9054: "Da " +0x9055: "Wei " +0x9056: "Appare " +0x9057: "Yi " +0x9058: "Gou " +0x9059: "Yao " +0x905a: "Chu " +0x905b: "Liu " +0x905c: "Xun " +0x905d: "Ta " +0x905e: "Di " +0x905f: "Chi " +0x9060: "Yuan " +0x9061: "Su " +0x9062: "Ta " +0x9063: "Qian " +0x9064: "[?] " +0x9065: "Yao " +0x9066: "Guan " +0x9067: "Zhang " +0x9068: "Ao " +0x9069: "Shi " +0x906a: "Ce " +0x906b: "Chi " +0x906c: "Su " +0x906d: "Zao " +0x906e: "Zhe " +0x906f: "Dun " +0x9070: "Di " +0x9071: "Lou " +0x9072: "Chi " +0x9073: "Cuo " +0x9074: "Lin " +0x9075: "Zun " +0x9076: "Rao " +0x9077: "Qian " +0x9078: "Xuan " +0x9079: "Yu " +0x907a: "Yi " +0x907b: "Wu " +0x907c: "Liao " +0x907d: "Ju " +0x907e: "Shi " +0x907f: "Bi " +0x9080: "Yao " +0x9081: "Mai " +0x9082: "Xie " +0x9083: "Sui " +0x9084: "Huan " +0x9085: "Zhan " +0x9086: "Teng " +0x9087: "Er " +0x9088: "Miao " +0x9089: "Bian " +0x908a: "Bian " +0x908b: "La " +0x908c: "Li " +0x908d: "Yuan " +0x908e: "Yao " +0x908f: "Luo " +0x9090: "Li " +0x9091: "Yi " +0x9092: "Ting " +0x9093: "Deng " +0x9094: "Qi " +0x9095: "Yong " +0x9096: "Shan " +0x9097: "Han " +0x9098: "Yu " +0x9099: "Mang " +0x909a: "Ru " +0x909b: "Qiong " +0x909c: "[?] " +0x909d: "Kuang " +0x909e: "Fu " +0x909f: "Kang " +0x90a0: "Bin " +0x90a1: "Fang " +0x90a2: "Xing " +0x90a3: "Na " +0x90a4: "Xin " +0x90a5: "Shen " +0x90a6: "Bang " +0x90a7: "Yuan " +0x90a8: "Cun " +0x90a9: "Huo " +0x90aa: "Xie " +0x90ab: "Bang " +0x90ac: "Wu " +0x90ad: "Ju " +0x90ae: "You " +0x90af: "Han " +0x90b0: "Tai " +0x90b1: "Qiu " +0x90b2: "Bi " +0x90b3: "Pei " +0x90b4: "Bing " +0x90b5: "Shao " +0x90b6: "Bei " +0x90b7: "Wa " +0x90b8: "Di " +0x90b9: "Zou " +0x90ba: "Ye " +0x90bb: "Lin " +0x90bc: "Kuang " +0x90bd: "Gui " +0x90be: "Zhu " +0x90bf: "Shi " +0x90c0: "Ku " +0x90c1: "Yu " +0x90c2: "Gai " +0x90c3: "Ge " +0x90c4: "Xi " +0x90c5: "Zhi " +0x90c6: "Ji " +0x90c7: "Xun " +0x90c8: "Hou " +0x90c9: "Xing " +0x90ca: "Jiao " +0x90cb: "Xi " +0x90cc: "Gui " +0x90cd: "Nuo " +0x90ce: "Lang " +0x90cf: "Jia " +0x90d0: "Kuai " +0x90d1: "Zheng " +0x90d2: "Otoko " +0x90d3: "Yun " +0x90d4: "Yan " +0x90d5: "Cheng " +0x90d6: "Dou " +0x90d7: "Chi " +0x90d8: "Lu " +0x90d9: "Fu " +0x90da: "Wu " +0x90db: "Fu " +0x90dc: "Gao " +0x90dd: "Hao " +0x90de: "Lang " +0x90df: "Jia " +0x90e0: "Geng " +0x90e1: "Jun " +0x90e2: "Ying " +0x90e3: "Bo " +0x90e4: "Xi " +0x90e5: "Bei " +0x90e6: "Li " +0x90e7: "Yun " +0x90e8: "Bu " +0x90e9: "Xiao " +0x90ea: "Qi " +0x90eb: "Pi " +0x90ec: "Qing " +0x90ed: "Guo " +0x90ee: "Zhou " +0x90ef: "Tan " +0x90f0: "Zou " +0x90f1: "Ping " +0x90f2: "Lai " +0x90f3: "Ni " +0x90f4: "Chen " +0x90f5: "You " +0x90f6: "Bu " +0x90f7: "Xiang " +0x90f8: "Dan " +0x90f9: "Ju " +0x90fa: "Yong " +0x90fb: "Qiao " +0x90fc: "Yi " +0x90fd: "Du " +0x90fe: "Yan " +0x90ff: "Mei " +/* x091 */ +0x9100: "Ruo " +0x9101: "Bei " +0x9102: "E " +0x9103: "Yu " +0x9104: "Juan " +0x9105: "Yu " +0x9106: "Yun " +0x9107: "Hou " +0x9108: "Kui " +0x9109: "Xiang " +0x910a: "Xiang " +0x910b: "Sou " +0x910c: "Tang " +0x910d: "Ming " +0x910e: "Xi " +0x910f: "Ru " +0x9110: "Chu " +0x9111: "Zi " +0x9112: "Zou " +0x9113: "Ju " +0x9114: "Wu " +0x9115: "Xiang " +0x9116: "Yun " +0x9117: "Hao " +0x9118: "Yong " +0x9119: "Bi " +0x911a: "Mo " +0x911b: "Chao " +0x911c: "Fu " +0x911d: "Liao " +0x911e: "Yin " +0x911f: "Zhuan " +0x9120: "Hu " +0x9121: "Qiao " +0x9122: "Yan " +0x9123: "Zhang " +0x9124: "Fan " +0x9125: "Qiao " +0x9126: "Xu " +0x9127: "Deng " +0x9128: "Bi " +0x9129: "Xin " +0x912a: "Bi " +0x912b: "Ceng " +0x912c: "Wei " +0x912d: "Zheng " +0x912e: "Mao " +0x912f: "Shan " +0x9130: "Lin " +0x9131: "Po " +0x9132: "Dan " +0x9133: "Meng " +0x9134: "Ye " +0x9135: "Cao " +0x9136: "Kuai " +0x9137: "Feng " +0x9138: "Meng " +0x9139: "Zou " +0x913a: "Kuang " +0x913b: "Lian " +0x913c: "Zan " +0x913d: "Chan " +0x913e: "You " +0x913f: "Qi " +0x9140: "Yan " +0x9141: "Chan " +0x9142: "Zan " +0x9143: "Ling " +0x9144: "Huan " +0x9145: "Xi " +0x9146: "Feng " +0x9147: "Zan " +0x9148: "Li " +0x9149: "You " +0x914a: "Ding " +0x914b: "Qiu " +0x914c: "Zhuo " +0x914d: "Pei " +0x914e: "Zhou " +0x914f: "Yi " +0x9150: "Hang " +0x9151: "Yu " +0x9152: "Jiu " +0x9153: "Yan " +0x9154: "Zui " +0x9155: "Mao " +0x9156: "Dan " +0x9157: "Xu " +0x9158: "Tou " +0x9159: "Zhen " +0x915a: "Fen " +0x915b: "Sakenomoto " +0x915c: "[?] " +0x915d: "Yun " +0x915e: "Tai " +0x915f: "Tian " +0x9160: "Qia " +0x9161: "Tuo " +0x9162: "Zuo " +0x9163: "Han " +0x9164: "Gu " +0x9165: "Su " +0x9166: "Po " +0x9167: "Chou " +0x9168: "Zai " +0x9169: "Ming " +0x916a: "Luo " +0x916b: "Chuo " +0x916c: "Chou " +0x916d: "You " +0x916e: "Tong " +0x916f: "Zhi " +0x9170: "Xian " +0x9171: "Jiang " +0x9172: "Cheng " +0x9173: "Yin " +0x9174: "Tu " +0x9175: "Xiao " +0x9176: "Mei " +0x9177: "Ku " +0x9178: "Suan " +0x9179: "Lei " +0x917a: "Pu " +0x917b: "Zui " +0x917c: "Hai " +0x917d: "Yan " +0x917e: "Xi " +0x917f: "Niang " +0x9180: "Wei " +0x9181: "Lu " +0x9182: "Lan " +0x9183: "Yan " +0x9184: "Tao " +0x9185: "Pei " +0x9186: "Zhan " +0x9187: "Chun " +0x9188: "Tan " +0x9189: "Zui " +0x918a: "Chuo " +0x918b: "Cu " +0x918c: "Kun " +0x918d: "Ti " +0x918e: "Mian " +0x918f: "Du " +0x9190: "Hu " +0x9191: "Xu " +0x9192: "Xing " +0x9193: "Tan " +0x9194: "Jiu " +0x9195: "Chun " +0x9196: "Yun " +0x9197: "Po " +0x9198: "Ke " +0x9199: "Sou " +0x919a: "Mi " +0x919b: "Quan " +0x919c: "Chou " +0x919d: "Cuo " +0x919e: "Yun " +0x919f: "Yong " +0x91a0: "Ang " +0x91a1: "Zha " +0x91a2: "Hai " +0x91a3: "Tang " +0x91a4: "Jiang " +0x91a5: "Piao " +0x91a6: "Shan " +0x91a7: "Yu " +0x91a8: "Li " +0x91a9: "Zao " +0x91aa: "Lao " +0x91ab: "Yi " +0x91ac: "Jiang " +0x91ad: "Pu " +0x91ae: "Jiao " +0x91af: "Xi " +0x91b0: "Tan " +0x91b1: "Po " +0x91b2: "Nong " +0x91b3: "Yi " +0x91b4: "Li " +0x91b5: "Ju " +0x91b6: "Jiao " +0x91b7: "Yi " +0x91b8: "Niang " +0x91b9: "Ru " +0x91ba: "Xun " +0x91bb: "Chou " +0x91bc: "Yan " +0x91bd: "Ling " +0x91be: "Mi " +0x91bf: "Mi " +0x91c0: "Niang " +0x91c1: "Xin " +0x91c2: "Jiao " +0x91c3: "Xi " +0x91c4: "Mi " +0x91c5: "Yan " +0x91c6: "Bian " +0x91c7: "Cai " +0x91c8: "Shi " +0x91c9: "You " +0x91ca: "Shi " +0x91cb: "Shi " +0x91cc: "Li " +0x91cd: "Zhong " +0x91ce: "Ye " +0x91cf: "Liang " +0x91d0: "Li " +0x91d1: "Jin " +0x91d2: "Jin " +0x91d3: "Qiu " +0x91d4: "Yi " +0x91d5: "Diao " +0x91d6: "Dao " +0x91d7: "Zhao " +0x91d8: "Ding " +0x91d9: "Po " +0x91da: "Qiu " +0x91db: "He " +0x91dc: "Fu " +0x91dd: "Zhen " +0x91de: "Zhi " +0x91df: "Ba " +0x91e0: "Luan " +0x91e1: "Fu " +0x91e2: "Nai " +0x91e3: "Diao " +0x91e4: "Shan " +0x91e5: "Qiao " +0x91e6: "Kou " +0x91e7: "Chuan " +0x91e8: "Zi " +0x91e9: "Fan " +0x91ea: "Yu " +0x91eb: "Hua " +0x91ec: "Han " +0x91ed: "Gong " +0x91ee: "Qi " +0x91ef: "Mang " +0x91f0: "Ri " +0x91f1: "Di " +0x91f2: "Si " +0x91f3: "Xi " +0x91f4: "Yi " +0x91f5: "Chai " +0x91f6: "Shi " +0x91f7: "Tu " +0x91f8: "Xi " +0x91f9: "Nu " +0x91fa: "Qian " +0x91fb: "Ishiyumi " +0x91fc: "Jian " +0x91fd: "Pi " +0x91fe: "Ye " +0x91ff: "Yin " +/* x092 */ +0x9200: "Ba " +0x9201: "Fang " +0x9202: "Chen " +0x9203: "Xing " +0x9204: "Tou " +0x9205: "Yue " +0x9206: "Yan " +0x9207: "Fu " +0x9208: "Pi " +0x9209: "Na " +0x920a: "Xin " +0x920b: "E " +0x920c: "Jue " +0x920d: "Dun " +0x920e: "Gou " +0x920f: "Yin " +0x9210: "Qian " +0x9211: "Ban " +0x9212: "Ji " +0x9213: "Ren " +0x9214: "Chao " +0x9215: "Niu " +0x9216: "Fen " +0x9217: "Yun " +0x9218: "Ji " +0x9219: "Qin " +0x921a: "Pi " +0x921b: "Guo " +0x921c: "Hong " +0x921d: "Yin " +0x921e: "Jun " +0x921f: "Shi " +0x9220: "Yi " +0x9221: "Zhong " +0x9222: "Nie " +0x9223: "Gai " +0x9224: "Ri " +0x9225: "Huo " +0x9226: "Tai " +0x9227: "Kang " +0x9228: "Habaki " +0x9229: "Irori " +0x922a: "Ngaak " +0x922b: "[?] " +0x922c: "Duo " +0x922d: "Zi " +0x922e: "Ni " +0x922f: "Tu " +0x9230: "Shi " +0x9231: "Min " +0x9232: "Gu " +0x9233: "E " +0x9234: "Ling " +0x9235: "Bing " +0x9236: "Yi " +0x9237: "Gu " +0x9238: "Ba " +0x9239: "Pi " +0x923a: "Yu " +0x923b: "Si " +0x923c: "Zuo " +0x923d: "Bu " +0x923e: "You " +0x923f: "Dian " +0x9240: "Jia " +0x9241: "Zhen " +0x9242: "Shi " +0x9243: "Shi " +0x9244: "Tie " +0x9245: "Ju " +0x9246: "Zhan " +0x9247: "Shi " +0x9248: "She " +0x9249: "Xuan " +0x924a: "Zhao " +0x924b: "Bao " +0x924c: "He " +0x924d: "Bi " +0x924e: "Sheng " +0x924f: "Chu " +0x9250: "Shi " +0x9251: "Bo " +0x9252: "Zhu " +0x9253: "Chi " +0x9254: "Za " +0x9255: "Po " +0x9256: "Tong " +0x9257: "Qian " +0x9258: "Fu " +0x9259: "Zhai " +0x925a: "Liu " +0x925b: "Qian " +0x925c: "Fu " +0x925d: "Li " +0x925e: "Yue " +0x925f: "Pi " +0x9260: "Yang " +0x9261: "Ban " +0x9262: "Bo " +0x9263: "Jie " +0x9264: "Gou " +0x9265: "Shu " +0x9266: "Zheng " +0x9267: "Mu " +0x9268: "Ni " +0x9269: "Nie " +0x926a: "Di " +0x926b: "Jia " +0x926c: "Mu " +0x926d: "Dan " +0x926e: "Shen " +0x926f: "Yi " +0x9270: "Si " +0x9271: "Kuang " +0x9272: "Ka " +0x9273: "Bei " +0x9274: "Jian " +0x9275: "Tong " +0x9276: "Xing " +0x9277: "Hong " +0x9278: "Jiao " +0x9279: "Chi " +0x927a: "Er " +0x927b: "Ge " +0x927c: "Bing " +0x927d: "Shi " +0x927e: "Mou " +0x927f: "Jia " +0x9280: "Yin " +0x9281: "Jun " +0x9282: "Zhou " +0x9283: "Chong " +0x9284: "Shang " +0x9285: "Tong " +0x9286: "Mo " +0x9287: "Lei " +0x9288: "Ji " +0x9289: "Yu " +0x928a: "Xu " +0x928b: "Ren " +0x928c: "Zun " +0x928d: "Zhi " +0x928e: "Qiong " +0x928f: "Shan " +0x9290: "Chi " +0x9291: "Xian " +0x9292: "Xing " +0x9293: "Quan " +0x9294: "Pi " +0x9295: "Tie " +0x9296: "Zhu " +0x9297: "Hou " +0x9298: "Ming " +0x9299: "Kua " +0x929a: "Yao " +0x929b: "Xian " +0x929c: "Xian " +0x929d: "Xiu " +0x929e: "Jun " +0x929f: "Cha " +0x92a0: "Lao " +0x92a1: "Ji " +0x92a2: "Pi " +0x92a3: "Ru " +0x92a4: "Mi " +0x92a5: "Yi " +0x92a6: "Yin " +0x92a7: "Guang " +0x92a8: "An " +0x92a9: "Diou " +0x92aa: "You " +0x92ab: "Se " +0x92ac: "Kao " +0x92ad: "Qian " +0x92ae: "Luan " +0x92af: "Kasugai " +0x92b0: "Ai " +0x92b1: "Diao " +0x92b2: "Han " +0x92b3: "Rui " +0x92b4: "Shi " +0x92b5: "Keng " +0x92b6: "Qiu " +0x92b7: "Xiao " +0x92b8: "Zhe " +0x92b9: "Xiu " +0x92ba: "Zang " +0x92bb: "Ti " +0x92bc: "Cuo " +0x92bd: "Gua " +0x92be: "Gong " +0x92bf: "Zhong " +0x92c0: "Dou " +0x92c1: "Lu " +0x92c2: "Mei " +0x92c3: "Lang " +0x92c4: "Wan " +0x92c5: "Xin " +0x92c6: "Yun " +0x92c7: "Bei " +0x92c8: "Wu " +0x92c9: "Su " +0x92ca: "Yu " +0x92cb: "Chan " +0x92cc: "Ting " +0x92cd: "Bo " +0x92ce: "Han " +0x92cf: "Jia " +0x92d0: "Hong " +0x92d1: "Cuan " +0x92d2: "Feng " +0x92d3: "Chan " +0x92d4: "Wan " +0x92d5: "Zhi " +0x92d6: "Si " +0x92d7: "Xuan " +0x92d8: "Wu " +0x92d9: "Wu " +0x92da: "Tiao " +0x92db: "Gong " +0x92dc: "Zhuo " +0x92dd: "Lue " +0x92de: "Xing " +0x92df: "Qian " +0x92e0: "Shen " +0x92e1: "Han " +0x92e2: "Lue " +0x92e3: "Xie " +0x92e4: "Chu " +0x92e5: "Zheng " +0x92e6: "Ju " +0x92e7: "Xian " +0x92e8: "Tie " +0x92e9: "Mang " +0x92ea: "Pu " +0x92eb: "Li " +0x92ec: "Pan " +0x92ed: "Rui " +0x92ee: "Cheng " +0x92ef: "Gao " +0x92f0: "Li " +0x92f1: "Te " +0x92f2: "Pyeng " +0x92f3: "Zhu " +0x92f4: "[?] " +0x92f5: "Tu " +0x92f6: "Liu " +0x92f7: "Zui " +0x92f8: "Ju " +0x92f9: "Chang " +0x92fa: "Yuan " +0x92fb: "Jian " +0x92fc: "Gang " +0x92fd: "Diao " +0x92fe: "Tao " +0x92ff: "Chang " +/* x093 */ +0x9300: "Lun " +0x9301: "Kua " +0x9302: "Ling " +0x9303: "Bei " +0x9304: "Lu " +0x9305: "Li " +0x9306: "Qiang " +0x9307: "Pou " +0x9308: "Juan " +0x9309: "Min " +0x930a: "Zui " +0x930b: "Peng " +0x930c: "An " +0x930d: "Pi " +0x930e: "Xian " +0x930f: "Ya " +0x9310: "Zhui " +0x9311: "Lei " +0x9312: "A " +0x9313: "Kong " +0x9314: "Ta " +0x9315: "Kun " +0x9316: "Du " +0x9317: "Wei " +0x9318: "Chui " +0x9319: "Zi " +0x931a: "Zheng " +0x931b: "Ben " +0x931c: "Nie " +0x931d: "Cong " +0x931e: "Qun " +0x931f: "Tan " +0x9320: "Ding " +0x9321: "Qi " +0x9322: "Qian " +0x9323: "Zhuo " +0x9324: "Qi " +0x9325: "Yu " +0x9326: "Jin " +0x9327: "Guan " +0x9328: "Mao " +0x9329: "Chang " +0x932a: "Tian " +0x932b: "Xi " +0x932c: "Lian " +0x932d: "Tao " +0x932e: "Gu " +0x932f: "Cuo " +0x9330: "Shu " +0x9331: "Zhen " +0x9332: "Lu " +0x9333: "Meng " +0x9334: "Lu " +0x9335: "Hua " +0x9336: "Biao " +0x9337: "Ga " +0x9338: "Lai " +0x9339: "Ken " +0x933a: "Kazari " +0x933b: "Bu " +0x933c: "Nai " +0x933d: "Wan " +0x933e: "Zan " +0x933f: "[?] " +0x9340: "De " +0x9341: "Xian " +0x9342: "[?] " +0x9343: "Huo " +0x9344: "Liang " +0x9345: "[?] " +0x9346: "Men " +0x9347: "Kai " +0x9348: "Ying " +0x9349: "Di " +0x934a: "Lian " +0x934b: "Guo " +0x934c: "Xian " +0x934d: "Du " +0x934e: "Tu " +0x934f: "Wei " +0x9350: "Cong " +0x9351: "Fu " +0x9352: "Rou " +0x9353: "Ji " +0x9354: "E " +0x9355: "Rou " +0x9356: "Chen " +0x9357: "Ti " +0x9358: "Zha " +0x9359: "Hong " +0x935a: "Yang " +0x935b: "Duan " +0x935c: "Xia " +0x935d: "Yu " +0x935e: "Keng " +0x935f: "Xing " +0x9360: "Huang " +0x9361: "Wei " +0x9362: "Fu " +0x9363: "Zhao " +0x9364: "Cha " +0x9365: "Qie " +0x9366: "She " +0x9367: "Hong " +0x9368: "Kui " +0x9369: "Tian " +0x936a: "Mou " +0x936b: "Qiao " +0x936c: "Qiao " +0x936d: "Hou " +0x936e: "Tou " +0x936f: "Cong " +0x9370: "Huan " +0x9371: "Ye " +0x9372: "Min " +0x9373: "Jian " +0x9374: "Duan " +0x9375: "Jian " +0x9376: "Song " +0x9377: "Kui " +0x9378: "Hu " +0x9379: "Xuan " +0x937a: "Duo " +0x937b: "Jie " +0x937c: "Zhen " +0x937d: "Bian " +0x937e: "Zhong " +0x937f: "Zi " +0x9380: "Xiu " +0x9381: "Ye " +0x9382: "Mei " +0x9383: "Pai " +0x9384: "Ai " +0x9385: "Jie " +0x9386: "[?] " +0x9387: "Mei " +0x9388: "Chuo " +0x9389: "Ta " +0x938a: "Bang " +0x938b: "Xia " +0x938c: "Lian " +0x938d: "Suo " +0x938e: "Xi " +0x938f: "Liu " +0x9390: "Zu " +0x9391: "Ye " +0x9392: "Nou " +0x9393: "Weng " +0x9394: "Rong " +0x9395: "Tang " +0x9396: "Suo " +0x9397: "Qiang " +0x9398: "Ge " +0x9399: "Shuo " +0x939a: "Chui " +0x939b: "Bo " +0x939c: "Pan " +0x939d: "Sa " +0x939e: "Bi " +0x939f: "Sang " +0x93a0: "Gang " +0x93a1: "Zi " +0x93a2: "Wu " +0x93a3: "Ying " +0x93a4: "Huang " +0x93a5: "Tiao " +0x93a6: "Liu " +0x93a7: "Kai " +0x93a8: "Sun " +0x93a9: "Sha " +0x93aa: "Sou " +0x93ab: "Wan " +0x93ac: "Hao " +0x93ad: "Zhen " +0x93ae: "Zhen " +0x93af: "Luo " +0x93b0: "Yi " +0x93b1: "Yuan " +0x93b2: "Tang " +0x93b3: "Nie " +0x93b4: "Xi " +0x93b5: "Jia " +0x93b6: "Ge " +0x93b7: "Ma " +0x93b8: "Juan " +0x93b9: "Kasugai " +0x93ba: "Habaki " +0x93bb: "Suo " +0x93bc: "[?] " +0x93bd: "[?] " +0x93be: "[?] " +0x93bf: "Na " +0x93c0: "Lu " +0x93c1: "Suo " +0x93c2: "Ou " +0x93c3: "Zu " +0x93c4: "Tuan " +0x93c5: "Xiu " +0x93c6: "Guan " +0x93c7: "Xuan " +0x93c8: "Lian " +0x93c9: "Shou " +0x93ca: "Ao " +0x93cb: "Man " +0x93cc: "Mo " +0x93cd: "Luo " +0x93ce: "Bi " +0x93cf: "Wei " +0x93d0: "Liu " +0x93d1: "Di " +0x93d2: "Qiao " +0x93d3: "Cong " +0x93d4: "Yi " +0x93d5: "Lu " +0x93d6: "Ao " +0x93d7: "Keng " +0x93d8: "Qiang " +0x93d9: "Cui " +0x93da: "Qi " +0x93db: "Chang " +0x93dc: "Tang " +0x93dd: "Man " +0x93de: "Yong " +0x93df: "Chan " +0x93e0: "Feng " +0x93e1: "Jing " +0x93e2: "Biao " +0x93e3: "Shu " +0x93e4: "Lou " +0x93e5: "Xiu " +0x93e6: "Cong " +0x93e7: "Long " +0x93e8: "Zan " +0x93e9: "Jian " +0x93ea: "Cao " +0x93eb: "Li " +0x93ec: "Xia " +0x93ed: "Xi " +0x93ee: "Kang " +0x93ef: "[?] " +0x93f0: "Beng " +0x93f1: "[?] " +0x93f2: "[?] " +0x93f3: "Zheng " +0x93f4: "Lu " +0x93f5: "Hua " +0x93f6: "Ji " +0x93f7: "Pu " +0x93f8: "Hui " +0x93f9: "Qiang " +0x93fa: "Po " +0x93fb: "Lin " +0x93fc: "Suo " +0x93fd: "Xiu " +0x93fe: "San " +0x93ff: "Cheng " +/* x094 */ +0x9400: "Kui " +0x9401: "Si " +0x9402: "Liu " +0x9403: "Nao " +0x9404: "Heng " +0x9405: "Pie " +0x9406: "Sui " +0x9407: "Fan " +0x9408: "Qiao " +0x9409: "Quan " +0x940a: "Yang " +0x940b: "Tang " +0x940c: "Xiang " +0x940d: "Jue " +0x940e: "Jiao " +0x940f: "Zun " +0x9410: "Liao " +0x9411: "Jie " +0x9412: "Lao " +0x9413: "Dui " +0x9414: "Tan " +0x9415: "Zan " +0x9416: "Ji " +0x9417: "Jian " +0x9418: "Zhong " +0x9419: "Deng " +0x941a: "Ya " +0x941b: "Ying " +0x941c: "Dui " +0x941d: "Jue " +0x941e: "Nou " +0x941f: "Ti " +0x9420: "Pu " +0x9421: "Tie " +0x9422: "[?] " +0x9423: "[?] " +0x9424: "Ding " +0x9425: "Shan " +0x9426: "Kai " +0x9427: "Jian " +0x9428: "Fei " +0x9429: "Sui " +0x942a: "Lu " +0x942b: "Juan " +0x942c: "Hui " +0x942d: "Yu " +0x942e: "Lian " +0x942f: "Zhuo " +0x9430: "Qiao " +0x9431: "Qian " +0x9432: "Zhuo " +0x9433: "Lei " +0x9434: "Bi " +0x9435: "Tie " +0x9436: "Huan " +0x9437: "Ye " +0x9438: "Duo " +0x9439: "Guo " +0x943a: "Dang " +0x943b: "Ju " +0x943c: "Fen " +0x943d: "Da " +0x943e: "Bei " +0x943f: "Yi " +0x9440: "Ai " +0x9441: "Zong " +0x9442: "Xun " +0x9443: "Diao " +0x9444: "Zhu " +0x9445: "Heng " +0x9446: "Zhui " +0x9447: "Ji " +0x9448: "Nie " +0x9449: "Ta " +0x944a: "Huo " +0x944b: "Qing " +0x944c: "Bin " +0x944d: "Ying " +0x944e: "Kui " +0x944f: "Ning " +0x9450: "Xu " +0x9451: "Jian " +0x9452: "Jian " +0x9453: "Yari " +0x9454: "Cha " +0x9455: "Zhi " +0x9456: "Mie " +0x9457: "Li " +0x9458: "Lei " +0x9459: "Ji " +0x945a: "Zuan " +0x945b: "Kuang " +0x945c: "Shang " +0x945d: "Peng " +0x945e: "La " +0x945f: "Du " +0x9460: "Shuo " +0x9461: "Chuo " +0x9462: "Lu " +0x9463: "Biao " +0x9464: "Bao " +0x9465: "Lu " +0x9466: "[?] " +0x9467: "[?] " +0x9468: "Long " +0x9469: "E " +0x946a: "Lu " +0x946b: "Xin " +0x946c: "Jian " +0x946d: "Lan " +0x946e: "Bo " +0x946f: "Jian " +0x9470: "Yao " +0x9471: "Chan " +0x9472: "Xiang " +0x9473: "Jian " +0x9474: "Xi " +0x9475: "Guan " +0x9476: "Cang " +0x9477: "Nie " +0x9478: "Lei " +0x9479: "Cuan " +0x947a: "Qu " +0x947b: "Pan " +0x947c: "Luo " +0x947d: "Zuan " +0x947e: "Luan " +0x947f: "Zao " +0x9480: "Nie " +0x9481: "Jue " +0x9482: "Tang " +0x9483: "Shu " +0x9484: "Lan " +0x9485: "Jin " +0x9486: "Qiu " +0x9487: "Yi " +0x9488: "Zhen " +0x9489: "Ding " +0x948a: "Zhao " +0x948b: "Po " +0x948c: "Diao " +0x948d: "Tu " +0x948e: "Qian " +0x948f: "Chuan " +0x9490: "Shan " +0x9491: "Ji " +0x9492: "Fan " +0x9493: "Diao " +0x9494: "Men " +0x9495: "Nu " +0x9496: "Xi " +0x9497: "Chai " +0x9498: "Xing " +0x9499: "Gai " +0x949a: "Bu " +0x949b: "Tai " +0x949c: "Ju " +0x949d: "Dun " +0x949e: "Chao " +0x949f: "Zhong " +0x94a0: "Na " +0x94a1: "Bei " +0x94a2: "Gang " +0x94a3: "Ban " +0x94a4: "Qian " +0x94a5: "Yao " +0x94a6: "Qin " +0x94a7: "Jun " +0x94a8: "Wu " +0x94a9: "Gou " +0x94aa: "Kang " +0x94ab: "Fang " +0x94ac: "Huo " +0x94ad: "Tou " +0x94ae: "Niu " +0x94af: "Ba " +0x94b0: "Yu " +0x94b1: "Qian " +0x94b2: "Zheng " +0x94b3: "Qian " +0x94b4: "Gu " +0x94b5: "Bo " +0x94b6: "E " +0x94b7: "Po " +0x94b8: "Bu " +0x94b9: "Ba " +0x94ba: "Yue " +0x94bb: "Zuan " +0x94bc: "Mu " +0x94bd: "Dan " +0x94be: "Jia " +0x94bf: "Dian " +0x94c0: "You " +0x94c1: "Tie " +0x94c2: "Bo " +0x94c3: "Ling " +0x94c4: "Shuo " +0x94c5: "Qian " +0x94c6: "Liu " +0x94c7: "Bao " +0x94c8: "Shi " +0x94c9: "Xuan " +0x94ca: "She " +0x94cb: "Bi " +0x94cc: "Ni " +0x94cd: "Pi " +0x94ce: "Duo " +0x94cf: "Xing " +0x94d0: "Kao " +0x94d1: "Lao " +0x94d2: "Er " +0x94d3: "Mang " +0x94d4: "Ya " +0x94d5: "You " +0x94d6: "Cheng " +0x94d7: "Jia " +0x94d8: "Ye " +0x94d9: "Nao " +0x94da: "Zhi " +0x94db: "Dang " +0x94dc: "Tong " +0x94dd: "Lu " +0x94de: "Diao " +0x94df: "Yin " +0x94e0: "Kai " +0x94e1: "Zha " +0x94e2: "Zhu " +0x94e3: "Xian " +0x94e4: "Ting " +0x94e5: "Diu " +0x94e6: "Xian " +0x94e7: "Hua " +0x94e8: "Quan " +0x94e9: "Sha " +0x94ea: "Jia " +0x94eb: "Yao " +0x94ec: "Ge " +0x94ed: "Ming " +0x94ee: "Zheng " +0x94ef: "Se " +0x94f0: "Jiao " +0x94f1: "Yi " +0x94f2: "Chan " +0x94f3: "Chong " +0x94f4: "Tang " +0x94f5: "An " +0x94f6: "Yin " +0x94f7: "Ru " +0x94f8: "Zhu " +0x94f9: "Lao " +0x94fa: "Pu " +0x94fb: "Wu " +0x94fc: "Lai " +0x94fd: "Te " +0x94fe: "Lian " +0x94ff: "Keng " +/* x095 */ +0x9500: "Xiao " +0x9501: "Suo " +0x9502: "Li " +0x9503: "Zheng " +0x9504: "Chu " +0x9505: "Guo " +0x9506: "Gao " +0x9507: "Tie " +0x9508: "Xiu " +0x9509: "Cuo " +0x950a: "Lue " +0x950b: "Feng " +0x950c: "Xin " +0x950d: "Liu " +0x950e: "Kai " +0x950f: "Jian " +0x9510: "Rui " +0x9511: "Ti " +0x9512: "Lang " +0x9513: "Qian " +0x9514: "Ju " +0x9515: "A " +0x9516: "Qiang " +0x9517: "Duo " +0x9518: "Tian " +0x9519: "Cuo " +0x951a: "Mao " +0x951b: "Ben " +0x951c: "Qi " +0x951d: "De " +0x951e: "Kua " +0x951f: "Kun " +0x9520: "Chang " +0x9521: "Xi " +0x9522: "Gu " +0x9523: "Luo " +0x9524: "Chui " +0x9525: "Zhui " +0x9526: "Jin " +0x9527: "Zhi " +0x9528: "Xian " +0x9529: "Juan " +0x952a: "Huo " +0x952b: "Pou " +0x952c: "Tan " +0x952d: "Ding " +0x952e: "Jian " +0x952f: "Ju " +0x9530: "Meng " +0x9531: "Zi " +0x9532: "Qie " +0x9533: "Ying " +0x9534: "Kai " +0x9535: "Qiang " +0x9536: "Song " +0x9537: "E " +0x9538: "Cha " +0x9539: "Qiao " +0x953a: "Zhong " +0x953b: "Duan " +0x953c: "Sou " +0x953d: "Huang " +0x953e: "Huan " +0x953f: "Ai " +0x9540: "Du " +0x9541: "Mei " +0x9542: "Lou " +0x9543: "Zi " +0x9544: "Fei " +0x9545: "Mei " +0x9546: "Mo " +0x9547: "Zhen " +0x9548: "Bo " +0x9549: "Ge " +0x954a: "Nie " +0x954b: "Tang " +0x954c: "Juan " +0x954d: "Nie " +0x954e: "Na " +0x954f: "Liu " +0x9550: "Hao " +0x9551: "Bang " +0x9552: "Yi " +0x9553: "Jia " +0x9554: "Bin " +0x9555: "Rong " +0x9556: "Biao " +0x9557: "Tang " +0x9558: "Man " +0x9559: "Luo " +0x955a: "Beng " +0x955b: "Yong " +0x955c: "Jing " +0x955d: "Di " +0x955e: "Zu " +0x955f: "Xuan " +0x9560: "Liu " +0x9561: "Tan " +0x9562: "Jue " +0x9563: "Liao " +0x9564: "Pu " +0x9565: "Lu " +0x9566: "Dui " +0x9567: "Lan " +0x9568: "Pu " +0x9569: "Cuan " +0x956a: "Qiang " +0x956b: "Deng " +0x956c: "Huo " +0x956d: "Lei " +0x956e: "Huan " +0x956f: "Zhuo " +0x9570: "Lian " +0x9571: "Yi " +0x9572: "Cha " +0x9573: "Biao " +0x9574: "La " +0x9575: "Chan " +0x9576: "Xiang " +0x9577: "Chang " +0x9578: "Chang " +0x9579: "Jiu " +0x957a: "Ao " +0x957b: "Die " +0x957c: "Qu " +0x957d: "Liao " +0x957e: "Mi " +0x957f: "Chang " +0x9580: "Men " +0x9581: "Ma " +0x9582: "Shuan " +0x9583: "Shan " +0x9584: "Huo " +0x9585: "Men " +0x9586: "Yan " +0x9587: "Bi " +0x9588: "Han " +0x9589: "Bi " +0x958a: "San " +0x958b: "Kai " +0x958c: "Kang " +0x958d: "Beng " +0x958e: "Hong " +0x958f: "Run " +0x9590: "San " +0x9591: "Xian " +0x9592: "Xian " +0x9593: "Jian " +0x9594: "Min " +0x9595: "Xia " +0x9596: "Yuru " +0x9597: "Dou " +0x9598: "Zha " +0x9599: "Nao " +0x959a: "Jian " +0x959b: "Peng " +0x959c: "Xia " +0x959d: "Ling " +0x959e: "Bian " +0x959f: "Bi " +0x95a0: "Run " +0x95a1: "He " +0x95a2: "Guan " +0x95a3: "Ge " +0x95a4: "Ge " +0x95a5: "Fa " +0x95a6: "Chu " +0x95a7: "Hong " +0x95a8: "Gui " +0x95a9: "Min " +0x95aa: "Se " +0x95ab: "Kun " +0x95ac: "Lang " +0x95ad: "Lu " +0x95ae: "Ting " +0x95af: "Sha " +0x95b0: "Ju " +0x95b1: "Yue " +0x95b2: "Yue " +0x95b3: "Chan " +0x95b4: "Qu " +0x95b5: "Lin " +0x95b6: "Chang " +0x95b7: "Shai " +0x95b8: "Kun " +0x95b9: "Yan " +0x95ba: "Min " +0x95bb: "Yan " +0x95bc: "E " +0x95bd: "Hun " +0x95be: "Yu " +0x95bf: "Wen " +0x95c0: "Xiang " +0x95c1: "Bao " +0x95c2: "Xiang " +0x95c3: "Qu " +0x95c4: "Yao " +0x95c5: "Wen " +0x95c6: "Ban " +0x95c7: "An " +0x95c8: "Wei " +0x95c9: "Yin " +0x95ca: "Kuo " +0x95cb: "Que " +0x95cc: "Lan " +0x95cd: "Du " +0x95ce: "[?] " +0x95cf: "Phwung " +0x95d0: "Tian " +0x95d1: "Nie " +0x95d2: "Ta " +0x95d3: "Kai " +0x95d4: "He " +0x95d5: "Que " +0x95d6: "Chuang " +0x95d7: "Guan " +0x95d8: "Dou " +0x95d9: "Qi " +0x95da: "Kui " +0x95db: "Tang " +0x95dc: "Guan " +0x95dd: "Piao " +0x95de: "Kan " +0x95df: "Xi " +0x95e0: "Hui " +0x95e1: "Chan " +0x95e2: "Pi " +0x95e3: "Dang " +0x95e4: "Huan " +0x95e5: "Ta " +0x95e6: "Wen " +0x95e7: "[?] " +0x95e8: "Men " +0x95e9: "Shuan " +0x95ea: "Shan " +0x95eb: "Yan " +0x95ec: "Han " +0x95ed: "Bi " +0x95ee: "Wen " +0x95ef: "Chuang " +0x95f0: "Run " +0x95f1: "Wei " +0x95f2: "Xian " +0x95f3: "Hong " +0x95f4: "Jian " +0x95f5: "Min " +0x95f6: "Kang " +0x95f7: "Men " +0x95f8: "Zha " +0x95f9: "Nao " +0x95fa: "Gui " +0x95fb: "Wen " +0x95fc: "Ta " +0x95fd: "Min " +0x95fe: "Lu " +0x95ff: "Kai " +/* x096 */ +0x9600: "Fa " +0x9601: "Ge " +0x9602: "He " +0x9603: "Kun " +0x9604: "Jiu " +0x9605: "Yue " +0x9606: "Lang " +0x9607: "Du " +0x9608: "Yu " +0x9609: "Yan " +0x960a: "Chang " +0x960b: "Xi " +0x960c: "Wen " +0x960d: "Hun " +0x960e: "Yan " +0x960f: "E " +0x9610: "Chan " +0x9611: "Lan " +0x9612: "Qu " +0x9613: "Hui " +0x9614: "Kuo " +0x9615: "Que " +0x9616: "Ge " +0x9617: "Tian " +0x9618: "Ta " +0x9619: "Que " +0x961a: "Kan " +0x961b: "Huan " +0x961c: "Fu " +0x961d: "Fu " +0x961e: "Le " +0x961f: "Dui " +0x9620: "Xin " +0x9621: "Qian " +0x9622: "Wu " +0x9623: "Yi " +0x9624: "Tuo " +0x9625: "Yin " +0x9626: "Yang " +0x9627: "Dou " +0x9628: "E " +0x9629: "Sheng " +0x962a: "Ban " +0x962b: "Pei " +0x962c: "Keng " +0x962d: "Yun " +0x962e: "Ruan " +0x962f: "Zhi " +0x9630: "Pi " +0x9631: "Jing " +0x9632: "Fang " +0x9633: "Yang " +0x9634: "Yin " +0x9635: "Zhen " +0x9636: "Jie " +0x9637: "Cheng " +0x9638: "E " +0x9639: "Qu " +0x963a: "Di " +0x963b: "Zu " +0x963c: "Zuo " +0x963d: "Dian " +0x963e: "Ling " +0x963f: "A " +0x9640: "Tuo " +0x9641: "Tuo " +0x9642: "Po " +0x9643: "Bing " +0x9644: "Fu " +0x9645: "Ji " +0x9646: "Lu " +0x9647: "Long " +0x9648: "Chen " +0x9649: "Xing " +0x964a: "Duo " +0x964b: "Lou " +0x964c: "Mo " +0x964d: "Jiang " +0x964e: "Shu " +0x964f: "Duo " +0x9650: "Xian " +0x9651: "Er " +0x9652: "Gui " +0x9653: "Yu " +0x9654: "Gai " +0x9655: "Shan " +0x9656: "Xun " +0x9657: "Qiao " +0x9658: "Xing " +0x9659: "Chun " +0x965a: "Fu " +0x965b: "Bi " +0x965c: "Xia " +0x965d: "Shan " +0x965e: "Sheng " +0x965f: "Zhi " +0x9660: "Pu " +0x9661: "Dou " +0x9662: "Yuan " +0x9663: "Zhen " +0x9664: "Chu " +0x9665: "Xian " +0x9666: "Tou " +0x9667: "Nie " +0x9668: "Yun " +0x9669: "Xian " +0x966a: "Pei " +0x966b: "Pei " +0x966c: "Zou " +0x966d: "Yi " +0x966e: "Dui " +0x966f: "Lun " +0x9670: "Yin " +0x9671: "Ju " +0x9672: "Chui " +0x9673: "Chen " +0x9674: "Pi " +0x9675: "Ling " +0x9676: "Tao " +0x9677: "Xian " +0x9678: "Lu " +0x9679: "Sheng " +0x967a: "Xian " +0x967b: "Yin " +0x967c: "Zhu " +0x967d: "Yang " +0x967e: "Reng " +0x967f: "Shan " +0x9680: "Chong " +0x9681: "Yan " +0x9682: "Yin " +0x9683: "Yu " +0x9684: "Ti " +0x9685: "Yu " +0x9686: "Long " +0x9687: "Wei " +0x9688: "Wei " +0x9689: "Nie " +0x968a: "Dui " +0x968b: "Sui " +0x968c: "An " +0x968d: "Huang " +0x968e: "Jie " +0x968f: "Sui " +0x9690: "Yin " +0x9691: "Gai " +0x9692: "Yan " +0x9693: "Hui " +0x9694: "Ge " +0x9695: "Yun " +0x9696: "Wu " +0x9697: "Wei " +0x9698: "Ai " +0x9699: "Xi " +0x969a: "Tang " +0x969b: "Ji " +0x969c: "Zhang " +0x969d: "Dao " +0x969e: "Ao " +0x969f: "Xi " +0x96a0: "Yin " +0x96a1: "[?] " +0x96a2: "Rao " +0x96a3: "Lin " +0x96a4: "Tui " +0x96a5: "Deng " +0x96a6: "Pi " +0x96a7: "Sui " +0x96a8: "Sui " +0x96a9: "Yu " +0x96aa: "Xian " +0x96ab: "Fen " +0x96ac: "Ni " +0x96ad: "Er " +0x96ae: "Ji " +0x96af: "Dao " +0x96b0: "Xi " +0x96b1: "Yin " +0x96b2: "E " +0x96b3: "Hui " +0x96b4: "Long " +0x96b5: "Xi " +0x96b6: "Li " +0x96b7: "Li " +0x96b8: "Li " +0x96b9: "Zhui " +0x96ba: "He " +0x96bb: "Zhi " +0x96bc: "Zhun " +0x96bd: "Jun " +0x96be: "Nan " +0x96bf: "Yi " +0x96c0: "Que " +0x96c1: "Yan " +0x96c2: "Qian " +0x96c3: "Ya " +0x96c4: "Xiong " +0x96c5: "Ya " +0x96c6: "Ji " +0x96c7: "Gu " +0x96c8: "Huan " +0x96c9: "Zhi " +0x96ca: "Gou " +0x96cb: "Jun " +0x96cc: "Ci " +0x96cd: "Yong " +0x96ce: "Ju " +0x96cf: "Chu " +0x96d0: "Hu " +0x96d1: "Za " +0x96d2: "Luo " +0x96d3: "Yu " +0x96d4: "Chou " +0x96d5: "Diao " +0x96d6: "Sui " +0x96d7: "Han " +0x96d8: "Huo " +0x96d9: "Shuang " +0x96da: "Guan " +0x96db: "Chu " +0x96dc: "Za " +0x96dd: "Yong " +0x96de: "Ji " +0x96df: "Xi " +0x96e0: "Chou " +0x96e1: "Liu " +0x96e2: "Li " +0x96e3: "Nan " +0x96e4: "Xue " +0x96e5: "Za " +0x96e6: "Ji " +0x96e7: "Ji " +0x96e8: "Yu " +0x96e9: "Yu " +0x96ea: "Xue " +0x96eb: "Na " +0x96ec: "Fou " +0x96ed: "Se " +0x96ee: "Mu " +0x96ef: "Wen " +0x96f0: "Fen " +0x96f1: "Pang " +0x96f2: "Yun " +0x96f3: "Li " +0x96f4: "Li " +0x96f5: "Ang " +0x96f6: "Ling " +0x96f7: "Lei " +0x96f8: "An " +0x96f9: "Bao " +0x96fa: "Meng " +0x96fb: "Dian " +0x96fc: "Dang " +0x96fd: "Xing " +0x96fe: "Wu " +0x96ff: "Zhao " +/* x097 */ +0x9700: "Xu " +0x9701: "Ji " +0x9702: "Mu " +0x9703: "Chen " +0x9704: "Xiao " +0x9705: "Zha " +0x9706: "Ting " +0x9707: "Zhen " +0x9708: "Pei " +0x9709: "Mei " +0x970a: "Ling " +0x970b: "Qi " +0x970c: "Chou " +0x970d: "Huo " +0x970e: "Sha " +0x970f: "Fei " +0x9710: "Weng " +0x9711: "Zhan " +0x9712: "Yin " +0x9713: "Ni " +0x9714: "Chou " +0x9715: "Tun " +0x9716: "Lin " +0x9717: "[?] " +0x9718: "Dong " +0x9719: "Ying " +0x971a: "Wu " +0x971b: "Ling " +0x971c: "Shuang " +0x971d: "Ling " +0x971e: "Xia " +0x971f: "Hong " +0x9720: "Yin " +0x9721: "Mo " +0x9722: "Mai " +0x9723: "Yun " +0x9724: "Liu " +0x9725: "Meng " +0x9726: "Bin " +0x9727: "Wu " +0x9728: "Wei " +0x9729: "Huo " +0x972a: "Yin " +0x972b: "Xi " +0x972c: "Yi " +0x972d: "Ai " +0x972e: "Dan " +0x972f: "Deng " +0x9730: "Xian " +0x9731: "Yu " +0x9732: "Lu " +0x9733: "Long " +0x9734: "Dai " +0x9735: "Ji " +0x9736: "Pang " +0x9737: "Yang " +0x9738: "Ba " +0x9739: "Pi " +0x973a: "Wei " +0x973b: "[?] " +0x973c: "Xi " +0x973d: "Ji " +0x973e: "Mai " +0x973f: "Meng " +0x9740: "Meng " +0x9741: "Lei " +0x9742: "Li " +0x9743: "Huo " +0x9744: "Ai " +0x9745: "Fei " +0x9746: "Dai " +0x9747: "Long " +0x9748: "Ling " +0x9749: "Ai " +0x974a: "Feng " +0x974b: "Li " +0x974c: "Bao " +0x974d: "[?] " +0x974e: "He " +0x974f: "He " +0x9750: "Bing " +0x9751: "Qing " +0x9752: "Qing " +0x9753: "Jing " +0x9754: "Tian " +0x9755: "Zhen " +0x9756: "Jing " +0x9757: "Cheng " +0x9758: "Qing " +0x9759: "Jing " +0x975a: "Jing " +0x975b: "Dian " +0x975c: "Jing " +0x975d: "Tian " +0x975e: "Fei " +0x975f: "Fei " +0x9760: "Kao " +0x9761: "Mi " +0x9762: "Mian " +0x9763: "Mian " +0x9764: "Pao " +0x9765: "Ye " +0x9766: "Tian " +0x9767: "Hui " +0x9768: "Ye " +0x9769: "Ge " +0x976a: "Ding " +0x976b: "Cha " +0x976c: "Jian " +0x976d: "Ren " +0x976e: "Di " +0x976f: "Du " +0x9770: "Wu " +0x9771: "Ren " +0x9772: "Qin " +0x9773: "Jin " +0x9774: "Xue " +0x9775: "Niu " +0x9776: "Ba " +0x9777: "Yin " +0x9778: "Sa " +0x9779: "Na " +0x977a: "Mo " +0x977b: "Zu " +0x977c: "Da " +0x977d: "Ban " +0x977e: "Yi " +0x977f: "Yao " +0x9780: "Tao " +0x9781: "Tuo " +0x9782: "Jia " +0x9783: "Hong " +0x9784: "Pao " +0x9785: "Yang " +0x9786: "Tomo " +0x9787: "Yin " +0x9788: "Jia " +0x9789: "Tao " +0x978a: "Ji " +0x978b: "Xie " +0x978c: "An " +0x978d: "An " +0x978e: "Hen " +0x978f: "Gong " +0x9790: "Kohaze " +0x9791: "Da " +0x9792: "Qiao " +0x9793: "Ting " +0x9794: "Wan " +0x9795: "Ying " +0x9796: "Sui " +0x9797: "Tiao " +0x9798: "Qiao " +0x9799: "Xuan " +0x979a: "Kong " +0x979b: "Beng " +0x979c: "Ta " +0x979d: "Zhang " +0x979e: "Bing " +0x979f: "Kuo " +0x97a0: "Ju " +0x97a1: "La " +0x97a2: "Xie " +0x97a3: "Rou " +0x97a4: "Bang " +0x97a5: "Yi " +0x97a6: "Qiu " +0x97a7: "Qiu " +0x97a8: "He " +0x97a9: "Xiao " +0x97aa: "Mu " +0x97ab: "Ju " +0x97ac: "Jian " +0x97ad: "Bian " +0x97ae: "Di " +0x97af: "Jian " +0x97b0: "On " +0x97b1: "Tao " +0x97b2: "Gou " +0x97b3: "Ta " +0x97b4: "Bei " +0x97b5: "Xie " +0x97b6: "Pan " +0x97b7: "Ge " +0x97b8: "Bi " +0x97b9: "Kuo " +0x97ba: "Tang " +0x97bb: "Lou " +0x97bc: "Gui " +0x97bd: "Qiao " +0x97be: "Xue " +0x97bf: "Ji " +0x97c0: "Jian " +0x97c1: "Jiang " +0x97c2: "Chan " +0x97c3: "Da " +0x97c4: "Huo " +0x97c5: "Xian " +0x97c6: "Qian " +0x97c7: "Du " +0x97c8: "Wa " +0x97c9: "Jian " +0x97ca: "Lan " +0x97cb: "Wei " +0x97cc: "Ren " +0x97cd: "Fu " +0x97ce: "Mei " +0x97cf: "Juan " +0x97d0: "Ge " +0x97d1: "Wei " +0x97d2: "Qiao " +0x97d3: "Han " +0x97d4: "Chang " +0x97d5: "[?] " +0x97d6: "Rou " +0x97d7: "Xun " +0x97d8: "She " +0x97d9: "Wei " +0x97da: "Ge " +0x97db: "Bei " +0x97dc: "Tao " +0x97dd: "Gou " +0x97de: "Yun " +0x97df: "[?] " +0x97e0: "Bi " +0x97e1: "Wei " +0x97e2: "Hui " +0x97e3: "Du " +0x97e4: "Wa " +0x97e5: "Du " +0x97e6: "Wei " +0x97e7: "Ren " +0x97e8: "Fu " +0x97e9: "Han " +0x97ea: "Wei " +0x97eb: "Yun " +0x97ec: "Tao " +0x97ed: "Jiu " +0x97ee: "Jiu " +0x97ef: "Xian " +0x97f0: "Xie " +0x97f1: "Xian " +0x97f2: "Ji " +0x97f3: "Yin " +0x97f4: "Za " +0x97f5: "Yun " +0x97f6: "Shao " +0x97f7: "Le " +0x97f8: "Peng " +0x97f9: "Heng " +0x97fa: "Ying " +0x97fb: "Yun " +0x97fc: "Peng " +0x97fd: "Yin " +0x97fe: "Yin " +0x97ff: "Xiang " +/* x098 */ +0x9800: "Hu " +0x9801: "Ye " +0x9802: "Ding " +0x9803: "Qing " +0x9804: "Pan " +0x9805: "Xiang " +0x9806: "Shun " +0x9807: "Han " +0x9808: "Xu " +0x9809: "Yi " +0x980a: "Xu " +0x980b: "Gu " +0x980c: "Song " +0x980d: "Kui " +0x980e: "Qi " +0x980f: "Hang " +0x9810: "Yu " +0x9811: "Wan " +0x9812: "Ban " +0x9813: "Dun " +0x9814: "Di " +0x9815: "Dan " +0x9816: "Pan " +0x9817: "Po " +0x9818: "Ling " +0x9819: "Ce " +0x981a: "Jing " +0x981b: "Lei " +0x981c: "He " +0x981d: "Qiao " +0x981e: "E " +0x981f: "E " +0x9820: "Wei " +0x9821: "Jie " +0x9822: "Gua " +0x9823: "Shen " +0x9824: "Yi " +0x9825: "Shen " +0x9826: "Hai " +0x9827: "Dui " +0x9828: "Pian " +0x9829: "Ping " +0x982a: "Lei " +0x982b: "Fu " +0x982c: "Jia " +0x982d: "Tou " +0x982e: "Hui " +0x982f: "Kui " +0x9830: "Jia " +0x9831: "Le " +0x9832: "Tian " +0x9833: "Cheng " +0x9834: "Ying " +0x9835: "Jun " +0x9836: "Hu " +0x9837: "Han " +0x9838: "Jing " +0x9839: "Tui " +0x983a: "Tui " +0x983b: "Pin " +0x983c: "Lai " +0x983d: "Tui " +0x983e: "Zi " +0x983f: "Zi " +0x9840: "Chui " +0x9841: "Ding " +0x9842: "Lai " +0x9843: "Yan " +0x9844: "Han " +0x9845: "Jian " +0x9846: "Ke " +0x9847: "Cui " +0x9848: "Jiong " +0x9849: "Qin " +0x984a: "Yi " +0x984b: "Sai " +0x984c: "Ti " +0x984d: "E " +0x984e: "E " +0x984f: "Yan " +0x9850: "Hun " +0x9851: "Kan " +0x9852: "Yong " +0x9853: "Zhuan " +0x9854: "Yan " +0x9855: "Xian " +0x9856: "Xin " +0x9857: "Yi " +0x9858: "Yuan " +0x9859: "Sang " +0x985a: "Dian " +0x985b: "Dian " +0x985c: "Jiang " +0x985d: "Ku " +0x985e: "Lei " +0x985f: "Liao " +0x9860: "Piao " +0x9861: "Yi " +0x9862: "Man " +0x9863: "Qi " +0x9864: "Rao " +0x9865: "Hao " +0x9866: "Qiao " +0x9867: "Gu " +0x9868: "Xun " +0x9869: "Qian " +0x986a: "Hui " +0x986b: "Zhan " +0x986c: "Ru " +0x986d: "Hong " +0x986e: "Bin " +0x986f: "Xian " +0x9870: "Pin " +0x9871: "Lu " +0x9872: "Lan " +0x9873: "Nie " +0x9874: "Quan " +0x9875: "Ye " +0x9876: "Ding " +0x9877: "Qing " +0x9878: "Han " +0x9879: "Xiang " +0x987a: "Shun " +0x987b: "Xu " +0x987c: "Xu " +0x987d: "Wan " +0x987e: "Gu " +0x987f: "Dun " +0x9880: "Qi " +0x9881: "Ban " +0x9882: "Song " +0x9883: "Hang " +0x9884: "Yu " +0x9885: "Lu " +0x9886: "Ling " +0x9887: "Po " +0x9888: "Jing " +0x9889: "Jie " +0x988a: "Jia " +0x988b: "Tian " +0x988c: "Han " +0x988d: "Ying " +0x988e: "Jiong " +0x988f: "Hai " +0x9890: "Yi " +0x9891: "Pin " +0x9892: "Hui " +0x9893: "Tui " +0x9894: "Han " +0x9895: "Ying " +0x9896: "Ying " +0x9897: "Ke " +0x9898: "Ti " +0x9899: "Yong " +0x989a: "E " +0x989b: "Zhuan " +0x989c: "Yan " +0x989d: "E " +0x989e: "Nie " +0x989f: "Man " +0x98a0: "Dian " +0x98a1: "Sang " +0x98a2: "Hao " +0x98a3: "Lei " +0x98a4: "Zhan " +0x98a5: "Ru " +0x98a6: "Pin " +0x98a7: "Quan " +0x98a8: "Feng " +0x98a9: "Biao " +0x98aa: "Oroshi " +0x98ab: "Fu " +0x98ac: "Xia " +0x98ad: "Zhan " +0x98ae: "Biao " +0x98af: "Sa " +0x98b0: "Ba " +0x98b1: "Tai " +0x98b2: "Lie " +0x98b3: "Gua " +0x98b4: "Xuan " +0x98b5: "Shao " +0x98b6: "Ju " +0x98b7: "Bi " +0x98b8: "Si " +0x98b9: "Wei " +0x98ba: "Yang " +0x98bb: "Yao " +0x98bc: "Sou " +0x98bd: "Kai " +0x98be: "Sao " +0x98bf: "Fan " +0x98c0: "Liu " +0x98c1: "Xi " +0x98c2: "Liao " +0x98c3: "Piao " +0x98c4: "Piao " +0x98c5: "Liu " +0x98c6: "Biao " +0x98c7: "Biao " +0x98c8: "Biao " +0x98c9: "Liao " +0x98ca: "[?] " +0x98cb: "Se " +0x98cc: "Feng " +0x98cd: "Biao " +0x98ce: "Feng " +0x98cf: "Yang " +0x98d0: "Zhan " +0x98d1: "Biao " +0x98d2: "Sa " +0x98d3: "Ju " +0x98d4: "Si " +0x98d5: "Sou " +0x98d6: "Yao " +0x98d7: "Liu " +0x98d8: "Piao " +0x98d9: "Biao " +0x98da: "Biao " +0x98db: "Fei " +0x98dc: "Fan " +0x98dd: "Fei " +0x98de: "Fei " +0x98df: "Shi " +0x98e0: "Shi " +0x98e1: "Can " +0x98e2: "Ji " +0x98e3: "Ding " +0x98e4: "Si " +0x98e5: "Tuo " +0x98e6: "Zhan " +0x98e7: "Sun " +0x98e8: "Xiang " +0x98e9: "Tun " +0x98ea: "Ren " +0x98eb: "Yu " +0x98ec: "Juan " +0x98ed: "Chi " +0x98ee: "Yin " +0x98ef: "Fan " +0x98f0: "Fan " +0x98f1: "Sun " +0x98f2: "Yin " +0x98f3: "Zhu " +0x98f4: "Yi " +0x98f5: "Zhai " +0x98f6: "Bi " +0x98f7: "Jie " +0x98f8: "Tao " +0x98f9: "Liu " +0x98fa: "Ci " +0x98fb: "Tie " +0x98fc: "Si " +0x98fd: "Bao " +0x98fe: "Shi " +0x98ff: "Duo " +/* x099 */ +0x9900: "Hai " +0x9901: "Ren " +0x9902: "Tian " +0x9903: "Jiao " +0x9904: "Jia " +0x9905: "Bing " +0x9906: "Yao " +0x9907: "Tong " +0x9908: "Ci " +0x9909: "Xiang " +0x990a: "Yang " +0x990b: "Yang " +0x990c: "Er " +0x990d: "Yan " +0x990e: "Le " +0x990f: "Yi " +0x9910: "Can " +0x9911: "Bo " +0x9912: "Nei " +0x9913: "E " +0x9914: "Bu " +0x9915: "Jun " +0x9916: "Dou " +0x9917: "Su " +0x9918: "Yu " +0x9919: "Shi " +0x991a: "Yao " +0x991b: "Hun " +0x991c: "Guo " +0x991d: "Shi " +0x991e: "Jian " +0x991f: "Zhui " +0x9920: "Bing " +0x9921: "Xian " +0x9922: "Bu " +0x9923: "Ye " +0x9924: "Tan " +0x9925: "Fei " +0x9926: "Zhang " +0x9927: "Wei " +0x9928: "Guan " +0x9929: "E " +0x992a: "Nuan " +0x992b: "Hun " +0x992c: "Hu " +0x992d: "Huang " +0x992e: "Tie " +0x992f: "Hui " +0x9930: "Jian " +0x9931: "Hou " +0x9932: "He " +0x9933: "Xing " +0x9934: "Fen " +0x9935: "Wei " +0x9936: "Gu " +0x9937: "Cha " +0x9938: "Song " +0x9939: "Tang " +0x993a: "Bo " +0x993b: "Gao " +0x993c: "Xi " +0x993d: "Kui " +0x993e: "Liu " +0x993f: "Sou " +0x9940: "Tao " +0x9941: "Ye " +0x9942: "Yun " +0x9943: "Mo " +0x9944: "Tang " +0x9945: "Man " +0x9946: "Bi " +0x9947: "Yu " +0x9948: "Xiu " +0x9949: "Jin " +0x994a: "San " +0x994b: "Kui " +0x994c: "Zhuan " +0x994d: "Shan " +0x994e: "Chi " +0x994f: "Dan " +0x9950: "Yi " +0x9951: "Ji " +0x9952: "Rao " +0x9953: "Cheng " +0x9954: "Yong " +0x9955: "Tao " +0x9956: "Hui " +0x9957: "Xiang " +0x9958: "Zhan " +0x9959: "Fen " +0x995a: "Hai " +0x995b: "Meng " +0x995c: "Yan " +0x995d: "Mo " +0x995e: "Chan " +0x995f: "Xiang " +0x9960: "Luo " +0x9961: "Zuan " +0x9962: "Nang " +0x9963: "Shi " +0x9964: "Ding " +0x9965: "Ji " +0x9966: "Tuo " +0x9967: "Xing " +0x9968: "Tun " +0x9969: "Xi " +0x996a: "Ren " +0x996b: "Yu " +0x996c: "Chi " +0x996d: "Fan " +0x996e: "Yin " +0x996f: "Jian " +0x9970: "Shi " +0x9971: "Bao " +0x9972: "Si " +0x9973: "Duo " +0x9974: "Yi " +0x9975: "Er " +0x9976: "Rao " +0x9977: "Xiang " +0x9978: "Jia " +0x9979: "Le " +0x997a: "Jiao " +0x997b: "Yi " +0x997c: "Bing " +0x997d: "Bo " +0x997e: "Dou " +0x997f: "E " +0x9980: "Yu " +0x9981: "Nei " +0x9982: "Jun " +0x9983: "Guo " +0x9984: "Hun " +0x9985: "Xian " +0x9986: "Guan " +0x9987: "Cha " +0x9988: "Kui " +0x9989: "Gu " +0x998a: "Sou " +0x998b: "Chan " +0x998c: "Ye " +0x998d: "Mo " +0x998e: "Bo " +0x998f: "Liu " +0x9990: "Xiu " +0x9991: "Jin " +0x9992: "Man " +0x9993: "San " +0x9994: "Zhuan " +0x9995: "Nang " +0x9996: "Shou " +0x9997: "Kui " +0x9998: "Guo " +0x9999: "Xiang " +0x999a: "Fen " +0x999b: "Ba " +0x999c: "Ni " +0x999d: "Bi " +0x999e: "Bo " +0x999f: "Tu " +0x99a0: "Han " +0x99a1: "Fei " +0x99a2: "Jian " +0x99a3: "An " +0x99a4: "Ai " +0x99a5: "Fu " +0x99a6: "Xian " +0x99a7: "Wen " +0x99a8: "Xin " +0x99a9: "Fen " +0x99aa: "Bin " +0x99ab: "Xing " +0x99ac: "Ma " +0x99ad: "Yu " +0x99ae: "Feng " +0x99af: "Han " +0x99b0: "Di " +0x99b1: "Tuo " +0x99b2: "Tuo " +0x99b3: "Chi " +0x99b4: "Xun " +0x99b5: "Zhu " +0x99b6: "Zhi " +0x99b7: "Pei " +0x99b8: "Xin " +0x99b9: "Ri " +0x99ba: "Sa " +0x99bb: "Yin " +0x99bc: "Wen " +0x99bd: "Zhi " +0x99be: "Dan " +0x99bf: "Lu " +0x99c0: "You " +0x99c1: "Bo " +0x99c2: "Bao " +0x99c3: "Kuai " +0x99c4: "Tuo " +0x99c5: "Yi " +0x99c6: "Qu " +0x99c7: "[?] " +0x99c8: "Qu " +0x99c9: "Jiong " +0x99ca: "Bo " +0x99cb: "Zhao " +0x99cc: "Yuan " +0x99cd: "Peng " +0x99ce: "Zhou " +0x99cf: "Ju " +0x99d0: "Zhu " +0x99d1: "Nu " +0x99d2: "Ju " +0x99d3: "Pi " +0x99d4: "Zang " +0x99d5: "Jia " +0x99d6: "Ling " +0x99d7: "Zhen " +0x99d8: "Tai " +0x99d9: "Fu " +0x99da: "Yang " +0x99db: "Shi " +0x99dc: "Bi " +0x99dd: "Tuo " +0x99de: "Tuo " +0x99df: "Si " +0x99e0: "Liu " +0x99e1: "Ma " +0x99e2: "Pian " +0x99e3: "Tao " +0x99e4: "Zhi " +0x99e5: "Rong " +0x99e6: "Teng " +0x99e7: "Dong " +0x99e8: "Xun " +0x99e9: "Quan " +0x99ea: "Shen " +0x99eb: "Jiong " +0x99ec: "Er " +0x99ed: "Hai " +0x99ee: "Bo " +0x99ef: "Zhu " +0x99f0: "Yin " +0x99f1: "Luo " +0x99f2: "Shuu " +0x99f3: "Dan " +0x99f4: "Xie " +0x99f5: "Liu " +0x99f6: "Ju " +0x99f7: "Song " +0x99f8: "Qin " +0x99f9: "Mang " +0x99fa: "Liang " +0x99fb: "Han " +0x99fc: "Tu " +0x99fd: "Xuan " +0x99fe: "Tui " +0x99ff: "Jun " +/* x09a */ +0x9a00: "E " +0x9a01: "Cheng " +0x9a02: "Xin " +0x9a03: "Ai " +0x9a04: "Lu " +0x9a05: "Zhui " +0x9a06: "Zhou " +0x9a07: "She " +0x9a08: "Pian " +0x9a09: "Kun " +0x9a0a: "Tao " +0x9a0b: "Lai " +0x9a0c: "Zong " +0x9a0d: "Ke " +0x9a0e: "Qi " +0x9a0f: "Qi " +0x9a10: "Yan " +0x9a11: "Fei " +0x9a12: "Sao " +0x9a13: "Yan " +0x9a14: "Jie " +0x9a15: "Yao " +0x9a16: "Wu " +0x9a17: "Pian " +0x9a18: "Cong " +0x9a19: "Pian " +0x9a1a: "Qian " +0x9a1b: "Fei " +0x9a1c: "Huang " +0x9a1d: "Jian " +0x9a1e: "Huo " +0x9a1f: "Yu " +0x9a20: "Ti " +0x9a21: "Quan " +0x9a22: "Xia " +0x9a23: "Zong " +0x9a24: "Kui " +0x9a25: "Rou " +0x9a26: "Si " +0x9a27: "Gua " +0x9a28: "Tuo " +0x9a29: "Kui " +0x9a2a: "Sou " +0x9a2b: "Qian " +0x9a2c: "Cheng " +0x9a2d: "Zhi " +0x9a2e: "Liu " +0x9a2f: "Pang " +0x9a30: "Teng " +0x9a31: "Xi " +0x9a32: "Cao " +0x9a33: "Du " +0x9a34: "Yan " +0x9a35: "Yuan " +0x9a36: "Zou " +0x9a37: "Sao " +0x9a38: "Shan " +0x9a39: "Li " +0x9a3a: "Zhi " +0x9a3b: "Shuang " +0x9a3c: "Lu " +0x9a3d: "Xi " +0x9a3e: "Luo " +0x9a3f: "Zhang " +0x9a40: "Mo " +0x9a41: "Ao " +0x9a42: "Can " +0x9a43: "Piao " +0x9a44: "Cong " +0x9a45: "Qu " +0x9a46: "Bi " +0x9a47: "Zhi " +0x9a48: "Yu " +0x9a49: "Xu " +0x9a4a: "Hua " +0x9a4b: "Bo " +0x9a4c: "Su " +0x9a4d: "Xiao " +0x9a4e: "Lin " +0x9a4f: "Chan " +0x9a50: "Dun " +0x9a51: "Liu " +0x9a52: "Tuo " +0x9a53: "Zeng " +0x9a54: "Tan " +0x9a55: "Jiao " +0x9a56: "Tie " +0x9a57: "Yan " +0x9a58: "Luo " +0x9a59: "Zhan " +0x9a5a: "Jing " +0x9a5b: "Yi " +0x9a5c: "Ye " +0x9a5d: "Tuo " +0x9a5e: "Bin " +0x9a5f: "Zou " +0x9a60: "Yan " +0x9a61: "Peng " +0x9a62: "Lu " +0x9a63: "Teng " +0x9a64: "Xiang " +0x9a65: "Ji " +0x9a66: "Shuang " +0x9a67: "Ju " +0x9a68: "Xi " +0x9a69: "Huan " +0x9a6a: "Li " +0x9a6b: "Biao " +0x9a6c: "Ma " +0x9a6d: "Yu " +0x9a6e: "Tuo " +0x9a6f: "Xun " +0x9a70: "Chi " +0x9a71: "Qu " +0x9a72: "Ri " +0x9a73: "Bo " +0x9a74: "Lu " +0x9a75: "Zang " +0x9a76: "Shi " +0x9a77: "Si " +0x9a78: "Fu " +0x9a79: "Ju " +0x9a7a: "Zou " +0x9a7b: "Zhu " +0x9a7c: "Tuo " +0x9a7d: "Nu " +0x9a7e: "Jia " +0x9a7f: "Yi " +0x9a80: "Tai " +0x9a81: "Xiao " +0x9a82: "Ma " +0x9a83: "Yin " +0x9a84: "Jiao " +0x9a85: "Hua " +0x9a86: "Luo " +0x9a87: "Hai " +0x9a88: "Pian " +0x9a89: "Biao " +0x9a8a: "Li " +0x9a8b: "Cheng " +0x9a8c: "Yan " +0x9a8d: "Xin " +0x9a8e: "Qin " +0x9a8f: "Jun " +0x9a90: "Qi " +0x9a91: "Qi " +0x9a92: "Ke " +0x9a93: "Zhui " +0x9a94: "Zong " +0x9a95: "Su " +0x9a96: "Can " +0x9a97: "Pian " +0x9a98: "Zhi " +0x9a99: "Kui " +0x9a9a: "Sao " +0x9a9b: "Wu " +0x9a9c: "Ao " +0x9a9d: "Liu " +0x9a9e: "Qian " +0x9a9f: "Shan " +0x9aa0: "Piao " +0x9aa1: "Luo " +0x9aa2: "Cong " +0x9aa3: "Chan " +0x9aa4: "Zou " +0x9aa5: "Ji " +0x9aa6: "Shuang " +0x9aa7: "Xiang " +0x9aa8: "Gu " +0x9aa9: "Wei " +0x9aaa: "Wei " +0x9aab: "Wei " +0x9aac: "Yu " +0x9aad: "Gan " +0x9aae: "Yi " +0x9aaf: "Ang " +0x9ab0: "Tou " +0x9ab1: "Xie " +0x9ab2: "Bao " +0x9ab3: "Bi " +0x9ab4: "Chi " +0x9ab5: "Ti " +0x9ab6: "Di " +0x9ab7: "Ku " +0x9ab8: "Hai " +0x9ab9: "Qiao " +0x9aba: "Gou " +0x9abb: "Kua " +0x9abc: "Ge " +0x9abd: "Tui " +0x9abe: "Geng " +0x9abf: "Pian " +0x9ac0: "Bi " +0x9ac1: "Ke " +0x9ac2: "Ka " +0x9ac3: "Yu " +0x9ac4: "Sui " +0x9ac5: "Lou " +0x9ac6: "Bo " +0x9ac7: "Xiao " +0x9ac8: "Pang " +0x9ac9: "Bo " +0x9aca: "Ci " +0x9acb: "Kuan " +0x9acc: "Bin " +0x9acd: "Mo " +0x9ace: "Liao " +0x9acf: "Lou " +0x9ad0: "Nao " +0x9ad1: "Du " +0x9ad2: "Zang " +0x9ad3: "Sui " +0x9ad4: "Ti " +0x9ad5: "Bin " +0x9ad6: "Kuan " +0x9ad7: "Lu " +0x9ad8: "Gao " +0x9ad9: "Gao " +0x9ada: "Qiao " +0x9adb: "Kao " +0x9adc: "Qiao " +0x9add: "Lao " +0x9ade: "Zao " +0x9adf: "Biao " +0x9ae0: "Kun " +0x9ae1: "Kun " +0x9ae2: "Ti " +0x9ae3: "Fang " +0x9ae4: "Xiu " +0x9ae5: "Ran " +0x9ae6: "Mao " +0x9ae7: "Dan " +0x9ae8: "Kun " +0x9ae9: "Bin " +0x9aea: "Fa " +0x9aeb: "Tiao " +0x9aec: "Peng " +0x9aed: "Zi " +0x9aee: "Fa " +0x9aef: "Ran " +0x9af0: "Ti " +0x9af1: "Pao " +0x9af2: "Pi " +0x9af3: "Mao " +0x9af4: "Fu " +0x9af5: "Er " +0x9af6: "Rong " +0x9af7: "Qu " +0x9af8: "Gong " +0x9af9: "Xiu " +0x9afa: "Gua " +0x9afb: "Ji " +0x9afc: "Peng " +0x9afd: "Zhua " +0x9afe: "Shao " +0x9aff: "Sha " +/* x09b */ +0x9b00: "Ti " +0x9b01: "Li " +0x9b02: "Bin " +0x9b03: "Zong " +0x9b04: "Ti " +0x9b05: "Peng " +0x9b06: "Song " +0x9b07: "Zheng " +0x9b08: "Quan " +0x9b09: "Zong " +0x9b0a: "Shun " +0x9b0b: "Jian " +0x9b0c: "Duo " +0x9b0d: "Hu " +0x9b0e: "La " +0x9b0f: "Jiu " +0x9b10: "Qi " +0x9b11: "Lian " +0x9b12: "Zhen " +0x9b13: "Bin " +0x9b14: "Peng " +0x9b15: "Mo " +0x9b16: "San " +0x9b17: "Man " +0x9b18: "Man " +0x9b19: "Seng " +0x9b1a: "Xu " +0x9b1b: "Lie " +0x9b1c: "Qian " +0x9b1d: "Qian " +0x9b1e: "Nong " +0x9b1f: "Huan " +0x9b20: "Kuai " +0x9b21: "Ning " +0x9b22: "Bin " +0x9b23: "Lie " +0x9b24: "Rang " +0x9b25: "Dou " +0x9b26: "Dou " +0x9b27: "Nao " +0x9b28: "Hong " +0x9b29: "Xi " +0x9b2a: "Dou " +0x9b2b: "Han " +0x9b2c: "Dou " +0x9b2d: "Dou " +0x9b2e: "Jiu " +0x9b2f: "Chang " +0x9b30: "Yu " +0x9b31: "Yu " +0x9b32: "Li " +0x9b33: "Juan " +0x9b34: "Fu " +0x9b35: "Qian " +0x9b36: "Gui " +0x9b37: "Zong " +0x9b38: "Liu " +0x9b39: "Gui " +0x9b3a: "Shang " +0x9b3b: "Yu " +0x9b3c: "Gui " +0x9b3d: "Mei " +0x9b3e: "Ji " +0x9b3f: "Qi " +0x9b40: "Jie " +0x9b41: "Kui " +0x9b42: "Hun " +0x9b43: "Ba " +0x9b44: "Po " +0x9b45: "Mei " +0x9b46: "Xu " +0x9b47: "Yan " +0x9b48: "Xiao " +0x9b49: "Liang " +0x9b4a: "Yu " +0x9b4b: "Tui " +0x9b4c: "Qi " +0x9b4d: "Wang " +0x9b4e: "Liang " +0x9b4f: "Wei " +0x9b50: "Jian " +0x9b51: "Chi " +0x9b52: "Piao " +0x9b53: "Bi " +0x9b54: "Mo " +0x9b55: "Ji " +0x9b56: "Xu " +0x9b57: "Chou " +0x9b58: "Yan " +0x9b59: "Zhan " +0x9b5a: "Yu " +0x9b5b: "Dao " +0x9b5c: "Ren " +0x9b5d: "Ji " +0x9b5e: "Eri " +0x9b5f: "Gong " +0x9b60: "Tuo " +0x9b61: "Diao " +0x9b62: "Ji " +0x9b63: "Xu " +0x9b64: "E " +0x9b65: "E " +0x9b66: "Sha " +0x9b67: "Hang " +0x9b68: "Tun " +0x9b69: "Mo " +0x9b6a: "Jie " +0x9b6b: "Shen " +0x9b6c: "Fan " +0x9b6d: "Yuan " +0x9b6e: "Bi " +0x9b6f: "Lu " +0x9b70: "Wen " +0x9b71: "Hu " +0x9b72: "Lu " +0x9b73: "Za " +0x9b74: "Fang " +0x9b75: "Fen " +0x9b76: "Na " +0x9b77: "You " +0x9b78: "Namazu " +0x9b79: "Todo " +0x9b7a: "He " +0x9b7b: "Xia " +0x9b7c: "Qu " +0x9b7d: "Han " +0x9b7e: "Pi " +0x9b7f: "Ling " +0x9b80: "Tuo " +0x9b81: "Bo " +0x9b82: "Qiu " +0x9b83: "Ping " +0x9b84: "Fu " +0x9b85: "Bi " +0x9b86: "Ji " +0x9b87: "Wei " +0x9b88: "Ju " +0x9b89: "Diao " +0x9b8a: "Bo " +0x9b8b: "You " +0x9b8c: "Gun " +0x9b8d: "Pi " +0x9b8e: "Nian " +0x9b8f: "Xing " +0x9b90: "Tai " +0x9b91: "Bao " +0x9b92: "Fu " +0x9b93: "Zha " +0x9b94: "Ju " +0x9b95: "Gu " +0x9b96: "Kajika " +0x9b97: "Tong " +0x9b98: "[?] " +0x9b99: "Ta " +0x9b9a: "Jie " +0x9b9b: "Shu " +0x9b9c: "Hou " +0x9b9d: "Xiang " +0x9b9e: "Er " +0x9b9f: "An " +0x9ba0: "Wei " +0x9ba1: "Tiao " +0x9ba2: "Zhu " +0x9ba3: "Yin " +0x9ba4: "Lie " +0x9ba5: "Luo " +0x9ba6: "Tong " +0x9ba7: "Yi " +0x9ba8: "Qi " +0x9ba9: "Bing " +0x9baa: "Wei " +0x9bab: "Jiao " +0x9bac: "Bu " +0x9bad: "Gui " +0x9bae: "Xian " +0x9baf: "Ge " +0x9bb0: "Hui " +0x9bb1: "Bora " +0x9bb2: "Mate " +0x9bb3: "Kao " +0x9bb4: "Gori " +0x9bb5: "Duo " +0x9bb6: "Jun " +0x9bb7: "Ti " +0x9bb8: "Man " +0x9bb9: "Xiao " +0x9bba: "Za " +0x9bbb: "Sha " +0x9bbc: "Qin " +0x9bbd: "Yu " +0x9bbe: "Nei " +0x9bbf: "Zhe " +0x9bc0: "Gun " +0x9bc1: "Geng " +0x9bc2: "Su " +0x9bc3: "Wu " +0x9bc4: "Qiu " +0x9bc5: "Ting " +0x9bc6: "Fu " +0x9bc7: "Wan " +0x9bc8: "You " +0x9bc9: "Li " +0x9bca: "Sha " +0x9bcb: "Sha " +0x9bcc: "Gao " +0x9bcd: "Meng " +0x9bce: "Ugui " +0x9bcf: "Asari " +0x9bd0: "Subashiri " +0x9bd1: "Kazunoko " +0x9bd2: "Yong " +0x9bd3: "Ni " +0x9bd4: "Zi " +0x9bd5: "Qi " +0x9bd6: "Qing " +0x9bd7: "Xiang " +0x9bd8: "Nei " +0x9bd9: "Chun " +0x9bda: "Ji " +0x9bdb: "Diao " +0x9bdc: "Qie " +0x9bdd: "Gu " +0x9bde: "Zhou " +0x9bdf: "Dong " +0x9be0: "Lai " +0x9be1: "Fei " +0x9be2: "Ni " +0x9be3: "Yi " +0x9be4: "Kun " +0x9be5: "Lu " +0x9be6: "Jiu " +0x9be7: "Chang " +0x9be8: "Jing " +0x9be9: "Lun " +0x9bea: "Ling " +0x9beb: "Zou " +0x9bec: "Li " +0x9bed: "Meng " +0x9bee: "Zong " +0x9bef: "Zhi " +0x9bf0: "Nian " +0x9bf1: "Shachi " +0x9bf2: "Dojou " +0x9bf3: "Sukesou " +0x9bf4: "Shi " +0x9bf5: "Shen " +0x9bf6: "Hun " +0x9bf7: "Shi " +0x9bf8: "Hou " +0x9bf9: "Xing " +0x9bfa: "Zhu " +0x9bfb: "La " +0x9bfc: "Zong " +0x9bfd: "Ji " +0x9bfe: "Bian " +0x9bff: "Bian " +/* x09c */ +0x9c00: "Huan " +0x9c01: "Quan " +0x9c02: "Ze " +0x9c03: "Wei " +0x9c04: "Wei " +0x9c05: "Yu " +0x9c06: "Qun " +0x9c07: "Rou " +0x9c08: "Die " +0x9c09: "Huang " +0x9c0a: "Lian " +0x9c0b: "Yan " +0x9c0c: "Qiu " +0x9c0d: "Qiu " +0x9c0e: "Jian " +0x9c0f: "Bi " +0x9c10: "E " +0x9c11: "Yang " +0x9c12: "Fu " +0x9c13: "Sai " +0x9c14: "Jian " +0x9c15: "Xia " +0x9c16: "Tuo " +0x9c17: "Hu " +0x9c18: "Muroaji " +0x9c19: "Ruo " +0x9c1a: "Haraka " +0x9c1b: "Wen " +0x9c1c: "Jian " +0x9c1d: "Hao " +0x9c1e: "Wu " +0x9c1f: "Fang " +0x9c20: "Sao " +0x9c21: "Liu " +0x9c22: "Ma " +0x9c23: "Shi " +0x9c24: "Shi " +0x9c25: "Yin " +0x9c26: "Z " +0x9c27: "Teng " +0x9c28: "Ta " +0x9c29: "Yao " +0x9c2a: "Ge " +0x9c2b: "Rong " +0x9c2c: "Qian " +0x9c2d: "Qi " +0x9c2e: "Wen " +0x9c2f: "Ruo " +0x9c30: "Hatahata " +0x9c31: "Lian " +0x9c32: "Ao " +0x9c33: "Le " +0x9c34: "Hui " +0x9c35: "Min " +0x9c36: "Ji " +0x9c37: "Tiao " +0x9c38: "Qu " +0x9c39: "Jian " +0x9c3a: "Sao " +0x9c3b: "Man " +0x9c3c: "Xi " +0x9c3d: "Qiu " +0x9c3e: "Biao " +0x9c3f: "Ji " +0x9c40: "Ji " +0x9c41: "Zhu " +0x9c42: "Jiang " +0x9c43: "Qiu " +0x9c44: "Zhuan " +0x9c45: "Yong " +0x9c46: "Zhang " +0x9c47: "Kang " +0x9c48: "Xue " +0x9c49: "Bie " +0x9c4a: "Jue " +0x9c4b: "Qu " +0x9c4c: "Xiang " +0x9c4d: "Bo " +0x9c4e: "Jiao " +0x9c4f: "Xun " +0x9c50: "Su " +0x9c51: "Huang " +0x9c52: "Zun " +0x9c53: "Shan " +0x9c54: "Shan " +0x9c55: "Fan " +0x9c56: "Jue " +0x9c57: "Lin " +0x9c58: "Xun " +0x9c59: "Miao " +0x9c5a: "Xi " +0x9c5b: "Eso " +0x9c5c: "Kyou " +0x9c5d: "Fen " +0x9c5e: "Guan " +0x9c5f: "Hou " +0x9c60: "Kuai " +0x9c61: "Zei " +0x9c62: "Sao " +0x9c63: "Zhan " +0x9c64: "Gan " +0x9c65: "Gui " +0x9c66: "Sheng " +0x9c67: "Li " +0x9c68: "Chang " +0x9c69: "Hatahata " +0x9c6a: "Shiira " +0x9c6b: "Mutsu " +0x9c6c: "Ru " +0x9c6d: "Ji " +0x9c6e: "Xu " +0x9c6f: "Huo " +0x9c70: "Shiira " +0x9c71: "Li " +0x9c72: "Lie " +0x9c73: "Li " +0x9c74: "Mie " +0x9c75: "Zhen " +0x9c76: "Xiang " +0x9c77: "E " +0x9c78: "Lu " +0x9c79: "Guan " +0x9c7a: "Li " +0x9c7b: "Xian " +0x9c7c: "Yu " +0x9c7d: "Dao " +0x9c7e: "Ji " +0x9c7f: "You " +0x9c80: "Tun " +0x9c81: "Lu " +0x9c82: "Fang " +0x9c83: "Ba " +0x9c84: "He " +0x9c85: "Bo " +0x9c86: "Ping " +0x9c87: "Nian " +0x9c88: "Lu " +0x9c89: "You " +0x9c8a: "Zha " +0x9c8b: "Fu " +0x9c8c: "Bo " +0x9c8d: "Bao " +0x9c8e: "Hou " +0x9c8f: "Pi " +0x9c90: "Tai " +0x9c91: "Gui " +0x9c92: "Jie " +0x9c93: "Kao " +0x9c94: "Wei " +0x9c95: "Er " +0x9c96: "Tong " +0x9c97: "Ze " +0x9c98: "Hou " +0x9c99: "Kuai " +0x9c9a: "Ji " +0x9c9b: "Jiao " +0x9c9c: "Xian " +0x9c9d: "Za " +0x9c9e: "Xiang " +0x9c9f: "Xun " +0x9ca0: "Geng " +0x9ca1: "Li " +0x9ca2: "Lian " +0x9ca3: "Jian " +0x9ca4: "Li " +0x9ca5: "Shi " +0x9ca6: "Tiao " +0x9ca7: "Gun " +0x9ca8: "Sha " +0x9ca9: "Wan " +0x9caa: "Jun " +0x9cab: "Ji " +0x9cac: "Yong " +0x9cad: "Qing " +0x9cae: "Ling " +0x9caf: "Qi " +0x9cb0: "Zou " +0x9cb1: "Fei " +0x9cb2: "Kun " +0x9cb3: "Chang " +0x9cb4: "Gu " +0x9cb5: "Ni " +0x9cb6: "Nian " +0x9cb7: "Diao " +0x9cb8: "Jing " +0x9cb9: "Shen " +0x9cba: "Shi " +0x9cbb: "Zi " +0x9cbc: "Fen " +0x9cbd: "Die " +0x9cbe: "Bi " +0x9cbf: "Chang " +0x9cc0: "Shi " +0x9cc1: "Wen " +0x9cc2: "Wei " +0x9cc3: "Sai " +0x9cc4: "E " +0x9cc5: "Qiu " +0x9cc6: "Fu " +0x9cc7: "Huang " +0x9cc8: "Quan " +0x9cc9: "Jiang " +0x9cca: "Bian " +0x9ccb: "Sao " +0x9ccc: "Ao " +0x9ccd: "Qi " +0x9cce: "Ta " +0x9ccf: "Yin " +0x9cd0: "Yao " +0x9cd1: "Fang " +0x9cd2: "Jian " +0x9cd3: "Le " +0x9cd4: "Biao " +0x9cd5: "Xue " +0x9cd6: "Bie " +0x9cd7: "Man " +0x9cd8: "Min " +0x9cd9: "Yong " +0x9cda: "Wei " +0x9cdb: "Xi " +0x9cdc: "Jue " +0x9cdd: "Shan " +0x9cde: "Lin " +0x9cdf: "Zun " +0x9ce0: "Huo " +0x9ce1: "Gan " +0x9ce2: "Li " +0x9ce3: "Zhan " +0x9ce4: "Guan " +0x9ce5: "Niao " +0x9ce6: "Yi " +0x9ce7: "Fu " +0x9ce8: "Li " +0x9ce9: "Jiu " +0x9cea: "Bu " +0x9ceb: "Yan " +0x9cec: "Fu " +0x9ced: "Diao " +0x9cee: "Ji " +0x9cef: "Feng " +0x9cf0: "Nio " +0x9cf1: "Gan " +0x9cf2: "Shi " +0x9cf3: "Feng " +0x9cf4: "Ming " +0x9cf5: "Bao " +0x9cf6: "Yuan " +0x9cf7: "Zhi " +0x9cf8: "Hu " +0x9cf9: "Qin " +0x9cfa: "Fu " +0x9cfb: "Fen " +0x9cfc: "Wen " +0x9cfd: "Jian " +0x9cfe: "Shi " +0x9cff: "Yu " +/* x09d */ +0x9d00: "Fou " +0x9d01: "Yiao " +0x9d02: "Jue " +0x9d03: "Jue " +0x9d04: "Pi " +0x9d05: "Huan " +0x9d06: "Zhen " +0x9d07: "Bao " +0x9d08: "Yan " +0x9d09: "Ya " +0x9d0a: "Zheng " +0x9d0b: "Fang " +0x9d0c: "Feng " +0x9d0d: "Wen " +0x9d0e: "Ou " +0x9d0f: "Te " +0x9d10: "Jia " +0x9d11: "Nu " +0x9d12: "Ling " +0x9d13: "Mie " +0x9d14: "Fu " +0x9d15: "Tuo " +0x9d16: "Wen " +0x9d17: "Li " +0x9d18: "Bian " +0x9d19: "Zhi " +0x9d1a: "Ge " +0x9d1b: "Yuan " +0x9d1c: "Zi " +0x9d1d: "Qu " +0x9d1e: "Xiao " +0x9d1f: "Zhi " +0x9d20: "Dan " +0x9d21: "Ju " +0x9d22: "You " +0x9d23: "Gu " +0x9d24: "Zhong " +0x9d25: "Yu " +0x9d26: "Yang " +0x9d27: "Rong " +0x9d28: "Ya " +0x9d29: "Tie " +0x9d2a: "Yu " +0x9d2b: "Shigi " +0x9d2c: "Ying " +0x9d2d: "Zhui " +0x9d2e: "Wu " +0x9d2f: "Er " +0x9d30: "Gua " +0x9d31: "Ai " +0x9d32: "Zhi " +0x9d33: "Yan " +0x9d34: "Heng " +0x9d35: "Jiao " +0x9d36: "Ji " +0x9d37: "Lie " +0x9d38: "Zhu " +0x9d39: "Ren " +0x9d3a: "Yi " +0x9d3b: "Hong " +0x9d3c: "Luo " +0x9d3d: "Ru " +0x9d3e: "Mou " +0x9d3f: "Ge " +0x9d40: "Ren " +0x9d41: "Jiao " +0x9d42: "Xiu " +0x9d43: "Zhou " +0x9d44: "Zhi " +0x9d45: "Luo " +0x9d46: "Chidori " +0x9d47: "Toki " +0x9d48: "Ten " +0x9d49: "Luan " +0x9d4a: "Jia " +0x9d4b: "Ji " +0x9d4c: "Yu " +0x9d4d: "Huan " +0x9d4e: "Tuo " +0x9d4f: "Bu " +0x9d50: "Wu " +0x9d51: "Juan " +0x9d52: "Yu " +0x9d53: "Bo " +0x9d54: "Xun " +0x9d55: "Xun " +0x9d56: "Bi " +0x9d57: "Xi " +0x9d58: "Jun " +0x9d59: "Ju " +0x9d5a: "Tu " +0x9d5b: "Jing " +0x9d5c: "Ti " +0x9d5d: "E " +0x9d5e: "E " +0x9d5f: "Kuang " +0x9d60: "Hu " +0x9d61: "Wu " +0x9d62: "Shen " +0x9d63: "Lai " +0x9d64: "Ikaruga " +0x9d65: "Kakesu " +0x9d66: "Lu " +0x9d67: "Ping " +0x9d68: "Shu " +0x9d69: "Fu " +0x9d6a: "An " +0x9d6b: "Zhao " +0x9d6c: "Peng " +0x9d6d: "Qin " +0x9d6e: "Qian " +0x9d6f: "Bei " +0x9d70: "Diao " +0x9d71: "Lu " +0x9d72: "Que " +0x9d73: "Jian " +0x9d74: "Ju " +0x9d75: "Tu " +0x9d76: "Ya " +0x9d77: "Yuan " +0x9d78: "Qi " +0x9d79: "Li " +0x9d7a: "Ye " +0x9d7b: "Zhui " +0x9d7c: "Kong " +0x9d7d: "Zhui " +0x9d7e: "Kun " +0x9d7f: "Sheng " +0x9d80: "Qi " +0x9d81: "Jing " +0x9d82: "Yi " +0x9d83: "Yi " +0x9d84: "Jing " +0x9d85: "Zi " +0x9d86: "Lai " +0x9d87: "Dong " +0x9d88: "Qi " +0x9d89: "Chun " +0x9d8a: "Geng " +0x9d8b: "Ju " +0x9d8c: "Qu " +0x9d8d: "Isuka " +0x9d8e: "Kikuitadaki " +0x9d8f: "Ji " +0x9d90: "Shu " +0x9d91: "[?] " +0x9d92: "Chi " +0x9d93: "Miao " +0x9d94: "Rou " +0x9d95: "An " +0x9d96: "Qiu " +0x9d97: "Ti " +0x9d98: "Hu " +0x9d99: "Ti " +0x9d9a: "E " +0x9d9b: "Jie " +0x9d9c: "Mao " +0x9d9d: "Fu " +0x9d9e: "Chun " +0x9d9f: "Tu " +0x9da0: "Yan " +0x9da1: "He " +0x9da2: "Yuan " +0x9da3: "Pian " +0x9da4: "Yun " +0x9da5: "Mei " +0x9da6: "Hu " +0x9da7: "Ying " +0x9da8: "Dun " +0x9da9: "Mu " +0x9daa: "Ju " +0x9dab: "Tsugumi " +0x9dac: "Cang " +0x9dad: "Fang " +0x9dae: "Gu " +0x9daf: "Ying " +0x9db0: "Yuan " +0x9db1: "Xuan " +0x9db2: "Weng " +0x9db3: "Shi " +0x9db4: "He " +0x9db5: "Chu " +0x9db6: "Tang " +0x9db7: "Xia " +0x9db8: "Ruo " +0x9db9: "Liu " +0x9dba: "Ji " +0x9dbb: "Gu " +0x9dbc: "Jian " +0x9dbd: "Zhun " +0x9dbe: "Han " +0x9dbf: "Zi " +0x9dc0: "Zi " +0x9dc1: "Ni " +0x9dc2: "Yao " +0x9dc3: "Yan " +0x9dc4: "Ji " +0x9dc5: "Li " +0x9dc6: "Tian " +0x9dc7: "Kou " +0x9dc8: "Ti " +0x9dc9: "Ti " +0x9dca: "Ni " +0x9dcb: "Tu " +0x9dcc: "Ma " +0x9dcd: "Jiao " +0x9dce: "Gao " +0x9dcf: "Tian " +0x9dd0: "Chen " +0x9dd1: "Li " +0x9dd2: "Zhuan " +0x9dd3: "Zhe " +0x9dd4: "Ao " +0x9dd5: "Yao " +0x9dd6: "Yi " +0x9dd7: "Ou " +0x9dd8: "Chi " +0x9dd9: "Zhi " +0x9dda: "Liao " +0x9ddb: "Rong " +0x9ddc: "Lou " +0x9ddd: "Bi " +0x9dde: "Shuang " +0x9ddf: "Zhuo " +0x9de0: "Yu " +0x9de1: "Wu " +0x9de2: "Jue " +0x9de3: "Yin " +0x9de4: "Quan " +0x9de5: "Si " +0x9de6: "Jiao " +0x9de7: "Yi " +0x9de8: "Hua " +0x9de9: "Bi " +0x9dea: "Ying " +0x9deb: "Su " +0x9dec: "Huang " +0x9ded: "Fan " +0x9dee: "Jiao " +0x9def: "Liao " +0x9df0: "Yan " +0x9df1: "Kao " +0x9df2: "Jiu " +0x9df3: "Xian " +0x9df4: "Xian " +0x9df5: "Tu " +0x9df6: "Mai " +0x9df7: "Zun " +0x9df8: "Yu " +0x9df9: "Ying " +0x9dfa: "Lu " +0x9dfb: "Tuan " +0x9dfc: "Xian " +0x9dfd: "Xue " +0x9dfe: "Yi " +0x9dff: "Pi " +/* x09e */ +0x9e00: "Shu " +0x9e01: "Luo " +0x9e02: "Qi " +0x9e03: "Yi " +0x9e04: "Ji " +0x9e05: "Zhe " +0x9e06: "Yu " +0x9e07: "Zhan " +0x9e08: "Ye " +0x9e09: "Yang " +0x9e0a: "Pi " +0x9e0b: "Ning " +0x9e0c: "Huo " +0x9e0d: "Mi " +0x9e0e: "Ying " +0x9e0f: "Meng " +0x9e10: "Di " +0x9e11: "Yue " +0x9e12: "Yu " +0x9e13: "Lei " +0x9e14: "Bao " +0x9e15: "Lu " +0x9e16: "He " +0x9e17: "Long " +0x9e18: "Shuang " +0x9e19: "Yue " +0x9e1a: "Ying " +0x9e1b: "Guan " +0x9e1c: "Qu " +0x9e1d: "Li " +0x9e1e: "Luan " +0x9e1f: "Niao " +0x9e20: "Jiu " +0x9e21: "Ji " +0x9e22: "Yuan " +0x9e23: "Ming " +0x9e24: "Shi " +0x9e25: "Ou " +0x9e26: "Ya " +0x9e27: "Cang " +0x9e28: "Bao " +0x9e29: "Zhen " +0x9e2a: "Gu " +0x9e2b: "Dong " +0x9e2c: "Lu " +0x9e2d: "Ya " +0x9e2e: "Xiao " +0x9e2f: "Yang " +0x9e30: "Ling " +0x9e31: "Zhi " +0x9e32: "Qu " +0x9e33: "Yuan " +0x9e34: "Xue " +0x9e35: "Tuo " +0x9e36: "Si " +0x9e37: "Zhi " +0x9e38: "Er " +0x9e39: "Gua " +0x9e3a: "Xiu " +0x9e3b: "Heng " +0x9e3c: "Zhou " +0x9e3d: "Ge " +0x9e3e: "Luan " +0x9e3f: "Hong " +0x9e40: "Wu " +0x9e41: "Bo " +0x9e42: "Li " +0x9e43: "Juan " +0x9e44: "Hu " +0x9e45: "E " +0x9e46: "Yu " +0x9e47: "Xian " +0x9e48: "Ti " +0x9e49: "Wu " +0x9e4a: "Que " +0x9e4b: "Miao " +0x9e4c: "An " +0x9e4d: "Kun " +0x9e4e: "Bei " +0x9e4f: "Peng " +0x9e50: "Qian " +0x9e51: "Chun " +0x9e52: "Geng " +0x9e53: "Yuan " +0x9e54: "Su " +0x9e55: "Hu " +0x9e56: "He " +0x9e57: "E " +0x9e58: "Gu " +0x9e59: "Qiu " +0x9e5a: "Zi " +0x9e5b: "Mei " +0x9e5c: "Mu " +0x9e5d: "Ni " +0x9e5e: "Yao " +0x9e5f: "Weng " +0x9e60: "Liu " +0x9e61: "Ji " +0x9e62: "Ni " +0x9e63: "Jian " +0x9e64: "He " +0x9e65: "Yi " +0x9e66: "Ying " +0x9e67: "Zhe " +0x9e68: "Liao " +0x9e69: "Liao " +0x9e6a: "Jiao " +0x9e6b: "Jiu " +0x9e6c: "Yu " +0x9e6d: "Lu " +0x9e6e: "Xuan " +0x9e6f: "Zhan " +0x9e70: "Ying " +0x9e71: "Huo " +0x9e72: "Meng " +0x9e73: "Guan " +0x9e74: "Shuang " +0x9e75: "Lu " +0x9e76: "Jin " +0x9e77: "Ling " +0x9e78: "Jian " +0x9e79: "Xian " +0x9e7a: "Cuo " +0x9e7b: "Jian " +0x9e7c: "Jian " +0x9e7d: "Yan " +0x9e7e: "Cuo " +0x9e7f: "Lu " +0x9e80: "You " +0x9e81: "Cu " +0x9e82: "Ji " +0x9e83: "Biao " +0x9e84: "Cu " +0x9e85: "Biao " +0x9e86: "Zhu " +0x9e87: "Jun " +0x9e88: "Zhu " +0x9e89: "Jian " +0x9e8a: "Mi " +0x9e8b: "Mi " +0x9e8c: "Wu " +0x9e8d: "Liu " +0x9e8e: "Chen " +0x9e8f: "Jun " +0x9e90: "Lin " +0x9e91: "Ni " +0x9e92: "Qi " +0x9e93: "Lu " +0x9e94: "Jiu " +0x9e95: "Jun " +0x9e96: "Jing " +0x9e97: "Li " +0x9e98: "Xiang " +0x9e99: "Yan " +0x9e9a: "Jia " +0x9e9b: "Mi " +0x9e9c: "Li " +0x9e9d: "She " +0x9e9e: "Zhang " +0x9e9f: "Lin " +0x9ea0: "Jing " +0x9ea1: "Ji " +0x9ea2: "Ling " +0x9ea3: "Yan " +0x9ea4: "Cu " +0x9ea5: "Mai " +0x9ea6: "Mai " +0x9ea7: "Ge " +0x9ea8: "Chao " +0x9ea9: "Fu " +0x9eaa: "Mian " +0x9eab: "Mian " +0x9eac: "Fu " +0x9ead: "Pao " +0x9eae: "Qu " +0x9eaf: "Qu " +0x9eb0: "Mou " +0x9eb1: "Fu " +0x9eb2: "Xian " +0x9eb3: "Lai " +0x9eb4: "Qu " +0x9eb5: "Mian " +0x9eb6: "[?] " +0x9eb7: "Feng " +0x9eb8: "Fu " +0x9eb9: "Qu " +0x9eba: "Mian " +0x9ebb: "Ma " +0x9ebc: "Mo " +0x9ebd: "Mo " +0x9ebe: "Hui " +0x9ebf: "Ma " +0x9ec0: "Zou " +0x9ec1: "Nen " +0x9ec2: "Fen " +0x9ec3: "Huang " +0x9ec4: "Huang " +0x9ec5: "Jin " +0x9ec6: "Guang " +0x9ec7: "Tian " +0x9ec8: "Tou " +0x9ec9: "Heng " +0x9eca: "Xi " +0x9ecb: "Kuang " +0x9ecc: "Heng " +0x9ecd: "Shu " +0x9ece: "Li " +0x9ecf: "Nian " +0x9ed0: "Chi " +0x9ed1: "Hei " +0x9ed2: "Hei " +0x9ed3: "Yi " +0x9ed4: "Qian " +0x9ed5: "Dan " +0x9ed6: "Xi " +0x9ed7: "Tuan " +0x9ed8: "Mo " +0x9ed9: "Mo " +0x9eda: "Qian " +0x9edb: "Dai " +0x9edc: "Chu " +0x9edd: "You " +0x9ede: "Dian " +0x9edf: "Yi " +0x9ee0: "Xia " +0x9ee1: "Yan " +0x9ee2: "Qu " +0x9ee3: "Mei " +0x9ee4: "Yan " +0x9ee5: "Jing " +0x9ee6: "Yu " +0x9ee7: "Li " +0x9ee8: "Dang " +0x9ee9: "Du " +0x9eea: "Can " +0x9eeb: "Yin " +0x9eec: "An " +0x9eed: "Yan " +0x9eee: "Tan " +0x9eef: "An " +0x9ef0: "Zhen " +0x9ef1: "Dai " +0x9ef2: "Can " +0x9ef3: "Yi " +0x9ef4: "Mei " +0x9ef5: "Dan " +0x9ef6: "Yan " +0x9ef7: "Du " +0x9ef8: "Lu " +0x9ef9: "Zhi " +0x9efa: "Fen " +0x9efb: "Fu " +0x9efc: "Fu " +0x9efd: "Min " +0x9efe: "Min " +0x9eff: "Yuan " +/* x09f */ +0x9f00: "Cu " +0x9f01: "Qu " +0x9f02: "Chao " +0x9f03: "Wa " +0x9f04: "Zhu " +0x9f05: "Zhi " +0x9f06: "Mang " +0x9f07: "Ao " +0x9f08: "Bie " +0x9f09: "Tuo " +0x9f0a: "Bi " +0x9f0b: "Yuan " +0x9f0c: "Chao " +0x9f0d: "Tuo " +0x9f0e: "Ding " +0x9f0f: "Mi " +0x9f10: "Nai " +0x9f11: "Ding " +0x9f12: "Zi " +0x9f13: "Gu " +0x9f14: "Gu " +0x9f15: "Dong " +0x9f16: "Fen " +0x9f17: "Tao " +0x9f18: "Yuan " +0x9f19: "Pi " +0x9f1a: "Chang " +0x9f1b: "Gao " +0x9f1c: "Qi " +0x9f1d: "Yuan " +0x9f1e: "Tang " +0x9f1f: "Teng " +0x9f20: "Shu " +0x9f21: "Shu " +0x9f22: "Fen " +0x9f23: "Fei " +0x9f24: "Wen " +0x9f25: "Ba " +0x9f26: "Diao " +0x9f27: "Tuo " +0x9f28: "Tong " +0x9f29: "Qu " +0x9f2a: "Sheng " +0x9f2b: "Shi " +0x9f2c: "You " +0x9f2d: "Shi " +0x9f2e: "Ting " +0x9f2f: "Wu " +0x9f30: "Nian " +0x9f31: "Jing " +0x9f32: "Hun " +0x9f33: "Ju " +0x9f34: "Yan " +0x9f35: "Tu " +0x9f36: "Ti " +0x9f37: "Xi " +0x9f38: "Xian " +0x9f39: "Yan " +0x9f3a: "Lei " +0x9f3b: "Bi " +0x9f3c: "Yao " +0x9f3d: "Qiu " +0x9f3e: "Han " +0x9f3f: "Wu " +0x9f40: "Wu " +0x9f41: "Hou " +0x9f42: "Xi " +0x9f43: "Ge " +0x9f44: "Zha " +0x9f45: "Xiu " +0x9f46: "Weng " +0x9f47: "Zha " +0x9f48: "Nong " +0x9f49: "Nang " +0x9f4a: "Qi " +0x9f4b: "Zhai " +0x9f4c: "Ji " +0x9f4d: "Zi " +0x9f4e: "Ji " +0x9f4f: "Ji " +0x9f50: "Qi " +0x9f51: "Ji " +0x9f52: "Chi " +0x9f53: "Chen " +0x9f54: "Chen " +0x9f55: "He " +0x9f56: "Ya " +0x9f57: "Ken " +0x9f58: "Xie " +0x9f59: "Pao " +0x9f5a: "Cuo " +0x9f5b: "Shi " +0x9f5c: "Zi " +0x9f5d: "Chi " +0x9f5e: "Nian " +0x9f5f: "Ju " +0x9f60: "Tiao " +0x9f61: "Ling " +0x9f62: "Ling " +0x9f63: "Chu " +0x9f64: "Quan " +0x9f65: "Xie " +0x9f66: "Ken " +0x9f67: "Nie " +0x9f68: "Jiu " +0x9f69: "Yao " +0x9f6a: "Chuo " +0x9f6b: "Kun " +0x9f6c: "Yu " +0x9f6d: "Chu " +0x9f6e: "Yi " +0x9f6f: "Ni " +0x9f70: "Cuo " +0x9f71: "Zou " +0x9f72: "Qu " +0x9f73: "Nen " +0x9f74: "Xian " +0x9f75: "Ou " +0x9f76: "E " +0x9f77: "Wo " +0x9f78: "Yi " +0x9f79: "Chuo " +0x9f7a: "Zou " +0x9f7b: "Dian " +0x9f7c: "Chu " +0x9f7d: "Jin " +0x9f7e: "Ya " +0x9f7f: "Chi " +0x9f80: "Chen " +0x9f81: "He " +0x9f82: "Ken " +0x9f83: "Ju " +0x9f84: "Ling " +0x9f85: "Pao " +0x9f86: "Tiao " +0x9f87: "Zi " +0x9f88: "Ken " +0x9f89: "Yu " +0x9f8a: "Chuo " +0x9f8b: "Qu " +0x9f8c: "Wo " +0x9f8d: "Long " +0x9f8e: "Pang " +0x9f8f: "Gong " +0x9f90: "Pang " +0x9f91: "Yan " +0x9f92: "Long " +0x9f93: "Long " +0x9f94: "Gong " +0x9f95: "Kan " +0x9f96: "Ta " +0x9f97: "Ling " +0x9f98: "Ta " +0x9f99: "Long " +0x9f9a: "Gong " +0x9f9b: "Kan " +0x9f9c: "Gui " +0x9f9d: "Qiu " +0x9f9e: "Bie " +0x9f9f: "Gui " +0x9fa0: "Yue " +0x9fa1: "Chui " +0x9fa2: "He " +0x9fa3: "Jue " +0x9fa4: "Xie " +0x9fa5: "Yu " +0x9fa6: "[?]" +0x9fa7: "[?]" +0x9fa8: "[?]" +0x9fa9: "[?]" +0x9faa: "[?]" +0x9fab: "[?]" +0x9fac: "[?]" +0x9fad: "[?]" +0x9fae: "[?]" +0x9faf: "[?]" +0x9fb0: "[?]" +0x9fb1: "[?]" +0x9fb2: "[?]" +0x9fb3: "[?]" +0x9fb4: "[?]" +0x9fb5: "[?]" +0x9fb6: "[?]" +0x9fb7: "[?]" +0x9fb8: "[?]" +0x9fb9: "[?]" +0x9fba: "[?]" +0x9fbb: "[?]" +0x9fbc: "[?]" +0x9fbd: "[?]" +0x9fbe: "[?]" +0x9fbf: "[?]" +0x9fc0: "[?]" +0x9fc1: "[?]" +0x9fc2: "[?]" +0x9fc3: "[?]" +0x9fc4: "[?]" +0x9fc5: "[?]" +0x9fc6: "[?]" +0x9fc7: "[?]" +0x9fc8: "[?]" +0x9fc9: "[?]" +0x9fca: "[?]" +0x9fcb: "[?]" +0x9fcc: "[?]" +0x9fcd: "[?]" +0x9fce: "[?]" +0x9fcf: "[?]" +0x9fd0: "[?]" +0x9fd1: "[?]" +0x9fd2: "[?]" +0x9fd3: "[?]" +0x9fd4: "[?]" +0x9fd5: "[?]" +0x9fd6: "[?]" +0x9fd7: "[?]" +0x9fd8: "[?]" +0x9fd9: "[?]" +0x9fda: "[?]" +0x9fdb: "[?]" +0x9fdc: "[?]" +0x9fdd: "[?]" +0x9fde: "[?]" +0x9fdf: "[?]" +0x9fe0: "[?]" +0x9fe1: "[?]" +0x9fe2: "[?]" +0x9fe3: "[?]" +0x9fe4: "[?]" +0x9fe5: "[?]" +0x9fe6: "[?]" +0x9fe7: "[?]" +0x9fe8: "[?]" +0x9fe9: "[?]" +0x9fea: "[?]" +0x9feb: "[?]" +0x9fec: "[?]" +0x9fed: "[?]" +0x9fee: "[?]" +0x9fef: "[?]" +0x9ff0: "[?]" +0x9ff1: "[?]" +0x9ff2: "[?]" +0x9ff3: "[?]" +0x9ff4: "[?]" +0x9ff5: "[?]" +0x9ff6: "[?]" +0x9ff7: "[?]" +0x9ff8: "[?]" +0x9ff9: "[?]" +0x9ffa: "[?]" +0x9ffb: "[?]" +0x9ffc: "[?]" +0x9ffd: "[?]" +0x9ffe: "[?]" +/* x0a0 */ +0xa000: "it" +0xa001: "ix" +0xa002: "i" +0xa003: "ip" +0xa004: "iet" +0xa005: "iex" +0xa006: "ie" +0xa007: "iep" +0xa008: "at" +0xa009: "ax" +0xa00a: "a" +0xa00b: "ap" +0xa00c: "uox" +0xa00d: "uo" +0xa00e: "uop" +0xa00f: "ot" +0xa010: "ox" +0xa011: "o" +0xa012: "op" +0xa013: "ex" +0xa014: "e" +0xa015: "wu" +0xa016: "bit" +0xa017: "bix" +0xa018: "bi" +0xa019: "bip" +0xa01a: "biet" +0xa01b: "biex" +0xa01c: "bie" +0xa01d: "biep" +0xa01e: "bat" +0xa01f: "bax" +0xa020: "ba" +0xa021: "bap" +0xa022: "buox" +0xa023: "buo" +0xa024: "buop" +0xa025: "bot" +0xa026: "box" +0xa027: "bo" +0xa028: "bop" +0xa029: "bex" +0xa02a: "be" +0xa02b: "bep" +0xa02c: "but" +0xa02d: "bux" +0xa02e: "bu" +0xa02f: "bup" +0xa030: "burx" +0xa031: "bur" +0xa032: "byt" +0xa033: "byx" +0xa034: "by" +0xa035: "byp" +0xa036: "byrx" +0xa037: "byr" +0xa038: "pit" +0xa039: "pix" +0xa03a: "pi" +0xa03b: "pip" +0xa03c: "piex" +0xa03d: "pie" +0xa03e: "piep" +0xa03f: "pat" +0xa040: "pax" +0xa041: "pa" +0xa042: "pap" +0xa043: "puox" +0xa044: "puo" +0xa045: "puop" +0xa046: "pot" +0xa047: "pox" +0xa048: "po" +0xa049: "pop" +0xa04a: "put" +0xa04b: "pux" +0xa04c: "pu" +0xa04d: "pup" +0xa04e: "purx" +0xa04f: "pur" +0xa050: "pyt" +0xa051: "pyx" +0xa052: "py" +0xa053: "pyp" +0xa054: "pyrx" +0xa055: "pyr" +0xa056: "bbit" +0xa057: "bbix" +0xa058: "bbi" +0xa059: "bbip" +0xa05a: "bbiet" +0xa05b: "bbiex" +0xa05c: "bbie" +0xa05d: "bbiep" +0xa05e: "bbat" +0xa05f: "bbax" +0xa060: "bba" +0xa061: "bbap" +0xa062: "bbuox" +0xa063: "bbuo" +0xa064: "bbuop" +0xa065: "bbot" +0xa066: "bbox" +0xa067: "bbo" +0xa068: "bbop" +0xa069: "bbex" +0xa06a: "bbe" +0xa06b: "bbep" +0xa06c: "bbut" +0xa06d: "bbux" +0xa06e: "bbu" +0xa06f: "bbup" +0xa070: "bburx" +0xa071: "bbur" +0xa072: "bbyt" +0xa073: "bbyx" +0xa074: "bby" +0xa075: "bbyp" +0xa076: "nbit" +0xa077: "nbix" +0xa078: "nbi" +0xa079: "nbip" +0xa07a: "nbiex" +0xa07b: "nbie" +0xa07c: "nbiep" +0xa07d: "nbat" +0xa07e: "nbax" +0xa07f: "nba" +0xa080: "nbap" +0xa081: "nbot" +0xa082: "nbox" +0xa083: "nbo" +0xa084: "nbop" +0xa085: "nbut" +0xa086: "nbux" +0xa087: "nbu" +0xa088: "nbup" +0xa089: "nburx" +0xa08a: "nbur" +0xa08b: "nbyt" +0xa08c: "nbyx" +0xa08d: "nby" +0xa08e: "nbyp" +0xa08f: "nbyrx" +0xa090: "nbyr" +0xa091: "hmit" +0xa092: "hmix" +0xa093: "hmi" +0xa094: "hmip" +0xa095: "hmiex" +0xa096: "hmie" +0xa097: "hmiep" +0xa098: "hmat" +0xa099: "hmax" +0xa09a: "hma" +0xa09b: "hmap" +0xa09c: "hmuox" +0xa09d: "hmuo" +0xa09e: "hmuop" +0xa09f: "hmot" +0xa0a0: "hmox" +0xa0a1: "hmo" +0xa0a2: "hmop" +0xa0a3: "hmut" +0xa0a4: "hmux" +0xa0a5: "hmu" +0xa0a6: "hmup" +0xa0a7: "hmurx" +0xa0a8: "hmur" +0xa0a9: "hmyx" +0xa0aa: "hmy" +0xa0ab: "hmyp" +0xa0ac: "hmyrx" +0xa0ad: "hmyr" +0xa0ae: "mit" +0xa0af: "mix" +0xa0b0: "mi" +0xa0b1: "mip" +0xa0b2: "miex" +0xa0b3: "mie" +0xa0b4: "miep" +0xa0b5: "mat" +0xa0b6: "max" +0xa0b7: "ma" +0xa0b8: "map" +0xa0b9: "muot" +0xa0ba: "muox" +0xa0bb: "muo" +0xa0bc: "muop" +0xa0bd: "mot" +0xa0be: "mox" +0xa0bf: "mo" +0xa0c0: "mop" +0xa0c1: "mex" +0xa0c2: "me" +0xa0c3: "mut" +0xa0c4: "mux" +0xa0c5: "mu" +0xa0c6: "mup" +0xa0c7: "murx" +0xa0c8: "mur" +0xa0c9: "myt" +0xa0ca: "myx" +0xa0cb: "my" +0xa0cc: "myp" +0xa0cd: "fit" +0xa0ce: "fix" +0xa0cf: "fi" +0xa0d0: "fip" +0xa0d1: "fat" +0xa0d2: "fax" +0xa0d3: "fa" +0xa0d4: "fap" +0xa0d5: "fox" +0xa0d6: "fo" +0xa0d7: "fop" +0xa0d8: "fut" +0xa0d9: "fux" +0xa0da: "fu" +0xa0db: "fup" +0xa0dc: "furx" +0xa0dd: "fur" +0xa0de: "fyt" +0xa0df: "fyx" +0xa0e0: "fy" +0xa0e1: "fyp" +0xa0e2: "vit" +0xa0e3: "vix" +0xa0e4: "vi" +0xa0e5: "vip" +0xa0e6: "viet" +0xa0e7: "viex" +0xa0e8: "vie" +0xa0e9: "viep" +0xa0ea: "vat" +0xa0eb: "vax" +0xa0ec: "va" +0xa0ed: "vap" +0xa0ee: "vot" +0xa0ef: "vox" +0xa0f0: "vo" +0xa0f1: "vop" +0xa0f2: "vex" +0xa0f3: "vep" +0xa0f4: "vut" +0xa0f5: "vux" +0xa0f6: "vu" +0xa0f7: "vup" +0xa0f8: "vurx" +0xa0f9: "vur" +0xa0fa: "vyt" +0xa0fb: "vyx" +0xa0fc: "vy" +0xa0fd: "vyp" +0xa0fe: "vyrx" +0xa0ff: "vyr" +/* x0a1 */ +0xa100: "dit" +0xa101: "dix" +0xa102: "di" +0xa103: "dip" +0xa104: "diex" +0xa105: "die" +0xa106: "diep" +0xa107: "dat" +0xa108: "dax" +0xa109: "da" +0xa10a: "dap" +0xa10b: "duox" +0xa10c: "duo" +0xa10d: "dot" +0xa10e: "dox" +0xa10f: "do" +0xa110: "dop" +0xa111: "dex" +0xa112: "de" +0xa113: "dep" +0xa114: "dut" +0xa115: "dux" +0xa116: "du" +0xa117: "dup" +0xa118: "durx" +0xa119: "dur" +0xa11a: "tit" +0xa11b: "tix" +0xa11c: "ti" +0xa11d: "tip" +0xa11e: "tiex" +0xa11f: "tie" +0xa120: "tiep" +0xa121: "tat" +0xa122: "tax" +0xa123: "ta" +0xa124: "tap" +0xa125: "tuot" +0xa126: "tuox" +0xa127: "tuo" +0xa128: "tuop" +0xa129: "tot" +0xa12a: "tox" +0xa12b: "to" +0xa12c: "top" +0xa12d: "tex" +0xa12e: "te" +0xa12f: "tep" +0xa130: "tut" +0xa131: "tux" +0xa132: "tu" +0xa133: "tup" +0xa134: "turx" +0xa135: "tur" +0xa136: "ddit" +0xa137: "ddix" +0xa138: "ddi" +0xa139: "ddip" +0xa13a: "ddiex" +0xa13b: "ddie" +0xa13c: "ddiep" +0xa13d: "ddat" +0xa13e: "ddax" +0xa13f: "dda" +0xa140: "ddap" +0xa141: "dduox" +0xa142: "dduo" +0xa143: "dduop" +0xa144: "ddot" +0xa145: "ddox" +0xa146: "ddo" +0xa147: "ddop" +0xa148: "ddex" +0xa149: "dde" +0xa14a: "ddep" +0xa14b: "ddut" +0xa14c: "ddux" +0xa14d: "ddu" +0xa14e: "ddup" +0xa14f: "ddurx" +0xa150: "ddur" +0xa151: "ndit" +0xa152: "ndix" +0xa153: "ndi" +0xa154: "ndip" +0xa155: "ndiex" +0xa156: "ndie" +0xa157: "ndat" +0xa158: "ndax" +0xa159: "nda" +0xa15a: "ndap" +0xa15b: "ndot" +0xa15c: "ndox" +0xa15d: "ndo" +0xa15e: "ndop" +0xa15f: "ndex" +0xa160: "nde" +0xa161: "ndep" +0xa162: "ndut" +0xa163: "ndux" +0xa164: "ndu" +0xa165: "ndup" +0xa166: "ndurx" +0xa167: "ndur" +0xa168: "hnit" +0xa169: "hnix" +0xa16a: "hni" +0xa16b: "hnip" +0xa16c: "hniet" +0xa16d: "hniex" +0xa16e: "hnie" +0xa16f: "hniep" +0xa170: "hnat" +0xa171: "hnax" +0xa172: "hna" +0xa173: "hnap" +0xa174: "hnuox" +0xa175: "hnuo" +0xa176: "hnot" +0xa177: "hnox" +0xa178: "hnop" +0xa179: "hnex" +0xa17a: "hne" +0xa17b: "hnep" +0xa17c: "hnut" +0xa17d: "nit" +0xa17e: "nix" +0xa17f: "ni" +0xa180: "nip" +0xa181: "niex" +0xa182: "nie" +0xa183: "niep" +0xa184: "nax" +0xa185: "na" +0xa186: "nap" +0xa187: "nuox" +0xa188: "nuo" +0xa189: "nuop" +0xa18a: "not" +0xa18b: "nox" +0xa18c: "no" +0xa18d: "nop" +0xa18e: "nex" +0xa18f: "ne" +0xa190: "nep" +0xa191: "nut" +0xa192: "nux" +0xa193: "nu" +0xa194: "nup" +0xa195: "nurx" +0xa196: "nur" +0xa197: "hlit" +0xa198: "hlix" +0xa199: "hli" +0xa19a: "hlip" +0xa19b: "hliex" +0xa19c: "hlie" +0xa19d: "hliep" +0xa19e: "hlat" +0xa19f: "hlax" +0xa1a0: "hla" +0xa1a1: "hlap" +0xa1a2: "hluox" +0xa1a3: "hluo" +0xa1a4: "hluop" +0xa1a5: "hlox" +0xa1a6: "hlo" +0xa1a7: "hlop" +0xa1a8: "hlex" +0xa1a9: "hle" +0xa1aa: "hlep" +0xa1ab: "hlut" +0xa1ac: "hlux" +0xa1ad: "hlu" +0xa1ae: "hlup" +0xa1af: "hlurx" +0xa1b0: "hlur" +0xa1b1: "hlyt" +0xa1b2: "hlyx" +0xa1b3: "hly" +0xa1b4: "hlyp" +0xa1b5: "hlyrx" +0xa1b6: "hlyr" +0xa1b7: "lit" +0xa1b8: "lix" +0xa1b9: "li" +0xa1ba: "lip" +0xa1bb: "liet" +0xa1bc: "liex" +0xa1bd: "lie" +0xa1be: "liep" +0xa1bf: "lat" +0xa1c0: "lax" +0xa1c1: "la" +0xa1c2: "lap" +0xa1c3: "luot" +0xa1c4: "luox" +0xa1c5: "luo" +0xa1c6: "luop" +0xa1c7: "lot" +0xa1c8: "lox" +0xa1c9: "lo" +0xa1ca: "lop" +0xa1cb: "lex" +0xa1cc: "le" +0xa1cd: "lep" +0xa1ce: "lut" +0xa1cf: "lux" +0xa1d0: "lu" +0xa1d1: "lup" +0xa1d2: "lurx" +0xa1d3: "lur" +0xa1d4: "lyt" +0xa1d5: "lyx" +0xa1d6: "ly" +0xa1d7: "lyp" +0xa1d8: "lyrx" +0xa1d9: "lyr" +0xa1da: "git" +0xa1db: "gix" +0xa1dc: "gi" +0xa1dd: "gip" +0xa1de: "giet" +0xa1df: "giex" +0xa1e0: "gie" +0xa1e1: "giep" +0xa1e2: "gat" +0xa1e3: "gax" +0xa1e4: "ga" +0xa1e5: "gap" +0xa1e6: "guot" +0xa1e7: "guox" +0xa1e8: "guo" +0xa1e9: "guop" +0xa1ea: "got" +0xa1eb: "gox" +0xa1ec: "go" +0xa1ed: "gop" +0xa1ee: "get" +0xa1ef: "gex" +0xa1f0: "ge" +0xa1f1: "gep" +0xa1f2: "gut" +0xa1f3: "gux" +0xa1f4: "gu" +0xa1f5: "gup" +0xa1f6: "gurx" +0xa1f7: "gur" +0xa1f8: "kit" +0xa1f9: "kix" +0xa1fa: "ki" +0xa1fb: "kip" +0xa1fc: "kiex" +0xa1fd: "kie" +0xa1fe: "kiep" +0xa1ff: "kat" +/* x0a2 */ +0xa200: "kax" +0xa201: "ka" +0xa202: "kap" +0xa203: "kuox" +0xa204: "kuo" +0xa205: "kuop" +0xa206: "kot" +0xa207: "kox" +0xa208: "ko" +0xa209: "kop" +0xa20a: "ket" +0xa20b: "kex" +0xa20c: "ke" +0xa20d: "kep" +0xa20e: "kut" +0xa20f: "kux" +0xa210: "ku" +0xa211: "kup" +0xa212: "kurx" +0xa213: "kur" +0xa214: "ggit" +0xa215: "ggix" +0xa216: "ggi" +0xa217: "ggiex" +0xa218: "ggie" +0xa219: "ggiep" +0xa21a: "ggat" +0xa21b: "ggax" +0xa21c: "gga" +0xa21d: "ggap" +0xa21e: "gguot" +0xa21f: "gguox" +0xa220: "gguo" +0xa221: "gguop" +0xa222: "ggot" +0xa223: "ggox" +0xa224: "ggo" +0xa225: "ggop" +0xa226: "gget" +0xa227: "ggex" +0xa228: "gge" +0xa229: "ggep" +0xa22a: "ggut" +0xa22b: "ggux" +0xa22c: "ggu" +0xa22d: "ggup" +0xa22e: "ggurx" +0xa22f: "ggur" +0xa230: "mgiex" +0xa231: "mgie" +0xa232: "mgat" +0xa233: "mgax" +0xa234: "mga" +0xa235: "mgap" +0xa236: "mguox" +0xa237: "mguo" +0xa238: "mguop" +0xa239: "mgot" +0xa23a: "mgox" +0xa23b: "mgo" +0xa23c: "mgop" +0xa23d: "mgex" +0xa23e: "mge" +0xa23f: "mgep" +0xa240: "mgut" +0xa241: "mgux" +0xa242: "mgu" +0xa243: "mgup" +0xa244: "mgurx" +0xa245: "mgur" +0xa246: "hxit" +0xa247: "hxix" +0xa248: "hxi" +0xa249: "hxip" +0xa24a: "hxiet" +0xa24b: "hxiex" +0xa24c: "hxie" +0xa24d: "hxiep" +0xa24e: "hxat" +0xa24f: "hxax" +0xa250: "hxa" +0xa251: "hxap" +0xa252: "hxuot" +0xa253: "hxuox" +0xa254: "hxuo" +0xa255: "hxuop" +0xa256: "hxot" +0xa257: "hxox" +0xa258: "hxo" +0xa259: "hxop" +0xa25a: "hxex" +0xa25b: "hxe" +0xa25c: "hxep" +0xa25d: "ngiex" +0xa25e: "ngie" +0xa25f: "ngiep" +0xa260: "ngat" +0xa261: "ngax" +0xa262: "nga" +0xa263: "ngap" +0xa264: "nguot" +0xa265: "nguox" +0xa266: "nguo" +0xa267: "ngot" +0xa268: "ngox" +0xa269: "ngo" +0xa26a: "ngop" +0xa26b: "ngex" +0xa26c: "nge" +0xa26d: "ngep" +0xa26e: "hit" +0xa26f: "hiex" +0xa270: "hie" +0xa271: "hat" +0xa272: "hax" +0xa273: "ha" +0xa274: "hap" +0xa275: "huot" +0xa276: "huox" +0xa277: "huo" +0xa278: "huop" +0xa279: "hot" +0xa27a: "hox" +0xa27b: "ho" +0xa27c: "hop" +0xa27d: "hex" +0xa27e: "he" +0xa27f: "hep" +0xa280: "wat" +0xa281: "wax" +0xa282: "wa" +0xa283: "wap" +0xa284: "wuox" +0xa285: "wuo" +0xa286: "wuop" +0xa287: "wox" +0xa288: "wo" +0xa289: "wop" +0xa28a: "wex" +0xa28b: "we" +0xa28c: "wep" +0xa28d: "zit" +0xa28e: "zix" +0xa28f: "zi" +0xa290: "zip" +0xa291: "ziex" +0xa292: "zie" +0xa293: "ziep" +0xa294: "zat" +0xa295: "zax" +0xa296: "za" +0xa297: "zap" +0xa298: "zuox" +0xa299: "zuo" +0xa29a: "zuop" +0xa29b: "zot" +0xa29c: "zox" +0xa29d: "zo" +0xa29e: "zop" +0xa29f: "zex" +0xa2a0: "ze" +0xa2a1: "zep" +0xa2a2: "zut" +0xa2a3: "zux" +0xa2a4: "zu" +0xa2a5: "zup" +0xa2a6: "zurx" +0xa2a7: "zur" +0xa2a8: "zyt" +0xa2a9: "zyx" +0xa2aa: "zy" +0xa2ab: "zyp" +0xa2ac: "zyrx" +0xa2ad: "zyr" +0xa2ae: "cit" +0xa2af: "cix" +0xa2b0: "ci" +0xa2b1: "cip" +0xa2b2: "ciet" +0xa2b3: "ciex" +0xa2b4: "cie" +0xa2b5: "ciep" +0xa2b6: "cat" +0xa2b7: "cax" +0xa2b8: "ca" +0xa2b9: "cap" +0xa2ba: "cuox" +0xa2bb: "cuo" +0xa2bc: "cuop" +0xa2bd: "cot" +0xa2be: "cox" +0xa2bf: "co" +0xa2c0: "cop" +0xa2c1: "cex" +0xa2c2: "ce" +0xa2c3: "cep" +0xa2c4: "cut" +0xa2c5: "cux" +0xa2c6: "cu" +0xa2c7: "cup" +0xa2c8: "curx" +0xa2c9: "cur" +0xa2ca: "cyt" +0xa2cb: "cyx" +0xa2cc: "cy" +0xa2cd: "cyp" +0xa2ce: "cyrx" +0xa2cf: "cyr" +0xa2d0: "zzit" +0xa2d1: "zzix" +0xa2d2: "zzi" +0xa2d3: "zzip" +0xa2d4: "zziet" +0xa2d5: "zziex" +0xa2d6: "zzie" +0xa2d7: "zziep" +0xa2d8: "zzat" +0xa2d9: "zzax" +0xa2da: "zza" +0xa2db: "zzap" +0xa2dc: "zzox" +0xa2dd: "zzo" +0xa2de: "zzop" +0xa2df: "zzex" +0xa2e0: "zze" +0xa2e1: "zzep" +0xa2e2: "zzux" +0xa2e3: "zzu" +0xa2e4: "zzup" +0xa2e5: "zzurx" +0xa2e6: "zzur" +0xa2e7: "zzyt" +0xa2e8: "zzyx" +0xa2e9: "zzy" +0xa2ea: "zzyp" +0xa2eb: "zzyrx" +0xa2ec: "zzyr" +0xa2ed: "nzit" +0xa2ee: "nzix" +0xa2ef: "nzi" +0xa2f0: "nzip" +0xa2f1: "nziex" +0xa2f2: "nzie" +0xa2f3: "nziep" +0xa2f4: "nzat" +0xa2f5: "nzax" +0xa2f6: "nza" +0xa2f7: "nzap" +0xa2f8: "nzuox" +0xa2f9: "nzuo" +0xa2fa: "nzox" +0xa2fb: "nzop" +0xa2fc: "nzex" +0xa2fd: "nze" +0xa2fe: "nzux" +0xa2ff: "nzu" +/* x0a3 */ +0xa300: "nzup" +0xa301: "nzurx" +0xa302: "nzur" +0xa303: "nzyt" +0xa304: "nzyx" +0xa305: "nzy" +0xa306: "nzyp" +0xa307: "nzyrx" +0xa308: "nzyr" +0xa309: "sit" +0xa30a: "six" +0xa30b: "si" +0xa30c: "sip" +0xa30d: "siex" +0xa30e: "sie" +0xa30f: "siep" +0xa310: "sat" +0xa311: "sax" +0xa312: "sa" +0xa313: "sap" +0xa314: "suox" +0xa315: "suo" +0xa316: "suop" +0xa317: "sot" +0xa318: "sox" +0xa319: "so" +0xa31a: "sop" +0xa31b: "sex" +0xa31c: "se" +0xa31d: "sep" +0xa31e: "sut" +0xa31f: "sux" +0xa320: "su" +0xa321: "sup" +0xa322: "surx" +0xa323: "sur" +0xa324: "syt" +0xa325: "syx" +0xa326: "sy" +0xa327: "syp" +0xa328: "syrx" +0xa329: "syr" +0xa32a: "ssit" +0xa32b: "ssix" +0xa32c: "ssi" +0xa32d: "ssip" +0xa32e: "ssiex" +0xa32f: "ssie" +0xa330: "ssiep" +0xa331: "ssat" +0xa332: "ssax" +0xa333: "ssa" +0xa334: "ssap" +0xa335: "ssot" +0xa336: "ssox" +0xa337: "sso" +0xa338: "ssop" +0xa339: "ssex" +0xa33a: "sse" +0xa33b: "ssep" +0xa33c: "ssut" +0xa33d: "ssux" +0xa33e: "ssu" +0xa33f: "ssup" +0xa340: "ssyt" +0xa341: "ssyx" +0xa342: "ssy" +0xa343: "ssyp" +0xa344: "ssyrx" +0xa345: "ssyr" +0xa346: "zhat" +0xa347: "zhax" +0xa348: "zha" +0xa349: "zhap" +0xa34a: "zhuox" +0xa34b: "zhuo" +0xa34c: "zhuop" +0xa34d: "zhot" +0xa34e: "zhox" +0xa34f: "zho" +0xa350: "zhop" +0xa351: "zhet" +0xa352: "zhex" +0xa353: "zhe" +0xa354: "zhep" +0xa355: "zhut" +0xa356: "zhux" +0xa357: "zhu" +0xa358: "zhup" +0xa359: "zhurx" +0xa35a: "zhur" +0xa35b: "zhyt" +0xa35c: "zhyx" +0xa35d: "zhy" +0xa35e: "zhyp" +0xa35f: "zhyrx" +0xa360: "zhyr" +0xa361: "chat" +0xa362: "chax" +0xa363: "cha" +0xa364: "chap" +0xa365: "chuot" +0xa366: "chuox" +0xa367: "chuo" +0xa368: "chuop" +0xa369: "chot" +0xa36a: "chox" +0xa36b: "cho" +0xa36c: "chop" +0xa36d: "chet" +0xa36e: "chex" +0xa36f: "che" +0xa370: "chep" +0xa371: "chux" +0xa372: "chu" +0xa373: "chup" +0xa374: "churx" +0xa375: "chur" +0xa376: "chyt" +0xa377: "chyx" +0xa378: "chy" +0xa379: "chyp" +0xa37a: "chyrx" +0xa37b: "chyr" +0xa37c: "rrax" +0xa37d: "rra" +0xa37e: "rruox" +0xa37f: "rruo" +0xa380: "rrot" +0xa381: "rrox" +0xa382: "rro" +0xa383: "rrop" +0xa384: "rret" +0xa385: "rrex" +0xa386: "rre" +0xa387: "rrep" +0xa388: "rrut" +0xa389: "rrux" +0xa38a: "rru" +0xa38b: "rrup" +0xa38c: "rrurx" +0xa38d: "rrur" +0xa38e: "rryt" +0xa38f: "rryx" +0xa390: "rry" +0xa391: "rryp" +0xa392: "rryrx" +0xa393: "rryr" +0xa394: "nrat" +0xa395: "nrax" +0xa396: "nra" +0xa397: "nrap" +0xa398: "nrox" +0xa399: "nro" +0xa39a: "nrop" +0xa39b: "nret" +0xa39c: "nrex" +0xa39d: "nre" +0xa39e: "nrep" +0xa39f: "nrut" +0xa3a0: "nrux" +0xa3a1: "nru" +0xa3a2: "nrup" +0xa3a3: "nrurx" +0xa3a4: "nrur" +0xa3a5: "nryt" +0xa3a6: "nryx" +0xa3a7: "nry" +0xa3a8: "nryp" +0xa3a9: "nryrx" +0xa3aa: "nryr" +0xa3ab: "shat" +0xa3ac: "shax" +0xa3ad: "sha" +0xa3ae: "shap" +0xa3af: "shuox" +0xa3b0: "shuo" +0xa3b1: "shuop" +0xa3b2: "shot" +0xa3b3: "shox" +0xa3b4: "sho" +0xa3b5: "shop" +0xa3b6: "shet" +0xa3b7: "shex" +0xa3b8: "she" +0xa3b9: "shep" +0xa3ba: "shut" +0xa3bb: "shux" +0xa3bc: "shu" +0xa3bd: "shup" +0xa3be: "shurx" +0xa3bf: "shur" +0xa3c0: "shyt" +0xa3c1: "shyx" +0xa3c2: "shy" +0xa3c3: "shyp" +0xa3c4: "shyrx" +0xa3c5: "shyr" +0xa3c6: "rat" +0xa3c7: "rax" +0xa3c8: "ra" +0xa3c9: "rap" +0xa3ca: "ruox" +0xa3cb: "ruo" +0xa3cc: "ruop" +0xa3cd: "rot" +0xa3ce: "rox" +0xa3cf: "ro" +0xa3d0: "rop" +0xa3d1: "rex" +0xa3d2: "re" +0xa3d3: "rep" +0xa3d4: "rut" +0xa3d5: "rux" +0xa3d6: "ru" +0xa3d7: "rup" +0xa3d8: "rurx" +0xa3d9: "rur" +0xa3da: "ryt" +0xa3db: "ryx" +0xa3dc: "ry" +0xa3dd: "ryp" +0xa3de: "ryrx" +0xa3df: "ryr" +0xa3e0: "jit" +0xa3e1: "jix" +0xa3e2: "ji" +0xa3e3: "jip" +0xa3e4: "jiet" +0xa3e5: "jiex" +0xa3e6: "jie" +0xa3e7: "jiep" +0xa3e8: "juot" +0xa3e9: "juox" +0xa3ea: "juo" +0xa3eb: "juop" +0xa3ec: "jot" +0xa3ed: "jox" +0xa3ee: "jo" +0xa3ef: "jop" +0xa3f0: "jut" +0xa3f1: "jux" +0xa3f2: "ju" +0xa3f3: "jup" +0xa3f4: "jurx" +0xa3f5: "jur" +0xa3f6: "jyt" +0xa3f7: "jyx" +0xa3f8: "jy" +0xa3f9: "jyp" +0xa3fa: "jyrx" +0xa3fb: "jyr" +0xa3fc: "qit" +0xa3fd: "qix" +0xa3fe: "qi" +0xa3ff: "qip" +/* x0a4 */ +0xa400: "qiet" +0xa401: "qiex" +0xa402: "qie" +0xa403: "qiep" +0xa404: "quot" +0xa405: "quox" +0xa406: "quo" +0xa407: "quop" +0xa408: "qot" +0xa409: "qox" +0xa40a: "qo" +0xa40b: "qop" +0xa40c: "qut" +0xa40d: "qux" +0xa40e: "qu" +0xa40f: "qup" +0xa410: "qurx" +0xa411: "qur" +0xa412: "qyt" +0xa413: "qyx" +0xa414: "qy" +0xa415: "qyp" +0xa416: "qyrx" +0xa417: "qyr" +0xa418: "jjit" +0xa419: "jjix" +0xa41a: "jji" +0xa41b: "jjip" +0xa41c: "jjiet" +0xa41d: "jjiex" +0xa41e: "jjie" +0xa41f: "jjiep" +0xa420: "jjuox" +0xa421: "jjuo" +0xa422: "jjuop" +0xa423: "jjot" +0xa424: "jjox" +0xa425: "jjo" +0xa426: "jjop" +0xa427: "jjut" +0xa428: "jjux" +0xa429: "jju" +0xa42a: "jjup" +0xa42b: "jjurx" +0xa42c: "jjur" +0xa42d: "jjyt" +0xa42e: "jjyx" +0xa42f: "jjy" +0xa430: "jjyp" +0xa431: "njit" +0xa432: "njix" +0xa433: "nji" +0xa434: "njip" +0xa435: "njiet" +0xa436: "njiex" +0xa437: "njie" +0xa438: "njiep" +0xa439: "njuox" +0xa43a: "njuo" +0xa43b: "njot" +0xa43c: "njox" +0xa43d: "njo" +0xa43e: "njop" +0xa43f: "njux" +0xa440: "nju" +0xa441: "njup" +0xa442: "njurx" +0xa443: "njur" +0xa444: "njyt" +0xa445: "njyx" +0xa446: "njy" +0xa447: "njyp" +0xa448: "njyrx" +0xa449: "njyr" +0xa44a: "nyit" +0xa44b: "nyix" +0xa44c: "nyi" +0xa44d: "nyip" +0xa44e: "nyiet" +0xa44f: "nyiex" +0xa450: "nyie" +0xa451: "nyiep" +0xa452: "nyuox" +0xa453: "nyuo" +0xa454: "nyuop" +0xa455: "nyot" +0xa456: "nyox" +0xa457: "nyo" +0xa458: "nyop" +0xa459: "nyut" +0xa45a: "nyux" +0xa45b: "nyu" +0xa45c: "nyup" +0xa45d: "xit" +0xa45e: "xix" +0xa45f: "xi" +0xa460: "xip" +0xa461: "xiet" +0xa462: "xiex" +0xa463: "xie" +0xa464: "xiep" +0xa465: "xuox" +0xa466: "xuo" +0xa467: "xot" +0xa468: "xox" +0xa469: "xo" +0xa46a: "xop" +0xa46b: "xyt" +0xa46c: "xyx" +0xa46d: "xy" +0xa46e: "xyp" +0xa46f: "xyrx" +0xa470: "xyr" +0xa471: "yit" +0xa472: "yix" +0xa473: "yi" +0xa474: "yip" +0xa475: "yiet" +0xa476: "yiex" +0xa477: "yie" +0xa478: "yiep" +0xa479: "yuot" +0xa47a: "yuox" +0xa47b: "yuo" +0xa47c: "yuop" +0xa47d: "yot" +0xa47e: "yox" +0xa47f: "yo" +0xa480: "yop" +0xa481: "yut" +0xa482: "yux" +0xa483: "yu" +0xa484: "yup" +0xa485: "yurx" +0xa486: "yur" +0xa487: "yyt" +0xa488: "yyx" +0xa489: "yy" +0xa48a: "yyp" +0xa48b: "yyrx" +0xa48c: "yyr" +0xa48d: "[?]" +0xa48e: "[?]" +0xa48f: "[?]" +0xa490: "Qot" +0xa491: "Li" +0xa492: "Kit" +0xa493: "Nyip" +0xa494: "Cyp" +0xa495: "Ssi" +0xa496: "Ggop" +0xa497: "Gep" +0xa498: "Mi" +0xa499: "Hxit" +0xa49a: "Lyr" +0xa49b: "Bbut" +0xa49c: "Mop" +0xa49d: "Yo" +0xa49e: "Put" +0xa49f: "Hxuo" +0xa4a0: "Tat" +0xa4a1: "Ga" +0xa4a2: "[?]" +0xa4a3: "[?]" +0xa4a4: "Ddur" +0xa4a5: "Bur" +0xa4a6: "Gguo" +0xa4a7: "Nyop" +0xa4a8: "Tu" +0xa4a9: "Op" +0xa4aa: "Jjut" +0xa4ab: "Zot" +0xa4ac: "Pyt" +0xa4ad: "Hmo" +0xa4ae: "Yit" +0xa4af: "Vur" +0xa4b0: "Shy" +0xa4b1: "Vep" +0xa4b2: "Za" +0xa4b3: "Jo" +0xa4b4: "[?]" +0xa4b5: "Jjy" +0xa4b6: "Got" +0xa4b7: "Jjie" +0xa4b8: "Wo" +0xa4b9: "Du" +0xa4ba: "Shur" +0xa4bb: "Lie" +0xa4bc: "Cy" +0xa4bd: "Cuop" +0xa4be: "Cip" +0xa4bf: "Hxop" +0xa4c0: "Shat" +0xa4c1: "[?]" +0xa4c2: "Shop" +0xa4c3: "Che" +0xa4c4: "Zziet" +0xa4c5: "[?]" +0xa4c6: "Ke" +0xa4c7: "[?]" +0xa4c8: "[?]" +0xa4c9: "[?]" +0xa4ca: "[?]" +0xa4cb: "[?]" +0xa4cc: "[?]" +0xa4cd: "[?]" +0xa4ce: "[?]" +0xa4cf: "[?]" +0xa4d0: "[?]" +0xa4d1: "[?]" +0xa4d2: "[?]" +0xa4d3: "[?]" +0xa4d4: "[?]" +0xa4d5: "[?]" +0xa4d6: "[?]" +0xa4d7: "[?]" +0xa4d8: "[?]" +0xa4d9: "[?]" +0xa4da: "[?]" +0xa4db: "[?]" +0xa4dc: "[?]" +0xa4dd: "[?]" +0xa4de: "[?]" +0xa4df: "[?]" +0xa4e0: "[?]" +0xa4e1: "[?]" +0xa4e2: "[?]" +0xa4e3: "[?]" +0xa4e4: "[?]" +0xa4e5: "[?]" +0xa4e6: "[?]" +0xa4e7: "[?]" +0xa4e8: "[?]" +0xa4e9: "[?]" +0xa4ea: "[?]" +0xa4eb: "[?]" +0xa4ec: "[?]" +0xa4ed: "[?]" +0xa4ee: "[?]" +0xa4ef: "[?]" +0xa4f0: "[?]" +0xa4f1: "[?]" +0xa4f2: "[?]" +0xa4f3: "[?]" +0xa4f4: "[?]" +0xa4f5: "[?]" +0xa4f6: "[?]" +0xa4f7: "[?]" +0xa4f8: "[?]" +0xa4f9: "[?]" +0xa4fa: "[?]" +0xa4fb: "[?]" +0xa4fc: "[?]" +0xa4fd: "[?]" +0xa4fe: "[?]" +/* x0ac */ +0xac00: "ga" +0xac01: "gag" +0xac02: "gagg" +0xac03: "gags" +0xac04: "gan" +0xac05: "ganj" +0xac06: "ganh" +0xac07: "gad" +0xac08: "gal" +0xac09: "galg" +0xac0a: "galm" +0xac0b: "galb" +0xac0c: "gals" +0xac0d: "galt" +0xac0e: "galp" +0xac0f: "galh" +0xac10: "gam" +0xac11: "gab" +0xac12: "gabs" +0xac13: "gas" +0xac14: "gass" +0xac15: "gang" +0xac16: "gaj" +0xac17: "gac" +0xac18: "gak" +0xac19: "gat" +0xac1a: "gap" +0xac1b: "gah" +0xac1c: "gae" +0xac1d: "gaeg" +0xac1e: "gaegg" +0xac1f: "gaegs" +0xac20: "gaen" +0xac21: "gaenj" +0xac22: "gaenh" +0xac23: "gaed" +0xac24: "gael" +0xac25: "gaelg" +0xac26: "gaelm" +0xac27: "gaelb" +0xac28: "gaels" +0xac29: "gaelt" +0xac2a: "gaelp" +0xac2b: "gaelh" +0xac2c: "gaem" +0xac2d: "gaeb" +0xac2e: "gaebs" +0xac2f: "gaes" +0xac30: "gaess" +0xac31: "gaeng" +0xac32: "gaej" +0xac33: "gaec" +0xac34: "gaek" +0xac35: "gaet" +0xac36: "gaep" +0xac37: "gaeh" +0xac38: "gya" +0xac39: "gyag" +0xac3a: "gyagg" +0xac3b: "gyags" +0xac3c: "gyan" +0xac3d: "gyanj" +0xac3e: "gyanh" +0xac3f: "gyad" +0xac40: "gyal" +0xac41: "gyalg" +0xac42: "gyalm" +0xac43: "gyalb" +0xac44: "gyals" +0xac45: "gyalt" +0xac46: "gyalp" +0xac47: "gyalh" +0xac48: "gyam" +0xac49: "gyab" +0xac4a: "gyabs" +0xac4b: "gyas" +0xac4c: "gyass" +0xac4d: "gyang" +0xac4e: "gyaj" +0xac4f: "gyac" +0xac50: "gyak" +0xac51: "gyat" +0xac52: "gyap" +0xac53: "gyah" +0xac54: "gyae" +0xac55: "gyaeg" +0xac56: "gyaegg" +0xac57: "gyaegs" +0xac58: "gyaen" +0xac59: "gyaenj" +0xac5a: "gyaenh" +0xac5b: "gyaed" +0xac5c: "gyael" +0xac5d: "gyaelg" +0xac5e: "gyaelm" +0xac5f: "gyaelb" +0xac60: "gyaels" +0xac61: "gyaelt" +0xac62: "gyaelp" +0xac63: "gyaelh" +0xac64: "gyaem" +0xac65: "gyaeb" +0xac66: "gyaebs" +0xac67: "gyaes" +0xac68: "gyaess" +0xac69: "gyaeng" +0xac6a: "gyaej" +0xac6b: "gyaec" +0xac6c: "gyaek" +0xac6d: "gyaet" +0xac6e: "gyaep" +0xac6f: "gyaeh" +0xac70: "geo" +0xac71: "geog" +0xac72: "geogg" +0xac73: "geogs" +0xac74: "geon" +0xac75: "geonj" +0xac76: "geonh" +0xac77: "geod" +0xac78: "geol" +0xac79: "geolg" +0xac7a: "geolm" +0xac7b: "geolb" +0xac7c: "geols" +0xac7d: "geolt" +0xac7e: "geolp" +0xac7f: "geolh" +0xac80: "geom" +0xac81: "geob" +0xac82: "geobs" +0xac83: "geos" +0xac84: "geoss" +0xac85: "geong" +0xac86: "geoj" +0xac87: "geoc" +0xac88: "geok" +0xac89: "geot" +0xac8a: "geop" +0xac8b: "geoh" +0xac8c: "ge" +0xac8d: "geg" +0xac8e: "gegg" +0xac8f: "gegs" +0xac90: "gen" +0xac91: "genj" +0xac92: "genh" +0xac93: "ged" +0xac94: "gel" +0xac95: "gelg" +0xac96: "gelm" +0xac97: "gelb" +0xac98: "gels" +0xac99: "gelt" +0xac9a: "gelp" +0xac9b: "gelh" +0xac9c: "gem" +0xac9d: "geb" +0xac9e: "gebs" +0xac9f: "ges" +0xaca0: "gess" +0xaca1: "geng" +0xaca2: "gej" +0xaca3: "gec" +0xaca4: "gek" +0xaca5: "get" +0xaca6: "gep" +0xaca7: "geh" +0xaca8: "gyeo" +0xaca9: "gyeog" +0xacaa: "gyeogg" +0xacab: "gyeogs" +0xacac: "gyeon" +0xacad: "gyeonj" +0xacae: "gyeonh" +0xacaf: "gyeod" +0xacb0: "gyeol" +0xacb1: "gyeolg" +0xacb2: "gyeolm" +0xacb3: "gyeolb" +0xacb4: "gyeols" +0xacb5: "gyeolt" +0xacb6: "gyeolp" +0xacb7: "gyeolh" +0xacb8: "gyeom" +0xacb9: "gyeob" +0xacba: "gyeobs" +0xacbb: "gyeos" +0xacbc: "gyeoss" +0xacbd: "gyeong" +0xacbe: "gyeoj" +0xacbf: "gyeoc" +0xacc0: "gyeok" +0xacc1: "gyeot" +0xacc2: "gyeop" +0xacc3: "gyeoh" +0xacc4: "gye" +0xacc5: "gyeg" +0xacc6: "gyegg" +0xacc7: "gyegs" +0xacc8: "gyen" +0xacc9: "gyenj" +0xacca: "gyenh" +0xaccb: "gyed" +0xaccc: "gyel" +0xaccd: "gyelg" +0xacce: "gyelm" +0xaccf: "gyelb" +0xacd0: "gyels" +0xacd1: "gyelt" +0xacd2: "gyelp" +0xacd3: "gyelh" +0xacd4: "gyem" +0xacd5: "gyeb" +0xacd6: "gyebs" +0xacd7: "gyes" +0xacd8: "gyess" +0xacd9: "gyeng" +0xacda: "gyej" +0xacdb: "gyec" +0xacdc: "gyek" +0xacdd: "gyet" +0xacde: "gyep" +0xacdf: "gyeh" +0xace0: "go" +0xace1: "gog" +0xace2: "gogg" +0xace3: "gogs" +0xace4: "gon" +0xace5: "gonj" +0xace6: "gonh" +0xace7: "god" +0xace8: "gol" +0xace9: "golg" +0xacea: "golm" +0xaceb: "golb" +0xacec: "gols" +0xaced: "golt" +0xacee: "golp" +0xacef: "golh" +0xacf0: "gom" +0xacf1: "gob" +0xacf2: "gobs" +0xacf3: "gos" +0xacf4: "goss" +0xacf5: "gong" +0xacf6: "goj" +0xacf7: "goc" +0xacf8: "gok" +0xacf9: "got" +0xacfa: "gop" +0xacfb: "goh" +0xacfc: "gwa" +0xacfd: "gwag" +0xacfe: "gwagg" +0xacff: "gwags" +/* x0ad */ +0xad00: "gwan" +0xad01: "gwanj" +0xad02: "gwanh" +0xad03: "gwad" +0xad04: "gwal" +0xad05: "gwalg" +0xad06: "gwalm" +0xad07: "gwalb" +0xad08: "gwals" +0xad09: "gwalt" +0xad0a: "gwalp" +0xad0b: "gwalh" +0xad0c: "gwam" +0xad0d: "gwab" +0xad0e: "gwabs" +0xad0f: "gwas" +0xad10: "gwass" +0xad11: "gwang" +0xad12: "gwaj" +0xad13: "gwac" +0xad14: "gwak" +0xad15: "gwat" +0xad16: "gwap" +0xad17: "gwah" +0xad18: "gwae" +0xad19: "gwaeg" +0xad1a: "gwaegg" +0xad1b: "gwaegs" +0xad1c: "gwaen" +0xad1d: "gwaenj" +0xad1e: "gwaenh" +0xad1f: "gwaed" +0xad20: "gwael" +0xad21: "gwaelg" +0xad22: "gwaelm" +0xad23: "gwaelb" +0xad24: "gwaels" +0xad25: "gwaelt" +0xad26: "gwaelp" +0xad27: "gwaelh" +0xad28: "gwaem" +0xad29: "gwaeb" +0xad2a: "gwaebs" +0xad2b: "gwaes" +0xad2c: "gwaess" +0xad2d: "gwaeng" +0xad2e: "gwaej" +0xad2f: "gwaec" +0xad30: "gwaek" +0xad31: "gwaet" +0xad32: "gwaep" +0xad33: "gwaeh" +0xad34: "goe" +0xad35: "goeg" +0xad36: "goegg" +0xad37: "goegs" +0xad38: "goen" +0xad39: "goenj" +0xad3a: "goenh" +0xad3b: "goed" +0xad3c: "goel" +0xad3d: "goelg" +0xad3e: "goelm" +0xad3f: "goelb" +0xad40: "goels" +0xad41: "goelt" +0xad42: "goelp" +0xad43: "goelh" +0xad44: "goem" +0xad45: "goeb" +0xad46: "goebs" +0xad47: "goes" +0xad48: "goess" +0xad49: "goeng" +0xad4a: "goej" +0xad4b: "goec" +0xad4c: "goek" +0xad4d: "goet" +0xad4e: "goep" +0xad4f: "goeh" +0xad50: "gyo" +0xad51: "gyog" +0xad52: "gyogg" +0xad53: "gyogs" +0xad54: "gyon" +0xad55: "gyonj" +0xad56: "gyonh" +0xad57: "gyod" +0xad58: "gyol" +0xad59: "gyolg" +0xad5a: "gyolm" +0xad5b: "gyolb" +0xad5c: "gyols" +0xad5d: "gyolt" +0xad5e: "gyolp" +0xad5f: "gyolh" +0xad60: "gyom" +0xad61: "gyob" +0xad62: "gyobs" +0xad63: "gyos" +0xad64: "gyoss" +0xad65: "gyong" +0xad66: "gyoj" +0xad67: "gyoc" +0xad68: "gyok" +0xad69: "gyot" +0xad6a: "gyop" +0xad6b: "gyoh" +0xad6c: "gu" +0xad6d: "gug" +0xad6e: "gugg" +0xad6f: "gugs" +0xad70: "gun" +0xad71: "gunj" +0xad72: "gunh" +0xad73: "gud" +0xad74: "gul" +0xad75: "gulg" +0xad76: "gulm" +0xad77: "gulb" +0xad78: "guls" +0xad79: "gult" +0xad7a: "gulp" +0xad7b: "gulh" +0xad7c: "gum" +0xad7d: "gub" +0xad7e: "gubs" +0xad7f: "gus" +0xad80: "guss" +0xad81: "gung" +0xad82: "guj" +0xad83: "guc" +0xad84: "guk" +0xad85: "gut" +0xad86: "gup" +0xad87: "guh" +0xad88: "gweo" +0xad89: "gweog" +0xad8a: "gweogg" +0xad8b: "gweogs" +0xad8c: "gweon" +0xad8d: "gweonj" +0xad8e: "gweonh" +0xad8f: "gweod" +0xad90: "gweol" +0xad91: "gweolg" +0xad92: "gweolm" +0xad93: "gweolb" +0xad94: "gweols" +0xad95: "gweolt" +0xad96: "gweolp" +0xad97: "gweolh" +0xad98: "gweom" +0xad99: "gweob" +0xad9a: "gweobs" +0xad9b: "gweos" +0xad9c: "gweoss" +0xad9d: "gweong" +0xad9e: "gweoj" +0xad9f: "gweoc" +0xada0: "gweok" +0xada1: "gweot" +0xada2: "gweop" +0xada3: "gweoh" +0xada4: "gwe" +0xada5: "gweg" +0xada6: "gwegg" +0xada7: "gwegs" +0xada8: "gwen" +0xada9: "gwenj" +0xadaa: "gwenh" +0xadab: "gwed" +0xadac: "gwel" +0xadad: "gwelg" +0xadae: "gwelm" +0xadaf: "gwelb" +0xadb0: "gwels" +0xadb1: "gwelt" +0xadb2: "gwelp" +0xadb3: "gwelh" +0xadb4: "gwem" +0xadb5: "gweb" +0xadb6: "gwebs" +0xadb7: "gwes" +0xadb8: "gwess" +0xadb9: "gweng" +0xadba: "gwej" +0xadbb: "gwec" +0xadbc: "gwek" +0xadbd: "gwet" +0xadbe: "gwep" +0xadbf: "gweh" +0xadc0: "gwi" +0xadc1: "gwig" +0xadc2: "gwigg" +0xadc3: "gwigs" +0xadc4: "gwin" +0xadc5: "gwinj" +0xadc6: "gwinh" +0xadc7: "gwid" +0xadc8: "gwil" +0xadc9: "gwilg" +0xadca: "gwilm" +0xadcb: "gwilb" +0xadcc: "gwils" +0xadcd: "gwilt" +0xadce: "gwilp" +0xadcf: "gwilh" +0xadd0: "gwim" +0xadd1: "gwib" +0xadd2: "gwibs" +0xadd3: "gwis" +0xadd4: "gwiss" +0xadd5: "gwing" +0xadd6: "gwij" +0xadd7: "gwic" +0xadd8: "gwik" +0xadd9: "gwit" +0xadda: "gwip" +0xaddb: "gwih" +0xaddc: "gyu" +0xaddd: "gyug" +0xadde: "gyugg" +0xaddf: "gyugs" +0xade0: "gyun" +0xade1: "gyunj" +0xade2: "gyunh" +0xade3: "gyud" +0xade4: "gyul" +0xade5: "gyulg" +0xade6: "gyulm" +0xade7: "gyulb" +0xade8: "gyuls" +0xade9: "gyult" +0xadea: "gyulp" +0xadeb: "gyulh" +0xadec: "gyum" +0xaded: "gyub" +0xadee: "gyubs" +0xadef: "gyus" +0xadf0: "gyuss" +0xadf1: "gyung" +0xadf2: "gyuj" +0xadf3: "gyuc" +0xadf4: "gyuk" +0xadf5: "gyut" +0xadf6: "gyup" +0xadf7: "gyuh" +0xadf8: "geu" +0xadf9: "geug" +0xadfa: "geugg" +0xadfb: "geugs" +0xadfc: "geun" +0xadfd: "geunj" +0xadfe: "geunh" +0xadff: "geud" +/* x0ae */ +0xae00: "geul" +0xae01: "geulg" +0xae02: "geulm" +0xae03: "geulb" +0xae04: "geuls" +0xae05: "geult" +0xae06: "geulp" +0xae07: "geulh" +0xae08: "geum" +0xae09: "geub" +0xae0a: "geubs" +0xae0b: "geus" +0xae0c: "geuss" +0xae0d: "geung" +0xae0e: "geuj" +0xae0f: "geuc" +0xae10: "geuk" +0xae11: "geut" +0xae12: "geup" +0xae13: "geuh" +0xae14: "gyi" +0xae15: "gyig" +0xae16: "gyigg" +0xae17: "gyigs" +0xae18: "gyin" +0xae19: "gyinj" +0xae1a: "gyinh" +0xae1b: "gyid" +0xae1c: "gyil" +0xae1d: "gyilg" +0xae1e: "gyilm" +0xae1f: "gyilb" +0xae20: "gyils" +0xae21: "gyilt" +0xae22: "gyilp" +0xae23: "gyilh" +0xae24: "gyim" +0xae25: "gyib" +0xae26: "gyibs" +0xae27: "gyis" +0xae28: "gyiss" +0xae29: "gying" +0xae2a: "gyij" +0xae2b: "gyic" +0xae2c: "gyik" +0xae2d: "gyit" +0xae2e: "gyip" +0xae2f: "gyih" +0xae30: "gi" +0xae31: "gig" +0xae32: "gigg" +0xae33: "gigs" +0xae34: "gin" +0xae35: "ginj" +0xae36: "ginh" +0xae37: "gid" +0xae38: "gil" +0xae39: "gilg" +0xae3a: "gilm" +0xae3b: "gilb" +0xae3c: "gils" +0xae3d: "gilt" +0xae3e: "gilp" +0xae3f: "gilh" +0xae40: "gim" +0xae41: "gib" +0xae42: "gibs" +0xae43: "gis" +0xae44: "giss" +0xae45: "ging" +0xae46: "gij" +0xae47: "gic" +0xae48: "gik" +0xae49: "git" +0xae4a: "gip" +0xae4b: "gih" +0xae4c: "gga" +0xae4d: "ggag" +0xae4e: "ggagg" +0xae4f: "ggags" +0xae50: "ggan" +0xae51: "gganj" +0xae52: "gganh" +0xae53: "ggad" +0xae54: "ggal" +0xae55: "ggalg" +0xae56: "ggalm" +0xae57: "ggalb" +0xae58: "ggals" +0xae59: "ggalt" +0xae5a: "ggalp" +0xae5b: "ggalh" +0xae5c: "ggam" +0xae5d: "ggab" +0xae5e: "ggabs" +0xae5f: "ggas" +0xae60: "ggass" +0xae61: "ggang" +0xae62: "ggaj" +0xae63: "ggac" +0xae64: "ggak" +0xae65: "ggat" +0xae66: "ggap" +0xae67: "ggah" +0xae68: "ggae" +0xae69: "ggaeg" +0xae6a: "ggaegg" +0xae6b: "ggaegs" +0xae6c: "ggaen" +0xae6d: "ggaenj" +0xae6e: "ggaenh" +0xae6f: "ggaed" +0xae70: "ggael" +0xae71: "ggaelg" +0xae72: "ggaelm" +0xae73: "ggaelb" +0xae74: "ggaels" +0xae75: "ggaelt" +0xae76: "ggaelp" +0xae77: "ggaelh" +0xae78: "ggaem" +0xae79: "ggaeb" +0xae7a: "ggaebs" +0xae7b: "ggaes" +0xae7c: "ggaess" +0xae7d: "ggaeng" +0xae7e: "ggaej" +0xae7f: "ggaec" +0xae80: "ggaek" +0xae81: "ggaet" +0xae82: "ggaep" +0xae83: "ggaeh" +0xae84: "ggya" +0xae85: "ggyag" +0xae86: "ggyagg" +0xae87: "ggyags" +0xae88: "ggyan" +0xae89: "ggyanj" +0xae8a: "ggyanh" +0xae8b: "ggyad" +0xae8c: "ggyal" +0xae8d: "ggyalg" +0xae8e: "ggyalm" +0xae8f: "ggyalb" +0xae90: "ggyals" +0xae91: "ggyalt" +0xae92: "ggyalp" +0xae93: "ggyalh" +0xae94: "ggyam" +0xae95: "ggyab" +0xae96: "ggyabs" +0xae97: "ggyas" +0xae98: "ggyass" +0xae99: "ggyang" +0xae9a: "ggyaj" +0xae9b: "ggyac" +0xae9c: "ggyak" +0xae9d: "ggyat" +0xae9e: "ggyap" +0xae9f: "ggyah" +0xaea0: "ggyae" +0xaea1: "ggyaeg" +0xaea2: "ggyaegg" +0xaea3: "ggyaegs" +0xaea4: "ggyaen" +0xaea5: "ggyaenj" +0xaea6: "ggyaenh" +0xaea7: "ggyaed" +0xaea8: "ggyael" +0xaea9: "ggyaelg" +0xaeaa: "ggyaelm" +0xaeab: "ggyaelb" +0xaeac: "ggyaels" +0xaead: "ggyaelt" +0xaeae: "ggyaelp" +0xaeaf: "ggyaelh" +0xaeb0: "ggyaem" +0xaeb1: "ggyaeb" +0xaeb2: "ggyaebs" +0xaeb3: "ggyaes" +0xaeb4: "ggyaess" +0xaeb5: "ggyaeng" +0xaeb6: "ggyaej" +0xaeb7: "ggyaec" +0xaeb8: "ggyaek" +0xaeb9: "ggyaet" +0xaeba: "ggyaep" +0xaebb: "ggyaeh" +0xaebc: "ggeo" +0xaebd: "ggeog" +0xaebe: "ggeogg" +0xaebf: "ggeogs" +0xaec0: "ggeon" +0xaec1: "ggeonj" +0xaec2: "ggeonh" +0xaec3: "ggeod" +0xaec4: "ggeol" +0xaec5: "ggeolg" +0xaec6: "ggeolm" +0xaec7: "ggeolb" +0xaec8: "ggeols" +0xaec9: "ggeolt" +0xaeca: "ggeolp" +0xaecb: "ggeolh" +0xaecc: "ggeom" +0xaecd: "ggeob" +0xaece: "ggeobs" +0xaecf: "ggeos" +0xaed0: "ggeoss" +0xaed1: "ggeong" +0xaed2: "ggeoj" +0xaed3: "ggeoc" +0xaed4: "ggeok" +0xaed5: "ggeot" +0xaed6: "ggeop" +0xaed7: "ggeoh" +0xaed8: "gge" +0xaed9: "ggeg" +0xaeda: "ggegg" +0xaedb: "ggegs" +0xaedc: "ggen" +0xaedd: "ggenj" +0xaede: "ggenh" +0xaedf: "gged" +0xaee0: "ggel" +0xaee1: "ggelg" +0xaee2: "ggelm" +0xaee3: "ggelb" +0xaee4: "ggels" +0xaee5: "ggelt" +0xaee6: "ggelp" +0xaee7: "ggelh" +0xaee8: "ggem" +0xaee9: "ggeb" +0xaeea: "ggebs" +0xaeeb: "gges" +0xaeec: "ggess" +0xaeed: "ggeng" +0xaeee: "ggej" +0xaeef: "ggec" +0xaef0: "ggek" +0xaef1: "gget" +0xaef2: "ggep" +0xaef3: "ggeh" +0xaef4: "ggyeo" +0xaef5: "ggyeog" +0xaef6: "ggyeogg" +0xaef7: "ggyeogs" +0xaef8: "ggyeon" +0xaef9: "ggyeonj" +0xaefa: "ggyeonh" +0xaefb: "ggyeod" +0xaefc: "ggyeol" +0xaefd: "ggyeolg" +0xaefe: "ggyeolm" +0xaeff: "ggyeolb" +/* x0af */ +0xaf00: "ggyeols" +0xaf01: "ggyeolt" +0xaf02: "ggyeolp" +0xaf03: "ggyeolh" +0xaf04: "ggyeom" +0xaf05: "ggyeob" +0xaf06: "ggyeobs" +0xaf07: "ggyeos" +0xaf08: "ggyeoss" +0xaf09: "ggyeong" +0xaf0a: "ggyeoj" +0xaf0b: "ggyeoc" +0xaf0c: "ggyeok" +0xaf0d: "ggyeot" +0xaf0e: "ggyeop" +0xaf0f: "ggyeoh" +0xaf10: "ggye" +0xaf11: "ggyeg" +0xaf12: "ggyegg" +0xaf13: "ggyegs" +0xaf14: "ggyen" +0xaf15: "ggyenj" +0xaf16: "ggyenh" +0xaf17: "ggyed" +0xaf18: "ggyel" +0xaf19: "ggyelg" +0xaf1a: "ggyelm" +0xaf1b: "ggyelb" +0xaf1c: "ggyels" +0xaf1d: "ggyelt" +0xaf1e: "ggyelp" +0xaf1f: "ggyelh" +0xaf20: "ggyem" +0xaf21: "ggyeb" +0xaf22: "ggyebs" +0xaf23: "ggyes" +0xaf24: "ggyess" +0xaf25: "ggyeng" +0xaf26: "ggyej" +0xaf27: "ggyec" +0xaf28: "ggyek" +0xaf29: "ggyet" +0xaf2a: "ggyep" +0xaf2b: "ggyeh" +0xaf2c: "ggo" +0xaf2d: "ggog" +0xaf2e: "ggogg" +0xaf2f: "ggogs" +0xaf30: "ggon" +0xaf31: "ggonj" +0xaf32: "ggonh" +0xaf33: "ggod" +0xaf34: "ggol" +0xaf35: "ggolg" +0xaf36: "ggolm" +0xaf37: "ggolb" +0xaf38: "ggols" +0xaf39: "ggolt" +0xaf3a: "ggolp" +0xaf3b: "ggolh" +0xaf3c: "ggom" +0xaf3d: "ggob" +0xaf3e: "ggobs" +0xaf3f: "ggos" +0xaf40: "ggoss" +0xaf41: "ggong" +0xaf42: "ggoj" +0xaf43: "ggoc" +0xaf44: "ggok" +0xaf45: "ggot" +0xaf46: "ggop" +0xaf47: "ggoh" +0xaf48: "ggwa" +0xaf49: "ggwag" +0xaf4a: "ggwagg" +0xaf4b: "ggwags" +0xaf4c: "ggwan" +0xaf4d: "ggwanj" +0xaf4e: "ggwanh" +0xaf4f: "ggwad" +0xaf50: "ggwal" +0xaf51: "ggwalg" +0xaf52: "ggwalm" +0xaf53: "ggwalb" +0xaf54: "ggwals" +0xaf55: "ggwalt" +0xaf56: "ggwalp" +0xaf57: "ggwalh" +0xaf58: "ggwam" +0xaf59: "ggwab" +0xaf5a: "ggwabs" +0xaf5b: "ggwas" +0xaf5c: "ggwass" +0xaf5d: "ggwang" +0xaf5e: "ggwaj" +0xaf5f: "ggwac" +0xaf60: "ggwak" +0xaf61: "ggwat" +0xaf62: "ggwap" +0xaf63: "ggwah" +0xaf64: "ggwae" +0xaf65: "ggwaeg" +0xaf66: "ggwaegg" +0xaf67: "ggwaegs" +0xaf68: "ggwaen" +0xaf69: "ggwaenj" +0xaf6a: "ggwaenh" +0xaf6b: "ggwaed" +0xaf6c: "ggwael" +0xaf6d: "ggwaelg" +0xaf6e: "ggwaelm" +0xaf6f: "ggwaelb" +0xaf70: "ggwaels" +0xaf71: "ggwaelt" +0xaf72: "ggwaelp" +0xaf73: "ggwaelh" +0xaf74: "ggwaem" +0xaf75: "ggwaeb" +0xaf76: "ggwaebs" +0xaf77: "ggwaes" +0xaf78: "ggwaess" +0xaf79: "ggwaeng" +0xaf7a: "ggwaej" +0xaf7b: "ggwaec" +0xaf7c: "ggwaek" +0xaf7d: "ggwaet" +0xaf7e: "ggwaep" +0xaf7f: "ggwaeh" +0xaf80: "ggoe" +0xaf81: "ggoeg" +0xaf82: "ggoegg" +0xaf83: "ggoegs" +0xaf84: "ggoen" +0xaf85: "ggoenj" +0xaf86: "ggoenh" +0xaf87: "ggoed" +0xaf88: "ggoel" +0xaf89: "ggoelg" +0xaf8a: "ggoelm" +0xaf8b: "ggoelb" +0xaf8c: "ggoels" +0xaf8d: "ggoelt" +0xaf8e: "ggoelp" +0xaf8f: "ggoelh" +0xaf90: "ggoem" +0xaf91: "ggoeb" +0xaf92: "ggoebs" +0xaf93: "ggoes" +0xaf94: "ggoess" +0xaf95: "ggoeng" +0xaf96: "ggoej" +0xaf97: "ggoec" +0xaf98: "ggoek" +0xaf99: "ggoet" +0xaf9a: "ggoep" +0xaf9b: "ggoeh" +0xaf9c: "ggyo" +0xaf9d: "ggyog" +0xaf9e: "ggyogg" +0xaf9f: "ggyogs" +0xafa0: "ggyon" +0xafa1: "ggyonj" +0xafa2: "ggyonh" +0xafa3: "ggyod" +0xafa4: "ggyol" +0xafa5: "ggyolg" +0xafa6: "ggyolm" +0xafa7: "ggyolb" +0xafa8: "ggyols" +0xafa9: "ggyolt" +0xafaa: "ggyolp" +0xafab: "ggyolh" +0xafac: "ggyom" +0xafad: "ggyob" +0xafae: "ggyobs" +0xafaf: "ggyos" +0xafb0: "ggyoss" +0xafb1: "ggyong" +0xafb2: "ggyoj" +0xafb3: "ggyoc" +0xafb4: "ggyok" +0xafb5: "ggyot" +0xafb6: "ggyop" +0xafb7: "ggyoh" +0xafb8: "ggu" +0xafb9: "ggug" +0xafba: "ggugg" +0xafbb: "ggugs" +0xafbc: "ggun" +0xafbd: "ggunj" +0xafbe: "ggunh" +0xafbf: "ggud" +0xafc0: "ggul" +0xafc1: "ggulg" +0xafc2: "ggulm" +0xafc3: "ggulb" +0xafc4: "gguls" +0xafc5: "ggult" +0xafc6: "ggulp" +0xafc7: "ggulh" +0xafc8: "ggum" +0xafc9: "ggub" +0xafca: "ggubs" +0xafcb: "ggus" +0xafcc: "gguss" +0xafcd: "ggung" +0xafce: "gguj" +0xafcf: "gguc" +0xafd0: "gguk" +0xafd1: "ggut" +0xafd2: "ggup" +0xafd3: "gguh" +0xafd4: "ggweo" +0xafd5: "ggweog" +0xafd6: "ggweogg" +0xafd7: "ggweogs" +0xafd8: "ggweon" +0xafd9: "ggweonj" +0xafda: "ggweonh" +0xafdb: "ggweod" +0xafdc: "ggweol" +0xafdd: "ggweolg" +0xafde: "ggweolm" +0xafdf: "ggweolb" +0xafe0: "ggweols" +0xafe1: "ggweolt" +0xafe2: "ggweolp" +0xafe3: "ggweolh" +0xafe4: "ggweom" +0xafe5: "ggweob" +0xafe6: "ggweobs" +0xafe7: "ggweos" +0xafe8: "ggweoss" +0xafe9: "ggweong" +0xafea: "ggweoj" +0xafeb: "ggweoc" +0xafec: "ggweok" +0xafed: "ggweot" +0xafee: "ggweop" +0xafef: "ggweoh" +0xaff0: "ggwe" +0xaff1: "ggweg" +0xaff2: "ggwegg" +0xaff3: "ggwegs" +0xaff4: "ggwen" +0xaff5: "ggwenj" +0xaff6: "ggwenh" +0xaff7: "ggwed" +0xaff8: "ggwel" +0xaff9: "ggwelg" +0xaffa: "ggwelm" +0xaffb: "ggwelb" +0xaffc: "ggwels" +0xaffd: "ggwelt" +0xaffe: "ggwelp" +0xafff: "ggwelh" +/* x0b0 */ +0xb000: "ggwem" +0xb001: "ggweb" +0xb002: "ggwebs" +0xb003: "ggwes" +0xb004: "ggwess" +0xb005: "ggweng" +0xb006: "ggwej" +0xb007: "ggwec" +0xb008: "ggwek" +0xb009: "ggwet" +0xb00a: "ggwep" +0xb00b: "ggweh" +0xb00c: "ggwi" +0xb00d: "ggwig" +0xb00e: "ggwigg" +0xb00f: "ggwigs" +0xb010: "ggwin" +0xb011: "ggwinj" +0xb012: "ggwinh" +0xb013: "ggwid" +0xb014: "ggwil" +0xb015: "ggwilg" +0xb016: "ggwilm" +0xb017: "ggwilb" +0xb018: "ggwils" +0xb019: "ggwilt" +0xb01a: "ggwilp" +0xb01b: "ggwilh" +0xb01c: "ggwim" +0xb01d: "ggwib" +0xb01e: "ggwibs" +0xb01f: "ggwis" +0xb020: "ggwiss" +0xb021: "ggwing" +0xb022: "ggwij" +0xb023: "ggwic" +0xb024: "ggwik" +0xb025: "ggwit" +0xb026: "ggwip" +0xb027: "ggwih" +0xb028: "ggyu" +0xb029: "ggyug" +0xb02a: "ggyugg" +0xb02b: "ggyugs" +0xb02c: "ggyun" +0xb02d: "ggyunj" +0xb02e: "ggyunh" +0xb02f: "ggyud" +0xb030: "ggyul" +0xb031: "ggyulg" +0xb032: "ggyulm" +0xb033: "ggyulb" +0xb034: "ggyuls" +0xb035: "ggyult" +0xb036: "ggyulp" +0xb037: "ggyulh" +0xb038: "ggyum" +0xb039: "ggyub" +0xb03a: "ggyubs" +0xb03b: "ggyus" +0xb03c: "ggyuss" +0xb03d: "ggyung" +0xb03e: "ggyuj" +0xb03f: "ggyuc" +0xb040: "ggyuk" +0xb041: "ggyut" +0xb042: "ggyup" +0xb043: "ggyuh" +0xb044: "ggeu" +0xb045: "ggeug" +0xb046: "ggeugg" +0xb047: "ggeugs" +0xb048: "ggeun" +0xb049: "ggeunj" +0xb04a: "ggeunh" +0xb04b: "ggeud" +0xb04c: "ggeul" +0xb04d: "ggeulg" +0xb04e: "ggeulm" +0xb04f: "ggeulb" +0xb050: "ggeuls" +0xb051: "ggeult" +0xb052: "ggeulp" +0xb053: "ggeulh" +0xb054: "ggeum" +0xb055: "ggeub" +0xb056: "ggeubs" +0xb057: "ggeus" +0xb058: "ggeuss" +0xb059: "ggeung" +0xb05a: "ggeuj" +0xb05b: "ggeuc" +0xb05c: "ggeuk" +0xb05d: "ggeut" +0xb05e: "ggeup" +0xb05f: "ggeuh" +0xb060: "ggyi" +0xb061: "ggyig" +0xb062: "ggyigg" +0xb063: "ggyigs" +0xb064: "ggyin" +0xb065: "ggyinj" +0xb066: "ggyinh" +0xb067: "ggyid" +0xb068: "ggyil" +0xb069: "ggyilg" +0xb06a: "ggyilm" +0xb06b: "ggyilb" +0xb06c: "ggyils" +0xb06d: "ggyilt" +0xb06e: "ggyilp" +0xb06f: "ggyilh" +0xb070: "ggyim" +0xb071: "ggyib" +0xb072: "ggyibs" +0xb073: "ggyis" +0xb074: "ggyiss" +0xb075: "ggying" +0xb076: "ggyij" +0xb077: "ggyic" +0xb078: "ggyik" +0xb079: "ggyit" +0xb07a: "ggyip" +0xb07b: "ggyih" +0xb07c: "ggi" +0xb07d: "ggig" +0xb07e: "ggigg" +0xb07f: "ggigs" +0xb080: "ggin" +0xb081: "gginj" +0xb082: "gginh" +0xb083: "ggid" +0xb084: "ggil" +0xb085: "ggilg" +0xb086: "ggilm" +0xb087: "ggilb" +0xb088: "ggils" +0xb089: "ggilt" +0xb08a: "ggilp" +0xb08b: "ggilh" +0xb08c: "ggim" +0xb08d: "ggib" +0xb08e: "ggibs" +0xb08f: "ggis" +0xb090: "ggiss" +0xb091: "gging" +0xb092: "ggij" +0xb093: "ggic" +0xb094: "ggik" +0xb095: "ggit" +0xb096: "ggip" +0xb097: "ggih" +0xb098: "na" +0xb099: "nag" +0xb09a: "nagg" +0xb09b: "nags" +0xb09c: "nan" +0xb09d: "nanj" +0xb09e: "nanh" +0xb09f: "nad" +0xb0a0: "nal" +0xb0a1: "nalg" +0xb0a2: "nalm" +0xb0a3: "nalb" +0xb0a4: "nals" +0xb0a5: "nalt" +0xb0a6: "nalp" +0xb0a7: "nalh" +0xb0a8: "nam" +0xb0a9: "nab" +0xb0aa: "nabs" +0xb0ab: "nas" +0xb0ac: "nass" +0xb0ad: "nang" +0xb0ae: "naj" +0xb0af: "nac" +0xb0b0: "nak" +0xb0b1: "nat" +0xb0b2: "nap" +0xb0b3: "nah" +0xb0b4: "nae" +0xb0b5: "naeg" +0xb0b6: "naegg" +0xb0b7: "naegs" +0xb0b8: "naen" +0xb0b9: "naenj" +0xb0ba: "naenh" +0xb0bb: "naed" +0xb0bc: "nael" +0xb0bd: "naelg" +0xb0be: "naelm" +0xb0bf: "naelb" +0xb0c0: "naels" +0xb0c1: "naelt" +0xb0c2: "naelp" +0xb0c3: "naelh" +0xb0c4: "naem" +0xb0c5: "naeb" +0xb0c6: "naebs" +0xb0c7: "naes" +0xb0c8: "naess" +0xb0c9: "naeng" +0xb0ca: "naej" +0xb0cb: "naec" +0xb0cc: "naek" +0xb0cd: "naet" +0xb0ce: "naep" +0xb0cf: "naeh" +0xb0d0: "nya" +0xb0d1: "nyag" +0xb0d2: "nyagg" +0xb0d3: "nyags" +0xb0d4: "nyan" +0xb0d5: "nyanj" +0xb0d6: "nyanh" +0xb0d7: "nyad" +0xb0d8: "nyal" +0xb0d9: "nyalg" +0xb0da: "nyalm" +0xb0db: "nyalb" +0xb0dc: "nyals" +0xb0dd: "nyalt" +0xb0de: "nyalp" +0xb0df: "nyalh" +0xb0e0: "nyam" +0xb0e1: "nyab" +0xb0e2: "nyabs" +0xb0e3: "nyas" +0xb0e4: "nyass" +0xb0e5: "nyang" +0xb0e6: "nyaj" +0xb0e7: "nyac" +0xb0e8: "nyak" +0xb0e9: "nyat" +0xb0ea: "nyap" +0xb0eb: "nyah" +0xb0ec: "nyae" +0xb0ed: "nyaeg" +0xb0ee: "nyaegg" +0xb0ef: "nyaegs" +0xb0f0: "nyaen" +0xb0f1: "nyaenj" +0xb0f2: "nyaenh" +0xb0f3: "nyaed" +0xb0f4: "nyael" +0xb0f5: "nyaelg" +0xb0f6: "nyaelm" +0xb0f7: "nyaelb" +0xb0f8: "nyaels" +0xb0f9: "nyaelt" +0xb0fa: "nyaelp" +0xb0fb: "nyaelh" +0xb0fc: "nyaem" +0xb0fd: "nyaeb" +0xb0fe: "nyaebs" +0xb0ff: "nyaes" +/* x0b1 */ +0xb100: "nyaess" +0xb101: "nyaeng" +0xb102: "nyaej" +0xb103: "nyaec" +0xb104: "nyaek" +0xb105: "nyaet" +0xb106: "nyaep" +0xb107: "nyaeh" +0xb108: "neo" +0xb109: "neog" +0xb10a: "neogg" +0xb10b: "neogs" +0xb10c: "neon" +0xb10d: "neonj" +0xb10e: "neonh" +0xb10f: "neod" +0xb110: "neol" +0xb111: "neolg" +0xb112: "neolm" +0xb113: "neolb" +0xb114: "neols" +0xb115: "neolt" +0xb116: "neolp" +0xb117: "neolh" +0xb118: "neom" +0xb119: "neob" +0xb11a: "neobs" +0xb11b: "neos" +0xb11c: "neoss" +0xb11d: "neong" +0xb11e: "neoj" +0xb11f: "neoc" +0xb120: "neok" +0xb121: "neot" +0xb122: "neop" +0xb123: "neoh" +0xb124: "ne" +0xb125: "neg" +0xb126: "negg" +0xb127: "negs" +0xb128: "nen" +0xb129: "nenj" +0xb12a: "nenh" +0xb12b: "ned" +0xb12c: "nel" +0xb12d: "nelg" +0xb12e: "nelm" +0xb12f: "nelb" +0xb130: "nels" +0xb131: "nelt" +0xb132: "nelp" +0xb133: "nelh" +0xb134: "nem" +0xb135: "neb" +0xb136: "nebs" +0xb137: "nes" +0xb138: "ness" +0xb139: "neng" +0xb13a: "nej" +0xb13b: "nec" +0xb13c: "nek" +0xb13d: "net" +0xb13e: "nep" +0xb13f: "neh" +0xb140: "nyeo" +0xb141: "nyeog" +0xb142: "nyeogg" +0xb143: "nyeogs" +0xb144: "nyeon" +0xb145: "nyeonj" +0xb146: "nyeonh" +0xb147: "nyeod" +0xb148: "nyeol" +0xb149: "nyeolg" +0xb14a: "nyeolm" +0xb14b: "nyeolb" +0xb14c: "nyeols" +0xb14d: "nyeolt" +0xb14e: "nyeolp" +0xb14f: "nyeolh" +0xb150: "nyeom" +0xb151: "nyeob" +0xb152: "nyeobs" +0xb153: "nyeos" +0xb154: "nyeoss" +0xb155: "nyeong" +0xb156: "nyeoj" +0xb157: "nyeoc" +0xb158: "nyeok" +0xb159: "nyeot" +0xb15a: "nyeop" +0xb15b: "nyeoh" +0xb15c: "nye" +0xb15d: "nyeg" +0xb15e: "nyegg" +0xb15f: "nyegs" +0xb160: "nyen" +0xb161: "nyenj" +0xb162: "nyenh" +0xb163: "nyed" +0xb164: "nyel" +0xb165: "nyelg" +0xb166: "nyelm" +0xb167: "nyelb" +0xb168: "nyels" +0xb169: "nyelt" +0xb16a: "nyelp" +0xb16b: "nyelh" +0xb16c: "nyem" +0xb16d: "nyeb" +0xb16e: "nyebs" +0xb16f: "nyes" +0xb170: "nyess" +0xb171: "nyeng" +0xb172: "nyej" +0xb173: "nyec" +0xb174: "nyek" +0xb175: "nyet" +0xb176: "nyep" +0xb177: "nyeh" +0xb178: "no" +0xb179: "nog" +0xb17a: "nogg" +0xb17b: "nogs" +0xb17c: "non" +0xb17d: "nonj" +0xb17e: "nonh" +0xb17f: "nod" +0xb180: "nol" +0xb181: "nolg" +0xb182: "nolm" +0xb183: "nolb" +0xb184: "nols" +0xb185: "nolt" +0xb186: "nolp" +0xb187: "nolh" +0xb188: "nom" +0xb189: "nob" +0xb18a: "nobs" +0xb18b: "nos" +0xb18c: "noss" +0xb18d: "nong" +0xb18e: "noj" +0xb18f: "noc" +0xb190: "nok" +0xb191: "not" +0xb192: "nop" +0xb193: "noh" +0xb194: "nwa" +0xb195: "nwag" +0xb196: "nwagg" +0xb197: "nwags" +0xb198: "nwan" +0xb199: "nwanj" +0xb19a: "nwanh" +0xb19b: "nwad" +0xb19c: "nwal" +0xb19d: "nwalg" +0xb19e: "nwalm" +0xb19f: "nwalb" +0xb1a0: "nwals" +0xb1a1: "nwalt" +0xb1a2: "nwalp" +0xb1a3: "nwalh" +0xb1a4: "nwam" +0xb1a5: "nwab" +0xb1a6: "nwabs" +0xb1a7: "nwas" +0xb1a8: "nwass" +0xb1a9: "nwang" +0xb1aa: "nwaj" +0xb1ab: "nwac" +0xb1ac: "nwak" +0xb1ad: "nwat" +0xb1ae: "nwap" +0xb1af: "nwah" +0xb1b0: "nwae" +0xb1b1: "nwaeg" +0xb1b2: "nwaegg" +0xb1b3: "nwaegs" +0xb1b4: "nwaen" +0xb1b5: "nwaenj" +0xb1b6: "nwaenh" +0xb1b7: "nwaed" +0xb1b8: "nwael" +0xb1b9: "nwaelg" +0xb1ba: "nwaelm" +0xb1bb: "nwaelb" +0xb1bc: "nwaels" +0xb1bd: "nwaelt" +0xb1be: "nwaelp" +0xb1bf: "nwaelh" +0xb1c0: "nwaem" +0xb1c1: "nwaeb" +0xb1c2: "nwaebs" +0xb1c3: "nwaes" +0xb1c4: "nwaess" +0xb1c5: "nwaeng" +0xb1c6: "nwaej" +0xb1c7: "nwaec" +0xb1c8: "nwaek" +0xb1c9: "nwaet" +0xb1ca: "nwaep" +0xb1cb: "nwaeh" +0xb1cc: "noe" +0xb1cd: "noeg" +0xb1ce: "noegg" +0xb1cf: "noegs" +0xb1d0: "noen" +0xb1d1: "noenj" +0xb1d2: "noenh" +0xb1d3: "noed" +0xb1d4: "noel" +0xb1d5: "noelg" +0xb1d6: "noelm" +0xb1d7: "noelb" +0xb1d8: "noels" +0xb1d9: "noelt" +0xb1da: "noelp" +0xb1db: "noelh" +0xb1dc: "noem" +0xb1dd: "noeb" +0xb1de: "noebs" +0xb1df: "noes" +0xb1e0: "noess" +0xb1e1: "noeng" +0xb1e2: "noej" +0xb1e3: "noec" +0xb1e4: "noek" +0xb1e5: "noet" +0xb1e6: "noep" +0xb1e7: "noeh" +0xb1e8: "nyo" +0xb1e9: "nyog" +0xb1ea: "nyogg" +0xb1eb: "nyogs" +0xb1ec: "nyon" +0xb1ed: "nyonj" +0xb1ee: "nyonh" +0xb1ef: "nyod" +0xb1f0: "nyol" +0xb1f1: "nyolg" +0xb1f2: "nyolm" +0xb1f3: "nyolb" +0xb1f4: "nyols" +0xb1f5: "nyolt" +0xb1f6: "nyolp" +0xb1f7: "nyolh" +0xb1f8: "nyom" +0xb1f9: "nyob" +0xb1fa: "nyobs" +0xb1fb: "nyos" +0xb1fc: "nyoss" +0xb1fd: "nyong" +0xb1fe: "nyoj" +0xb1ff: "nyoc" +/* x0b2 */ +0xb200: "nyok" +0xb201: "nyot" +0xb202: "nyop" +0xb203: "nyoh" +0xb204: "nu" +0xb205: "nug" +0xb206: "nugg" +0xb207: "nugs" +0xb208: "nun" +0xb209: "nunj" +0xb20a: "nunh" +0xb20b: "nud" +0xb20c: "nul" +0xb20d: "nulg" +0xb20e: "nulm" +0xb20f: "nulb" +0xb210: "nuls" +0xb211: "nult" +0xb212: "nulp" +0xb213: "nulh" +0xb214: "num" +0xb215: "nub" +0xb216: "nubs" +0xb217: "nus" +0xb218: "nuss" +0xb219: "nung" +0xb21a: "nuj" +0xb21b: "nuc" +0xb21c: "nuk" +0xb21d: "nut" +0xb21e: "nup" +0xb21f: "nuh" +0xb220: "nweo" +0xb221: "nweog" +0xb222: "nweogg" +0xb223: "nweogs" +0xb224: "nweon" +0xb225: "nweonj" +0xb226: "nweonh" +0xb227: "nweod" +0xb228: "nweol" +0xb229: "nweolg" +0xb22a: "nweolm" +0xb22b: "nweolb" +0xb22c: "nweols" +0xb22d: "nweolt" +0xb22e: "nweolp" +0xb22f: "nweolh" +0xb230: "nweom" +0xb231: "nweob" +0xb232: "nweobs" +0xb233: "nweos" +0xb234: "nweoss" +0xb235: "nweong" +0xb236: "nweoj" +0xb237: "nweoc" +0xb238: "nweok" +0xb239: "nweot" +0xb23a: "nweop" +0xb23b: "nweoh" +0xb23c: "nwe" +0xb23d: "nweg" +0xb23e: "nwegg" +0xb23f: "nwegs" +0xb240: "nwen" +0xb241: "nwenj" +0xb242: "nwenh" +0xb243: "nwed" +0xb244: "nwel" +0xb245: "nwelg" +0xb246: "nwelm" +0xb247: "nwelb" +0xb248: "nwels" +0xb249: "nwelt" +0xb24a: "nwelp" +0xb24b: "nwelh" +0xb24c: "nwem" +0xb24d: "nweb" +0xb24e: "nwebs" +0xb24f: "nwes" +0xb250: "nwess" +0xb251: "nweng" +0xb252: "nwej" +0xb253: "nwec" +0xb254: "nwek" +0xb255: "nwet" +0xb256: "nwep" +0xb257: "nweh" +0xb258: "nwi" +0xb259: "nwig" +0xb25a: "nwigg" +0xb25b: "nwigs" +0xb25c: "nwin" +0xb25d: "nwinj" +0xb25e: "nwinh" +0xb25f: "nwid" +0xb260: "nwil" +0xb261: "nwilg" +0xb262: "nwilm" +0xb263: "nwilb" +0xb264: "nwils" +0xb265: "nwilt" +0xb266: "nwilp" +0xb267: "nwilh" +0xb268: "nwim" +0xb269: "nwib" +0xb26a: "nwibs" +0xb26b: "nwis" +0xb26c: "nwiss" +0xb26d: "nwing" +0xb26e: "nwij" +0xb26f: "nwic" +0xb270: "nwik" +0xb271: "nwit" +0xb272: "nwip" +0xb273: "nwih" +0xb274: "nyu" +0xb275: "nyug" +0xb276: "nyugg" +0xb277: "nyugs" +0xb278: "nyun" +0xb279: "nyunj" +0xb27a: "nyunh" +0xb27b: "nyud" +0xb27c: "nyul" +0xb27d: "nyulg" +0xb27e: "nyulm" +0xb27f: "nyulb" +0xb280: "nyuls" +0xb281: "nyult" +0xb282: "nyulp" +0xb283: "nyulh" +0xb284: "nyum" +0xb285: "nyub" +0xb286: "nyubs" +0xb287: "nyus" +0xb288: "nyuss" +0xb289: "nyung" +0xb28a: "nyuj" +0xb28b: "nyuc" +0xb28c: "nyuk" +0xb28d: "nyut" +0xb28e: "nyup" +0xb28f: "nyuh" +0xb290: "neu" +0xb291: "neug" +0xb292: "neugg" +0xb293: "neugs" +0xb294: "neun" +0xb295: "neunj" +0xb296: "neunh" +0xb297: "neud" +0xb298: "neul" +0xb299: "neulg" +0xb29a: "neulm" +0xb29b: "neulb" +0xb29c: "neuls" +0xb29d: "neult" +0xb29e: "neulp" +0xb29f: "neulh" +0xb2a0: "neum" +0xb2a1: "neub" +0xb2a2: "neubs" +0xb2a3: "neus" +0xb2a4: "neuss" +0xb2a5: "neung" +0xb2a6: "neuj" +0xb2a7: "neuc" +0xb2a8: "neuk" +0xb2a9: "neut" +0xb2aa: "neup" +0xb2ab: "neuh" +0xb2ac: "nyi" +0xb2ad: "nyig" +0xb2ae: "nyigg" +0xb2af: "nyigs" +0xb2b0: "nyin" +0xb2b1: "nyinj" +0xb2b2: "nyinh" +0xb2b3: "nyid" +0xb2b4: "nyil" +0xb2b5: "nyilg" +0xb2b6: "nyilm" +0xb2b7: "nyilb" +0xb2b8: "nyils" +0xb2b9: "nyilt" +0xb2ba: "nyilp" +0xb2bb: "nyilh" +0xb2bc: "nyim" +0xb2bd: "nyib" +0xb2be: "nyibs" +0xb2bf: "nyis" +0xb2c0: "nyiss" +0xb2c1: "nying" +0xb2c2: "nyij" +0xb2c3: "nyic" +0xb2c4: "nyik" +0xb2c5: "nyit" +0xb2c6: "nyip" +0xb2c7: "nyih" +0xb2c8: "ni" +0xb2c9: "nig" +0xb2ca: "nigg" +0xb2cb: "nigs" +0xb2cc: "nin" +0xb2cd: "ninj" +0xb2ce: "ninh" +0xb2cf: "nid" +0xb2d0: "nil" +0xb2d1: "nilg" +0xb2d2: "nilm" +0xb2d3: "nilb" +0xb2d4: "nils" +0xb2d5: "nilt" +0xb2d6: "nilp" +0xb2d7: "nilh" +0xb2d8: "nim" +0xb2d9: "nib" +0xb2da: "nibs" +0xb2db: "nis" +0xb2dc: "niss" +0xb2dd: "ning" +0xb2de: "nij" +0xb2df: "nic" +0xb2e0: "nik" +0xb2e1: "nit" +0xb2e2: "nip" +0xb2e3: "nih" +0xb2e4: "da" +0xb2e5: "dag" +0xb2e6: "dagg" +0xb2e7: "dags" +0xb2e8: "dan" +0xb2e9: "danj" +0xb2ea: "danh" +0xb2eb: "dad" +0xb2ec: "dal" +0xb2ed: "dalg" +0xb2ee: "dalm" +0xb2ef: "dalb" +0xb2f0: "dals" +0xb2f1: "dalt" +0xb2f2: "dalp" +0xb2f3: "dalh" +0xb2f4: "dam" +0xb2f5: "dab" +0xb2f6: "dabs" +0xb2f7: "das" +0xb2f8: "dass" +0xb2f9: "dang" +0xb2fa: "daj" +0xb2fb: "dac" +0xb2fc: "dak" +0xb2fd: "dat" +0xb2fe: "dap" +0xb2ff: "dah" +/* x0b3 */ +0xb300: "dae" +0xb301: "daeg" +0xb302: "daegg" +0xb303: "daegs" +0xb304: "daen" +0xb305: "daenj" +0xb306: "daenh" +0xb307: "daed" +0xb308: "dael" +0xb309: "daelg" +0xb30a: "daelm" +0xb30b: "daelb" +0xb30c: "daels" +0xb30d: "daelt" +0xb30e: "daelp" +0xb30f: "daelh" +0xb310: "daem" +0xb311: "daeb" +0xb312: "daebs" +0xb313: "daes" +0xb314: "daess" +0xb315: "daeng" +0xb316: "daej" +0xb317: "daec" +0xb318: "daek" +0xb319: "daet" +0xb31a: "daep" +0xb31b: "daeh" +0xb31c: "dya" +0xb31d: "dyag" +0xb31e: "dyagg" +0xb31f: "dyags" +0xb320: "dyan" +0xb321: "dyanj" +0xb322: "dyanh" +0xb323: "dyad" +0xb324: "dyal" +0xb325: "dyalg" +0xb326: "dyalm" +0xb327: "dyalb" +0xb328: "dyals" +0xb329: "dyalt" +0xb32a: "dyalp" +0xb32b: "dyalh" +0xb32c: "dyam" +0xb32d: "dyab" +0xb32e: "dyabs" +0xb32f: "dyas" +0xb330: "dyass" +0xb331: "dyang" +0xb332: "dyaj" +0xb333: "dyac" +0xb334: "dyak" +0xb335: "dyat" +0xb336: "dyap" +0xb337: "dyah" +0xb338: "dyae" +0xb339: "dyaeg" +0xb33a: "dyaegg" +0xb33b: "dyaegs" +0xb33c: "dyaen" +0xb33d: "dyaenj" +0xb33e: "dyaenh" +0xb33f: "dyaed" +0xb340: "dyael" +0xb341: "dyaelg" +0xb342: "dyaelm" +0xb343: "dyaelb" +0xb344: "dyaels" +0xb345: "dyaelt" +0xb346: "dyaelp" +0xb347: "dyaelh" +0xb348: "dyaem" +0xb349: "dyaeb" +0xb34a: "dyaebs" +0xb34b: "dyaes" +0xb34c: "dyaess" +0xb34d: "dyaeng" +0xb34e: "dyaej" +0xb34f: "dyaec" +0xb350: "dyaek" +0xb351: "dyaet" +0xb352: "dyaep" +0xb353: "dyaeh" +0xb354: "deo" +0xb355: "deog" +0xb356: "deogg" +0xb357: "deogs" +0xb358: "deon" +0xb359: "deonj" +0xb35a: "deonh" +0xb35b: "deod" +0xb35c: "deol" +0xb35d: "deolg" +0xb35e: "deolm" +0xb35f: "deolb" +0xb360: "deols" +0xb361: "deolt" +0xb362: "deolp" +0xb363: "deolh" +0xb364: "deom" +0xb365: "deob" +0xb366: "deobs" +0xb367: "deos" +0xb368: "deoss" +0xb369: "deong" +0xb36a: "deoj" +0xb36b: "deoc" +0xb36c: "deok" +0xb36d: "deot" +0xb36e: "deop" +0xb36f: "deoh" +0xb370: "de" +0xb371: "deg" +0xb372: "degg" +0xb373: "degs" +0xb374: "den" +0xb375: "denj" +0xb376: "denh" +0xb377: "ded" +0xb378: "del" +0xb379: "delg" +0xb37a: "delm" +0xb37b: "delb" +0xb37c: "dels" +0xb37d: "delt" +0xb37e: "delp" +0xb37f: "delh" +0xb380: "dem" +0xb381: "deb" +0xb382: "debs" +0xb383: "des" +0xb384: "dess" +0xb385: "deng" +0xb386: "dej" +0xb387: "dec" +0xb388: "dek" +0xb389: "det" +0xb38a: "dep" +0xb38b: "deh" +0xb38c: "dyeo" +0xb38d: "dyeog" +0xb38e: "dyeogg" +0xb38f: "dyeogs" +0xb390: "dyeon" +0xb391: "dyeonj" +0xb392: "dyeonh" +0xb393: "dyeod" +0xb394: "dyeol" +0xb395: "dyeolg" +0xb396: "dyeolm" +0xb397: "dyeolb" +0xb398: "dyeols" +0xb399: "dyeolt" +0xb39a: "dyeolp" +0xb39b: "dyeolh" +0xb39c: "dyeom" +0xb39d: "dyeob" +0xb39e: "dyeobs" +0xb39f: "dyeos" +0xb3a0: "dyeoss" +0xb3a1: "dyeong" +0xb3a2: "dyeoj" +0xb3a3: "dyeoc" +0xb3a4: "dyeok" +0xb3a5: "dyeot" +0xb3a6: "dyeop" +0xb3a7: "dyeoh" +0xb3a8: "dye" +0xb3a9: "dyeg" +0xb3aa: "dyegg" +0xb3ab: "dyegs" +0xb3ac: "dyen" +0xb3ad: "dyenj" +0xb3ae: "dyenh" +0xb3af: "dyed" +0xb3b0: "dyel" +0xb3b1: "dyelg" +0xb3b2: "dyelm" +0xb3b3: "dyelb" +0xb3b4: "dyels" +0xb3b5: "dyelt" +0xb3b6: "dyelp" +0xb3b7: "dyelh" +0xb3b8: "dyem" +0xb3b9: "dyeb" +0xb3ba: "dyebs" +0xb3bb: "dyes" +0xb3bc: "dyess" +0xb3bd: "dyeng" +0xb3be: "dyej" +0xb3bf: "dyec" +0xb3c0: "dyek" +0xb3c1: "dyet" +0xb3c2: "dyep" +0xb3c3: "dyeh" +0xb3c4: "do" +0xb3c5: "dog" +0xb3c6: "dogg" +0xb3c7: "dogs" +0xb3c8: "don" +0xb3c9: "donj" +0xb3ca: "donh" +0xb3cb: "dod" +0xb3cc: "dol" +0xb3cd: "dolg" +0xb3ce: "dolm" +0xb3cf: "dolb" +0xb3d0: "dols" +0xb3d1: "dolt" +0xb3d2: "dolp" +0xb3d3: "dolh" +0xb3d4: "dom" +0xb3d5: "dob" +0xb3d6: "dobs" +0xb3d7: "dos" +0xb3d8: "doss" +0xb3d9: "dong" +0xb3da: "doj" +0xb3db: "doc" +0xb3dc: "dok" +0xb3dd: "dot" +0xb3de: "dop" +0xb3df: "doh" +0xb3e0: "dwa" +0xb3e1: "dwag" +0xb3e2: "dwagg" +0xb3e3: "dwags" +0xb3e4: "dwan" +0xb3e5: "dwanj" +0xb3e6: "dwanh" +0xb3e7: "dwad" +0xb3e8: "dwal" +0xb3e9: "dwalg" +0xb3ea: "dwalm" +0xb3eb: "dwalb" +0xb3ec: "dwals" +0xb3ed: "dwalt" +0xb3ee: "dwalp" +0xb3ef: "dwalh" +0xb3f0: "dwam" +0xb3f1: "dwab" +0xb3f2: "dwabs" +0xb3f3: "dwas" +0xb3f4: "dwass" +0xb3f5: "dwang" +0xb3f6: "dwaj" +0xb3f7: "dwac" +0xb3f8: "dwak" +0xb3f9: "dwat" +0xb3fa: "dwap" +0xb3fb: "dwah" +0xb3fc: "dwae" +0xb3fd: "dwaeg" +0xb3fe: "dwaegg" +0xb3ff: "dwaegs" +/* x0b4 */ +0xb400: "dwaen" +0xb401: "dwaenj" +0xb402: "dwaenh" +0xb403: "dwaed" +0xb404: "dwael" +0xb405: "dwaelg" +0xb406: "dwaelm" +0xb407: "dwaelb" +0xb408: "dwaels" +0xb409: "dwaelt" +0xb40a: "dwaelp" +0xb40b: "dwaelh" +0xb40c: "dwaem" +0xb40d: "dwaeb" +0xb40e: "dwaebs" +0xb40f: "dwaes" +0xb410: "dwaess" +0xb411: "dwaeng" +0xb412: "dwaej" +0xb413: "dwaec" +0xb414: "dwaek" +0xb415: "dwaet" +0xb416: "dwaep" +0xb417: "dwaeh" +0xb418: "doe" +0xb419: "doeg" +0xb41a: "doegg" +0xb41b: "doegs" +0xb41c: "doen" +0xb41d: "doenj" +0xb41e: "doenh" +0xb41f: "doed" +0xb420: "doel" +0xb421: "doelg" +0xb422: "doelm" +0xb423: "doelb" +0xb424: "doels" +0xb425: "doelt" +0xb426: "doelp" +0xb427: "doelh" +0xb428: "doem" +0xb429: "doeb" +0xb42a: "doebs" +0xb42b: "does" +0xb42c: "doess" +0xb42d: "doeng" +0xb42e: "doej" +0xb42f: "doec" +0xb430: "doek" +0xb431: "doet" +0xb432: "doep" +0xb433: "doeh" +0xb434: "dyo" +0xb435: "dyog" +0xb436: "dyogg" +0xb437: "dyogs" +0xb438: "dyon" +0xb439: "dyonj" +0xb43a: "dyonh" +0xb43b: "dyod" +0xb43c: "dyol" +0xb43d: "dyolg" +0xb43e: "dyolm" +0xb43f: "dyolb" +0xb440: "dyols" +0xb441: "dyolt" +0xb442: "dyolp" +0xb443: "dyolh" +0xb444: "dyom" +0xb445: "dyob" +0xb446: "dyobs" +0xb447: "dyos" +0xb448: "dyoss" +0xb449: "dyong" +0xb44a: "dyoj" +0xb44b: "dyoc" +0xb44c: "dyok" +0xb44d: "dyot" +0xb44e: "dyop" +0xb44f: "dyoh" +0xb450: "du" +0xb451: "dug" +0xb452: "dugg" +0xb453: "dugs" +0xb454: "dun" +0xb455: "dunj" +0xb456: "dunh" +0xb457: "dud" +0xb458: "dul" +0xb459: "dulg" +0xb45a: "dulm" +0xb45b: "dulb" +0xb45c: "duls" +0xb45d: "dult" +0xb45e: "dulp" +0xb45f: "dulh" +0xb460: "dum" +0xb461: "dub" +0xb462: "dubs" +0xb463: "dus" +0xb464: "duss" +0xb465: "dung" +0xb466: "duj" +0xb467: "duc" +0xb468: "duk" +0xb469: "dut" +0xb46a: "dup" +0xb46b: "duh" +0xb46c: "dweo" +0xb46d: "dweog" +0xb46e: "dweogg" +0xb46f: "dweogs" +0xb470: "dweon" +0xb471: "dweonj" +0xb472: "dweonh" +0xb473: "dweod" +0xb474: "dweol" +0xb475: "dweolg" +0xb476: "dweolm" +0xb477: "dweolb" +0xb478: "dweols" +0xb479: "dweolt" +0xb47a: "dweolp" +0xb47b: "dweolh" +0xb47c: "dweom" +0xb47d: "dweob" +0xb47e: "dweobs" +0xb47f: "dweos" +0xb480: "dweoss" +0xb481: "dweong" +0xb482: "dweoj" +0xb483: "dweoc" +0xb484: "dweok" +0xb485: "dweot" +0xb486: "dweop" +0xb487: "dweoh" +0xb488: "dwe" +0xb489: "dweg" +0xb48a: "dwegg" +0xb48b: "dwegs" +0xb48c: "dwen" +0xb48d: "dwenj" +0xb48e: "dwenh" +0xb48f: "dwed" +0xb490: "dwel" +0xb491: "dwelg" +0xb492: "dwelm" +0xb493: "dwelb" +0xb494: "dwels" +0xb495: "dwelt" +0xb496: "dwelp" +0xb497: "dwelh" +0xb498: "dwem" +0xb499: "dweb" +0xb49a: "dwebs" +0xb49b: "dwes" +0xb49c: "dwess" +0xb49d: "dweng" +0xb49e: "dwej" +0xb49f: "dwec" +0xb4a0: "dwek" +0xb4a1: "dwet" +0xb4a2: "dwep" +0xb4a3: "dweh" +0xb4a4: "dwi" +0xb4a5: "dwig" +0xb4a6: "dwigg" +0xb4a7: "dwigs" +0xb4a8: "dwin" +0xb4a9: "dwinj" +0xb4aa: "dwinh" +0xb4ab: "dwid" +0xb4ac: "dwil" +0xb4ad: "dwilg" +0xb4ae: "dwilm" +0xb4af: "dwilb" +0xb4b0: "dwils" +0xb4b1: "dwilt" +0xb4b2: "dwilp" +0xb4b3: "dwilh" +0xb4b4: "dwim" +0xb4b5: "dwib" +0xb4b6: "dwibs" +0xb4b7: "dwis" +0xb4b8: "dwiss" +0xb4b9: "dwing" +0xb4ba: "dwij" +0xb4bb: "dwic" +0xb4bc: "dwik" +0xb4bd: "dwit" +0xb4be: "dwip" +0xb4bf: "dwih" +0xb4c0: "dyu" +0xb4c1: "dyug" +0xb4c2: "dyugg" +0xb4c3: "dyugs" +0xb4c4: "dyun" +0xb4c5: "dyunj" +0xb4c6: "dyunh" +0xb4c7: "dyud" +0xb4c8: "dyul" +0xb4c9: "dyulg" +0xb4ca: "dyulm" +0xb4cb: "dyulb" +0xb4cc: "dyuls" +0xb4cd: "dyult" +0xb4ce: "dyulp" +0xb4cf: "dyulh" +0xb4d0: "dyum" +0xb4d1: "dyub" +0xb4d2: "dyubs" +0xb4d3: "dyus" +0xb4d4: "dyuss" +0xb4d5: "dyung" +0xb4d6: "dyuj" +0xb4d7: "dyuc" +0xb4d8: "dyuk" +0xb4d9: "dyut" +0xb4da: "dyup" +0xb4db: "dyuh" +0xb4dc: "deu" +0xb4dd: "deug" +0xb4de: "deugg" +0xb4df: "deugs" +0xb4e0: "deun" +0xb4e1: "deunj" +0xb4e2: "deunh" +0xb4e3: "deud" +0xb4e4: "deul" +0xb4e5: "deulg" +0xb4e6: "deulm" +0xb4e7: "deulb" +0xb4e8: "deuls" +0xb4e9: "deult" +0xb4ea: "deulp" +0xb4eb: "deulh" +0xb4ec: "deum" +0xb4ed: "deub" +0xb4ee: "deubs" +0xb4ef: "deus" +0xb4f0: "deuss" +0xb4f1: "deung" +0xb4f2: "deuj" +0xb4f3: "deuc" +0xb4f4: "deuk" +0xb4f5: "deut" +0xb4f6: "deup" +0xb4f7: "deuh" +0xb4f8: "dyi" +0xb4f9: "dyig" +0xb4fa: "dyigg" +0xb4fb: "dyigs" +0xb4fc: "dyin" +0xb4fd: "dyinj" +0xb4fe: "dyinh" +0xb4ff: "dyid" +/* x0b5 */ +0xb500: "dyil" +0xb501: "dyilg" +0xb502: "dyilm" +0xb503: "dyilb" +0xb504: "dyils" +0xb505: "dyilt" +0xb506: "dyilp" +0xb507: "dyilh" +0xb508: "dyim" +0xb509: "dyib" +0xb50a: "dyibs" +0xb50b: "dyis" +0xb50c: "dyiss" +0xb50d: "dying" +0xb50e: "dyij" +0xb50f: "dyic" +0xb510: "dyik" +0xb511: "dyit" +0xb512: "dyip" +0xb513: "dyih" +0xb514: "di" +0xb515: "dig" +0xb516: "digg" +0xb517: "digs" +0xb518: "din" +0xb519: "dinj" +0xb51a: "dinh" +0xb51b: "did" +0xb51c: "dil" +0xb51d: "dilg" +0xb51e: "dilm" +0xb51f: "dilb" +0xb520: "dils" +0xb521: "dilt" +0xb522: "dilp" +0xb523: "dilh" +0xb524: "dim" +0xb525: "dib" +0xb526: "dibs" +0xb527: "dis" +0xb528: "diss" +0xb529: "ding" +0xb52a: "dij" +0xb52b: "dic" +0xb52c: "dik" +0xb52d: "dit" +0xb52e: "dip" +0xb52f: "dih" +0xb530: "dda" +0xb531: "ddag" +0xb532: "ddagg" +0xb533: "ddags" +0xb534: "ddan" +0xb535: "ddanj" +0xb536: "ddanh" +0xb537: "ddad" +0xb538: "ddal" +0xb539: "ddalg" +0xb53a: "ddalm" +0xb53b: "ddalb" +0xb53c: "ddals" +0xb53d: "ddalt" +0xb53e: "ddalp" +0xb53f: "ddalh" +0xb540: "ddam" +0xb541: "ddab" +0xb542: "ddabs" +0xb543: "ddas" +0xb544: "ddass" +0xb545: "ddang" +0xb546: "ddaj" +0xb547: "ddac" +0xb548: "ddak" +0xb549: "ddat" +0xb54a: "ddap" +0xb54b: "ddah" +0xb54c: "ddae" +0xb54d: "ddaeg" +0xb54e: "ddaegg" +0xb54f: "ddaegs" +0xb550: "ddaen" +0xb551: "ddaenj" +0xb552: "ddaenh" +0xb553: "ddaed" +0xb554: "ddael" +0xb555: "ddaelg" +0xb556: "ddaelm" +0xb557: "ddaelb" +0xb558: "ddaels" +0xb559: "ddaelt" +0xb55a: "ddaelp" +0xb55b: "ddaelh" +0xb55c: "ddaem" +0xb55d: "ddaeb" +0xb55e: "ddaebs" +0xb55f: "ddaes" +0xb560: "ddaess" +0xb561: "ddaeng" +0xb562: "ddaej" +0xb563: "ddaec" +0xb564: "ddaek" +0xb565: "ddaet" +0xb566: "ddaep" +0xb567: "ddaeh" +0xb568: "ddya" +0xb569: "ddyag" +0xb56a: "ddyagg" +0xb56b: "ddyags" +0xb56c: "ddyan" +0xb56d: "ddyanj" +0xb56e: "ddyanh" +0xb56f: "ddyad" +0xb570: "ddyal" +0xb571: "ddyalg" +0xb572: "ddyalm" +0xb573: "ddyalb" +0xb574: "ddyals" +0xb575: "ddyalt" +0xb576: "ddyalp" +0xb577: "ddyalh" +0xb578: "ddyam" +0xb579: "ddyab" +0xb57a: "ddyabs" +0xb57b: "ddyas" +0xb57c: "ddyass" +0xb57d: "ddyang" +0xb57e: "ddyaj" +0xb57f: "ddyac" +0xb580: "ddyak" +0xb581: "ddyat" +0xb582: "ddyap" +0xb583: "ddyah" +0xb584: "ddyae" +0xb585: "ddyaeg" +0xb586: "ddyaegg" +0xb587: "ddyaegs" +0xb588: "ddyaen" +0xb589: "ddyaenj" +0xb58a: "ddyaenh" +0xb58b: "ddyaed" +0xb58c: "ddyael" +0xb58d: "ddyaelg" +0xb58e: "ddyaelm" +0xb58f: "ddyaelb" +0xb590: "ddyaels" +0xb591: "ddyaelt" +0xb592: "ddyaelp" +0xb593: "ddyaelh" +0xb594: "ddyaem" +0xb595: "ddyaeb" +0xb596: "ddyaebs" +0xb597: "ddyaes" +0xb598: "ddyaess" +0xb599: "ddyaeng" +0xb59a: "ddyaej" +0xb59b: "ddyaec" +0xb59c: "ddyaek" +0xb59d: "ddyaet" +0xb59e: "ddyaep" +0xb59f: "ddyaeh" +0xb5a0: "ddeo" +0xb5a1: "ddeog" +0xb5a2: "ddeogg" +0xb5a3: "ddeogs" +0xb5a4: "ddeon" +0xb5a5: "ddeonj" +0xb5a6: "ddeonh" +0xb5a7: "ddeod" +0xb5a8: "ddeol" +0xb5a9: "ddeolg" +0xb5aa: "ddeolm" +0xb5ab: "ddeolb" +0xb5ac: "ddeols" +0xb5ad: "ddeolt" +0xb5ae: "ddeolp" +0xb5af: "ddeolh" +0xb5b0: "ddeom" +0xb5b1: "ddeob" +0xb5b2: "ddeobs" +0xb5b3: "ddeos" +0xb5b4: "ddeoss" +0xb5b5: "ddeong" +0xb5b6: "ddeoj" +0xb5b7: "ddeoc" +0xb5b8: "ddeok" +0xb5b9: "ddeot" +0xb5ba: "ddeop" +0xb5bb: "ddeoh" +0xb5bc: "dde" +0xb5bd: "ddeg" +0xb5be: "ddegg" +0xb5bf: "ddegs" +0xb5c0: "dden" +0xb5c1: "ddenj" +0xb5c2: "ddenh" +0xb5c3: "dded" +0xb5c4: "ddel" +0xb5c5: "ddelg" +0xb5c6: "ddelm" +0xb5c7: "ddelb" +0xb5c8: "ddels" +0xb5c9: "ddelt" +0xb5ca: "ddelp" +0xb5cb: "ddelh" +0xb5cc: "ddem" +0xb5cd: "ddeb" +0xb5ce: "ddebs" +0xb5cf: "ddes" +0xb5d0: "ddess" +0xb5d1: "ddeng" +0xb5d2: "ddej" +0xb5d3: "ddec" +0xb5d4: "ddek" +0xb5d5: "ddet" +0xb5d6: "ddep" +0xb5d7: "ddeh" +0xb5d8: "ddyeo" +0xb5d9: "ddyeog" +0xb5da: "ddyeogg" +0xb5db: "ddyeogs" +0xb5dc: "ddyeon" +0xb5dd: "ddyeonj" +0xb5de: "ddyeonh" +0xb5df: "ddyeod" +0xb5e0: "ddyeol" +0xb5e1: "ddyeolg" +0xb5e2: "ddyeolm" +0xb5e3: "ddyeolb" +0xb5e4: "ddyeols" +0xb5e5: "ddyeolt" +0xb5e6: "ddyeolp" +0xb5e7: "ddyeolh" +0xb5e8: "ddyeom" +0xb5e9: "ddyeob" +0xb5ea: "ddyeobs" +0xb5eb: "ddyeos" +0xb5ec: "ddyeoss" +0xb5ed: "ddyeong" +0xb5ee: "ddyeoj" +0xb5ef: "ddyeoc" +0xb5f0: "ddyeok" +0xb5f1: "ddyeot" +0xb5f2: "ddyeop" +0xb5f3: "ddyeoh" +0xb5f4: "ddye" +0xb5f5: "ddyeg" +0xb5f6: "ddyegg" +0xb5f7: "ddyegs" +0xb5f8: "ddyen" +0xb5f9: "ddyenj" +0xb5fa: "ddyenh" +0xb5fb: "ddyed" +0xb5fc: "ddyel" +0xb5fd: "ddyelg" +0xb5fe: "ddyelm" +0xb5ff: "ddyelb" +/* x0b6 */ +0xb600: "ddyels" +0xb601: "ddyelt" +0xb602: "ddyelp" +0xb603: "ddyelh" +0xb604: "ddyem" +0xb605: "ddyeb" +0xb606: "ddyebs" +0xb607: "ddyes" +0xb608: "ddyess" +0xb609: "ddyeng" +0xb60a: "ddyej" +0xb60b: "ddyec" +0xb60c: "ddyek" +0xb60d: "ddyet" +0xb60e: "ddyep" +0xb60f: "ddyeh" +0xb610: "ddo" +0xb611: "ddog" +0xb612: "ddogg" +0xb613: "ddogs" +0xb614: "ddon" +0xb615: "ddonj" +0xb616: "ddonh" +0xb617: "ddod" +0xb618: "ddol" +0xb619: "ddolg" +0xb61a: "ddolm" +0xb61b: "ddolb" +0xb61c: "ddols" +0xb61d: "ddolt" +0xb61e: "ddolp" +0xb61f: "ddolh" +0xb620: "ddom" +0xb621: "ddob" +0xb622: "ddobs" +0xb623: "ddos" +0xb624: "ddoss" +0xb625: "ddong" +0xb626: "ddoj" +0xb627: "ddoc" +0xb628: "ddok" +0xb629: "ddot" +0xb62a: "ddop" +0xb62b: "ddoh" +0xb62c: "ddwa" +0xb62d: "ddwag" +0xb62e: "ddwagg" +0xb62f: "ddwags" +0xb630: "ddwan" +0xb631: "ddwanj" +0xb632: "ddwanh" +0xb633: "ddwad" +0xb634: "ddwal" +0xb635: "ddwalg" +0xb636: "ddwalm" +0xb637: "ddwalb" +0xb638: "ddwals" +0xb639: "ddwalt" +0xb63a: "ddwalp" +0xb63b: "ddwalh" +0xb63c: "ddwam" +0xb63d: "ddwab" +0xb63e: "ddwabs" +0xb63f: "ddwas" +0xb640: "ddwass" +0xb641: "ddwang" +0xb642: "ddwaj" +0xb643: "ddwac" +0xb644: "ddwak" +0xb645: "ddwat" +0xb646: "ddwap" +0xb647: "ddwah" +0xb648: "ddwae" +0xb649: "ddwaeg" +0xb64a: "ddwaegg" +0xb64b: "ddwaegs" +0xb64c: "ddwaen" +0xb64d: "ddwaenj" +0xb64e: "ddwaenh" +0xb64f: "ddwaed" +0xb650: "ddwael" +0xb651: "ddwaelg" +0xb652: "ddwaelm" +0xb653: "ddwaelb" +0xb654: "ddwaels" +0xb655: "ddwaelt" +0xb656: "ddwaelp" +0xb657: "ddwaelh" +0xb658: "ddwaem" +0xb659: "ddwaeb" +0xb65a: "ddwaebs" +0xb65b: "ddwaes" +0xb65c: "ddwaess" +0xb65d: "ddwaeng" +0xb65e: "ddwaej" +0xb65f: "ddwaec" +0xb660: "ddwaek" +0xb661: "ddwaet" +0xb662: "ddwaep" +0xb663: "ddwaeh" +0xb664: "ddoe" +0xb665: "ddoeg" +0xb666: "ddoegg" +0xb667: "ddoegs" +0xb668: "ddoen" +0xb669: "ddoenj" +0xb66a: "ddoenh" +0xb66b: "ddoed" +0xb66c: "ddoel" +0xb66d: "ddoelg" +0xb66e: "ddoelm" +0xb66f: "ddoelb" +0xb670: "ddoels" +0xb671: "ddoelt" +0xb672: "ddoelp" +0xb673: "ddoelh" +0xb674: "ddoem" +0xb675: "ddoeb" +0xb676: "ddoebs" +0xb677: "ddoes" +0xb678: "ddoess" +0xb679: "ddoeng" +0xb67a: "ddoej" +0xb67b: "ddoec" +0xb67c: "ddoek" +0xb67d: "ddoet" +0xb67e: "ddoep" +0xb67f: "ddoeh" +0xb680: "ddyo" +0xb681: "ddyog" +0xb682: "ddyogg" +0xb683: "ddyogs" +0xb684: "ddyon" +0xb685: "ddyonj" +0xb686: "ddyonh" +0xb687: "ddyod" +0xb688: "ddyol" +0xb689: "ddyolg" +0xb68a: "ddyolm" +0xb68b: "ddyolb" +0xb68c: "ddyols" +0xb68d: "ddyolt" +0xb68e: "ddyolp" +0xb68f: "ddyolh" +0xb690: "ddyom" +0xb691: "ddyob" +0xb692: "ddyobs" +0xb693: "ddyos" +0xb694: "ddyoss" +0xb695: "ddyong" +0xb696: "ddyoj" +0xb697: "ddyoc" +0xb698: "ddyok" +0xb699: "ddyot" +0xb69a: "ddyop" +0xb69b: "ddyoh" +0xb69c: "ddu" +0xb69d: "ddug" +0xb69e: "ddugg" +0xb69f: "ddugs" +0xb6a0: "ddun" +0xb6a1: "ddunj" +0xb6a2: "ddunh" +0xb6a3: "ddud" +0xb6a4: "ddul" +0xb6a5: "ddulg" +0xb6a6: "ddulm" +0xb6a7: "ddulb" +0xb6a8: "dduls" +0xb6a9: "ddult" +0xb6aa: "ddulp" +0xb6ab: "ddulh" +0xb6ac: "ddum" +0xb6ad: "ddub" +0xb6ae: "ddubs" +0xb6af: "ddus" +0xb6b0: "dduss" +0xb6b1: "ddung" +0xb6b2: "dduj" +0xb6b3: "dduc" +0xb6b4: "dduk" +0xb6b5: "ddut" +0xb6b6: "ddup" +0xb6b7: "dduh" +0xb6b8: "ddweo" +0xb6b9: "ddweog" +0xb6ba: "ddweogg" +0xb6bb: "ddweogs" +0xb6bc: "ddweon" +0xb6bd: "ddweonj" +0xb6be: "ddweonh" +0xb6bf: "ddweod" +0xb6c0: "ddweol" +0xb6c1: "ddweolg" +0xb6c2: "ddweolm" +0xb6c3: "ddweolb" +0xb6c4: "ddweols" +0xb6c5: "ddweolt" +0xb6c6: "ddweolp" +0xb6c7: "ddweolh" +0xb6c8: "ddweom" +0xb6c9: "ddweob" +0xb6ca: "ddweobs" +0xb6cb: "ddweos" +0xb6cc: "ddweoss" +0xb6cd: "ddweong" +0xb6ce: "ddweoj" +0xb6cf: "ddweoc" +0xb6d0: "ddweok" +0xb6d1: "ddweot" +0xb6d2: "ddweop" +0xb6d3: "ddweoh" +0xb6d4: "ddwe" +0xb6d5: "ddweg" +0xb6d6: "ddwegg" +0xb6d7: "ddwegs" +0xb6d8: "ddwen" +0xb6d9: "ddwenj" +0xb6da: "ddwenh" +0xb6db: "ddwed" +0xb6dc: "ddwel" +0xb6dd: "ddwelg" +0xb6de: "ddwelm" +0xb6df: "ddwelb" +0xb6e0: "ddwels" +0xb6e1: "ddwelt" +0xb6e2: "ddwelp" +0xb6e3: "ddwelh" +0xb6e4: "ddwem" +0xb6e5: "ddweb" +0xb6e6: "ddwebs" +0xb6e7: "ddwes" +0xb6e8: "ddwess" +0xb6e9: "ddweng" +0xb6ea: "ddwej" +0xb6eb: "ddwec" +0xb6ec: "ddwek" +0xb6ed: "ddwet" +0xb6ee: "ddwep" +0xb6ef: "ddweh" +0xb6f0: "ddwi" +0xb6f1: "ddwig" +0xb6f2: "ddwigg" +0xb6f3: "ddwigs" +0xb6f4: "ddwin" +0xb6f5: "ddwinj" +0xb6f6: "ddwinh" +0xb6f7: "ddwid" +0xb6f8: "ddwil" +0xb6f9: "ddwilg" +0xb6fa: "ddwilm" +0xb6fb: "ddwilb" +0xb6fc: "ddwils" +0xb6fd: "ddwilt" +0xb6fe: "ddwilp" +0xb6ff: "ddwilh" +/* x0b7 */ +0xb700: "ddwim" +0xb701: "ddwib" +0xb702: "ddwibs" +0xb703: "ddwis" +0xb704: "ddwiss" +0xb705: "ddwing" +0xb706: "ddwij" +0xb707: "ddwic" +0xb708: "ddwik" +0xb709: "ddwit" +0xb70a: "ddwip" +0xb70b: "ddwih" +0xb70c: "ddyu" +0xb70d: "ddyug" +0xb70e: "ddyugg" +0xb70f: "ddyugs" +0xb710: "ddyun" +0xb711: "ddyunj" +0xb712: "ddyunh" +0xb713: "ddyud" +0xb714: "ddyul" +0xb715: "ddyulg" +0xb716: "ddyulm" +0xb717: "ddyulb" +0xb718: "ddyuls" +0xb719: "ddyult" +0xb71a: "ddyulp" +0xb71b: "ddyulh" +0xb71c: "ddyum" +0xb71d: "ddyub" +0xb71e: "ddyubs" +0xb71f: "ddyus" +0xb720: "ddyuss" +0xb721: "ddyung" +0xb722: "ddyuj" +0xb723: "ddyuc" +0xb724: "ddyuk" +0xb725: "ddyut" +0xb726: "ddyup" +0xb727: "ddyuh" +0xb728: "ddeu" +0xb729: "ddeug" +0xb72a: "ddeugg" +0xb72b: "ddeugs" +0xb72c: "ddeun" +0xb72d: "ddeunj" +0xb72e: "ddeunh" +0xb72f: "ddeud" +0xb730: "ddeul" +0xb731: "ddeulg" +0xb732: "ddeulm" +0xb733: "ddeulb" +0xb734: "ddeuls" +0xb735: "ddeult" +0xb736: "ddeulp" +0xb737: "ddeulh" +0xb738: "ddeum" +0xb739: "ddeub" +0xb73a: "ddeubs" +0xb73b: "ddeus" +0xb73c: "ddeuss" +0xb73d: "ddeung" +0xb73e: "ddeuj" +0xb73f: "ddeuc" +0xb740: "ddeuk" +0xb741: "ddeut" +0xb742: "ddeup" +0xb743: "ddeuh" +0xb744: "ddyi" +0xb745: "ddyig" +0xb746: "ddyigg" +0xb747: "ddyigs" +0xb748: "ddyin" +0xb749: "ddyinj" +0xb74a: "ddyinh" +0xb74b: "ddyid" +0xb74c: "ddyil" +0xb74d: "ddyilg" +0xb74e: "ddyilm" +0xb74f: "ddyilb" +0xb750: "ddyils" +0xb751: "ddyilt" +0xb752: "ddyilp" +0xb753: "ddyilh" +0xb754: "ddyim" +0xb755: "ddyib" +0xb756: "ddyibs" +0xb757: "ddyis" +0xb758: "ddyiss" +0xb759: "ddying" +0xb75a: "ddyij" +0xb75b: "ddyic" +0xb75c: "ddyik" +0xb75d: "ddyit" +0xb75e: "ddyip" +0xb75f: "ddyih" +0xb760: "ddi" +0xb761: "ddig" +0xb762: "ddigg" +0xb763: "ddigs" +0xb764: "ddin" +0xb765: "ddinj" +0xb766: "ddinh" +0xb767: "ddid" +0xb768: "ddil" +0xb769: "ddilg" +0xb76a: "ddilm" +0xb76b: "ddilb" +0xb76c: "ddils" +0xb76d: "ddilt" +0xb76e: "ddilp" +0xb76f: "ddilh" +0xb770: "ddim" +0xb771: "ddib" +0xb772: "ddibs" +0xb773: "ddis" +0xb774: "ddiss" +0xb775: "dding" +0xb776: "ddij" +0xb777: "ddic" +0xb778: "ddik" +0xb779: "ddit" +0xb77a: "ddip" +0xb77b: "ddih" +0xb77c: "ra" +0xb77d: "rag" +0xb77e: "ragg" +0xb77f: "rags" +0xb780: "ran" +0xb781: "ranj" +0xb782: "ranh" +0xb783: "rad" +0xb784: "ral" +0xb785: "ralg" +0xb786: "ralm" +0xb787: "ralb" +0xb788: "rals" +0xb789: "ralt" +0xb78a: "ralp" +0xb78b: "ralh" +0xb78c: "ram" +0xb78d: "rab" +0xb78e: "rabs" +0xb78f: "ras" +0xb790: "rass" +0xb791: "rang" +0xb792: "raj" +0xb793: "rac" +0xb794: "rak" +0xb795: "rat" +0xb796: "rap" +0xb797: "rah" +0xb798: "rae" +0xb799: "raeg" +0xb79a: "raegg" +0xb79b: "raegs" +0xb79c: "raen" +0xb79d: "raenj" +0xb79e: "raenh" +0xb79f: "raed" +0xb7a0: "rael" +0xb7a1: "raelg" +0xb7a2: "raelm" +0xb7a3: "raelb" +0xb7a4: "raels" +0xb7a5: "raelt" +0xb7a6: "raelp" +0xb7a7: "raelh" +0xb7a8: "raem" +0xb7a9: "raeb" +0xb7aa: "raebs" +0xb7ab: "raes" +0xb7ac: "raess" +0xb7ad: "raeng" +0xb7ae: "raej" +0xb7af: "raec" +0xb7b0: "raek" +0xb7b1: "raet" +0xb7b2: "raep" +0xb7b3: "raeh" +0xb7b4: "rya" +0xb7b5: "ryag" +0xb7b6: "ryagg" +0xb7b7: "ryags" +0xb7b8: "ryan" +0xb7b9: "ryanj" +0xb7ba: "ryanh" +0xb7bb: "ryad" +0xb7bc: "ryal" +0xb7bd: "ryalg" +0xb7be: "ryalm" +0xb7bf: "ryalb" +0xb7c0: "ryals" +0xb7c1: "ryalt" +0xb7c2: "ryalp" +0xb7c3: "ryalh" +0xb7c4: "ryam" +0xb7c5: "ryab" +0xb7c6: "ryabs" +0xb7c7: "ryas" +0xb7c8: "ryass" +0xb7c9: "ryang" +0xb7ca: "ryaj" +0xb7cb: "ryac" +0xb7cc: "ryak" +0xb7cd: "ryat" +0xb7ce: "ryap" +0xb7cf: "ryah" +0xb7d0: "ryae" +0xb7d1: "ryaeg" +0xb7d2: "ryaegg" +0xb7d3: "ryaegs" +0xb7d4: "ryaen" +0xb7d5: "ryaenj" +0xb7d6: "ryaenh" +0xb7d7: "ryaed" +0xb7d8: "ryael" +0xb7d9: "ryaelg" +0xb7da: "ryaelm" +0xb7db: "ryaelb" +0xb7dc: "ryaels" +0xb7dd: "ryaelt" +0xb7de: "ryaelp" +0xb7df: "ryaelh" +0xb7e0: "ryaem" +0xb7e1: "ryaeb" +0xb7e2: "ryaebs" +0xb7e3: "ryaes" +0xb7e4: "ryaess" +0xb7e5: "ryaeng" +0xb7e6: "ryaej" +0xb7e7: "ryaec" +0xb7e8: "ryaek" +0xb7e9: "ryaet" +0xb7ea: "ryaep" +0xb7eb: "ryaeh" +0xb7ec: "reo" +0xb7ed: "reog" +0xb7ee: "reogg" +0xb7ef: "reogs" +0xb7f0: "reon" +0xb7f1: "reonj" +0xb7f2: "reonh" +0xb7f3: "reod" +0xb7f4: "reol" +0xb7f5: "reolg" +0xb7f6: "reolm" +0xb7f7: "reolb" +0xb7f8: "reols" +0xb7f9: "reolt" +0xb7fa: "reolp" +0xb7fb: "reolh" +0xb7fc: "reom" +0xb7fd: "reob" +0xb7fe: "reobs" +0xb7ff: "reos" +/* x0b8 */ +0xb800: "reoss" +0xb801: "reong" +0xb802: "reoj" +0xb803: "reoc" +0xb804: "reok" +0xb805: "reot" +0xb806: "reop" +0xb807: "reoh" +0xb808: "re" +0xb809: "reg" +0xb80a: "regg" +0xb80b: "regs" +0xb80c: "ren" +0xb80d: "renj" +0xb80e: "renh" +0xb80f: "red" +0xb810: "rel" +0xb811: "relg" +0xb812: "relm" +0xb813: "relb" +0xb814: "rels" +0xb815: "relt" +0xb816: "relp" +0xb817: "relh" +0xb818: "rem" +0xb819: "reb" +0xb81a: "rebs" +0xb81b: "res" +0xb81c: "ress" +0xb81d: "reng" +0xb81e: "rej" +0xb81f: "rec" +0xb820: "rek" +0xb821: "ret" +0xb822: "rep" +0xb823: "reh" +0xb824: "ryeo" +0xb825: "ryeog" +0xb826: "ryeogg" +0xb827: "ryeogs" +0xb828: "ryeon" +0xb829: "ryeonj" +0xb82a: "ryeonh" +0xb82b: "ryeod" +0xb82c: "ryeol" +0xb82d: "ryeolg" +0xb82e: "ryeolm" +0xb82f: "ryeolb" +0xb830: "ryeols" +0xb831: "ryeolt" +0xb832: "ryeolp" +0xb833: "ryeolh" +0xb834: "ryeom" +0xb835: "ryeob" +0xb836: "ryeobs" +0xb837: "ryeos" +0xb838: "ryeoss" +0xb839: "ryeong" +0xb83a: "ryeoj" +0xb83b: "ryeoc" +0xb83c: "ryeok" +0xb83d: "ryeot" +0xb83e: "ryeop" +0xb83f: "ryeoh" +0xb840: "rye" +0xb841: "ryeg" +0xb842: "ryegg" +0xb843: "ryegs" +0xb844: "ryen" +0xb845: "ryenj" +0xb846: "ryenh" +0xb847: "ryed" +0xb848: "ryel" +0xb849: "ryelg" +0xb84a: "ryelm" +0xb84b: "ryelb" +0xb84c: "ryels" +0xb84d: "ryelt" +0xb84e: "ryelp" +0xb84f: "ryelh" +0xb850: "ryem" +0xb851: "ryeb" +0xb852: "ryebs" +0xb853: "ryes" +0xb854: "ryess" +0xb855: "ryeng" +0xb856: "ryej" +0xb857: "ryec" +0xb858: "ryek" +0xb859: "ryet" +0xb85a: "ryep" +0xb85b: "ryeh" +0xb85c: "ro" +0xb85d: "rog" +0xb85e: "rogg" +0xb85f: "rogs" +0xb860: "ron" +0xb861: "ronj" +0xb862: "ronh" +0xb863: "rod" +0xb864: "rol" +0xb865: "rolg" +0xb866: "rolm" +0xb867: "rolb" +0xb868: "rols" +0xb869: "rolt" +0xb86a: "rolp" +0xb86b: "rolh" +0xb86c: "rom" +0xb86d: "rob" +0xb86e: "robs" +0xb86f: "ros" +0xb870: "ross" +0xb871: "rong" +0xb872: "roj" +0xb873: "roc" +0xb874: "rok" +0xb875: "rot" +0xb876: "rop" +0xb877: "roh" +0xb878: "rwa" +0xb879: "rwag" +0xb87a: "rwagg" +0xb87b: "rwags" +0xb87c: "rwan" +0xb87d: "rwanj" +0xb87e: "rwanh" +0xb87f: "rwad" +0xb880: "rwal" +0xb881: "rwalg" +0xb882: "rwalm" +0xb883: "rwalb" +0xb884: "rwals" +0xb885: "rwalt" +0xb886: "rwalp" +0xb887: "rwalh" +0xb888: "rwam" +0xb889: "rwab" +0xb88a: "rwabs" +0xb88b: "rwas" +0xb88c: "rwass" +0xb88d: "rwang" +0xb88e: "rwaj" +0xb88f: "rwac" +0xb890: "rwak" +0xb891: "rwat" +0xb892: "rwap" +0xb893: "rwah" +0xb894: "rwae" +0xb895: "rwaeg" +0xb896: "rwaegg" +0xb897: "rwaegs" +0xb898: "rwaen" +0xb899: "rwaenj" +0xb89a: "rwaenh" +0xb89b: "rwaed" +0xb89c: "rwael" +0xb89d: "rwaelg" +0xb89e: "rwaelm" +0xb89f: "rwaelb" +0xb8a0: "rwaels" +0xb8a1: "rwaelt" +0xb8a2: "rwaelp" +0xb8a3: "rwaelh" +0xb8a4: "rwaem" +0xb8a5: "rwaeb" +0xb8a6: "rwaebs" +0xb8a7: "rwaes" +0xb8a8: "rwaess" +0xb8a9: "rwaeng" +0xb8aa: "rwaej" +0xb8ab: "rwaec" +0xb8ac: "rwaek" +0xb8ad: "rwaet" +0xb8ae: "rwaep" +0xb8af: "rwaeh" +0xb8b0: "roe" +0xb8b1: "roeg" +0xb8b2: "roegg" +0xb8b3: "roegs" +0xb8b4: "roen" +0xb8b5: "roenj" +0xb8b6: "roenh" +0xb8b7: "roed" +0xb8b8: "roel" +0xb8b9: "roelg" +0xb8ba: "roelm" +0xb8bb: "roelb" +0xb8bc: "roels" +0xb8bd: "roelt" +0xb8be: "roelp" +0xb8bf: "roelh" +0xb8c0: "roem" +0xb8c1: "roeb" +0xb8c2: "roebs" +0xb8c3: "roes" +0xb8c4: "roess" +0xb8c5: "roeng" +0xb8c6: "roej" +0xb8c7: "roec" +0xb8c8: "roek" +0xb8c9: "roet" +0xb8ca: "roep" +0xb8cb: "roeh" +0xb8cc: "ryo" +0xb8cd: "ryog" +0xb8ce: "ryogg" +0xb8cf: "ryogs" +0xb8d0: "ryon" +0xb8d1: "ryonj" +0xb8d2: "ryonh" +0xb8d3: "ryod" +0xb8d4: "ryol" +0xb8d5: "ryolg" +0xb8d6: "ryolm" +0xb8d7: "ryolb" +0xb8d8: "ryols" +0xb8d9: "ryolt" +0xb8da: "ryolp" +0xb8db: "ryolh" +0xb8dc: "ryom" +0xb8dd: "ryob" +0xb8de: "ryobs" +0xb8df: "ryos" +0xb8e0: "ryoss" +0xb8e1: "ryong" +0xb8e2: "ryoj" +0xb8e3: "ryoc" +0xb8e4: "ryok" +0xb8e5: "ryot" +0xb8e6: "ryop" +0xb8e7: "ryoh" +0xb8e8: "ru" +0xb8e9: "rug" +0xb8ea: "rugg" +0xb8eb: "rugs" +0xb8ec: "run" +0xb8ed: "runj" +0xb8ee: "runh" +0xb8ef: "rud" +0xb8f0: "rul" +0xb8f1: "rulg" +0xb8f2: "rulm" +0xb8f3: "rulb" +0xb8f4: "ruls" +0xb8f5: "rult" +0xb8f6: "rulp" +0xb8f7: "rulh" +0xb8f8: "rum" +0xb8f9: "rub" +0xb8fa: "rubs" +0xb8fb: "rus" +0xb8fc: "russ" +0xb8fd: "rung" +0xb8fe: "ruj" +0xb8ff: "ruc" +/* x0b9 */ +0xb900: "ruk" +0xb901: "rut" +0xb902: "rup" +0xb903: "ruh" +0xb904: "rweo" +0xb905: "rweog" +0xb906: "rweogg" +0xb907: "rweogs" +0xb908: "rweon" +0xb909: "rweonj" +0xb90a: "rweonh" +0xb90b: "rweod" +0xb90c: "rweol" +0xb90d: "rweolg" +0xb90e: "rweolm" +0xb90f: "rweolb" +0xb910: "rweols" +0xb911: "rweolt" +0xb912: "rweolp" +0xb913: "rweolh" +0xb914: "rweom" +0xb915: "rweob" +0xb916: "rweobs" +0xb917: "rweos" +0xb918: "rweoss" +0xb919: "rweong" +0xb91a: "rweoj" +0xb91b: "rweoc" +0xb91c: "rweok" +0xb91d: "rweot" +0xb91e: "rweop" +0xb91f: "rweoh" +0xb920: "rwe" +0xb921: "rweg" +0xb922: "rwegg" +0xb923: "rwegs" +0xb924: "rwen" +0xb925: "rwenj" +0xb926: "rwenh" +0xb927: "rwed" +0xb928: "rwel" +0xb929: "rwelg" +0xb92a: "rwelm" +0xb92b: "rwelb" +0xb92c: "rwels" +0xb92d: "rwelt" +0xb92e: "rwelp" +0xb92f: "rwelh" +0xb930: "rwem" +0xb931: "rweb" +0xb932: "rwebs" +0xb933: "rwes" +0xb934: "rwess" +0xb935: "rweng" +0xb936: "rwej" +0xb937: "rwec" +0xb938: "rwek" +0xb939: "rwet" +0xb93a: "rwep" +0xb93b: "rweh" +0xb93c: "rwi" +0xb93d: "rwig" +0xb93e: "rwigg" +0xb93f: "rwigs" +0xb940: "rwin" +0xb941: "rwinj" +0xb942: "rwinh" +0xb943: "rwid" +0xb944: "rwil" +0xb945: "rwilg" +0xb946: "rwilm" +0xb947: "rwilb" +0xb948: "rwils" +0xb949: "rwilt" +0xb94a: "rwilp" +0xb94b: "rwilh" +0xb94c: "rwim" +0xb94d: "rwib" +0xb94e: "rwibs" +0xb94f: "rwis" +0xb950: "rwiss" +0xb951: "rwing" +0xb952: "rwij" +0xb953: "rwic" +0xb954: "rwik" +0xb955: "rwit" +0xb956: "rwip" +0xb957: "rwih" +0xb958: "ryu" +0xb959: "ryug" +0xb95a: "ryugg" +0xb95b: "ryugs" +0xb95c: "ryun" +0xb95d: "ryunj" +0xb95e: "ryunh" +0xb95f: "ryud" +0xb960: "ryul" +0xb961: "ryulg" +0xb962: "ryulm" +0xb963: "ryulb" +0xb964: "ryuls" +0xb965: "ryult" +0xb966: "ryulp" +0xb967: "ryulh" +0xb968: "ryum" +0xb969: "ryub" +0xb96a: "ryubs" +0xb96b: "ryus" +0xb96c: "ryuss" +0xb96d: "ryung" +0xb96e: "ryuj" +0xb96f: "ryuc" +0xb970: "ryuk" +0xb971: "ryut" +0xb972: "ryup" +0xb973: "ryuh" +0xb974: "reu" +0xb975: "reug" +0xb976: "reugg" +0xb977: "reugs" +0xb978: "reun" +0xb979: "reunj" +0xb97a: "reunh" +0xb97b: "reud" +0xb97c: "reul" +0xb97d: "reulg" +0xb97e: "reulm" +0xb97f: "reulb" +0xb980: "reuls" +0xb981: "reult" +0xb982: "reulp" +0xb983: "reulh" +0xb984: "reum" +0xb985: "reub" +0xb986: "reubs" +0xb987: "reus" +0xb988: "reuss" +0xb989: "reung" +0xb98a: "reuj" +0xb98b: "reuc" +0xb98c: "reuk" +0xb98d: "reut" +0xb98e: "reup" +0xb98f: "reuh" +0xb990: "ryi" +0xb991: "ryig" +0xb992: "ryigg" +0xb993: "ryigs" +0xb994: "ryin" +0xb995: "ryinj" +0xb996: "ryinh" +0xb997: "ryid" +0xb998: "ryil" +0xb999: "ryilg" +0xb99a: "ryilm" +0xb99b: "ryilb" +0xb99c: "ryils" +0xb99d: "ryilt" +0xb99e: "ryilp" +0xb99f: "ryilh" +0xb9a0: "ryim" +0xb9a1: "ryib" +0xb9a2: "ryibs" +0xb9a3: "ryis" +0xb9a4: "ryiss" +0xb9a5: "rying" +0xb9a6: "ryij" +0xb9a7: "ryic" +0xb9a8: "ryik" +0xb9a9: "ryit" +0xb9aa: "ryip" +0xb9ab: "ryih" +0xb9ac: "ri" +0xb9ad: "rig" +0xb9ae: "rigg" +0xb9af: "rigs" +0xb9b0: "rin" +0xb9b1: "rinj" +0xb9b2: "rinh" +0xb9b3: "rid" +0xb9b4: "ril" +0xb9b5: "rilg" +0xb9b6: "rilm" +0xb9b7: "rilb" +0xb9b8: "rils" +0xb9b9: "rilt" +0xb9ba: "rilp" +0xb9bb: "rilh" +0xb9bc: "rim" +0xb9bd: "rib" +0xb9be: "ribs" +0xb9bf: "ris" +0xb9c0: "riss" +0xb9c1: "ring" +0xb9c2: "rij" +0xb9c3: "ric" +0xb9c4: "rik" +0xb9c5: "rit" +0xb9c6: "rip" +0xb9c7: "rih" +0xb9c8: "ma" +0xb9c9: "mag" +0xb9ca: "magg" +0xb9cb: "mags" +0xb9cc: "man" +0xb9cd: "manj" +0xb9ce: "manh" +0xb9cf: "mad" +0xb9d0: "mal" +0xb9d1: "malg" +0xb9d2: "malm" +0xb9d3: "malb" +0xb9d4: "mals" +0xb9d5: "malt" +0xb9d6: "malp" +0xb9d7: "malh" +0xb9d8: "mam" +0xb9d9: "mab" +0xb9da: "mabs" +0xb9db: "mas" +0xb9dc: "mass" +0xb9dd: "mang" +0xb9de: "maj" +0xb9df: "mac" +0xb9e0: "mak" +0xb9e1: "mat" +0xb9e2: "map" +0xb9e3: "mah" +0xb9e4: "mae" +0xb9e5: "maeg" +0xb9e6: "maegg" +0xb9e7: "maegs" +0xb9e8: "maen" +0xb9e9: "maenj" +0xb9ea: "maenh" +0xb9eb: "maed" +0xb9ec: "mael" +0xb9ed: "maelg" +0xb9ee: "maelm" +0xb9ef: "maelb" +0xb9f0: "maels" +0xb9f1: "maelt" +0xb9f2: "maelp" +0xb9f3: "maelh" +0xb9f4: "maem" +0xb9f5: "maeb" +0xb9f6: "maebs" +0xb9f7: "maes" +0xb9f8: "maess" +0xb9f9: "maeng" +0xb9fa: "maej" +0xb9fb: "maec" +0xb9fc: "maek" +0xb9fd: "maet" +0xb9fe: "maep" +0xb9ff: "maeh" +/* x0ba */ +0xba00: "mya" +0xba01: "myag" +0xba02: "myagg" +0xba03: "myags" +0xba04: "myan" +0xba05: "myanj" +0xba06: "myanh" +0xba07: "myad" +0xba08: "myal" +0xba09: "myalg" +0xba0a: "myalm" +0xba0b: "myalb" +0xba0c: "myals" +0xba0d: "myalt" +0xba0e: "myalp" +0xba0f: "myalh" +0xba10: "myam" +0xba11: "myab" +0xba12: "myabs" +0xba13: "myas" +0xba14: "myass" +0xba15: "myang" +0xba16: "myaj" +0xba17: "myac" +0xba18: "myak" +0xba19: "myat" +0xba1a: "myap" +0xba1b: "myah" +0xba1c: "myae" +0xba1d: "myaeg" +0xba1e: "myaegg" +0xba1f: "myaegs" +0xba20: "myaen" +0xba21: "myaenj" +0xba22: "myaenh" +0xba23: "myaed" +0xba24: "myael" +0xba25: "myaelg" +0xba26: "myaelm" +0xba27: "myaelb" +0xba28: "myaels" +0xba29: "myaelt" +0xba2a: "myaelp" +0xba2b: "myaelh" +0xba2c: "myaem" +0xba2d: "myaeb" +0xba2e: "myaebs" +0xba2f: "myaes" +0xba30: "myaess" +0xba31: "myaeng" +0xba32: "myaej" +0xba33: "myaec" +0xba34: "myaek" +0xba35: "myaet" +0xba36: "myaep" +0xba37: "myaeh" +0xba38: "meo" +0xba39: "meog" +0xba3a: "meogg" +0xba3b: "meogs" +0xba3c: "meon" +0xba3d: "meonj" +0xba3e: "meonh" +0xba3f: "meod" +0xba40: "meol" +0xba41: "meolg" +0xba42: "meolm" +0xba43: "meolb" +0xba44: "meols" +0xba45: "meolt" +0xba46: "meolp" +0xba47: "meolh" +0xba48: "meom" +0xba49: "meob" +0xba4a: "meobs" +0xba4b: "meos" +0xba4c: "meoss" +0xba4d: "meong" +0xba4e: "meoj" +0xba4f: "meoc" +0xba50: "meok" +0xba51: "meot" +0xba52: "meop" +0xba53: "meoh" +0xba54: "me" +0xba55: "meg" +0xba56: "megg" +0xba57: "megs" +0xba58: "men" +0xba59: "menj" +0xba5a: "menh" +0xba5b: "med" +0xba5c: "mel" +0xba5d: "melg" +0xba5e: "melm" +0xba5f: "melb" +0xba60: "mels" +0xba61: "melt" +0xba62: "melp" +0xba63: "melh" +0xba64: "mem" +0xba65: "meb" +0xba66: "mebs" +0xba67: "mes" +0xba68: "mess" +0xba69: "meng" +0xba6a: "mej" +0xba6b: "mec" +0xba6c: "mek" +0xba6d: "met" +0xba6e: "mep" +0xba6f: "meh" +0xba70: "myeo" +0xba71: "myeog" +0xba72: "myeogg" +0xba73: "myeogs" +0xba74: "myeon" +0xba75: "myeonj" +0xba76: "myeonh" +0xba77: "myeod" +0xba78: "myeol" +0xba79: "myeolg" +0xba7a: "myeolm" +0xba7b: "myeolb" +0xba7c: "myeols" +0xba7d: "myeolt" +0xba7e: "myeolp" +0xba7f: "myeolh" +0xba80: "myeom" +0xba81: "myeob" +0xba82: "myeobs" +0xba83: "myeos" +0xba84: "myeoss" +0xba85: "myeong" +0xba86: "myeoj" +0xba87: "myeoc" +0xba88: "myeok" +0xba89: "myeot" +0xba8a: "myeop" +0xba8b: "myeoh" +0xba8c: "mye" +0xba8d: "myeg" +0xba8e: "myegg" +0xba8f: "myegs" +0xba90: "myen" +0xba91: "myenj" +0xba92: "myenh" +0xba93: "myed" +0xba94: "myel" +0xba95: "myelg" +0xba96: "myelm" +0xba97: "myelb" +0xba98: "myels" +0xba99: "myelt" +0xba9a: "myelp" +0xba9b: "myelh" +0xba9c: "myem" +0xba9d: "myeb" +0xba9e: "myebs" +0xba9f: "myes" +0xbaa0: "myess" +0xbaa1: "myeng" +0xbaa2: "myej" +0xbaa3: "myec" +0xbaa4: "myek" +0xbaa5: "myet" +0xbaa6: "myep" +0xbaa7: "myeh" +0xbaa8: "mo" +0xbaa9: "mog" +0xbaaa: "mogg" +0xbaab: "mogs" +0xbaac: "mon" +0xbaad: "monj" +0xbaae: "monh" +0xbaaf: "mod" +0xbab0: "mol" +0xbab1: "molg" +0xbab2: "molm" +0xbab3: "molb" +0xbab4: "mols" +0xbab5: "molt" +0xbab6: "molp" +0xbab7: "molh" +0xbab8: "mom" +0xbab9: "mob" +0xbaba: "mobs" +0xbabb: "mos" +0xbabc: "moss" +0xbabd: "mong" +0xbabe: "moj" +0xbabf: "moc" +0xbac0: "mok" +0xbac1: "mot" +0xbac2: "mop" +0xbac3: "moh" +0xbac4: "mwa" +0xbac5: "mwag" +0xbac6: "mwagg" +0xbac7: "mwags" +0xbac8: "mwan" +0xbac9: "mwanj" +0xbaca: "mwanh" +0xbacb: "mwad" +0xbacc: "mwal" +0xbacd: "mwalg" +0xbace: "mwalm" +0xbacf: "mwalb" +0xbad0: "mwals" +0xbad1: "mwalt" +0xbad2: "mwalp" +0xbad3: "mwalh" +0xbad4: "mwam" +0xbad5: "mwab" +0xbad6: "mwabs" +0xbad7: "mwas" +0xbad8: "mwass" +0xbad9: "mwang" +0xbada: "mwaj" +0xbadb: "mwac" +0xbadc: "mwak" +0xbadd: "mwat" +0xbade: "mwap" +0xbadf: "mwah" +0xbae0: "mwae" +0xbae1: "mwaeg" +0xbae2: "mwaegg" +0xbae3: "mwaegs" +0xbae4: "mwaen" +0xbae5: "mwaenj" +0xbae6: "mwaenh" +0xbae7: "mwaed" +0xbae8: "mwael" +0xbae9: "mwaelg" +0xbaea: "mwaelm" +0xbaeb: "mwaelb" +0xbaec: "mwaels" +0xbaed: "mwaelt" +0xbaee: "mwaelp" +0xbaef: "mwaelh" +0xbaf0: "mwaem" +0xbaf1: "mwaeb" +0xbaf2: "mwaebs" +0xbaf3: "mwaes" +0xbaf4: "mwaess" +0xbaf5: "mwaeng" +0xbaf6: "mwaej" +0xbaf7: "mwaec" +0xbaf8: "mwaek" +0xbaf9: "mwaet" +0xbafa: "mwaep" +0xbafb: "mwaeh" +0xbafc: "moe" +0xbafd: "moeg" +0xbafe: "moegg" +0xbaff: "moegs" +/* x0bb */ +0xbb00: "moen" +0xbb01: "moenj" +0xbb02: "moenh" +0xbb03: "moed" +0xbb04: "moel" +0xbb05: "moelg" +0xbb06: "moelm" +0xbb07: "moelb" +0xbb08: "moels" +0xbb09: "moelt" +0xbb0a: "moelp" +0xbb0b: "moelh" +0xbb0c: "moem" +0xbb0d: "moeb" +0xbb0e: "moebs" +0xbb0f: "moes" +0xbb10: "moess" +0xbb11: "moeng" +0xbb12: "moej" +0xbb13: "moec" +0xbb14: "moek" +0xbb15: "moet" +0xbb16: "moep" +0xbb17: "moeh" +0xbb18: "myo" +0xbb19: "myog" +0xbb1a: "myogg" +0xbb1b: "myogs" +0xbb1c: "myon" +0xbb1d: "myonj" +0xbb1e: "myonh" +0xbb1f: "myod" +0xbb20: "myol" +0xbb21: "myolg" +0xbb22: "myolm" +0xbb23: "myolb" +0xbb24: "myols" +0xbb25: "myolt" +0xbb26: "myolp" +0xbb27: "myolh" +0xbb28: "myom" +0xbb29: "myob" +0xbb2a: "myobs" +0xbb2b: "myos" +0xbb2c: "myoss" +0xbb2d: "myong" +0xbb2e: "myoj" +0xbb2f: "myoc" +0xbb30: "myok" +0xbb31: "myot" +0xbb32: "myop" +0xbb33: "myoh" +0xbb34: "mu" +0xbb35: "mug" +0xbb36: "mugg" +0xbb37: "mugs" +0xbb38: "mun" +0xbb39: "munj" +0xbb3a: "munh" +0xbb3b: "mud" +0xbb3c: "mul" +0xbb3d: "mulg" +0xbb3e: "mulm" +0xbb3f: "mulb" +0xbb40: "muls" +0xbb41: "mult" +0xbb42: "mulp" +0xbb43: "mulh" +0xbb44: "mum" +0xbb45: "mub" +0xbb46: "mubs" +0xbb47: "mus" +0xbb48: "muss" +0xbb49: "mung" +0xbb4a: "muj" +0xbb4b: "muc" +0xbb4c: "muk" +0xbb4d: "mut" +0xbb4e: "mup" +0xbb4f: "muh" +0xbb50: "mweo" +0xbb51: "mweog" +0xbb52: "mweogg" +0xbb53: "mweogs" +0xbb54: "mweon" +0xbb55: "mweonj" +0xbb56: "mweonh" +0xbb57: "mweod" +0xbb58: "mweol" +0xbb59: "mweolg" +0xbb5a: "mweolm" +0xbb5b: "mweolb" +0xbb5c: "mweols" +0xbb5d: "mweolt" +0xbb5e: "mweolp" +0xbb5f: "mweolh" +0xbb60: "mweom" +0xbb61: "mweob" +0xbb62: "mweobs" +0xbb63: "mweos" +0xbb64: "mweoss" +0xbb65: "mweong" +0xbb66: "mweoj" +0xbb67: "mweoc" +0xbb68: "mweok" +0xbb69: "mweot" +0xbb6a: "mweop" +0xbb6b: "mweoh" +0xbb6c: "mwe" +0xbb6d: "mweg" +0xbb6e: "mwegg" +0xbb6f: "mwegs" +0xbb70: "mwen" +0xbb71: "mwenj" +0xbb72: "mwenh" +0xbb73: "mwed" +0xbb74: "mwel" +0xbb75: "mwelg" +0xbb76: "mwelm" +0xbb77: "mwelb" +0xbb78: "mwels" +0xbb79: "mwelt" +0xbb7a: "mwelp" +0xbb7b: "mwelh" +0xbb7c: "mwem" +0xbb7d: "mweb" +0xbb7e: "mwebs" +0xbb7f: "mwes" +0xbb80: "mwess" +0xbb81: "mweng" +0xbb82: "mwej" +0xbb83: "mwec" +0xbb84: "mwek" +0xbb85: "mwet" +0xbb86: "mwep" +0xbb87: "mweh" +0xbb88: "mwi" +0xbb89: "mwig" +0xbb8a: "mwigg" +0xbb8b: "mwigs" +0xbb8c: "mwin" +0xbb8d: "mwinj" +0xbb8e: "mwinh" +0xbb8f: "mwid" +0xbb90: "mwil" +0xbb91: "mwilg" +0xbb92: "mwilm" +0xbb93: "mwilb" +0xbb94: "mwils" +0xbb95: "mwilt" +0xbb96: "mwilp" +0xbb97: "mwilh" +0xbb98: "mwim" +0xbb99: "mwib" +0xbb9a: "mwibs" +0xbb9b: "mwis" +0xbb9c: "mwiss" +0xbb9d: "mwing" +0xbb9e: "mwij" +0xbb9f: "mwic" +0xbba0: "mwik" +0xbba1: "mwit" +0xbba2: "mwip" +0xbba3: "mwih" +0xbba4: "myu" +0xbba5: "myug" +0xbba6: "myugg" +0xbba7: "myugs" +0xbba8: "myun" +0xbba9: "myunj" +0xbbaa: "myunh" +0xbbab: "myud" +0xbbac: "myul" +0xbbad: "myulg" +0xbbae: "myulm" +0xbbaf: "myulb" +0xbbb0: "myuls" +0xbbb1: "myult" +0xbbb2: "myulp" +0xbbb3: "myulh" +0xbbb4: "myum" +0xbbb5: "myub" +0xbbb6: "myubs" +0xbbb7: "myus" +0xbbb8: "myuss" +0xbbb9: "myung" +0xbbba: "myuj" +0xbbbb: "myuc" +0xbbbc: "myuk" +0xbbbd: "myut" +0xbbbe: "myup" +0xbbbf: "myuh" +0xbbc0: "meu" +0xbbc1: "meug" +0xbbc2: "meugg" +0xbbc3: "meugs" +0xbbc4: "meun" +0xbbc5: "meunj" +0xbbc6: "meunh" +0xbbc7: "meud" +0xbbc8: "meul" +0xbbc9: "meulg" +0xbbca: "meulm" +0xbbcb: "meulb" +0xbbcc: "meuls" +0xbbcd: "meult" +0xbbce: "meulp" +0xbbcf: "meulh" +0xbbd0: "meum" +0xbbd1: "meub" +0xbbd2: "meubs" +0xbbd3: "meus" +0xbbd4: "meuss" +0xbbd5: "meung" +0xbbd6: "meuj" +0xbbd7: "meuc" +0xbbd8: "meuk" +0xbbd9: "meut" +0xbbda: "meup" +0xbbdb: "meuh" +0xbbdc: "myi" +0xbbdd: "myig" +0xbbde: "myigg" +0xbbdf: "myigs" +0xbbe0: "myin" +0xbbe1: "myinj" +0xbbe2: "myinh" +0xbbe3: "myid" +0xbbe4: "myil" +0xbbe5: "myilg" +0xbbe6: "myilm" +0xbbe7: "myilb" +0xbbe8: "myils" +0xbbe9: "myilt" +0xbbea: "myilp" +0xbbeb: "myilh" +0xbbec: "myim" +0xbbed: "myib" +0xbbee: "myibs" +0xbbef: "myis" +0xbbf0: "myiss" +0xbbf1: "mying" +0xbbf2: "myij" +0xbbf3: "myic" +0xbbf4: "myik" +0xbbf5: "myit" +0xbbf6: "myip" +0xbbf7: "myih" +0xbbf8: "mi" +0xbbf9: "mig" +0xbbfa: "migg" +0xbbfb: "migs" +0xbbfc: "min" +0xbbfd: "minj" +0xbbfe: "minh" +0xbbff: "mid" +/* x0bc */ +0xbc00: "mil" +0xbc01: "milg" +0xbc02: "milm" +0xbc03: "milb" +0xbc04: "mils" +0xbc05: "milt" +0xbc06: "milp" +0xbc07: "milh" +0xbc08: "mim" +0xbc09: "mib" +0xbc0a: "mibs" +0xbc0b: "mis" +0xbc0c: "miss" +0xbc0d: "ming" +0xbc0e: "mij" +0xbc0f: "mic" +0xbc10: "mik" +0xbc11: "mit" +0xbc12: "mip" +0xbc13: "mih" +0xbc14: "ba" +0xbc15: "bag" +0xbc16: "bagg" +0xbc17: "bags" +0xbc18: "ban" +0xbc19: "banj" +0xbc1a: "banh" +0xbc1b: "bad" +0xbc1c: "bal" +0xbc1d: "balg" +0xbc1e: "balm" +0xbc1f: "balb" +0xbc20: "bals" +0xbc21: "balt" +0xbc22: "balp" +0xbc23: "balh" +0xbc24: "bam" +0xbc25: "bab" +0xbc26: "babs" +0xbc27: "bas" +0xbc28: "bass" +0xbc29: "bang" +0xbc2a: "baj" +0xbc2b: "bac" +0xbc2c: "bak" +0xbc2d: "bat" +0xbc2e: "bap" +0xbc2f: "bah" +0xbc30: "bae" +0xbc31: "baeg" +0xbc32: "baegg" +0xbc33: "baegs" +0xbc34: "baen" +0xbc35: "baenj" +0xbc36: "baenh" +0xbc37: "baed" +0xbc38: "bael" +0xbc39: "baelg" +0xbc3a: "baelm" +0xbc3b: "baelb" +0xbc3c: "baels" +0xbc3d: "baelt" +0xbc3e: "baelp" +0xbc3f: "baelh" +0xbc40: "baem" +0xbc41: "baeb" +0xbc42: "baebs" +0xbc43: "baes" +0xbc44: "baess" +0xbc45: "baeng" +0xbc46: "baej" +0xbc47: "baec" +0xbc48: "baek" +0xbc49: "baet" +0xbc4a: "baep" +0xbc4b: "baeh" +0xbc4c: "bya" +0xbc4d: "byag" +0xbc4e: "byagg" +0xbc4f: "byags" +0xbc50: "byan" +0xbc51: "byanj" +0xbc52: "byanh" +0xbc53: "byad" +0xbc54: "byal" +0xbc55: "byalg" +0xbc56: "byalm" +0xbc57: "byalb" +0xbc58: "byals" +0xbc59: "byalt" +0xbc5a: "byalp" +0xbc5b: "byalh" +0xbc5c: "byam" +0xbc5d: "byab" +0xbc5e: "byabs" +0xbc5f: "byas" +0xbc60: "byass" +0xbc61: "byang" +0xbc62: "byaj" +0xbc63: "byac" +0xbc64: "byak" +0xbc65: "byat" +0xbc66: "byap" +0xbc67: "byah" +0xbc68: "byae" +0xbc69: "byaeg" +0xbc6a: "byaegg" +0xbc6b: "byaegs" +0xbc6c: "byaen" +0xbc6d: "byaenj" +0xbc6e: "byaenh" +0xbc6f: "byaed" +0xbc70: "byael" +0xbc71: "byaelg" +0xbc72: "byaelm" +0xbc73: "byaelb" +0xbc74: "byaels" +0xbc75: "byaelt" +0xbc76: "byaelp" +0xbc77: "byaelh" +0xbc78: "byaem" +0xbc79: "byaeb" +0xbc7a: "byaebs" +0xbc7b: "byaes" +0xbc7c: "byaess" +0xbc7d: "byaeng" +0xbc7e: "byaej" +0xbc7f: "byaec" +0xbc80: "byaek" +0xbc81: "byaet" +0xbc82: "byaep" +0xbc83: "byaeh" +0xbc84: "beo" +0xbc85: "beog" +0xbc86: "beogg" +0xbc87: "beogs" +0xbc88: "beon" +0xbc89: "beonj" +0xbc8a: "beonh" +0xbc8b: "beod" +0xbc8c: "beol" +0xbc8d: "beolg" +0xbc8e: "beolm" +0xbc8f: "beolb" +0xbc90: "beols" +0xbc91: "beolt" +0xbc92: "beolp" +0xbc93: "beolh" +0xbc94: "beom" +0xbc95: "beob" +0xbc96: "beobs" +0xbc97: "beos" +0xbc98: "beoss" +0xbc99: "beong" +0xbc9a: "beoj" +0xbc9b: "beoc" +0xbc9c: "beok" +0xbc9d: "beot" +0xbc9e: "beop" +0xbc9f: "beoh" +0xbca0: "be" +0xbca1: "beg" +0xbca2: "begg" +0xbca3: "begs" +0xbca4: "ben" +0xbca5: "benj" +0xbca6: "benh" +0xbca7: "bed" +0xbca8: "bel" +0xbca9: "belg" +0xbcaa: "belm" +0xbcab: "belb" +0xbcac: "bels" +0xbcad: "belt" +0xbcae: "belp" +0xbcaf: "belh" +0xbcb0: "bem" +0xbcb1: "beb" +0xbcb2: "bebs" +0xbcb3: "bes" +0xbcb4: "bess" +0xbcb5: "beng" +0xbcb6: "bej" +0xbcb7: "bec" +0xbcb8: "bek" +0xbcb9: "bet" +0xbcba: "bep" +0xbcbb: "beh" +0xbcbc: "byeo" +0xbcbd: "byeog" +0xbcbe: "byeogg" +0xbcbf: "byeogs" +0xbcc0: "byeon" +0xbcc1: "byeonj" +0xbcc2: "byeonh" +0xbcc3: "byeod" +0xbcc4: "byeol" +0xbcc5: "byeolg" +0xbcc6: "byeolm" +0xbcc7: "byeolb" +0xbcc8: "byeols" +0xbcc9: "byeolt" +0xbcca: "byeolp" +0xbccb: "byeolh" +0xbccc: "byeom" +0xbccd: "byeob" +0xbcce: "byeobs" +0xbccf: "byeos" +0xbcd0: "byeoss" +0xbcd1: "byeong" +0xbcd2: "byeoj" +0xbcd3: "byeoc" +0xbcd4: "byeok" +0xbcd5: "byeot" +0xbcd6: "byeop" +0xbcd7: "byeoh" +0xbcd8: "bye" +0xbcd9: "byeg" +0xbcda: "byegg" +0xbcdb: "byegs" +0xbcdc: "byen" +0xbcdd: "byenj" +0xbcde: "byenh" +0xbcdf: "byed" +0xbce0: "byel" +0xbce1: "byelg" +0xbce2: "byelm" +0xbce3: "byelb" +0xbce4: "byels" +0xbce5: "byelt" +0xbce6: "byelp" +0xbce7: "byelh" +0xbce8: "byem" +0xbce9: "byeb" +0xbcea: "byebs" +0xbceb: "byes" +0xbcec: "byess" +0xbced: "byeng" +0xbcee: "byej" +0xbcef: "byec" +0xbcf0: "byek" +0xbcf1: "byet" +0xbcf2: "byep" +0xbcf3: "byeh" +0xbcf4: "bo" +0xbcf5: "bog" +0xbcf6: "bogg" +0xbcf7: "bogs" +0xbcf8: "bon" +0xbcf9: "bonj" +0xbcfa: "bonh" +0xbcfb: "bod" +0xbcfc: "bol" +0xbcfd: "bolg" +0xbcfe: "bolm" +0xbcff: "bolb" +/* x0bd */ +0xbd00: "bols" +0xbd01: "bolt" +0xbd02: "bolp" +0xbd03: "bolh" +0xbd04: "bom" +0xbd05: "bob" +0xbd06: "bobs" +0xbd07: "bos" +0xbd08: "boss" +0xbd09: "bong" +0xbd0a: "boj" +0xbd0b: "boc" +0xbd0c: "bok" +0xbd0d: "bot" +0xbd0e: "bop" +0xbd0f: "boh" +0xbd10: "bwa" +0xbd11: "bwag" +0xbd12: "bwagg" +0xbd13: "bwags" +0xbd14: "bwan" +0xbd15: "bwanj" +0xbd16: "bwanh" +0xbd17: "bwad" +0xbd18: "bwal" +0xbd19: "bwalg" +0xbd1a: "bwalm" +0xbd1b: "bwalb" +0xbd1c: "bwals" +0xbd1d: "bwalt" +0xbd1e: "bwalp" +0xbd1f: "bwalh" +0xbd20: "bwam" +0xbd21: "bwab" +0xbd22: "bwabs" +0xbd23: "bwas" +0xbd24: "bwass" +0xbd25: "bwang" +0xbd26: "bwaj" +0xbd27: "bwac" +0xbd28: "bwak" +0xbd29: "bwat" +0xbd2a: "bwap" +0xbd2b: "bwah" +0xbd2c: "bwae" +0xbd2d: "bwaeg" +0xbd2e: "bwaegg" +0xbd2f: "bwaegs" +0xbd30: "bwaen" +0xbd31: "bwaenj" +0xbd32: "bwaenh" +0xbd33: "bwaed" +0xbd34: "bwael" +0xbd35: "bwaelg" +0xbd36: "bwaelm" +0xbd37: "bwaelb" +0xbd38: "bwaels" +0xbd39: "bwaelt" +0xbd3a: "bwaelp" +0xbd3b: "bwaelh" +0xbd3c: "bwaem" +0xbd3d: "bwaeb" +0xbd3e: "bwaebs" +0xbd3f: "bwaes" +0xbd40: "bwaess" +0xbd41: "bwaeng" +0xbd42: "bwaej" +0xbd43: "bwaec" +0xbd44: "bwaek" +0xbd45: "bwaet" +0xbd46: "bwaep" +0xbd47: "bwaeh" +0xbd48: "boe" +0xbd49: "boeg" +0xbd4a: "boegg" +0xbd4b: "boegs" +0xbd4c: "boen" +0xbd4d: "boenj" +0xbd4e: "boenh" +0xbd4f: "boed" +0xbd50: "boel" +0xbd51: "boelg" +0xbd52: "boelm" +0xbd53: "boelb" +0xbd54: "boels" +0xbd55: "boelt" +0xbd56: "boelp" +0xbd57: "boelh" +0xbd58: "boem" +0xbd59: "boeb" +0xbd5a: "boebs" +0xbd5b: "boes" +0xbd5c: "boess" +0xbd5d: "boeng" +0xbd5e: "boej" +0xbd5f: "boec" +0xbd60: "boek" +0xbd61: "boet" +0xbd62: "boep" +0xbd63: "boeh" +0xbd64: "byo" +0xbd65: "byog" +0xbd66: "byogg" +0xbd67: "byogs" +0xbd68: "byon" +0xbd69: "byonj" +0xbd6a: "byonh" +0xbd6b: "byod" +0xbd6c: "byol" +0xbd6d: "byolg" +0xbd6e: "byolm" +0xbd6f: "byolb" +0xbd70: "byols" +0xbd71: "byolt" +0xbd72: "byolp" +0xbd73: "byolh" +0xbd74: "byom" +0xbd75: "byob" +0xbd76: "byobs" +0xbd77: "byos" +0xbd78: "byoss" +0xbd79: "byong" +0xbd7a: "byoj" +0xbd7b: "byoc" +0xbd7c: "byok" +0xbd7d: "byot" +0xbd7e: "byop" +0xbd7f: "byoh" +0xbd80: "bu" +0xbd81: "bug" +0xbd82: "bugg" +0xbd83: "bugs" +0xbd84: "bun" +0xbd85: "bunj" +0xbd86: "bunh" +0xbd87: "bud" +0xbd88: "bul" +0xbd89: "bulg" +0xbd8a: "bulm" +0xbd8b: "bulb" +0xbd8c: "buls" +0xbd8d: "bult" +0xbd8e: "bulp" +0xbd8f: "bulh" +0xbd90: "bum" +0xbd91: "bub" +0xbd92: "bubs" +0xbd93: "bus" +0xbd94: "buss" +0xbd95: "bung" +0xbd96: "buj" +0xbd97: "buc" +0xbd98: "buk" +0xbd99: "but" +0xbd9a: "bup" +0xbd9b: "buh" +0xbd9c: "bweo" +0xbd9d: "bweog" +0xbd9e: "bweogg" +0xbd9f: "bweogs" +0xbda0: "bweon" +0xbda1: "bweonj" +0xbda2: "bweonh" +0xbda3: "bweod" +0xbda4: "bweol" +0xbda5: "bweolg" +0xbda6: "bweolm" +0xbda7: "bweolb" +0xbda8: "bweols" +0xbda9: "bweolt" +0xbdaa: "bweolp" +0xbdab: "bweolh" +0xbdac: "bweom" +0xbdad: "bweob" +0xbdae: "bweobs" +0xbdaf: "bweos" +0xbdb0: "bweoss" +0xbdb1: "bweong" +0xbdb2: "bweoj" +0xbdb3: "bweoc" +0xbdb4: "bweok" +0xbdb5: "bweot" +0xbdb6: "bweop" +0xbdb7: "bweoh" +0xbdb8: "bwe" +0xbdb9: "bweg" +0xbdba: "bwegg" +0xbdbb: "bwegs" +0xbdbc: "bwen" +0xbdbd: "bwenj" +0xbdbe: "bwenh" +0xbdbf: "bwed" +0xbdc0: "bwel" +0xbdc1: "bwelg" +0xbdc2: "bwelm" +0xbdc3: "bwelb" +0xbdc4: "bwels" +0xbdc5: "bwelt" +0xbdc6: "bwelp" +0xbdc7: "bwelh" +0xbdc8: "bwem" +0xbdc9: "bweb" +0xbdca: "bwebs" +0xbdcb: "bwes" +0xbdcc: "bwess" +0xbdcd: "bweng" +0xbdce: "bwej" +0xbdcf: "bwec" +0xbdd0: "bwek" +0xbdd1: "bwet" +0xbdd2: "bwep" +0xbdd3: "bweh" +0xbdd4: "bwi" +0xbdd5: "bwig" +0xbdd6: "bwigg" +0xbdd7: "bwigs" +0xbdd8: "bwin" +0xbdd9: "bwinj" +0xbdda: "bwinh" +0xbddb: "bwid" +0xbddc: "bwil" +0xbddd: "bwilg" +0xbdde: "bwilm" +0xbddf: "bwilb" +0xbde0: "bwils" +0xbde1: "bwilt" +0xbde2: "bwilp" +0xbde3: "bwilh" +0xbde4: "bwim" +0xbde5: "bwib" +0xbde6: "bwibs" +0xbde7: "bwis" +0xbde8: "bwiss" +0xbde9: "bwing" +0xbdea: "bwij" +0xbdeb: "bwic" +0xbdec: "bwik" +0xbded: "bwit" +0xbdee: "bwip" +0xbdef: "bwih" +0xbdf0: "byu" +0xbdf1: "byug" +0xbdf2: "byugg" +0xbdf3: "byugs" +0xbdf4: "byun" +0xbdf5: "byunj" +0xbdf6: "byunh" +0xbdf7: "byud" +0xbdf8: "byul" +0xbdf9: "byulg" +0xbdfa: "byulm" +0xbdfb: "byulb" +0xbdfc: "byuls" +0xbdfd: "byult" +0xbdfe: "byulp" +0xbdff: "byulh" +/* x0be */ +0xbe00: "byum" +0xbe01: "byub" +0xbe02: "byubs" +0xbe03: "byus" +0xbe04: "byuss" +0xbe05: "byung" +0xbe06: "byuj" +0xbe07: "byuc" +0xbe08: "byuk" +0xbe09: "byut" +0xbe0a: "byup" +0xbe0b: "byuh" +0xbe0c: "beu" +0xbe0d: "beug" +0xbe0e: "beugg" +0xbe0f: "beugs" +0xbe10: "beun" +0xbe11: "beunj" +0xbe12: "beunh" +0xbe13: "beud" +0xbe14: "beul" +0xbe15: "beulg" +0xbe16: "beulm" +0xbe17: "beulb" +0xbe18: "beuls" +0xbe19: "beult" +0xbe1a: "beulp" +0xbe1b: "beulh" +0xbe1c: "beum" +0xbe1d: "beub" +0xbe1e: "beubs" +0xbe1f: "beus" +0xbe20: "beuss" +0xbe21: "beung" +0xbe22: "beuj" +0xbe23: "beuc" +0xbe24: "beuk" +0xbe25: "beut" +0xbe26: "beup" +0xbe27: "beuh" +0xbe28: "byi" +0xbe29: "byig" +0xbe2a: "byigg" +0xbe2b: "byigs" +0xbe2c: "byin" +0xbe2d: "byinj" +0xbe2e: "byinh" +0xbe2f: "byid" +0xbe30: "byil" +0xbe31: "byilg" +0xbe32: "byilm" +0xbe33: "byilb" +0xbe34: "byils" +0xbe35: "byilt" +0xbe36: "byilp" +0xbe37: "byilh" +0xbe38: "byim" +0xbe39: "byib" +0xbe3a: "byibs" +0xbe3b: "byis" +0xbe3c: "byiss" +0xbe3d: "bying" +0xbe3e: "byij" +0xbe3f: "byic" +0xbe40: "byik" +0xbe41: "byit" +0xbe42: "byip" +0xbe43: "byih" +0xbe44: "bi" +0xbe45: "big" +0xbe46: "bigg" +0xbe47: "bigs" +0xbe48: "bin" +0xbe49: "binj" +0xbe4a: "binh" +0xbe4b: "bid" +0xbe4c: "bil" +0xbe4d: "bilg" +0xbe4e: "bilm" +0xbe4f: "bilb" +0xbe50: "bils" +0xbe51: "bilt" +0xbe52: "bilp" +0xbe53: "bilh" +0xbe54: "bim" +0xbe55: "bib" +0xbe56: "bibs" +0xbe57: "bis" +0xbe58: "biss" +0xbe59: "bing" +0xbe5a: "bij" +0xbe5b: "bic" +0xbe5c: "bik" +0xbe5d: "bit" +0xbe5e: "bip" +0xbe5f: "bih" +0xbe60: "bba" +0xbe61: "bbag" +0xbe62: "bbagg" +0xbe63: "bbags" +0xbe64: "bban" +0xbe65: "bbanj" +0xbe66: "bbanh" +0xbe67: "bbad" +0xbe68: "bbal" +0xbe69: "bbalg" +0xbe6a: "bbalm" +0xbe6b: "bbalb" +0xbe6c: "bbals" +0xbe6d: "bbalt" +0xbe6e: "bbalp" +0xbe6f: "bbalh" +0xbe70: "bbam" +0xbe71: "bbab" +0xbe72: "bbabs" +0xbe73: "bbas" +0xbe74: "bbass" +0xbe75: "bbang" +0xbe76: "bbaj" +0xbe77: "bbac" +0xbe78: "bbak" +0xbe79: "bbat" +0xbe7a: "bbap" +0xbe7b: "bbah" +0xbe7c: "bbae" +0xbe7d: "bbaeg" +0xbe7e: "bbaegg" +0xbe7f: "bbaegs" +0xbe80: "bbaen" +0xbe81: "bbaenj" +0xbe82: "bbaenh" +0xbe83: "bbaed" +0xbe84: "bbael" +0xbe85: "bbaelg" +0xbe86: "bbaelm" +0xbe87: "bbaelb" +0xbe88: "bbaels" +0xbe89: "bbaelt" +0xbe8a: "bbaelp" +0xbe8b: "bbaelh" +0xbe8c: "bbaem" +0xbe8d: "bbaeb" +0xbe8e: "bbaebs" +0xbe8f: "bbaes" +0xbe90: "bbaess" +0xbe91: "bbaeng" +0xbe92: "bbaej" +0xbe93: "bbaec" +0xbe94: "bbaek" +0xbe95: "bbaet" +0xbe96: "bbaep" +0xbe97: "bbaeh" +0xbe98: "bbya" +0xbe99: "bbyag" +0xbe9a: "bbyagg" +0xbe9b: "bbyags" +0xbe9c: "bbyan" +0xbe9d: "bbyanj" +0xbe9e: "bbyanh" +0xbe9f: "bbyad" +0xbea0: "bbyal" +0xbea1: "bbyalg" +0xbea2: "bbyalm" +0xbea3: "bbyalb" +0xbea4: "bbyals" +0xbea5: "bbyalt" +0xbea6: "bbyalp" +0xbea7: "bbyalh" +0xbea8: "bbyam" +0xbea9: "bbyab" +0xbeaa: "bbyabs" +0xbeab: "bbyas" +0xbeac: "bbyass" +0xbead: "bbyang" +0xbeae: "bbyaj" +0xbeaf: "bbyac" +0xbeb0: "bbyak" +0xbeb1: "bbyat" +0xbeb2: "bbyap" +0xbeb3: "bbyah" +0xbeb4: "bbyae" +0xbeb5: "bbyaeg" +0xbeb6: "bbyaegg" +0xbeb7: "bbyaegs" +0xbeb8: "bbyaen" +0xbeb9: "bbyaenj" +0xbeba: "bbyaenh" +0xbebb: "bbyaed" +0xbebc: "bbyael" +0xbebd: "bbyaelg" +0xbebe: "bbyaelm" +0xbebf: "bbyaelb" +0xbec0: "bbyaels" +0xbec1: "bbyaelt" +0xbec2: "bbyaelp" +0xbec3: "bbyaelh" +0xbec4: "bbyaem" +0xbec5: "bbyaeb" +0xbec6: "bbyaebs" +0xbec7: "bbyaes" +0xbec8: "bbyaess" +0xbec9: "bbyaeng" +0xbeca: "bbyaej" +0xbecb: "bbyaec" +0xbecc: "bbyaek" +0xbecd: "bbyaet" +0xbece: "bbyaep" +0xbecf: "bbyaeh" +0xbed0: "bbeo" +0xbed1: "bbeog" +0xbed2: "bbeogg" +0xbed3: "bbeogs" +0xbed4: "bbeon" +0xbed5: "bbeonj" +0xbed6: "bbeonh" +0xbed7: "bbeod" +0xbed8: "bbeol" +0xbed9: "bbeolg" +0xbeda: "bbeolm" +0xbedb: "bbeolb" +0xbedc: "bbeols" +0xbedd: "bbeolt" +0xbede: "bbeolp" +0xbedf: "bbeolh" +0xbee0: "bbeom" +0xbee1: "bbeob" +0xbee2: "bbeobs" +0xbee3: "bbeos" +0xbee4: "bbeoss" +0xbee5: "bbeong" +0xbee6: "bbeoj" +0xbee7: "bbeoc" +0xbee8: "bbeok" +0xbee9: "bbeot" +0xbeea: "bbeop" +0xbeeb: "bbeoh" +0xbeec: "bbe" +0xbeed: "bbeg" +0xbeee: "bbegg" +0xbeef: "bbegs" +0xbef0: "bben" +0xbef1: "bbenj" +0xbef2: "bbenh" +0xbef3: "bbed" +0xbef4: "bbel" +0xbef5: "bbelg" +0xbef6: "bbelm" +0xbef7: "bbelb" +0xbef8: "bbels" +0xbef9: "bbelt" +0xbefa: "bbelp" +0xbefb: "bbelh" +0xbefc: "bbem" +0xbefd: "bbeb" +0xbefe: "bbebs" +0xbeff: "bbes" +/* x0bf */ +0xbf00: "bbess" +0xbf01: "bbeng" +0xbf02: "bbej" +0xbf03: "bbec" +0xbf04: "bbek" +0xbf05: "bbet" +0xbf06: "bbep" +0xbf07: "bbeh" +0xbf08: "bbyeo" +0xbf09: "bbyeog" +0xbf0a: "bbyeogg" +0xbf0b: "bbyeogs" +0xbf0c: "bbyeon" +0xbf0d: "bbyeonj" +0xbf0e: "bbyeonh" +0xbf0f: "bbyeod" +0xbf10: "bbyeol" +0xbf11: "bbyeolg" +0xbf12: "bbyeolm" +0xbf13: "bbyeolb" +0xbf14: "bbyeols" +0xbf15: "bbyeolt" +0xbf16: "bbyeolp" +0xbf17: "bbyeolh" +0xbf18: "bbyeom" +0xbf19: "bbyeob" +0xbf1a: "bbyeobs" +0xbf1b: "bbyeos" +0xbf1c: "bbyeoss" +0xbf1d: "bbyeong" +0xbf1e: "bbyeoj" +0xbf1f: "bbyeoc" +0xbf20: "bbyeok" +0xbf21: "bbyeot" +0xbf22: "bbyeop" +0xbf23: "bbyeoh" +0xbf24: "bbye" +0xbf25: "bbyeg" +0xbf26: "bbyegg" +0xbf27: "bbyegs" +0xbf28: "bbyen" +0xbf29: "bbyenj" +0xbf2a: "bbyenh" +0xbf2b: "bbyed" +0xbf2c: "bbyel" +0xbf2d: "bbyelg" +0xbf2e: "bbyelm" +0xbf2f: "bbyelb" +0xbf30: "bbyels" +0xbf31: "bbyelt" +0xbf32: "bbyelp" +0xbf33: "bbyelh" +0xbf34: "bbyem" +0xbf35: "bbyeb" +0xbf36: "bbyebs" +0xbf37: "bbyes" +0xbf38: "bbyess" +0xbf39: "bbyeng" +0xbf3a: "bbyej" +0xbf3b: "bbyec" +0xbf3c: "bbyek" +0xbf3d: "bbyet" +0xbf3e: "bbyep" +0xbf3f: "bbyeh" +0xbf40: "bbo" +0xbf41: "bbog" +0xbf42: "bbogg" +0xbf43: "bbogs" +0xbf44: "bbon" +0xbf45: "bbonj" +0xbf46: "bbonh" +0xbf47: "bbod" +0xbf48: "bbol" +0xbf49: "bbolg" +0xbf4a: "bbolm" +0xbf4b: "bbolb" +0xbf4c: "bbols" +0xbf4d: "bbolt" +0xbf4e: "bbolp" +0xbf4f: "bbolh" +0xbf50: "bbom" +0xbf51: "bbob" +0xbf52: "bbobs" +0xbf53: "bbos" +0xbf54: "bboss" +0xbf55: "bbong" +0xbf56: "bboj" +0xbf57: "bboc" +0xbf58: "bbok" +0xbf59: "bbot" +0xbf5a: "bbop" +0xbf5b: "bboh" +0xbf5c: "bbwa" +0xbf5d: "bbwag" +0xbf5e: "bbwagg" +0xbf5f: "bbwags" +0xbf60: "bbwan" +0xbf61: "bbwanj" +0xbf62: "bbwanh" +0xbf63: "bbwad" +0xbf64: "bbwal" +0xbf65: "bbwalg" +0xbf66: "bbwalm" +0xbf67: "bbwalb" +0xbf68: "bbwals" +0xbf69: "bbwalt" +0xbf6a: "bbwalp" +0xbf6b: "bbwalh" +0xbf6c: "bbwam" +0xbf6d: "bbwab" +0xbf6e: "bbwabs" +0xbf6f: "bbwas" +0xbf70: "bbwass" +0xbf71: "bbwang" +0xbf72: "bbwaj" +0xbf73: "bbwac" +0xbf74: "bbwak" +0xbf75: "bbwat" +0xbf76: "bbwap" +0xbf77: "bbwah" +0xbf78: "bbwae" +0xbf79: "bbwaeg" +0xbf7a: "bbwaegg" +0xbf7b: "bbwaegs" +0xbf7c: "bbwaen" +0xbf7d: "bbwaenj" +0xbf7e: "bbwaenh" +0xbf7f: "bbwaed" +0xbf80: "bbwael" +0xbf81: "bbwaelg" +0xbf82: "bbwaelm" +0xbf83: "bbwaelb" +0xbf84: "bbwaels" +0xbf85: "bbwaelt" +0xbf86: "bbwaelp" +0xbf87: "bbwaelh" +0xbf88: "bbwaem" +0xbf89: "bbwaeb" +0xbf8a: "bbwaebs" +0xbf8b: "bbwaes" +0xbf8c: "bbwaess" +0xbf8d: "bbwaeng" +0xbf8e: "bbwaej" +0xbf8f: "bbwaec" +0xbf90: "bbwaek" +0xbf91: "bbwaet" +0xbf92: "bbwaep" +0xbf93: "bbwaeh" +0xbf94: "bboe" +0xbf95: "bboeg" +0xbf96: "bboegg" +0xbf97: "bboegs" +0xbf98: "bboen" +0xbf99: "bboenj" +0xbf9a: "bboenh" +0xbf9b: "bboed" +0xbf9c: "bboel" +0xbf9d: "bboelg" +0xbf9e: "bboelm" +0xbf9f: "bboelb" +0xbfa0: "bboels" +0xbfa1: "bboelt" +0xbfa2: "bboelp" +0xbfa3: "bboelh" +0xbfa4: "bboem" +0xbfa5: "bboeb" +0xbfa6: "bboebs" +0xbfa7: "bboes" +0xbfa8: "bboess" +0xbfa9: "bboeng" +0xbfaa: "bboej" +0xbfab: "bboec" +0xbfac: "bboek" +0xbfad: "bboet" +0xbfae: "bboep" +0xbfaf: "bboeh" +0xbfb0: "bbyo" +0xbfb1: "bbyog" +0xbfb2: "bbyogg" +0xbfb3: "bbyogs" +0xbfb4: "bbyon" +0xbfb5: "bbyonj" +0xbfb6: "bbyonh" +0xbfb7: "bbyod" +0xbfb8: "bbyol" +0xbfb9: "bbyolg" +0xbfba: "bbyolm" +0xbfbb: "bbyolb" +0xbfbc: "bbyols" +0xbfbd: "bbyolt" +0xbfbe: "bbyolp" +0xbfbf: "bbyolh" +0xbfc0: "bbyom" +0xbfc1: "bbyob" +0xbfc2: "bbyobs" +0xbfc3: "bbyos" +0xbfc4: "bbyoss" +0xbfc5: "bbyong" +0xbfc6: "bbyoj" +0xbfc7: "bbyoc" +0xbfc8: "bbyok" +0xbfc9: "bbyot" +0xbfca: "bbyop" +0xbfcb: "bbyoh" +0xbfcc: "bbu" +0xbfcd: "bbug" +0xbfce: "bbugg" +0xbfcf: "bbugs" +0xbfd0: "bbun" +0xbfd1: "bbunj" +0xbfd2: "bbunh" +0xbfd3: "bbud" +0xbfd4: "bbul" +0xbfd5: "bbulg" +0xbfd6: "bbulm" +0xbfd7: "bbulb" +0xbfd8: "bbuls" +0xbfd9: "bbult" +0xbfda: "bbulp" +0xbfdb: "bbulh" +0xbfdc: "bbum" +0xbfdd: "bbub" +0xbfde: "bbubs" +0xbfdf: "bbus" +0xbfe0: "bbuss" +0xbfe1: "bbung" +0xbfe2: "bbuj" +0xbfe3: "bbuc" +0xbfe4: "bbuk" +0xbfe5: "bbut" +0xbfe6: "bbup" +0xbfe7: "bbuh" +0xbfe8: "bbweo" +0xbfe9: "bbweog" +0xbfea: "bbweogg" +0xbfeb: "bbweogs" +0xbfec: "bbweon" +0xbfed: "bbweonj" +0xbfee: "bbweonh" +0xbfef: "bbweod" +0xbff0: "bbweol" +0xbff1: "bbweolg" +0xbff2: "bbweolm" +0xbff3: "bbweolb" +0xbff4: "bbweols" +0xbff5: "bbweolt" +0xbff6: "bbweolp" +0xbff7: "bbweolh" +0xbff8: "bbweom" +0xbff9: "bbweob" +0xbffa: "bbweobs" +0xbffb: "bbweos" +0xbffc: "bbweoss" +0xbffd: "bbweong" +0xbffe: "bbweoj" +0xbfff: "bbweoc" +/* x0c0 */ +0xc000: "bbweok" +0xc001: "bbweot" +0xc002: "bbweop" +0xc003: "bbweoh" +0xc004: "bbwe" +0xc005: "bbweg" +0xc006: "bbwegg" +0xc007: "bbwegs" +0xc008: "bbwen" +0xc009: "bbwenj" +0xc00a: "bbwenh" +0xc00b: "bbwed" +0xc00c: "bbwel" +0xc00d: "bbwelg" +0xc00e: "bbwelm" +0xc00f: "bbwelb" +0xc010: "bbwels" +0xc011: "bbwelt" +0xc012: "bbwelp" +0xc013: "bbwelh" +0xc014: "bbwem" +0xc015: "bbweb" +0xc016: "bbwebs" +0xc017: "bbwes" +0xc018: "bbwess" +0xc019: "bbweng" +0xc01a: "bbwej" +0xc01b: "bbwec" +0xc01c: "bbwek" +0xc01d: "bbwet" +0xc01e: "bbwep" +0xc01f: "bbweh" +0xc020: "bbwi" +0xc021: "bbwig" +0xc022: "bbwigg" +0xc023: "bbwigs" +0xc024: "bbwin" +0xc025: "bbwinj" +0xc026: "bbwinh" +0xc027: "bbwid" +0xc028: "bbwil" +0xc029: "bbwilg" +0xc02a: "bbwilm" +0xc02b: "bbwilb" +0xc02c: "bbwils" +0xc02d: "bbwilt" +0xc02e: "bbwilp" +0xc02f: "bbwilh" +0xc030: "bbwim" +0xc031: "bbwib" +0xc032: "bbwibs" +0xc033: "bbwis" +0xc034: "bbwiss" +0xc035: "bbwing" +0xc036: "bbwij" +0xc037: "bbwic" +0xc038: "bbwik" +0xc039: "bbwit" +0xc03a: "bbwip" +0xc03b: "bbwih" +0xc03c: "bbyu" +0xc03d: "bbyug" +0xc03e: "bbyugg" +0xc03f: "bbyugs" +0xc040: "bbyun" +0xc041: "bbyunj" +0xc042: "bbyunh" +0xc043: "bbyud" +0xc044: "bbyul" +0xc045: "bbyulg" +0xc046: "bbyulm" +0xc047: "bbyulb" +0xc048: "bbyuls" +0xc049: "bbyult" +0xc04a: "bbyulp" +0xc04b: "bbyulh" +0xc04c: "bbyum" +0xc04d: "bbyub" +0xc04e: "bbyubs" +0xc04f: "bbyus" +0xc050: "bbyuss" +0xc051: "bbyung" +0xc052: "bbyuj" +0xc053: "bbyuc" +0xc054: "bbyuk" +0xc055: "bbyut" +0xc056: "bbyup" +0xc057: "bbyuh" +0xc058: "bbeu" +0xc059: "bbeug" +0xc05a: "bbeugg" +0xc05b: "bbeugs" +0xc05c: "bbeun" +0xc05d: "bbeunj" +0xc05e: "bbeunh" +0xc05f: "bbeud" +0xc060: "bbeul" +0xc061: "bbeulg" +0xc062: "bbeulm" +0xc063: "bbeulb" +0xc064: "bbeuls" +0xc065: "bbeult" +0xc066: "bbeulp" +0xc067: "bbeulh" +0xc068: "bbeum" +0xc069: "bbeub" +0xc06a: "bbeubs" +0xc06b: "bbeus" +0xc06c: "bbeuss" +0xc06d: "bbeung" +0xc06e: "bbeuj" +0xc06f: "bbeuc" +0xc070: "bbeuk" +0xc071: "bbeut" +0xc072: "bbeup" +0xc073: "bbeuh" +0xc074: "bbyi" +0xc075: "bbyig" +0xc076: "bbyigg" +0xc077: "bbyigs" +0xc078: "bbyin" +0xc079: "bbyinj" +0xc07a: "bbyinh" +0xc07b: "bbyid" +0xc07c: "bbyil" +0xc07d: "bbyilg" +0xc07e: "bbyilm" +0xc07f: "bbyilb" +0xc080: "bbyils" +0xc081: "bbyilt" +0xc082: "bbyilp" +0xc083: "bbyilh" +0xc084: "bbyim" +0xc085: "bbyib" +0xc086: "bbyibs" +0xc087: "bbyis" +0xc088: "bbyiss" +0xc089: "bbying" +0xc08a: "bbyij" +0xc08b: "bbyic" +0xc08c: "bbyik" +0xc08d: "bbyit" +0xc08e: "bbyip" +0xc08f: "bbyih" +0xc090: "bbi" +0xc091: "bbig" +0xc092: "bbigg" +0xc093: "bbigs" +0xc094: "bbin" +0xc095: "bbinj" +0xc096: "bbinh" +0xc097: "bbid" +0xc098: "bbil" +0xc099: "bbilg" +0xc09a: "bbilm" +0xc09b: "bbilb" +0xc09c: "bbils" +0xc09d: "bbilt" +0xc09e: "bbilp" +0xc09f: "bbilh" +0xc0a0: "bbim" +0xc0a1: "bbib" +0xc0a2: "bbibs" +0xc0a3: "bbis" +0xc0a4: "bbiss" +0xc0a5: "bbing" +0xc0a6: "bbij" +0xc0a7: "bbic" +0xc0a8: "bbik" +0xc0a9: "bbit" +0xc0aa: "bbip" +0xc0ab: "bbih" +0xc0ac: "sa" +0xc0ad: "sag" +0xc0ae: "sagg" +0xc0af: "sags" +0xc0b0: "san" +0xc0b1: "sanj" +0xc0b2: "sanh" +0xc0b3: "sad" +0xc0b4: "sal" +0xc0b5: "salg" +0xc0b6: "salm" +0xc0b7: "salb" +0xc0b8: "sals" +0xc0b9: "salt" +0xc0ba: "salp" +0xc0bb: "salh" +0xc0bc: "sam" +0xc0bd: "sab" +0xc0be: "sabs" +0xc0bf: "sas" +0xc0c0: "sass" +0xc0c1: "sang" +0xc0c2: "saj" +0xc0c3: "sac" +0xc0c4: "sak" +0xc0c5: "sat" +0xc0c6: "sap" +0xc0c7: "sah" +0xc0c8: "sae" +0xc0c9: "saeg" +0xc0ca: "saegg" +0xc0cb: "saegs" +0xc0cc: "saen" +0xc0cd: "saenj" +0xc0ce: "saenh" +0xc0cf: "saed" +0xc0d0: "sael" +0xc0d1: "saelg" +0xc0d2: "saelm" +0xc0d3: "saelb" +0xc0d4: "saels" +0xc0d5: "saelt" +0xc0d6: "saelp" +0xc0d7: "saelh" +0xc0d8: "saem" +0xc0d9: "saeb" +0xc0da: "saebs" +0xc0db: "saes" +0xc0dc: "saess" +0xc0dd: "saeng" +0xc0de: "saej" +0xc0df: "saec" +0xc0e0: "saek" +0xc0e1: "saet" +0xc0e2: "saep" +0xc0e3: "saeh" +0xc0e4: "sya" +0xc0e5: "syag" +0xc0e6: "syagg" +0xc0e7: "syags" +0xc0e8: "syan" +0xc0e9: "syanj" +0xc0ea: "syanh" +0xc0eb: "syad" +0xc0ec: "syal" +0xc0ed: "syalg" +0xc0ee: "syalm" +0xc0ef: "syalb" +0xc0f0: "syals" +0xc0f1: "syalt" +0xc0f2: "syalp" +0xc0f3: "syalh" +0xc0f4: "syam" +0xc0f5: "syab" +0xc0f6: "syabs" +0xc0f7: "syas" +0xc0f8: "syass" +0xc0f9: "syang" +0xc0fa: "syaj" +0xc0fb: "syac" +0xc0fc: "syak" +0xc0fd: "syat" +0xc0fe: "syap" +0xc0ff: "syah" +/* x0c1 */ +0xc100: "syae" +0xc101: "syaeg" +0xc102: "syaegg" +0xc103: "syaegs" +0xc104: "syaen" +0xc105: "syaenj" +0xc106: "syaenh" +0xc107: "syaed" +0xc108: "syael" +0xc109: "syaelg" +0xc10a: "syaelm" +0xc10b: "syaelb" +0xc10c: "syaels" +0xc10d: "syaelt" +0xc10e: "syaelp" +0xc10f: "syaelh" +0xc110: "syaem" +0xc111: "syaeb" +0xc112: "syaebs" +0xc113: "syaes" +0xc114: "syaess" +0xc115: "syaeng" +0xc116: "syaej" +0xc117: "syaec" +0xc118: "syaek" +0xc119: "syaet" +0xc11a: "syaep" +0xc11b: "syaeh" +0xc11c: "seo" +0xc11d: "seog" +0xc11e: "seogg" +0xc11f: "seogs" +0xc120: "seon" +0xc121: "seonj" +0xc122: "seonh" +0xc123: "seod" +0xc124: "seol" +0xc125: "seolg" +0xc126: "seolm" +0xc127: "seolb" +0xc128: "seols" +0xc129: "seolt" +0xc12a: "seolp" +0xc12b: "seolh" +0xc12c: "seom" +0xc12d: "seob" +0xc12e: "seobs" +0xc12f: "seos" +0xc130: "seoss" +0xc131: "seong" +0xc132: "seoj" +0xc133: "seoc" +0xc134: "seok" +0xc135: "seot" +0xc136: "seop" +0xc137: "seoh" +0xc138: "se" +0xc139: "seg" +0xc13a: "segg" +0xc13b: "segs" +0xc13c: "sen" +0xc13d: "senj" +0xc13e: "senh" +0xc13f: "sed" +0xc140: "sel" +0xc141: "selg" +0xc142: "selm" +0xc143: "selb" +0xc144: "sels" +0xc145: "selt" +0xc146: "selp" +0xc147: "selh" +0xc148: "sem" +0xc149: "seb" +0xc14a: "sebs" +0xc14b: "ses" +0xc14c: "sess" +0xc14d: "seng" +0xc14e: "sej" +0xc14f: "sec" +0xc150: "sek" +0xc151: "set" +0xc152: "sep" +0xc153: "seh" +0xc154: "syeo" +0xc155: "syeog" +0xc156: "syeogg" +0xc157: "syeogs" +0xc158: "syeon" +0xc159: "syeonj" +0xc15a: "syeonh" +0xc15b: "syeod" +0xc15c: "syeol" +0xc15d: "syeolg" +0xc15e: "syeolm" +0xc15f: "syeolb" +0xc160: "syeols" +0xc161: "syeolt" +0xc162: "syeolp" +0xc163: "syeolh" +0xc164: "syeom" +0xc165: "syeob" +0xc166: "syeobs" +0xc167: "syeos" +0xc168: "syeoss" +0xc169: "syeong" +0xc16a: "syeoj" +0xc16b: "syeoc" +0xc16c: "syeok" +0xc16d: "syeot" +0xc16e: "syeop" +0xc16f: "syeoh" +0xc170: "sye" +0xc171: "syeg" +0xc172: "syegg" +0xc173: "syegs" +0xc174: "syen" +0xc175: "syenj" +0xc176: "syenh" +0xc177: "syed" +0xc178: "syel" +0xc179: "syelg" +0xc17a: "syelm" +0xc17b: "syelb" +0xc17c: "syels" +0xc17d: "syelt" +0xc17e: "syelp" +0xc17f: "syelh" +0xc180: "syem" +0xc181: "syeb" +0xc182: "syebs" +0xc183: "syes" +0xc184: "syess" +0xc185: "syeng" +0xc186: "syej" +0xc187: "syec" +0xc188: "syek" +0xc189: "syet" +0xc18a: "syep" +0xc18b: "syeh" +0xc18c: "so" +0xc18d: "sog" +0xc18e: "sogg" +0xc18f: "sogs" +0xc190: "son" +0xc191: "sonj" +0xc192: "sonh" +0xc193: "sod" +0xc194: "sol" +0xc195: "solg" +0xc196: "solm" +0xc197: "solb" +0xc198: "sols" +0xc199: "solt" +0xc19a: "solp" +0xc19b: "solh" +0xc19c: "som" +0xc19d: "sob" +0xc19e: "sobs" +0xc19f: "sos" +0xc1a0: "soss" +0xc1a1: "song" +0xc1a2: "soj" +0xc1a3: "soc" +0xc1a4: "sok" +0xc1a5: "sot" +0xc1a6: "sop" +0xc1a7: "soh" +0xc1a8: "swa" +0xc1a9: "swag" +0xc1aa: "swagg" +0xc1ab: "swags" +0xc1ac: "swan" +0xc1ad: "swanj" +0xc1ae: "swanh" +0xc1af: "swad" +0xc1b0: "swal" +0xc1b1: "swalg" +0xc1b2: "swalm" +0xc1b3: "swalb" +0xc1b4: "swals" +0xc1b5: "swalt" +0xc1b6: "swalp" +0xc1b7: "swalh" +0xc1b8: "swam" +0xc1b9: "swab" +0xc1ba: "swabs" +0xc1bb: "swas" +0xc1bc: "swass" +0xc1bd: "swang" +0xc1be: "swaj" +0xc1bf: "swac" +0xc1c0: "swak" +0xc1c1: "swat" +0xc1c2: "swap" +0xc1c3: "swah" +0xc1c4: "swae" +0xc1c5: "swaeg" +0xc1c6: "swaegg" +0xc1c7: "swaegs" +0xc1c8: "swaen" +0xc1c9: "swaenj" +0xc1ca: "swaenh" +0xc1cb: "swaed" +0xc1cc: "swael" +0xc1cd: "swaelg" +0xc1ce: "swaelm" +0xc1cf: "swaelb" +0xc1d0: "swaels" +0xc1d1: "swaelt" +0xc1d2: "swaelp" +0xc1d3: "swaelh" +0xc1d4: "swaem" +0xc1d5: "swaeb" +0xc1d6: "swaebs" +0xc1d7: "swaes" +0xc1d8: "swaess" +0xc1d9: "swaeng" +0xc1da: "swaej" +0xc1db: "swaec" +0xc1dc: "swaek" +0xc1dd: "swaet" +0xc1de: "swaep" +0xc1df: "swaeh" +0xc1e0: "soe" +0xc1e1: "soeg" +0xc1e2: "soegg" +0xc1e3: "soegs" +0xc1e4: "soen" +0xc1e5: "soenj" +0xc1e6: "soenh" +0xc1e7: "soed" +0xc1e8: "soel" +0xc1e9: "soelg" +0xc1ea: "soelm" +0xc1eb: "soelb" +0xc1ec: "soels" +0xc1ed: "soelt" +0xc1ee: "soelp" +0xc1ef: "soelh" +0xc1f0: "soem" +0xc1f1: "soeb" +0xc1f2: "soebs" +0xc1f3: "soes" +0xc1f4: "soess" +0xc1f5: "soeng" +0xc1f6: "soej" +0xc1f7: "soec" +0xc1f8: "soek" +0xc1f9: "soet" +0xc1fa: "soep" +0xc1fb: "soeh" +0xc1fc: "syo" +0xc1fd: "syog" +0xc1fe: "syogg" +0xc1ff: "syogs" +/* x0c2 */ +0xc200: "syon" +0xc201: "syonj" +0xc202: "syonh" +0xc203: "syod" +0xc204: "syol" +0xc205: "syolg" +0xc206: "syolm" +0xc207: "syolb" +0xc208: "syols" +0xc209: "syolt" +0xc20a: "syolp" +0xc20b: "syolh" +0xc20c: "syom" +0xc20d: "syob" +0xc20e: "syobs" +0xc20f: "syos" +0xc210: "syoss" +0xc211: "syong" +0xc212: "syoj" +0xc213: "syoc" +0xc214: "syok" +0xc215: "syot" +0xc216: "syop" +0xc217: "syoh" +0xc218: "su" +0xc219: "sug" +0xc21a: "sugg" +0xc21b: "sugs" +0xc21c: "sun" +0xc21d: "sunj" +0xc21e: "sunh" +0xc21f: "sud" +0xc220: "sul" +0xc221: "sulg" +0xc222: "sulm" +0xc223: "sulb" +0xc224: "suls" +0xc225: "sult" +0xc226: "sulp" +0xc227: "sulh" +0xc228: "sum" +0xc229: "sub" +0xc22a: "subs" +0xc22b: "sus" +0xc22c: "suss" +0xc22d: "sung" +0xc22e: "suj" +0xc22f: "suc" +0xc230: "suk" +0xc231: "sut" +0xc232: "sup" +0xc233: "suh" +0xc234: "sweo" +0xc235: "sweog" +0xc236: "sweogg" +0xc237: "sweogs" +0xc238: "sweon" +0xc239: "sweonj" +0xc23a: "sweonh" +0xc23b: "sweod" +0xc23c: "sweol" +0xc23d: "sweolg" +0xc23e: "sweolm" +0xc23f: "sweolb" +0xc240: "sweols" +0xc241: "sweolt" +0xc242: "sweolp" +0xc243: "sweolh" +0xc244: "sweom" +0xc245: "sweob" +0xc246: "sweobs" +0xc247: "sweos" +0xc248: "sweoss" +0xc249: "sweong" +0xc24a: "sweoj" +0xc24b: "sweoc" +0xc24c: "sweok" +0xc24d: "sweot" +0xc24e: "sweop" +0xc24f: "sweoh" +0xc250: "swe" +0xc251: "sweg" +0xc252: "swegg" +0xc253: "swegs" +0xc254: "swen" +0xc255: "swenj" +0xc256: "swenh" +0xc257: "swed" +0xc258: "swel" +0xc259: "swelg" +0xc25a: "swelm" +0xc25b: "swelb" +0xc25c: "swels" +0xc25d: "swelt" +0xc25e: "swelp" +0xc25f: "swelh" +0xc260: "swem" +0xc261: "sweb" +0xc262: "swebs" +0xc263: "swes" +0xc264: "swess" +0xc265: "sweng" +0xc266: "swej" +0xc267: "swec" +0xc268: "swek" +0xc269: "swet" +0xc26a: "swep" +0xc26b: "sweh" +0xc26c: "swi" +0xc26d: "swig" +0xc26e: "swigg" +0xc26f: "swigs" +0xc270: "swin" +0xc271: "swinj" +0xc272: "swinh" +0xc273: "swid" +0xc274: "swil" +0xc275: "swilg" +0xc276: "swilm" +0xc277: "swilb" +0xc278: "swils" +0xc279: "swilt" +0xc27a: "swilp" +0xc27b: "swilh" +0xc27c: "swim" +0xc27d: "swib" +0xc27e: "swibs" +0xc27f: "swis" +0xc280: "swiss" +0xc281: "swing" +0xc282: "swij" +0xc283: "swic" +0xc284: "swik" +0xc285: "swit" +0xc286: "swip" +0xc287: "swih" +0xc288: "syu" +0xc289: "syug" +0xc28a: "syugg" +0xc28b: "syugs" +0xc28c: "syun" +0xc28d: "syunj" +0xc28e: "syunh" +0xc28f: "syud" +0xc290: "syul" +0xc291: "syulg" +0xc292: "syulm" +0xc293: "syulb" +0xc294: "syuls" +0xc295: "syult" +0xc296: "syulp" +0xc297: "syulh" +0xc298: "syum" +0xc299: "syub" +0xc29a: "syubs" +0xc29b: "syus" +0xc29c: "syuss" +0xc29d: "syung" +0xc29e: "syuj" +0xc29f: "syuc" +0xc2a0: "syuk" +0xc2a1: "syut" +0xc2a2: "syup" +0xc2a3: "syuh" +0xc2a4: "seu" +0xc2a5: "seug" +0xc2a6: "seugg" +0xc2a7: "seugs" +0xc2a8: "seun" +0xc2a9: "seunj" +0xc2aa: "seunh" +0xc2ab: "seud" +0xc2ac: "seul" +0xc2ad: "seulg" +0xc2ae: "seulm" +0xc2af: "seulb" +0xc2b0: "seuls" +0xc2b1: "seult" +0xc2b2: "seulp" +0xc2b3: "seulh" +0xc2b4: "seum" +0xc2b5: "seub" +0xc2b6: "seubs" +0xc2b7: "seus" +0xc2b8: "seuss" +0xc2b9: "seung" +0xc2ba: "seuj" +0xc2bb: "seuc" +0xc2bc: "seuk" +0xc2bd: "seut" +0xc2be: "seup" +0xc2bf: "seuh" +0xc2c0: "syi" +0xc2c1: "syig" +0xc2c2: "syigg" +0xc2c3: "syigs" +0xc2c4: "syin" +0xc2c5: "syinj" +0xc2c6: "syinh" +0xc2c7: "syid" +0xc2c8: "syil" +0xc2c9: "syilg" +0xc2ca: "syilm" +0xc2cb: "syilb" +0xc2cc: "syils" +0xc2cd: "syilt" +0xc2ce: "syilp" +0xc2cf: "syilh" +0xc2d0: "syim" +0xc2d1: "syib" +0xc2d2: "syibs" +0xc2d3: "syis" +0xc2d4: "syiss" +0xc2d5: "sying" +0xc2d6: "syij" +0xc2d7: "syic" +0xc2d8: "syik" +0xc2d9: "syit" +0xc2da: "syip" +0xc2db: "syih" +0xc2dc: "si" +0xc2dd: "sig" +0xc2de: "sigg" +0xc2df: "sigs" +0xc2e0: "sin" +0xc2e1: "sinj" +0xc2e2: "sinh" +0xc2e3: "sid" +0xc2e4: "sil" +0xc2e5: "silg" +0xc2e6: "silm" +0xc2e7: "silb" +0xc2e8: "sils" +0xc2e9: "silt" +0xc2ea: "silp" +0xc2eb: "silh" +0xc2ec: "sim" +0xc2ed: "sib" +0xc2ee: "sibs" +0xc2ef: "sis" +0xc2f0: "siss" +0xc2f1: "sing" +0xc2f2: "sij" +0xc2f3: "sic" +0xc2f4: "sik" +0xc2f5: "sit" +0xc2f6: "sip" +0xc2f7: "sih" +0xc2f8: "ssa" +0xc2f9: "ssag" +0xc2fa: "ssagg" +0xc2fb: "ssags" +0xc2fc: "ssan" +0xc2fd: "ssanj" +0xc2fe: "ssanh" +0xc2ff: "ssad" +/* x0c3 */ +0xc300: "ssal" +0xc301: "ssalg" +0xc302: "ssalm" +0xc303: "ssalb" +0xc304: "ssals" +0xc305: "ssalt" +0xc306: "ssalp" +0xc307: "ssalh" +0xc308: "ssam" +0xc309: "ssab" +0xc30a: "ssabs" +0xc30b: "ssas" +0xc30c: "ssass" +0xc30d: "ssang" +0xc30e: "ssaj" +0xc30f: "ssac" +0xc310: "ssak" +0xc311: "ssat" +0xc312: "ssap" +0xc313: "ssah" +0xc314: "ssae" +0xc315: "ssaeg" +0xc316: "ssaegg" +0xc317: "ssaegs" +0xc318: "ssaen" +0xc319: "ssaenj" +0xc31a: "ssaenh" +0xc31b: "ssaed" +0xc31c: "ssael" +0xc31d: "ssaelg" +0xc31e: "ssaelm" +0xc31f: "ssaelb" +0xc320: "ssaels" +0xc321: "ssaelt" +0xc322: "ssaelp" +0xc323: "ssaelh" +0xc324: "ssaem" +0xc325: "ssaeb" +0xc326: "ssaebs" +0xc327: "ssaes" +0xc328: "ssaess" +0xc329: "ssaeng" +0xc32a: "ssaej" +0xc32b: "ssaec" +0xc32c: "ssaek" +0xc32d: "ssaet" +0xc32e: "ssaep" +0xc32f: "ssaeh" +0xc330: "ssya" +0xc331: "ssyag" +0xc332: "ssyagg" +0xc333: "ssyags" +0xc334: "ssyan" +0xc335: "ssyanj" +0xc336: "ssyanh" +0xc337: "ssyad" +0xc338: "ssyal" +0xc339: "ssyalg" +0xc33a: "ssyalm" +0xc33b: "ssyalb" +0xc33c: "ssyals" +0xc33d: "ssyalt" +0xc33e: "ssyalp" +0xc33f: "ssyalh" +0xc340: "ssyam" +0xc341: "ssyab" +0xc342: "ssyabs" +0xc343: "ssyas" +0xc344: "ssyass" +0xc345: "ssyang" +0xc346: "ssyaj" +0xc347: "ssyac" +0xc348: "ssyak" +0xc349: "ssyat" +0xc34a: "ssyap" +0xc34b: "ssyah" +0xc34c: "ssyae" +0xc34d: "ssyaeg" +0xc34e: "ssyaegg" +0xc34f: "ssyaegs" +0xc350: "ssyaen" +0xc351: "ssyaenj" +0xc352: "ssyaenh" +0xc353: "ssyaed" +0xc354: "ssyael" +0xc355: "ssyaelg" +0xc356: "ssyaelm" +0xc357: "ssyaelb" +0xc358: "ssyaels" +0xc359: "ssyaelt" +0xc35a: "ssyaelp" +0xc35b: "ssyaelh" +0xc35c: "ssyaem" +0xc35d: "ssyaeb" +0xc35e: "ssyaebs" +0xc35f: "ssyaes" +0xc360: "ssyaess" +0xc361: "ssyaeng" +0xc362: "ssyaej" +0xc363: "ssyaec" +0xc364: "ssyaek" +0xc365: "ssyaet" +0xc366: "ssyaep" +0xc367: "ssyaeh" +0xc368: "sseo" +0xc369: "sseog" +0xc36a: "sseogg" +0xc36b: "sseogs" +0xc36c: "sseon" +0xc36d: "sseonj" +0xc36e: "sseonh" +0xc36f: "sseod" +0xc370: "sseol" +0xc371: "sseolg" +0xc372: "sseolm" +0xc373: "sseolb" +0xc374: "sseols" +0xc375: "sseolt" +0xc376: "sseolp" +0xc377: "sseolh" +0xc378: "sseom" +0xc379: "sseob" +0xc37a: "sseobs" +0xc37b: "sseos" +0xc37c: "sseoss" +0xc37d: "sseong" +0xc37e: "sseoj" +0xc37f: "sseoc" +0xc380: "sseok" +0xc381: "sseot" +0xc382: "sseop" +0xc383: "sseoh" +0xc384: "sse" +0xc385: "sseg" +0xc386: "ssegg" +0xc387: "ssegs" +0xc388: "ssen" +0xc389: "ssenj" +0xc38a: "ssenh" +0xc38b: "ssed" +0xc38c: "ssel" +0xc38d: "sselg" +0xc38e: "sselm" +0xc38f: "sselb" +0xc390: "ssels" +0xc391: "sselt" +0xc392: "sselp" +0xc393: "sselh" +0xc394: "ssem" +0xc395: "sseb" +0xc396: "ssebs" +0xc397: "sses" +0xc398: "ssess" +0xc399: "sseng" +0xc39a: "ssej" +0xc39b: "ssec" +0xc39c: "ssek" +0xc39d: "sset" +0xc39e: "ssep" +0xc39f: "sseh" +0xc3a0: "ssyeo" +0xc3a1: "ssyeog" +0xc3a2: "ssyeogg" +0xc3a3: "ssyeogs" +0xc3a4: "ssyeon" +0xc3a5: "ssyeonj" +0xc3a6: "ssyeonh" +0xc3a7: "ssyeod" +0xc3a8: "ssyeol" +0xc3a9: "ssyeolg" +0xc3aa: "ssyeolm" +0xc3ab: "ssyeolb" +0xc3ac: "ssyeols" +0xc3ad: "ssyeolt" +0xc3ae: "ssyeolp" +0xc3af: "ssyeolh" +0xc3b0: "ssyeom" +0xc3b1: "ssyeob" +0xc3b2: "ssyeobs" +0xc3b3: "ssyeos" +0xc3b4: "ssyeoss" +0xc3b5: "ssyeong" +0xc3b6: "ssyeoj" +0xc3b7: "ssyeoc" +0xc3b8: "ssyeok" +0xc3b9: "ssyeot" +0xc3ba: "ssyeop" +0xc3bb: "ssyeoh" +0xc3bc: "ssye" +0xc3bd: "ssyeg" +0xc3be: "ssyegg" +0xc3bf: "ssyegs" +0xc3c0: "ssyen" +0xc3c1: "ssyenj" +0xc3c2: "ssyenh" +0xc3c3: "ssyed" +0xc3c4: "ssyel" +0xc3c5: "ssyelg" +0xc3c6: "ssyelm" +0xc3c7: "ssyelb" +0xc3c8: "ssyels" +0xc3c9: "ssyelt" +0xc3ca: "ssyelp" +0xc3cb: "ssyelh" +0xc3cc: "ssyem" +0xc3cd: "ssyeb" +0xc3ce: "ssyebs" +0xc3cf: "ssyes" +0xc3d0: "ssyess" +0xc3d1: "ssyeng" +0xc3d2: "ssyej" +0xc3d3: "ssyec" +0xc3d4: "ssyek" +0xc3d5: "ssyet" +0xc3d6: "ssyep" +0xc3d7: "ssyeh" +0xc3d8: "sso" +0xc3d9: "ssog" +0xc3da: "ssogg" +0xc3db: "ssogs" +0xc3dc: "sson" +0xc3dd: "ssonj" +0xc3de: "ssonh" +0xc3df: "ssod" +0xc3e0: "ssol" +0xc3e1: "ssolg" +0xc3e2: "ssolm" +0xc3e3: "ssolb" +0xc3e4: "ssols" +0xc3e5: "ssolt" +0xc3e6: "ssolp" +0xc3e7: "ssolh" +0xc3e8: "ssom" +0xc3e9: "ssob" +0xc3ea: "ssobs" +0xc3eb: "ssos" +0xc3ec: "ssoss" +0xc3ed: "ssong" +0xc3ee: "ssoj" +0xc3ef: "ssoc" +0xc3f0: "ssok" +0xc3f1: "ssot" +0xc3f2: "ssop" +0xc3f3: "ssoh" +0xc3f4: "sswa" +0xc3f5: "sswag" +0xc3f6: "sswagg" +0xc3f7: "sswags" +0xc3f8: "sswan" +0xc3f9: "sswanj" +0xc3fa: "sswanh" +0xc3fb: "sswad" +0xc3fc: "sswal" +0xc3fd: "sswalg" +0xc3fe: "sswalm" +0xc3ff: "sswalb" +/* x0c4 */ +0xc400: "sswals" +0xc401: "sswalt" +0xc402: "sswalp" +0xc403: "sswalh" +0xc404: "sswam" +0xc405: "sswab" +0xc406: "sswabs" +0xc407: "sswas" +0xc408: "sswass" +0xc409: "sswang" +0xc40a: "sswaj" +0xc40b: "sswac" +0xc40c: "sswak" +0xc40d: "sswat" +0xc40e: "sswap" +0xc40f: "sswah" +0xc410: "sswae" +0xc411: "sswaeg" +0xc412: "sswaegg" +0xc413: "sswaegs" +0xc414: "sswaen" +0xc415: "sswaenj" +0xc416: "sswaenh" +0xc417: "sswaed" +0xc418: "sswael" +0xc419: "sswaelg" +0xc41a: "sswaelm" +0xc41b: "sswaelb" +0xc41c: "sswaels" +0xc41d: "sswaelt" +0xc41e: "sswaelp" +0xc41f: "sswaelh" +0xc420: "sswaem" +0xc421: "sswaeb" +0xc422: "sswaebs" +0xc423: "sswaes" +0xc424: "sswaess" +0xc425: "sswaeng" +0xc426: "sswaej" +0xc427: "sswaec" +0xc428: "sswaek" +0xc429: "sswaet" +0xc42a: "sswaep" +0xc42b: "sswaeh" +0xc42c: "ssoe" +0xc42d: "ssoeg" +0xc42e: "ssoegg" +0xc42f: "ssoegs" +0xc430: "ssoen" +0xc431: "ssoenj" +0xc432: "ssoenh" +0xc433: "ssoed" +0xc434: "ssoel" +0xc435: "ssoelg" +0xc436: "ssoelm" +0xc437: "ssoelb" +0xc438: "ssoels" +0xc439: "ssoelt" +0xc43a: "ssoelp" +0xc43b: "ssoelh" +0xc43c: "ssoem" +0xc43d: "ssoeb" +0xc43e: "ssoebs" +0xc43f: "ssoes" +0xc440: "ssoess" +0xc441: "ssoeng" +0xc442: "ssoej" +0xc443: "ssoec" +0xc444: "ssoek" +0xc445: "ssoet" +0xc446: "ssoep" +0xc447: "ssoeh" +0xc448: "ssyo" +0xc449: "ssyog" +0xc44a: "ssyogg" +0xc44b: "ssyogs" +0xc44c: "ssyon" +0xc44d: "ssyonj" +0xc44e: "ssyonh" +0xc44f: "ssyod" +0xc450: "ssyol" +0xc451: "ssyolg" +0xc452: "ssyolm" +0xc453: "ssyolb" +0xc454: "ssyols" +0xc455: "ssyolt" +0xc456: "ssyolp" +0xc457: "ssyolh" +0xc458: "ssyom" +0xc459: "ssyob" +0xc45a: "ssyobs" +0xc45b: "ssyos" +0xc45c: "ssyoss" +0xc45d: "ssyong" +0xc45e: "ssyoj" +0xc45f: "ssyoc" +0xc460: "ssyok" +0xc461: "ssyot" +0xc462: "ssyop" +0xc463: "ssyoh" +0xc464: "ssu" +0xc465: "ssug" +0xc466: "ssugg" +0xc467: "ssugs" +0xc468: "ssun" +0xc469: "ssunj" +0xc46a: "ssunh" +0xc46b: "ssud" +0xc46c: "ssul" +0xc46d: "ssulg" +0xc46e: "ssulm" +0xc46f: "ssulb" +0xc470: "ssuls" +0xc471: "ssult" +0xc472: "ssulp" +0xc473: "ssulh" +0xc474: "ssum" +0xc475: "ssub" +0xc476: "ssubs" +0xc477: "ssus" +0xc478: "ssuss" +0xc479: "ssung" +0xc47a: "ssuj" +0xc47b: "ssuc" +0xc47c: "ssuk" +0xc47d: "ssut" +0xc47e: "ssup" +0xc47f: "ssuh" +0xc480: "ssweo" +0xc481: "ssweog" +0xc482: "ssweogg" +0xc483: "ssweogs" +0xc484: "ssweon" +0xc485: "ssweonj" +0xc486: "ssweonh" +0xc487: "ssweod" +0xc488: "ssweol" +0xc489: "ssweolg" +0xc48a: "ssweolm" +0xc48b: "ssweolb" +0xc48c: "ssweols" +0xc48d: "ssweolt" +0xc48e: "ssweolp" +0xc48f: "ssweolh" +0xc490: "ssweom" +0xc491: "ssweob" +0xc492: "ssweobs" +0xc493: "ssweos" +0xc494: "ssweoss" +0xc495: "ssweong" +0xc496: "ssweoj" +0xc497: "ssweoc" +0xc498: "ssweok" +0xc499: "ssweot" +0xc49a: "ssweop" +0xc49b: "ssweoh" +0xc49c: "sswe" +0xc49d: "ssweg" +0xc49e: "sswegg" +0xc49f: "sswegs" +0xc4a0: "sswen" +0xc4a1: "sswenj" +0xc4a2: "sswenh" +0xc4a3: "sswed" +0xc4a4: "sswel" +0xc4a5: "sswelg" +0xc4a6: "sswelm" +0xc4a7: "sswelb" +0xc4a8: "sswels" +0xc4a9: "sswelt" +0xc4aa: "sswelp" +0xc4ab: "sswelh" +0xc4ac: "sswem" +0xc4ad: "ssweb" +0xc4ae: "sswebs" +0xc4af: "sswes" +0xc4b0: "sswess" +0xc4b1: "ssweng" +0xc4b2: "sswej" +0xc4b3: "sswec" +0xc4b4: "sswek" +0xc4b5: "sswet" +0xc4b6: "sswep" +0xc4b7: "ssweh" +0xc4b8: "sswi" +0xc4b9: "sswig" +0xc4ba: "sswigg" +0xc4bb: "sswigs" +0xc4bc: "sswin" +0xc4bd: "sswinj" +0xc4be: "sswinh" +0xc4bf: "sswid" +0xc4c0: "sswil" +0xc4c1: "sswilg" +0xc4c2: "sswilm" +0xc4c3: "sswilb" +0xc4c4: "sswils" +0xc4c5: "sswilt" +0xc4c6: "sswilp" +0xc4c7: "sswilh" +0xc4c8: "sswim" +0xc4c9: "sswib" +0xc4ca: "sswibs" +0xc4cb: "sswis" +0xc4cc: "sswiss" +0xc4cd: "sswing" +0xc4ce: "sswij" +0xc4cf: "sswic" +0xc4d0: "sswik" +0xc4d1: "sswit" +0xc4d2: "sswip" +0xc4d3: "sswih" +0xc4d4: "ssyu" +0xc4d5: "ssyug" +0xc4d6: "ssyugg" +0xc4d7: "ssyugs" +0xc4d8: "ssyun" +0xc4d9: "ssyunj" +0xc4da: "ssyunh" +0xc4db: "ssyud" +0xc4dc: "ssyul" +0xc4dd: "ssyulg" +0xc4de: "ssyulm" +0xc4df: "ssyulb" +0xc4e0: "ssyuls" +0xc4e1: "ssyult" +0xc4e2: "ssyulp" +0xc4e3: "ssyulh" +0xc4e4: "ssyum" +0xc4e5: "ssyub" +0xc4e6: "ssyubs" +0xc4e7: "ssyus" +0xc4e8: "ssyuss" +0xc4e9: "ssyung" +0xc4ea: "ssyuj" +0xc4eb: "ssyuc" +0xc4ec: "ssyuk" +0xc4ed: "ssyut" +0xc4ee: "ssyup" +0xc4ef: "ssyuh" +0xc4f0: "sseu" +0xc4f1: "sseug" +0xc4f2: "sseugg" +0xc4f3: "sseugs" +0xc4f4: "sseun" +0xc4f5: "sseunj" +0xc4f6: "sseunh" +0xc4f7: "sseud" +0xc4f8: "sseul" +0xc4f9: "sseulg" +0xc4fa: "sseulm" +0xc4fb: "sseulb" +0xc4fc: "sseuls" +0xc4fd: "sseult" +0xc4fe: "sseulp" +0xc4ff: "sseulh" +/* x0c5 */ +0xc500: "sseum" +0xc501: "sseub" +0xc502: "sseubs" +0xc503: "sseus" +0xc504: "sseuss" +0xc505: "sseung" +0xc506: "sseuj" +0xc507: "sseuc" +0xc508: "sseuk" +0xc509: "sseut" +0xc50a: "sseup" +0xc50b: "sseuh" +0xc50c: "ssyi" +0xc50d: "ssyig" +0xc50e: "ssyigg" +0xc50f: "ssyigs" +0xc510: "ssyin" +0xc511: "ssyinj" +0xc512: "ssyinh" +0xc513: "ssyid" +0xc514: "ssyil" +0xc515: "ssyilg" +0xc516: "ssyilm" +0xc517: "ssyilb" +0xc518: "ssyils" +0xc519: "ssyilt" +0xc51a: "ssyilp" +0xc51b: "ssyilh" +0xc51c: "ssyim" +0xc51d: "ssyib" +0xc51e: "ssyibs" +0xc51f: "ssyis" +0xc520: "ssyiss" +0xc521: "ssying" +0xc522: "ssyij" +0xc523: "ssyic" +0xc524: "ssyik" +0xc525: "ssyit" +0xc526: "ssyip" +0xc527: "ssyih" +0xc528: "ssi" +0xc529: "ssig" +0xc52a: "ssigg" +0xc52b: "ssigs" +0xc52c: "ssin" +0xc52d: "ssinj" +0xc52e: "ssinh" +0xc52f: "ssid" +0xc530: "ssil" +0xc531: "ssilg" +0xc532: "ssilm" +0xc533: "ssilb" +0xc534: "ssils" +0xc535: "ssilt" +0xc536: "ssilp" +0xc537: "ssilh" +0xc538: "ssim" +0xc539: "ssib" +0xc53a: "ssibs" +0xc53b: "ssis" +0xc53c: "ssiss" +0xc53d: "ssing" +0xc53e: "ssij" +0xc53f: "ssic" +0xc540: "ssik" +0xc541: "ssit" +0xc542: "ssip" +0xc543: "ssih" +0xc544: "a" +0xc545: "ag" +0xc546: "agg" +0xc547: "ags" +0xc548: "an" +0xc549: "anj" +0xc54a: "anh" +0xc54b: "ad" +0xc54c: "al" +0xc54d: "alg" +0xc54e: "alm" +0xc54f: "alb" +0xc550: "als" +0xc551: "alt" +0xc552: "alp" +0xc553: "alh" +0xc554: "am" +0xc555: "ab" +0xc556: "abs" +0xc557: "as" +0xc558: "ass" +0xc559: "ang" +0xc55a: "aj" +0xc55b: "ac" +0xc55c: "ak" +0xc55d: "at" +0xc55e: "ap" +0xc55f: "ah" +0xc560: "ae" +0xc561: "aeg" +0xc562: "aegg" +0xc563: "aegs" +0xc564: "aen" +0xc565: "aenj" +0xc566: "aenh" +0xc567: "aed" +0xc568: "ael" +0xc569: "aelg" +0xc56a: "aelm" +0xc56b: "aelb" +0xc56c: "aels" +0xc56d: "aelt" +0xc56e: "aelp" +0xc56f: "aelh" +0xc570: "aem" +0xc571: "aeb" +0xc572: "aebs" +0xc573: "aes" +0xc574: "aess" +0xc575: "aeng" +0xc576: "aej" +0xc577: "aec" +0xc578: "aek" +0xc579: "aet" +0xc57a: "aep" +0xc57b: "aeh" +0xc57c: "ya" +0xc57d: "yag" +0xc57e: "yagg" +0xc57f: "yags" +0xc580: "yan" +0xc581: "yanj" +0xc582: "yanh" +0xc583: "yad" +0xc584: "yal" +0xc585: "yalg" +0xc586: "yalm" +0xc587: "yalb" +0xc588: "yals" +0xc589: "yalt" +0xc58a: "yalp" +0xc58b: "yalh" +0xc58c: "yam" +0xc58d: "yab" +0xc58e: "yabs" +0xc58f: "yas" +0xc590: "yass" +0xc591: "yang" +0xc592: "yaj" +0xc593: "yac" +0xc594: "yak" +0xc595: "yat" +0xc596: "yap" +0xc597: "yah" +0xc598: "yae" +0xc599: "yaeg" +0xc59a: "yaegg" +0xc59b: "yaegs" +0xc59c: "yaen" +0xc59d: "yaenj" +0xc59e: "yaenh" +0xc59f: "yaed" +0xc5a0: "yael" +0xc5a1: "yaelg" +0xc5a2: "yaelm" +0xc5a3: "yaelb" +0xc5a4: "yaels" +0xc5a5: "yaelt" +0xc5a6: "yaelp" +0xc5a7: "yaelh" +0xc5a8: "yaem" +0xc5a9: "yaeb" +0xc5aa: "yaebs" +0xc5ab: "yaes" +0xc5ac: "yaess" +0xc5ad: "yaeng" +0xc5ae: "yaej" +0xc5af: "yaec" +0xc5b0: "yaek" +0xc5b1: "yaet" +0xc5b2: "yaep" +0xc5b3: "yaeh" +0xc5b4: "eo" +0xc5b5: "eog" +0xc5b6: "eogg" +0xc5b7: "eogs" +0xc5b8: "eon" +0xc5b9: "eonj" +0xc5ba: "eonh" +0xc5bb: "eod" +0xc5bc: "eol" +0xc5bd: "eolg" +0xc5be: "eolm" +0xc5bf: "eolb" +0xc5c0: "eols" +0xc5c1: "eolt" +0xc5c2: "eolp" +0xc5c3: "eolh" +0xc5c4: "eom" +0xc5c5: "eob" +0xc5c6: "eobs" +0xc5c7: "eos" +0xc5c8: "eoss" +0xc5c9: "eong" +0xc5ca: "eoj" +0xc5cb: "eoc" +0xc5cc: "eok" +0xc5cd: "eot" +0xc5ce: "eop" +0xc5cf: "eoh" +0xc5d0: "e" +0xc5d1: "eg" +0xc5d2: "egg" +0xc5d3: "egs" +0xc5d4: "en" +0xc5d5: "enj" +0xc5d6: "enh" +0xc5d7: "ed" +0xc5d8: "el" +0xc5d9: "elg" +0xc5da: "elm" +0xc5db: "elb" +0xc5dc: "els" +0xc5dd: "elt" +0xc5de: "elp" +0xc5df: "elh" +0xc5e0: "em" +0xc5e1: "eb" +0xc5e2: "ebs" +0xc5e3: "es" +0xc5e4: "ess" +0xc5e5: "eng" +0xc5e6: "ej" +0xc5e7: "ec" +0xc5e8: "ek" +0xc5e9: "et" +0xc5ea: "ep" +0xc5eb: "eh" +0xc5ec: "yeo" +0xc5ed: "yeog" +0xc5ee: "yeogg" +0xc5ef: "yeogs" +0xc5f0: "yeon" +0xc5f1: "yeonj" +0xc5f2: "yeonh" +0xc5f3: "yeod" +0xc5f4: "yeol" +0xc5f5: "yeolg" +0xc5f6: "yeolm" +0xc5f7: "yeolb" +0xc5f8: "yeols" +0xc5f9: "yeolt" +0xc5fa: "yeolp" +0xc5fb: "yeolh" +0xc5fc: "yeom" +0xc5fd: "yeob" +0xc5fe: "yeobs" +0xc5ff: "yeos" +/* x0c6 */ +0xc600: "yeoss" +0xc601: "yeong" +0xc602: "yeoj" +0xc603: "yeoc" +0xc604: "yeok" +0xc605: "yeot" +0xc606: "yeop" +0xc607: "yeoh" +0xc608: "ye" +0xc609: "yeg" +0xc60a: "yegg" +0xc60b: "yegs" +0xc60c: "yen" +0xc60d: "yenj" +0xc60e: "yenh" +0xc60f: "yed" +0xc610: "yel" +0xc611: "yelg" +0xc612: "yelm" +0xc613: "yelb" +0xc614: "yels" +0xc615: "yelt" +0xc616: "yelp" +0xc617: "yelh" +0xc618: "yem" +0xc619: "yeb" +0xc61a: "yebs" +0xc61b: "yes" +0xc61c: "yess" +0xc61d: "yeng" +0xc61e: "yej" +0xc61f: "yec" +0xc620: "yek" +0xc621: "yet" +0xc622: "yep" +0xc623: "yeh" +0xc624: "o" +0xc625: "og" +0xc626: "ogg" +0xc627: "ogs" +0xc628: "on" +0xc629: "onj" +0xc62a: "onh" +0xc62b: "od" +0xc62c: "ol" +0xc62d: "olg" +0xc62e: "olm" +0xc62f: "olb" +0xc630: "ols" +0xc631: "olt" +0xc632: "olp" +0xc633: "olh" +0xc634: "om" +0xc635: "ob" +0xc636: "obs" +0xc637: "os" +0xc638: "oss" +0xc639: "ong" +0xc63a: "oj" +0xc63b: "oc" +0xc63c: "ok" +0xc63d: "ot" +0xc63e: "op" +0xc63f: "oh" +0xc640: "wa" +0xc641: "wag" +0xc642: "wagg" +0xc643: "wags" +0xc644: "wan" +0xc645: "wanj" +0xc646: "wanh" +0xc647: "wad" +0xc648: "wal" +0xc649: "walg" +0xc64a: "walm" +0xc64b: "walb" +0xc64c: "wals" +0xc64d: "walt" +0xc64e: "walp" +0xc64f: "walh" +0xc650: "wam" +0xc651: "wab" +0xc652: "wabs" +0xc653: "was" +0xc654: "wass" +0xc655: "wang" +0xc656: "waj" +0xc657: "wac" +0xc658: "wak" +0xc659: "wat" +0xc65a: "wap" +0xc65b: "wah" +0xc65c: "wae" +0xc65d: "waeg" +0xc65e: "waegg" +0xc65f: "waegs" +0xc660: "waen" +0xc661: "waenj" +0xc662: "waenh" +0xc663: "waed" +0xc664: "wael" +0xc665: "waelg" +0xc666: "waelm" +0xc667: "waelb" +0xc668: "waels" +0xc669: "waelt" +0xc66a: "waelp" +0xc66b: "waelh" +0xc66c: "waem" +0xc66d: "waeb" +0xc66e: "waebs" +0xc66f: "waes" +0xc670: "waess" +0xc671: "waeng" +0xc672: "waej" +0xc673: "waec" +0xc674: "waek" +0xc675: "waet" +0xc676: "waep" +0xc677: "waeh" +0xc678: "oe" +0xc679: "oeg" +0xc67a: "oegg" +0xc67b: "oegs" +0xc67c: "oen" +0xc67d: "oenj" +0xc67e: "oenh" +0xc67f: "oed" +0xc680: "oel" +0xc681: "oelg" +0xc682: "oelm" +0xc683: "oelb" +0xc684: "oels" +0xc685: "oelt" +0xc686: "oelp" +0xc687: "oelh" +0xc688: "oem" +0xc689: "oeb" +0xc68a: "oebs" +0xc68b: "oes" +0xc68c: "oess" +0xc68d: "oeng" +0xc68e: "oej" +0xc68f: "oec" +0xc690: "oek" +0xc691: "oet" +0xc692: "oep" +0xc693: "oeh" +0xc694: "yo" +0xc695: "yog" +0xc696: "yogg" +0xc697: "yogs" +0xc698: "yon" +0xc699: "yonj" +0xc69a: "yonh" +0xc69b: "yod" +0xc69c: "yol" +0xc69d: "yolg" +0xc69e: "yolm" +0xc69f: "yolb" +0xc6a0: "yols" +0xc6a1: "yolt" +0xc6a2: "yolp" +0xc6a3: "yolh" +0xc6a4: "yom" +0xc6a5: "yob" +0xc6a6: "yobs" +0xc6a7: "yos" +0xc6a8: "yoss" +0xc6a9: "yong" +0xc6aa: "yoj" +0xc6ab: "yoc" +0xc6ac: "yok" +0xc6ad: "yot" +0xc6ae: "yop" +0xc6af: "yoh" +0xc6b0: "u" +0xc6b1: "ug" +0xc6b2: "ugg" +0xc6b3: "ugs" +0xc6b4: "un" +0xc6b5: "unj" +0xc6b6: "unh" +0xc6b7: "ud" +0xc6b8: "ul" +0xc6b9: "ulg" +0xc6ba: "ulm" +0xc6bb: "ulb" +0xc6bc: "uls" +0xc6bd: "ult" +0xc6be: "ulp" +0xc6bf: "ulh" +0xc6c0: "um" +0xc6c1: "ub" +0xc6c2: "ubs" +0xc6c3: "us" +0xc6c4: "uss" +0xc6c5: "ung" +0xc6c6: "uj" +0xc6c7: "uc" +0xc6c8: "uk" +0xc6c9: "ut" +0xc6ca: "up" +0xc6cb: "uh" +0xc6cc: "weo" +0xc6cd: "weog" +0xc6ce: "weogg" +0xc6cf: "weogs" +0xc6d0: "weon" +0xc6d1: "weonj" +0xc6d2: "weonh" +0xc6d3: "weod" +0xc6d4: "weol" +0xc6d5: "weolg" +0xc6d6: "weolm" +0xc6d7: "weolb" +0xc6d8: "weols" +0xc6d9: "weolt" +0xc6da: "weolp" +0xc6db: "weolh" +0xc6dc: "weom" +0xc6dd: "weob" +0xc6de: "weobs" +0xc6df: "weos" +0xc6e0: "weoss" +0xc6e1: "weong" +0xc6e2: "weoj" +0xc6e3: "weoc" +0xc6e4: "weok" +0xc6e5: "weot" +0xc6e6: "weop" +0xc6e7: "weoh" +0xc6e8: "we" +0xc6e9: "weg" +0xc6ea: "wegg" +0xc6eb: "wegs" +0xc6ec: "wen" +0xc6ed: "wenj" +0xc6ee: "wenh" +0xc6ef: "wed" +0xc6f0: "wel" +0xc6f1: "welg" +0xc6f2: "welm" +0xc6f3: "welb" +0xc6f4: "wels" +0xc6f5: "welt" +0xc6f6: "welp" +0xc6f7: "welh" +0xc6f8: "wem" +0xc6f9: "web" +0xc6fa: "webs" +0xc6fb: "wes" +0xc6fc: "wess" +0xc6fd: "weng" +0xc6fe: "wej" +0xc6ff: "wec" +/* x0c7 */ +0xc700: "wek" +0xc701: "wet" +0xc702: "wep" +0xc703: "weh" +0xc704: "wi" +0xc705: "wig" +0xc706: "wigg" +0xc707: "wigs" +0xc708: "win" +0xc709: "winj" +0xc70a: "winh" +0xc70b: "wid" +0xc70c: "wil" +0xc70d: "wilg" +0xc70e: "wilm" +0xc70f: "wilb" +0xc710: "wils" +0xc711: "wilt" +0xc712: "wilp" +0xc713: "wilh" +0xc714: "wim" +0xc715: "wib" +0xc716: "wibs" +0xc717: "wis" +0xc718: "wiss" +0xc719: "wing" +0xc71a: "wij" +0xc71b: "wic" +0xc71c: "wik" +0xc71d: "wit" +0xc71e: "wip" +0xc71f: "wih" +0xc720: "yu" +0xc721: "yug" +0xc722: "yugg" +0xc723: "yugs" +0xc724: "yun" +0xc725: "yunj" +0xc726: "yunh" +0xc727: "yud" +0xc728: "yul" +0xc729: "yulg" +0xc72a: "yulm" +0xc72b: "yulb" +0xc72c: "yuls" +0xc72d: "yult" +0xc72e: "yulp" +0xc72f: "yulh" +0xc730: "yum" +0xc731: "yub" +0xc732: "yubs" +0xc733: "yus" +0xc734: "yuss" +0xc735: "yung" +0xc736: "yuj" +0xc737: "yuc" +0xc738: "yuk" +0xc739: "yut" +0xc73a: "yup" +0xc73b: "yuh" +0xc73c: "eu" +0xc73d: "eug" +0xc73e: "eugg" +0xc73f: "eugs" +0xc740: "eun" +0xc741: "eunj" +0xc742: "eunh" +0xc743: "eud" +0xc744: "eul" +0xc745: "eulg" +0xc746: "eulm" +0xc747: "eulb" +0xc748: "euls" +0xc749: "eult" +0xc74a: "eulp" +0xc74b: "eulh" +0xc74c: "eum" +0xc74d: "eub" +0xc74e: "eubs" +0xc74f: "eus" +0xc750: "euss" +0xc751: "eung" +0xc752: "euj" +0xc753: "euc" +0xc754: "euk" +0xc755: "eut" +0xc756: "eup" +0xc757: "euh" +0xc758: "yi" +0xc759: "yig" +0xc75a: "yigg" +0xc75b: "yigs" +0xc75c: "yin" +0xc75d: "yinj" +0xc75e: "yinh" +0xc75f: "yid" +0xc760: "yil" +0xc761: "yilg" +0xc762: "yilm" +0xc763: "yilb" +0xc764: "yils" +0xc765: "yilt" +0xc766: "yilp" +0xc767: "yilh" +0xc768: "yim" +0xc769: "yib" +0xc76a: "yibs" +0xc76b: "yis" +0xc76c: "yiss" +0xc76d: "ying" +0xc76e: "yij" +0xc76f: "yic" +0xc770: "yik" +0xc771: "yit" +0xc772: "yip" +0xc773: "yih" +0xc774: "i" +0xc775: "ig" +0xc776: "igg" +0xc777: "igs" +0xc778: "in" +0xc779: "inj" +0xc77a: "inh" +0xc77b: "id" +0xc77c: "il" +0xc77d: "ilg" +0xc77e: "ilm" +0xc77f: "ilb" +0xc780: "ils" +0xc781: "ilt" +0xc782: "ilp" +0xc783: "ilh" +0xc784: "im" +0xc785: "ib" +0xc786: "ibs" +0xc787: "is" +0xc788: "iss" +0xc789: "ing" +0xc78a: "ij" +0xc78b: "ic" +0xc78c: "ik" +0xc78d: "it" +0xc78e: "ip" +0xc78f: "ih" +0xc790: "ja" +0xc791: "jag" +0xc792: "jagg" +0xc793: "jags" +0xc794: "jan" +0xc795: "janj" +0xc796: "janh" +0xc797: "jad" +0xc798: "jal" +0xc799: "jalg" +0xc79a: "jalm" +0xc79b: "jalb" +0xc79c: "jals" +0xc79d: "jalt" +0xc79e: "jalp" +0xc79f: "jalh" +0xc7a0: "jam" +0xc7a1: "jab" +0xc7a2: "jabs" +0xc7a3: "jas" +0xc7a4: "jass" +0xc7a5: "jang" +0xc7a6: "jaj" +0xc7a7: "jac" +0xc7a8: "jak" +0xc7a9: "jat" +0xc7aa: "jap" +0xc7ab: "jah" +0xc7ac: "jae" +0xc7ad: "jaeg" +0xc7ae: "jaegg" +0xc7af: "jaegs" +0xc7b0: "jaen" +0xc7b1: "jaenj" +0xc7b2: "jaenh" +0xc7b3: "jaed" +0xc7b4: "jael" +0xc7b5: "jaelg" +0xc7b6: "jaelm" +0xc7b7: "jaelb" +0xc7b8: "jaels" +0xc7b9: "jaelt" +0xc7ba: "jaelp" +0xc7bb: "jaelh" +0xc7bc: "jaem" +0xc7bd: "jaeb" +0xc7be: "jaebs" +0xc7bf: "jaes" +0xc7c0: "jaess" +0xc7c1: "jaeng" +0xc7c2: "jaej" +0xc7c3: "jaec" +0xc7c4: "jaek" +0xc7c5: "jaet" +0xc7c6: "jaep" +0xc7c7: "jaeh" +0xc7c8: "jya" +0xc7c9: "jyag" +0xc7ca: "jyagg" +0xc7cb: "jyags" +0xc7cc: "jyan" +0xc7cd: "jyanj" +0xc7ce: "jyanh" +0xc7cf: "jyad" +0xc7d0: "jyal" +0xc7d1: "jyalg" +0xc7d2: "jyalm" +0xc7d3: "jyalb" +0xc7d4: "jyals" +0xc7d5: "jyalt" +0xc7d6: "jyalp" +0xc7d7: "jyalh" +0xc7d8: "jyam" +0xc7d9: "jyab" +0xc7da: "jyabs" +0xc7db: "jyas" +0xc7dc: "jyass" +0xc7dd: "jyang" +0xc7de: "jyaj" +0xc7df: "jyac" +0xc7e0: "jyak" +0xc7e1: "jyat" +0xc7e2: "jyap" +0xc7e3: "jyah" +0xc7e4: "jyae" +0xc7e5: "jyaeg" +0xc7e6: "jyaegg" +0xc7e7: "jyaegs" +0xc7e8: "jyaen" +0xc7e9: "jyaenj" +0xc7ea: "jyaenh" +0xc7eb: "jyaed" +0xc7ec: "jyael" +0xc7ed: "jyaelg" +0xc7ee: "jyaelm" +0xc7ef: "jyaelb" +0xc7f0: "jyaels" +0xc7f1: "jyaelt" +0xc7f2: "jyaelp" +0xc7f3: "jyaelh" +0xc7f4: "jyaem" +0xc7f5: "jyaeb" +0xc7f6: "jyaebs" +0xc7f7: "jyaes" +0xc7f8: "jyaess" +0xc7f9: "jyaeng" +0xc7fa: "jyaej" +0xc7fb: "jyaec" +0xc7fc: "jyaek" +0xc7fd: "jyaet" +0xc7fe: "jyaep" +0xc7ff: "jyaeh" +/* x0c8 */ +0xc800: "jeo" +0xc801: "jeog" +0xc802: "jeogg" +0xc803: "jeogs" +0xc804: "jeon" +0xc805: "jeonj" +0xc806: "jeonh" +0xc807: "jeod" +0xc808: "jeol" +0xc809: "jeolg" +0xc80a: "jeolm" +0xc80b: "jeolb" +0xc80c: "jeols" +0xc80d: "jeolt" +0xc80e: "jeolp" +0xc80f: "jeolh" +0xc810: "jeom" +0xc811: "jeob" +0xc812: "jeobs" +0xc813: "jeos" +0xc814: "jeoss" +0xc815: "jeong" +0xc816: "jeoj" +0xc817: "jeoc" +0xc818: "jeok" +0xc819: "jeot" +0xc81a: "jeop" +0xc81b: "jeoh" +0xc81c: "je" +0xc81d: "jeg" +0xc81e: "jegg" +0xc81f: "jegs" +0xc820: "jen" +0xc821: "jenj" +0xc822: "jenh" +0xc823: "jed" +0xc824: "jel" +0xc825: "jelg" +0xc826: "jelm" +0xc827: "jelb" +0xc828: "jels" +0xc829: "jelt" +0xc82a: "jelp" +0xc82b: "jelh" +0xc82c: "jem" +0xc82d: "jeb" +0xc82e: "jebs" +0xc82f: "jes" +0xc830: "jess" +0xc831: "jeng" +0xc832: "jej" +0xc833: "jec" +0xc834: "jek" +0xc835: "jet" +0xc836: "jep" +0xc837: "jeh" +0xc838: "jyeo" +0xc839: "jyeog" +0xc83a: "jyeogg" +0xc83b: "jyeogs" +0xc83c: "jyeon" +0xc83d: "jyeonj" +0xc83e: "jyeonh" +0xc83f: "jyeod" +0xc840: "jyeol" +0xc841: "jyeolg" +0xc842: "jyeolm" +0xc843: "jyeolb" +0xc844: "jyeols" +0xc845: "jyeolt" +0xc846: "jyeolp" +0xc847: "jyeolh" +0xc848: "jyeom" +0xc849: "jyeob" +0xc84a: "jyeobs" +0xc84b: "jyeos" +0xc84c: "jyeoss" +0xc84d: "jyeong" +0xc84e: "jyeoj" +0xc84f: "jyeoc" +0xc850: "jyeok" +0xc851: "jyeot" +0xc852: "jyeop" +0xc853: "jyeoh" +0xc854: "jye" +0xc855: "jyeg" +0xc856: "jyegg" +0xc857: "jyegs" +0xc858: "jyen" +0xc859: "jyenj" +0xc85a: "jyenh" +0xc85b: "jyed" +0xc85c: "jyel" +0xc85d: "jyelg" +0xc85e: "jyelm" +0xc85f: "jyelb" +0xc860: "jyels" +0xc861: "jyelt" +0xc862: "jyelp" +0xc863: "jyelh" +0xc864: "jyem" +0xc865: "jyeb" +0xc866: "jyebs" +0xc867: "jyes" +0xc868: "jyess" +0xc869: "jyeng" +0xc86a: "jyej" +0xc86b: "jyec" +0xc86c: "jyek" +0xc86d: "jyet" +0xc86e: "jyep" +0xc86f: "jyeh" +0xc870: "jo" +0xc871: "jog" +0xc872: "jogg" +0xc873: "jogs" +0xc874: "jon" +0xc875: "jonj" +0xc876: "jonh" +0xc877: "jod" +0xc878: "jol" +0xc879: "jolg" +0xc87a: "jolm" +0xc87b: "jolb" +0xc87c: "jols" +0xc87d: "jolt" +0xc87e: "jolp" +0xc87f: "jolh" +0xc880: "jom" +0xc881: "job" +0xc882: "jobs" +0xc883: "jos" +0xc884: "joss" +0xc885: "jong" +0xc886: "joj" +0xc887: "joc" +0xc888: "jok" +0xc889: "jot" +0xc88a: "jop" +0xc88b: "joh" +0xc88c: "jwa" +0xc88d: "jwag" +0xc88e: "jwagg" +0xc88f: "jwags" +0xc890: "jwan" +0xc891: "jwanj" +0xc892: "jwanh" +0xc893: "jwad" +0xc894: "jwal" +0xc895: "jwalg" +0xc896: "jwalm" +0xc897: "jwalb" +0xc898: "jwals" +0xc899: "jwalt" +0xc89a: "jwalp" +0xc89b: "jwalh" +0xc89c: "jwam" +0xc89d: "jwab" +0xc89e: "jwabs" +0xc89f: "jwas" +0xc8a0: "jwass" +0xc8a1: "jwang" +0xc8a2: "jwaj" +0xc8a3: "jwac" +0xc8a4: "jwak" +0xc8a5: "jwat" +0xc8a6: "jwap" +0xc8a7: "jwah" +0xc8a8: "jwae" +0xc8a9: "jwaeg" +0xc8aa: "jwaegg" +0xc8ab: "jwaegs" +0xc8ac: "jwaen" +0xc8ad: "jwaenj" +0xc8ae: "jwaenh" +0xc8af: "jwaed" +0xc8b0: "jwael" +0xc8b1: "jwaelg" +0xc8b2: "jwaelm" +0xc8b3: "jwaelb" +0xc8b4: "jwaels" +0xc8b5: "jwaelt" +0xc8b6: "jwaelp" +0xc8b7: "jwaelh" +0xc8b8: "jwaem" +0xc8b9: "jwaeb" +0xc8ba: "jwaebs" +0xc8bb: "jwaes" +0xc8bc: "jwaess" +0xc8bd: "jwaeng" +0xc8be: "jwaej" +0xc8bf: "jwaec" +0xc8c0: "jwaek" +0xc8c1: "jwaet" +0xc8c2: "jwaep" +0xc8c3: "jwaeh" +0xc8c4: "joe" +0xc8c5: "joeg" +0xc8c6: "joegg" +0xc8c7: "joegs" +0xc8c8: "joen" +0xc8c9: "joenj" +0xc8ca: "joenh" +0xc8cb: "joed" +0xc8cc: "joel" +0xc8cd: "joelg" +0xc8ce: "joelm" +0xc8cf: "joelb" +0xc8d0: "joels" +0xc8d1: "joelt" +0xc8d2: "joelp" +0xc8d3: "joelh" +0xc8d4: "joem" +0xc8d5: "joeb" +0xc8d6: "joebs" +0xc8d7: "joes" +0xc8d8: "joess" +0xc8d9: "joeng" +0xc8da: "joej" +0xc8db: "joec" +0xc8dc: "joek" +0xc8dd: "joet" +0xc8de: "joep" +0xc8df: "joeh" +0xc8e0: "jyo" +0xc8e1: "jyog" +0xc8e2: "jyogg" +0xc8e3: "jyogs" +0xc8e4: "jyon" +0xc8e5: "jyonj" +0xc8e6: "jyonh" +0xc8e7: "jyod" +0xc8e8: "jyol" +0xc8e9: "jyolg" +0xc8ea: "jyolm" +0xc8eb: "jyolb" +0xc8ec: "jyols" +0xc8ed: "jyolt" +0xc8ee: "jyolp" +0xc8ef: "jyolh" +0xc8f0: "jyom" +0xc8f1: "jyob" +0xc8f2: "jyobs" +0xc8f3: "jyos" +0xc8f4: "jyoss" +0xc8f5: "jyong" +0xc8f6: "jyoj" +0xc8f7: "jyoc" +0xc8f8: "jyok" +0xc8f9: "jyot" +0xc8fa: "jyop" +0xc8fb: "jyoh" +0xc8fc: "ju" +0xc8fd: "jug" +0xc8fe: "jugg" +0xc8ff: "jugs" +/* x0c9 */ +0xc900: "jun" +0xc901: "junj" +0xc902: "junh" +0xc903: "jud" +0xc904: "jul" +0xc905: "julg" +0xc906: "julm" +0xc907: "julb" +0xc908: "juls" +0xc909: "jult" +0xc90a: "julp" +0xc90b: "julh" +0xc90c: "jum" +0xc90d: "jub" +0xc90e: "jubs" +0xc90f: "jus" +0xc910: "juss" +0xc911: "jung" +0xc912: "juj" +0xc913: "juc" +0xc914: "juk" +0xc915: "jut" +0xc916: "jup" +0xc917: "juh" +0xc918: "jweo" +0xc919: "jweog" +0xc91a: "jweogg" +0xc91b: "jweogs" +0xc91c: "jweon" +0xc91d: "jweonj" +0xc91e: "jweonh" +0xc91f: "jweod" +0xc920: "jweol" +0xc921: "jweolg" +0xc922: "jweolm" +0xc923: "jweolb" +0xc924: "jweols" +0xc925: "jweolt" +0xc926: "jweolp" +0xc927: "jweolh" +0xc928: "jweom" +0xc929: "jweob" +0xc92a: "jweobs" +0xc92b: "jweos" +0xc92c: "jweoss" +0xc92d: "jweong" +0xc92e: "jweoj" +0xc92f: "jweoc" +0xc930: "jweok" +0xc931: "jweot" +0xc932: "jweop" +0xc933: "jweoh" +0xc934: "jwe" +0xc935: "jweg" +0xc936: "jwegg" +0xc937: "jwegs" +0xc938: "jwen" +0xc939: "jwenj" +0xc93a: "jwenh" +0xc93b: "jwed" +0xc93c: "jwel" +0xc93d: "jwelg" +0xc93e: "jwelm" +0xc93f: "jwelb" +0xc940: "jwels" +0xc941: "jwelt" +0xc942: "jwelp" +0xc943: "jwelh" +0xc944: "jwem" +0xc945: "jweb" +0xc946: "jwebs" +0xc947: "jwes" +0xc948: "jwess" +0xc949: "jweng" +0xc94a: "jwej" +0xc94b: "jwec" +0xc94c: "jwek" +0xc94d: "jwet" +0xc94e: "jwep" +0xc94f: "jweh" +0xc950: "jwi" +0xc951: "jwig" +0xc952: "jwigg" +0xc953: "jwigs" +0xc954: "jwin" +0xc955: "jwinj" +0xc956: "jwinh" +0xc957: "jwid" +0xc958: "jwil" +0xc959: "jwilg" +0xc95a: "jwilm" +0xc95b: "jwilb" +0xc95c: "jwils" +0xc95d: "jwilt" +0xc95e: "jwilp" +0xc95f: "jwilh" +0xc960: "jwim" +0xc961: "jwib" +0xc962: "jwibs" +0xc963: "jwis" +0xc964: "jwiss" +0xc965: "jwing" +0xc966: "jwij" +0xc967: "jwic" +0xc968: "jwik" +0xc969: "jwit" +0xc96a: "jwip" +0xc96b: "jwih" +0xc96c: "jyu" +0xc96d: "jyug" +0xc96e: "jyugg" +0xc96f: "jyugs" +0xc970: "jyun" +0xc971: "jyunj" +0xc972: "jyunh" +0xc973: "jyud" +0xc974: "jyul" +0xc975: "jyulg" +0xc976: "jyulm" +0xc977: "jyulb" +0xc978: "jyuls" +0xc979: "jyult" +0xc97a: "jyulp" +0xc97b: "jyulh" +0xc97c: "jyum" +0xc97d: "jyub" +0xc97e: "jyubs" +0xc97f: "jyus" +0xc980: "jyuss" +0xc981: "jyung" +0xc982: "jyuj" +0xc983: "jyuc" +0xc984: "jyuk" +0xc985: "jyut" +0xc986: "jyup" +0xc987: "jyuh" +0xc988: "jeu" +0xc989: "jeug" +0xc98a: "jeugg" +0xc98b: "jeugs" +0xc98c: "jeun" +0xc98d: "jeunj" +0xc98e: "jeunh" +0xc98f: "jeud" +0xc990: "jeul" +0xc991: "jeulg" +0xc992: "jeulm" +0xc993: "jeulb" +0xc994: "jeuls" +0xc995: "jeult" +0xc996: "jeulp" +0xc997: "jeulh" +0xc998: "jeum" +0xc999: "jeub" +0xc99a: "jeubs" +0xc99b: "jeus" +0xc99c: "jeuss" +0xc99d: "jeung" +0xc99e: "jeuj" +0xc99f: "jeuc" +0xc9a0: "jeuk" +0xc9a1: "jeut" +0xc9a2: "jeup" +0xc9a3: "jeuh" +0xc9a4: "jyi" +0xc9a5: "jyig" +0xc9a6: "jyigg" +0xc9a7: "jyigs" +0xc9a8: "jyin" +0xc9a9: "jyinj" +0xc9aa: "jyinh" +0xc9ab: "jyid" +0xc9ac: "jyil" +0xc9ad: "jyilg" +0xc9ae: "jyilm" +0xc9af: "jyilb" +0xc9b0: "jyils" +0xc9b1: "jyilt" +0xc9b2: "jyilp" +0xc9b3: "jyilh" +0xc9b4: "jyim" +0xc9b5: "jyib" +0xc9b6: "jyibs" +0xc9b7: "jyis" +0xc9b8: "jyiss" +0xc9b9: "jying" +0xc9ba: "jyij" +0xc9bb: "jyic" +0xc9bc: "jyik" +0xc9bd: "jyit" +0xc9be: "jyip" +0xc9bf: "jyih" +0xc9c0: "ji" +0xc9c1: "jig" +0xc9c2: "jigg" +0xc9c3: "jigs" +0xc9c4: "jin" +0xc9c5: "jinj" +0xc9c6: "jinh" +0xc9c7: "jid" +0xc9c8: "jil" +0xc9c9: "jilg" +0xc9ca: "jilm" +0xc9cb: "jilb" +0xc9cc: "jils" +0xc9cd: "jilt" +0xc9ce: "jilp" +0xc9cf: "jilh" +0xc9d0: "jim" +0xc9d1: "jib" +0xc9d2: "jibs" +0xc9d3: "jis" +0xc9d4: "jiss" +0xc9d5: "jing" +0xc9d6: "jij" +0xc9d7: "jic" +0xc9d8: "jik" +0xc9d9: "jit" +0xc9da: "jip" +0xc9db: "jih" +0xc9dc: "jja" +0xc9dd: "jjag" +0xc9de: "jjagg" +0xc9df: "jjags" +0xc9e0: "jjan" +0xc9e1: "jjanj" +0xc9e2: "jjanh" +0xc9e3: "jjad" +0xc9e4: "jjal" +0xc9e5: "jjalg" +0xc9e6: "jjalm" +0xc9e7: "jjalb" +0xc9e8: "jjals" +0xc9e9: "jjalt" +0xc9ea: "jjalp" +0xc9eb: "jjalh" +0xc9ec: "jjam" +0xc9ed: "jjab" +0xc9ee: "jjabs" +0xc9ef: "jjas" +0xc9f0: "jjass" +0xc9f1: "jjang" +0xc9f2: "jjaj" +0xc9f3: "jjac" +0xc9f4: "jjak" +0xc9f5: "jjat" +0xc9f6: "jjap" +0xc9f7: "jjah" +0xc9f8: "jjae" +0xc9f9: "jjaeg" +0xc9fa: "jjaegg" +0xc9fb: "jjaegs" +0xc9fc: "jjaen" +0xc9fd: "jjaenj" +0xc9fe: "jjaenh" +0xc9ff: "jjaed" +/* x0ca */ +0xca00: "jjael" +0xca01: "jjaelg" +0xca02: "jjaelm" +0xca03: "jjaelb" +0xca04: "jjaels" +0xca05: "jjaelt" +0xca06: "jjaelp" +0xca07: "jjaelh" +0xca08: "jjaem" +0xca09: "jjaeb" +0xca0a: "jjaebs" +0xca0b: "jjaes" +0xca0c: "jjaess" +0xca0d: "jjaeng" +0xca0e: "jjaej" +0xca0f: "jjaec" +0xca10: "jjaek" +0xca11: "jjaet" +0xca12: "jjaep" +0xca13: "jjaeh" +0xca14: "jjya" +0xca15: "jjyag" +0xca16: "jjyagg" +0xca17: "jjyags" +0xca18: "jjyan" +0xca19: "jjyanj" +0xca1a: "jjyanh" +0xca1b: "jjyad" +0xca1c: "jjyal" +0xca1d: "jjyalg" +0xca1e: "jjyalm" +0xca1f: "jjyalb" +0xca20: "jjyals" +0xca21: "jjyalt" +0xca22: "jjyalp" +0xca23: "jjyalh" +0xca24: "jjyam" +0xca25: "jjyab" +0xca26: "jjyabs" +0xca27: "jjyas" +0xca28: "jjyass" +0xca29: "jjyang" +0xca2a: "jjyaj" +0xca2b: "jjyac" +0xca2c: "jjyak" +0xca2d: "jjyat" +0xca2e: "jjyap" +0xca2f: "jjyah" +0xca30: "jjyae" +0xca31: "jjyaeg" +0xca32: "jjyaegg" +0xca33: "jjyaegs" +0xca34: "jjyaen" +0xca35: "jjyaenj" +0xca36: "jjyaenh" +0xca37: "jjyaed" +0xca38: "jjyael" +0xca39: "jjyaelg" +0xca3a: "jjyaelm" +0xca3b: "jjyaelb" +0xca3c: "jjyaels" +0xca3d: "jjyaelt" +0xca3e: "jjyaelp" +0xca3f: "jjyaelh" +0xca40: "jjyaem" +0xca41: "jjyaeb" +0xca42: "jjyaebs" +0xca43: "jjyaes" +0xca44: "jjyaess" +0xca45: "jjyaeng" +0xca46: "jjyaej" +0xca47: "jjyaec" +0xca48: "jjyaek" +0xca49: "jjyaet" +0xca4a: "jjyaep" +0xca4b: "jjyaeh" +0xca4c: "jjeo" +0xca4d: "jjeog" +0xca4e: "jjeogg" +0xca4f: "jjeogs" +0xca50: "jjeon" +0xca51: "jjeonj" +0xca52: "jjeonh" +0xca53: "jjeod" +0xca54: "jjeol" +0xca55: "jjeolg" +0xca56: "jjeolm" +0xca57: "jjeolb" +0xca58: "jjeols" +0xca59: "jjeolt" +0xca5a: "jjeolp" +0xca5b: "jjeolh" +0xca5c: "jjeom" +0xca5d: "jjeob" +0xca5e: "jjeobs" +0xca5f: "jjeos" +0xca60: "jjeoss" +0xca61: "jjeong" +0xca62: "jjeoj" +0xca63: "jjeoc" +0xca64: "jjeok" +0xca65: "jjeot" +0xca66: "jjeop" +0xca67: "jjeoh" +0xca68: "jje" +0xca69: "jjeg" +0xca6a: "jjegg" +0xca6b: "jjegs" +0xca6c: "jjen" +0xca6d: "jjenj" +0xca6e: "jjenh" +0xca6f: "jjed" +0xca70: "jjel" +0xca71: "jjelg" +0xca72: "jjelm" +0xca73: "jjelb" +0xca74: "jjels" +0xca75: "jjelt" +0xca76: "jjelp" +0xca77: "jjelh" +0xca78: "jjem" +0xca79: "jjeb" +0xca7a: "jjebs" +0xca7b: "jjes" +0xca7c: "jjess" +0xca7d: "jjeng" +0xca7e: "jjej" +0xca7f: "jjec" +0xca80: "jjek" +0xca81: "jjet" +0xca82: "jjep" +0xca83: "jjeh" +0xca84: "jjyeo" +0xca85: "jjyeog" +0xca86: "jjyeogg" +0xca87: "jjyeogs" +0xca88: "jjyeon" +0xca89: "jjyeonj" +0xca8a: "jjyeonh" +0xca8b: "jjyeod" +0xca8c: "jjyeol" +0xca8d: "jjyeolg" +0xca8e: "jjyeolm" +0xca8f: "jjyeolb" +0xca90: "jjyeols" +0xca91: "jjyeolt" +0xca92: "jjyeolp" +0xca93: "jjyeolh" +0xca94: "jjyeom" +0xca95: "jjyeob" +0xca96: "jjyeobs" +0xca97: "jjyeos" +0xca98: "jjyeoss" +0xca99: "jjyeong" +0xca9a: "jjyeoj" +0xca9b: "jjyeoc" +0xca9c: "jjyeok" +0xca9d: "jjyeot" +0xca9e: "jjyeop" +0xca9f: "jjyeoh" +0xcaa0: "jjye" +0xcaa1: "jjyeg" +0xcaa2: "jjyegg" +0xcaa3: "jjyegs" +0xcaa4: "jjyen" +0xcaa5: "jjyenj" +0xcaa6: "jjyenh" +0xcaa7: "jjyed" +0xcaa8: "jjyel" +0xcaa9: "jjyelg" +0xcaaa: "jjyelm" +0xcaab: "jjyelb" +0xcaac: "jjyels" +0xcaad: "jjyelt" +0xcaae: "jjyelp" +0xcaaf: "jjyelh" +0xcab0: "jjyem" +0xcab1: "jjyeb" +0xcab2: "jjyebs" +0xcab3: "jjyes" +0xcab4: "jjyess" +0xcab5: "jjyeng" +0xcab6: "jjyej" +0xcab7: "jjyec" +0xcab8: "jjyek" +0xcab9: "jjyet" +0xcaba: "jjyep" +0xcabb: "jjyeh" +0xcabc: "jjo" +0xcabd: "jjog" +0xcabe: "jjogg" +0xcabf: "jjogs" +0xcac0: "jjon" +0xcac1: "jjonj" +0xcac2: "jjonh" +0xcac3: "jjod" +0xcac4: "jjol" +0xcac5: "jjolg" +0xcac6: "jjolm" +0xcac7: "jjolb" +0xcac8: "jjols" +0xcac9: "jjolt" +0xcaca: "jjolp" +0xcacb: "jjolh" +0xcacc: "jjom" +0xcacd: "jjob" +0xcace: "jjobs" +0xcacf: "jjos" +0xcad0: "jjoss" +0xcad1: "jjong" +0xcad2: "jjoj" +0xcad3: "jjoc" +0xcad4: "jjok" +0xcad5: "jjot" +0xcad6: "jjop" +0xcad7: "jjoh" +0xcad8: "jjwa" +0xcad9: "jjwag" +0xcada: "jjwagg" +0xcadb: "jjwags" +0xcadc: "jjwan" +0xcadd: "jjwanj" +0xcade: "jjwanh" +0xcadf: "jjwad" +0xcae0: "jjwal" +0xcae1: "jjwalg" +0xcae2: "jjwalm" +0xcae3: "jjwalb" +0xcae4: "jjwals" +0xcae5: "jjwalt" +0xcae6: "jjwalp" +0xcae7: "jjwalh" +0xcae8: "jjwam" +0xcae9: "jjwab" +0xcaea: "jjwabs" +0xcaeb: "jjwas" +0xcaec: "jjwass" +0xcaed: "jjwang" +0xcaee: "jjwaj" +0xcaef: "jjwac" +0xcaf0: "jjwak" +0xcaf1: "jjwat" +0xcaf2: "jjwap" +0xcaf3: "jjwah" +0xcaf4: "jjwae" +0xcaf5: "jjwaeg" +0xcaf6: "jjwaegg" +0xcaf7: "jjwaegs" +0xcaf8: "jjwaen" +0xcaf9: "jjwaenj" +0xcafa: "jjwaenh" +0xcafb: "jjwaed" +0xcafc: "jjwael" +0xcafd: "jjwaelg" +0xcafe: "jjwaelm" +0xcaff: "jjwaelb" +/* x0cb */ +0xcb00: "jjwaels" +0xcb01: "jjwaelt" +0xcb02: "jjwaelp" +0xcb03: "jjwaelh" +0xcb04: "jjwaem" +0xcb05: "jjwaeb" +0xcb06: "jjwaebs" +0xcb07: "jjwaes" +0xcb08: "jjwaess" +0xcb09: "jjwaeng" +0xcb0a: "jjwaej" +0xcb0b: "jjwaec" +0xcb0c: "jjwaek" +0xcb0d: "jjwaet" +0xcb0e: "jjwaep" +0xcb0f: "jjwaeh" +0xcb10: "jjoe" +0xcb11: "jjoeg" +0xcb12: "jjoegg" +0xcb13: "jjoegs" +0xcb14: "jjoen" +0xcb15: "jjoenj" +0xcb16: "jjoenh" +0xcb17: "jjoed" +0xcb18: "jjoel" +0xcb19: "jjoelg" +0xcb1a: "jjoelm" +0xcb1b: "jjoelb" +0xcb1c: "jjoels" +0xcb1d: "jjoelt" +0xcb1e: "jjoelp" +0xcb1f: "jjoelh" +0xcb20: "jjoem" +0xcb21: "jjoeb" +0xcb22: "jjoebs" +0xcb23: "jjoes" +0xcb24: "jjoess" +0xcb25: "jjoeng" +0xcb26: "jjoej" +0xcb27: "jjoec" +0xcb28: "jjoek" +0xcb29: "jjoet" +0xcb2a: "jjoep" +0xcb2b: "jjoeh" +0xcb2c: "jjyo" +0xcb2d: "jjyog" +0xcb2e: "jjyogg" +0xcb2f: "jjyogs" +0xcb30: "jjyon" +0xcb31: "jjyonj" +0xcb32: "jjyonh" +0xcb33: "jjyod" +0xcb34: "jjyol" +0xcb35: "jjyolg" +0xcb36: "jjyolm" +0xcb37: "jjyolb" +0xcb38: "jjyols" +0xcb39: "jjyolt" +0xcb3a: "jjyolp" +0xcb3b: "jjyolh" +0xcb3c: "jjyom" +0xcb3d: "jjyob" +0xcb3e: "jjyobs" +0xcb3f: "jjyos" +0xcb40: "jjyoss" +0xcb41: "jjyong" +0xcb42: "jjyoj" +0xcb43: "jjyoc" +0xcb44: "jjyok" +0xcb45: "jjyot" +0xcb46: "jjyop" +0xcb47: "jjyoh" +0xcb48: "jju" +0xcb49: "jjug" +0xcb4a: "jjugg" +0xcb4b: "jjugs" +0xcb4c: "jjun" +0xcb4d: "jjunj" +0xcb4e: "jjunh" +0xcb4f: "jjud" +0xcb50: "jjul" +0xcb51: "jjulg" +0xcb52: "jjulm" +0xcb53: "jjulb" +0xcb54: "jjuls" +0xcb55: "jjult" +0xcb56: "jjulp" +0xcb57: "jjulh" +0xcb58: "jjum" +0xcb59: "jjub" +0xcb5a: "jjubs" +0xcb5b: "jjus" +0xcb5c: "jjuss" +0xcb5d: "jjung" +0xcb5e: "jjuj" +0xcb5f: "jjuc" +0xcb60: "jjuk" +0xcb61: "jjut" +0xcb62: "jjup" +0xcb63: "jjuh" +0xcb64: "jjweo" +0xcb65: "jjweog" +0xcb66: "jjweogg" +0xcb67: "jjweogs" +0xcb68: "jjweon" +0xcb69: "jjweonj" +0xcb6a: "jjweonh" +0xcb6b: "jjweod" +0xcb6c: "jjweol" +0xcb6d: "jjweolg" +0xcb6e: "jjweolm" +0xcb6f: "jjweolb" +0xcb70: "jjweols" +0xcb71: "jjweolt" +0xcb72: "jjweolp" +0xcb73: "jjweolh" +0xcb74: "jjweom" +0xcb75: "jjweob" +0xcb76: "jjweobs" +0xcb77: "jjweos" +0xcb78: "jjweoss" +0xcb79: "jjweong" +0xcb7a: "jjweoj" +0xcb7b: "jjweoc" +0xcb7c: "jjweok" +0xcb7d: "jjweot" +0xcb7e: "jjweop" +0xcb7f: "jjweoh" +0xcb80: "jjwe" +0xcb81: "jjweg" +0xcb82: "jjwegg" +0xcb83: "jjwegs" +0xcb84: "jjwen" +0xcb85: "jjwenj" +0xcb86: "jjwenh" +0xcb87: "jjwed" +0xcb88: "jjwel" +0xcb89: "jjwelg" +0xcb8a: "jjwelm" +0xcb8b: "jjwelb" +0xcb8c: "jjwels" +0xcb8d: "jjwelt" +0xcb8e: "jjwelp" +0xcb8f: "jjwelh" +0xcb90: "jjwem" +0xcb91: "jjweb" +0xcb92: "jjwebs" +0xcb93: "jjwes" +0xcb94: "jjwess" +0xcb95: "jjweng" +0xcb96: "jjwej" +0xcb97: "jjwec" +0xcb98: "jjwek" +0xcb99: "jjwet" +0xcb9a: "jjwep" +0xcb9b: "jjweh" +0xcb9c: "jjwi" +0xcb9d: "jjwig" +0xcb9e: "jjwigg" +0xcb9f: "jjwigs" +0xcba0: "jjwin" +0xcba1: "jjwinj" +0xcba2: "jjwinh" +0xcba3: "jjwid" +0xcba4: "jjwil" +0xcba5: "jjwilg" +0xcba6: "jjwilm" +0xcba7: "jjwilb" +0xcba8: "jjwils" +0xcba9: "jjwilt" +0xcbaa: "jjwilp" +0xcbab: "jjwilh" +0xcbac: "jjwim" +0xcbad: "jjwib" +0xcbae: "jjwibs" +0xcbaf: "jjwis" +0xcbb0: "jjwiss" +0xcbb1: "jjwing" +0xcbb2: "jjwij" +0xcbb3: "jjwic" +0xcbb4: "jjwik" +0xcbb5: "jjwit" +0xcbb6: "jjwip" +0xcbb7: "jjwih" +0xcbb8: "jjyu" +0xcbb9: "jjyug" +0xcbba: "jjyugg" +0xcbbb: "jjyugs" +0xcbbc: "jjyun" +0xcbbd: "jjyunj" +0xcbbe: "jjyunh" +0xcbbf: "jjyud" +0xcbc0: "jjyul" +0xcbc1: "jjyulg" +0xcbc2: "jjyulm" +0xcbc3: "jjyulb" +0xcbc4: "jjyuls" +0xcbc5: "jjyult" +0xcbc6: "jjyulp" +0xcbc7: "jjyulh" +0xcbc8: "jjyum" +0xcbc9: "jjyub" +0xcbca: "jjyubs" +0xcbcb: "jjyus" +0xcbcc: "jjyuss" +0xcbcd: "jjyung" +0xcbce: "jjyuj" +0xcbcf: "jjyuc" +0xcbd0: "jjyuk" +0xcbd1: "jjyut" +0xcbd2: "jjyup" +0xcbd3: "jjyuh" +0xcbd4: "jjeu" +0xcbd5: "jjeug" +0xcbd6: "jjeugg" +0xcbd7: "jjeugs" +0xcbd8: "jjeun" +0xcbd9: "jjeunj" +0xcbda: "jjeunh" +0xcbdb: "jjeud" +0xcbdc: "jjeul" +0xcbdd: "jjeulg" +0xcbde: "jjeulm" +0xcbdf: "jjeulb" +0xcbe0: "jjeuls" +0xcbe1: "jjeult" +0xcbe2: "jjeulp" +0xcbe3: "jjeulh" +0xcbe4: "jjeum" +0xcbe5: "jjeub" +0xcbe6: "jjeubs" +0xcbe7: "jjeus" +0xcbe8: "jjeuss" +0xcbe9: "jjeung" +0xcbea: "jjeuj" +0xcbeb: "jjeuc" +0xcbec: "jjeuk" +0xcbed: "jjeut" +0xcbee: "jjeup" +0xcbef: "jjeuh" +0xcbf0: "jjyi" +0xcbf1: "jjyig" +0xcbf2: "jjyigg" +0xcbf3: "jjyigs" +0xcbf4: "jjyin" +0xcbf5: "jjyinj" +0xcbf6: "jjyinh" +0xcbf7: "jjyid" +0xcbf8: "jjyil" +0xcbf9: "jjyilg" +0xcbfa: "jjyilm" +0xcbfb: "jjyilb" +0xcbfc: "jjyils" +0xcbfd: "jjyilt" +0xcbfe: "jjyilp" +0xcbff: "jjyilh" +/* x0cc */ +0xcc00: "jjyim" +0xcc01: "jjyib" +0xcc02: "jjyibs" +0xcc03: "jjyis" +0xcc04: "jjyiss" +0xcc05: "jjying" +0xcc06: "jjyij" +0xcc07: "jjyic" +0xcc08: "jjyik" +0xcc09: "jjyit" +0xcc0a: "jjyip" +0xcc0b: "jjyih" +0xcc0c: "jji" +0xcc0d: "jjig" +0xcc0e: "jjigg" +0xcc0f: "jjigs" +0xcc10: "jjin" +0xcc11: "jjinj" +0xcc12: "jjinh" +0xcc13: "jjid" +0xcc14: "jjil" +0xcc15: "jjilg" +0xcc16: "jjilm" +0xcc17: "jjilb" +0xcc18: "jjils" +0xcc19: "jjilt" +0xcc1a: "jjilp" +0xcc1b: "jjilh" +0xcc1c: "jjim" +0xcc1d: "jjib" +0xcc1e: "jjibs" +0xcc1f: "jjis" +0xcc20: "jjiss" +0xcc21: "jjing" +0xcc22: "jjij" +0xcc23: "jjic" +0xcc24: "jjik" +0xcc25: "jjit" +0xcc26: "jjip" +0xcc27: "jjih" +0xcc28: "ca" +0xcc29: "cag" +0xcc2a: "cagg" +0xcc2b: "cags" +0xcc2c: "can" +0xcc2d: "canj" +0xcc2e: "canh" +0xcc2f: "cad" +0xcc30: "cal" +0xcc31: "calg" +0xcc32: "calm" +0xcc33: "calb" +0xcc34: "cals" +0xcc35: "calt" +0xcc36: "calp" +0xcc37: "calh" +0xcc38: "cam" +0xcc39: "cab" +0xcc3a: "cabs" +0xcc3b: "cas" +0xcc3c: "cass" +0xcc3d: "cang" +0xcc3e: "caj" +0xcc3f: "cac" +0xcc40: "cak" +0xcc41: "cat" +0xcc42: "cap" +0xcc43: "cah" +0xcc44: "cae" +0xcc45: "caeg" +0xcc46: "caegg" +0xcc47: "caegs" +0xcc48: "caen" +0xcc49: "caenj" +0xcc4a: "caenh" +0xcc4b: "caed" +0xcc4c: "cael" +0xcc4d: "caelg" +0xcc4e: "caelm" +0xcc4f: "caelb" +0xcc50: "caels" +0xcc51: "caelt" +0xcc52: "caelp" +0xcc53: "caelh" +0xcc54: "caem" +0xcc55: "caeb" +0xcc56: "caebs" +0xcc57: "caes" +0xcc58: "caess" +0xcc59: "caeng" +0xcc5a: "caej" +0xcc5b: "caec" +0xcc5c: "caek" +0xcc5d: "caet" +0xcc5e: "caep" +0xcc5f: "caeh" +0xcc60: "cya" +0xcc61: "cyag" +0xcc62: "cyagg" +0xcc63: "cyags" +0xcc64: "cyan" +0xcc65: "cyanj" +0xcc66: "cyanh" +0xcc67: "cyad" +0xcc68: "cyal" +0xcc69: "cyalg" +0xcc6a: "cyalm" +0xcc6b: "cyalb" +0xcc6c: "cyals" +0xcc6d: "cyalt" +0xcc6e: "cyalp" +0xcc6f: "cyalh" +0xcc70: "cyam" +0xcc71: "cyab" +0xcc72: "cyabs" +0xcc73: "cyas" +0xcc74: "cyass" +0xcc75: "cyang" +0xcc76: "cyaj" +0xcc77: "cyac" +0xcc78: "cyak" +0xcc79: "cyat" +0xcc7a: "cyap" +0xcc7b: "cyah" +0xcc7c: "cyae" +0xcc7d: "cyaeg" +0xcc7e: "cyaegg" +0xcc7f: "cyaegs" +0xcc80: "cyaen" +0xcc81: "cyaenj" +0xcc82: "cyaenh" +0xcc83: "cyaed" +0xcc84: "cyael" +0xcc85: "cyaelg" +0xcc86: "cyaelm" +0xcc87: "cyaelb" +0xcc88: "cyaels" +0xcc89: "cyaelt" +0xcc8a: "cyaelp" +0xcc8b: "cyaelh" +0xcc8c: "cyaem" +0xcc8d: "cyaeb" +0xcc8e: "cyaebs" +0xcc8f: "cyaes" +0xcc90: "cyaess" +0xcc91: "cyaeng" +0xcc92: "cyaej" +0xcc93: "cyaec" +0xcc94: "cyaek" +0xcc95: "cyaet" +0xcc96: "cyaep" +0xcc97: "cyaeh" +0xcc98: "ceo" +0xcc99: "ceog" +0xcc9a: "ceogg" +0xcc9b: "ceogs" +0xcc9c: "ceon" +0xcc9d: "ceonj" +0xcc9e: "ceonh" +0xcc9f: "ceod" +0xcca0: "ceol" +0xcca1: "ceolg" +0xcca2: "ceolm" +0xcca3: "ceolb" +0xcca4: "ceols" +0xcca5: "ceolt" +0xcca6: "ceolp" +0xcca7: "ceolh" +0xcca8: "ceom" +0xcca9: "ceob" +0xccaa: "ceobs" +0xccab: "ceos" +0xccac: "ceoss" +0xccad: "ceong" +0xccae: "ceoj" +0xccaf: "ceoc" +0xccb0: "ceok" +0xccb1: "ceot" +0xccb2: "ceop" +0xccb3: "ceoh" +0xccb4: "ce" +0xccb5: "ceg" +0xccb6: "cegg" +0xccb7: "cegs" +0xccb8: "cen" +0xccb9: "cenj" +0xccba: "cenh" +0xccbb: "ced" +0xccbc: "cel" +0xccbd: "celg" +0xccbe: "celm" +0xccbf: "celb" +0xccc0: "cels" +0xccc1: "celt" +0xccc2: "celp" +0xccc3: "celh" +0xccc4: "cem" +0xccc5: "ceb" +0xccc6: "cebs" +0xccc7: "ces" +0xccc8: "cess" +0xccc9: "ceng" +0xccca: "cej" +0xcccb: "cec" +0xcccc: "cek" +0xcccd: "cet" +0xccce: "cep" +0xcccf: "ceh" +0xccd0: "cyeo" +0xccd1: "cyeog" +0xccd2: "cyeogg" +0xccd3: "cyeogs" +0xccd4: "cyeon" +0xccd5: "cyeonj" +0xccd6: "cyeonh" +0xccd7: "cyeod" +0xccd8: "cyeol" +0xccd9: "cyeolg" +0xccda: "cyeolm" +0xccdb: "cyeolb" +0xccdc: "cyeols" +0xccdd: "cyeolt" +0xccde: "cyeolp" +0xccdf: "cyeolh" +0xcce0: "cyeom" +0xcce1: "cyeob" +0xcce2: "cyeobs" +0xcce3: "cyeos" +0xcce4: "cyeoss" +0xcce5: "cyeong" +0xcce6: "cyeoj" +0xcce7: "cyeoc" +0xcce8: "cyeok" +0xcce9: "cyeot" +0xccea: "cyeop" +0xcceb: "cyeoh" +0xccec: "cye" +0xcced: "cyeg" +0xccee: "cyegg" +0xccef: "cyegs" +0xccf0: "cyen" +0xccf1: "cyenj" +0xccf2: "cyenh" +0xccf3: "cyed" +0xccf4: "cyel" +0xccf5: "cyelg" +0xccf6: "cyelm" +0xccf7: "cyelb" +0xccf8: "cyels" +0xccf9: "cyelt" +0xccfa: "cyelp" +0xccfb: "cyelh" +0xccfc: "cyem" +0xccfd: "cyeb" +0xccfe: "cyebs" +0xccff: "cyes" +/* x0cd */ +0xcd00: "cyess" +0xcd01: "cyeng" +0xcd02: "cyej" +0xcd03: "cyec" +0xcd04: "cyek" +0xcd05: "cyet" +0xcd06: "cyep" +0xcd07: "cyeh" +0xcd08: "co" +0xcd09: "cog" +0xcd0a: "cogg" +0xcd0b: "cogs" +0xcd0c: "con" +0xcd0d: "conj" +0xcd0e: "conh" +0xcd0f: "cod" +0xcd10: "col" +0xcd11: "colg" +0xcd12: "colm" +0xcd13: "colb" +0xcd14: "cols" +0xcd15: "colt" +0xcd16: "colp" +0xcd17: "colh" +0xcd18: "com" +0xcd19: "cob" +0xcd1a: "cobs" +0xcd1b: "cos" +0xcd1c: "coss" +0xcd1d: "cong" +0xcd1e: "coj" +0xcd1f: "coc" +0xcd20: "cok" +0xcd21: "cot" +0xcd22: "cop" +0xcd23: "coh" +0xcd24: "cwa" +0xcd25: "cwag" +0xcd26: "cwagg" +0xcd27: "cwags" +0xcd28: "cwan" +0xcd29: "cwanj" +0xcd2a: "cwanh" +0xcd2b: "cwad" +0xcd2c: "cwal" +0xcd2d: "cwalg" +0xcd2e: "cwalm" +0xcd2f: "cwalb" +0xcd30: "cwals" +0xcd31: "cwalt" +0xcd32: "cwalp" +0xcd33: "cwalh" +0xcd34: "cwam" +0xcd35: "cwab" +0xcd36: "cwabs" +0xcd37: "cwas" +0xcd38: "cwass" +0xcd39: "cwang" +0xcd3a: "cwaj" +0xcd3b: "cwac" +0xcd3c: "cwak" +0xcd3d: "cwat" +0xcd3e: "cwap" +0xcd3f: "cwah" +0xcd40: "cwae" +0xcd41: "cwaeg" +0xcd42: "cwaegg" +0xcd43: "cwaegs" +0xcd44: "cwaen" +0xcd45: "cwaenj" +0xcd46: "cwaenh" +0xcd47: "cwaed" +0xcd48: "cwael" +0xcd49: "cwaelg" +0xcd4a: "cwaelm" +0xcd4b: "cwaelb" +0xcd4c: "cwaels" +0xcd4d: "cwaelt" +0xcd4e: "cwaelp" +0xcd4f: "cwaelh" +0xcd50: "cwaem" +0xcd51: "cwaeb" +0xcd52: "cwaebs" +0xcd53: "cwaes" +0xcd54: "cwaess" +0xcd55: "cwaeng" +0xcd56: "cwaej" +0xcd57: "cwaec" +0xcd58: "cwaek" +0xcd59: "cwaet" +0xcd5a: "cwaep" +0xcd5b: "cwaeh" +0xcd5c: "coe" +0xcd5d: "coeg" +0xcd5e: "coegg" +0xcd5f: "coegs" +0xcd60: "coen" +0xcd61: "coenj" +0xcd62: "coenh" +0xcd63: "coed" +0xcd64: "coel" +0xcd65: "coelg" +0xcd66: "coelm" +0xcd67: "coelb" +0xcd68: "coels" +0xcd69: "coelt" +0xcd6a: "coelp" +0xcd6b: "coelh" +0xcd6c: "coem" +0xcd6d: "coeb" +0xcd6e: "coebs" +0xcd6f: "coes" +0xcd70: "coess" +0xcd71: "coeng" +0xcd72: "coej" +0xcd73: "coec" +0xcd74: "coek" +0xcd75: "coet" +0xcd76: "coep" +0xcd77: "coeh" +0xcd78: "cyo" +0xcd79: "cyog" +0xcd7a: "cyogg" +0xcd7b: "cyogs" +0xcd7c: "cyon" +0xcd7d: "cyonj" +0xcd7e: "cyonh" +0xcd7f: "cyod" +0xcd80: "cyol" +0xcd81: "cyolg" +0xcd82: "cyolm" +0xcd83: "cyolb" +0xcd84: "cyols" +0xcd85: "cyolt" +0xcd86: "cyolp" +0xcd87: "cyolh" +0xcd88: "cyom" +0xcd89: "cyob" +0xcd8a: "cyobs" +0xcd8b: "cyos" +0xcd8c: "cyoss" +0xcd8d: "cyong" +0xcd8e: "cyoj" +0xcd8f: "cyoc" +0xcd90: "cyok" +0xcd91: "cyot" +0xcd92: "cyop" +0xcd93: "cyoh" +0xcd94: "cu" +0xcd95: "cug" +0xcd96: "cugg" +0xcd97: "cugs" +0xcd98: "cun" +0xcd99: "cunj" +0xcd9a: "cunh" +0xcd9b: "cud" +0xcd9c: "cul" +0xcd9d: "culg" +0xcd9e: "culm" +0xcd9f: "culb" +0xcda0: "culs" +0xcda1: "cult" +0xcda2: "culp" +0xcda3: "culh" +0xcda4: "cum" +0xcda5: "cub" +0xcda6: "cubs" +0xcda7: "cus" +0xcda8: "cuss" +0xcda9: "cung" +0xcdaa: "cuj" +0xcdab: "cuc" +0xcdac: "cuk" +0xcdad: "cut" +0xcdae: "cup" +0xcdaf: "cuh" +0xcdb0: "cweo" +0xcdb1: "cweog" +0xcdb2: "cweogg" +0xcdb3: "cweogs" +0xcdb4: "cweon" +0xcdb5: "cweonj" +0xcdb6: "cweonh" +0xcdb7: "cweod" +0xcdb8: "cweol" +0xcdb9: "cweolg" +0xcdba: "cweolm" +0xcdbb: "cweolb" +0xcdbc: "cweols" +0xcdbd: "cweolt" +0xcdbe: "cweolp" +0xcdbf: "cweolh" +0xcdc0: "cweom" +0xcdc1: "cweob" +0xcdc2: "cweobs" +0xcdc3: "cweos" +0xcdc4: "cweoss" +0xcdc5: "cweong" +0xcdc6: "cweoj" +0xcdc7: "cweoc" +0xcdc8: "cweok" +0xcdc9: "cweot" +0xcdca: "cweop" +0xcdcb: "cweoh" +0xcdcc: "cwe" +0xcdcd: "cweg" +0xcdce: "cwegg" +0xcdcf: "cwegs" +0xcdd0: "cwen" +0xcdd1: "cwenj" +0xcdd2: "cwenh" +0xcdd3: "cwed" +0xcdd4: "cwel" +0xcdd5: "cwelg" +0xcdd6: "cwelm" +0xcdd7: "cwelb" +0xcdd8: "cwels" +0xcdd9: "cwelt" +0xcdda: "cwelp" +0xcddb: "cwelh" +0xcddc: "cwem" +0xcddd: "cweb" +0xcdde: "cwebs" +0xcddf: "cwes" +0xcde0: "cwess" +0xcde1: "cweng" +0xcde2: "cwej" +0xcde3: "cwec" +0xcde4: "cwek" +0xcde5: "cwet" +0xcde6: "cwep" +0xcde7: "cweh" +0xcde8: "cwi" +0xcde9: "cwig" +0xcdea: "cwigg" +0xcdeb: "cwigs" +0xcdec: "cwin" +0xcded: "cwinj" +0xcdee: "cwinh" +0xcdef: "cwid" +0xcdf0: "cwil" +0xcdf1: "cwilg" +0xcdf2: "cwilm" +0xcdf3: "cwilb" +0xcdf4: "cwils" +0xcdf5: "cwilt" +0xcdf6: "cwilp" +0xcdf7: "cwilh" +0xcdf8: "cwim" +0xcdf9: "cwib" +0xcdfa: "cwibs" +0xcdfb: "cwis" +0xcdfc: "cwiss" +0xcdfd: "cwing" +0xcdfe: "cwij" +0xcdff: "cwic" +/* x0ce */ +0xce00: "cwik" +0xce01: "cwit" +0xce02: "cwip" +0xce03: "cwih" +0xce04: "cyu" +0xce05: "cyug" +0xce06: "cyugg" +0xce07: "cyugs" +0xce08: "cyun" +0xce09: "cyunj" +0xce0a: "cyunh" +0xce0b: "cyud" +0xce0c: "cyul" +0xce0d: "cyulg" +0xce0e: "cyulm" +0xce0f: "cyulb" +0xce10: "cyuls" +0xce11: "cyult" +0xce12: "cyulp" +0xce13: "cyulh" +0xce14: "cyum" +0xce15: "cyub" +0xce16: "cyubs" +0xce17: "cyus" +0xce18: "cyuss" +0xce19: "cyung" +0xce1a: "cyuj" +0xce1b: "cyuc" +0xce1c: "cyuk" +0xce1d: "cyut" +0xce1e: "cyup" +0xce1f: "cyuh" +0xce20: "ceu" +0xce21: "ceug" +0xce22: "ceugg" +0xce23: "ceugs" +0xce24: "ceun" +0xce25: "ceunj" +0xce26: "ceunh" +0xce27: "ceud" +0xce28: "ceul" +0xce29: "ceulg" +0xce2a: "ceulm" +0xce2b: "ceulb" +0xce2c: "ceuls" +0xce2d: "ceult" +0xce2e: "ceulp" +0xce2f: "ceulh" +0xce30: "ceum" +0xce31: "ceub" +0xce32: "ceubs" +0xce33: "ceus" +0xce34: "ceuss" +0xce35: "ceung" +0xce36: "ceuj" +0xce37: "ceuc" +0xce38: "ceuk" +0xce39: "ceut" +0xce3a: "ceup" +0xce3b: "ceuh" +0xce3c: "cyi" +0xce3d: "cyig" +0xce3e: "cyigg" +0xce3f: "cyigs" +0xce40: "cyin" +0xce41: "cyinj" +0xce42: "cyinh" +0xce43: "cyid" +0xce44: "cyil" +0xce45: "cyilg" +0xce46: "cyilm" +0xce47: "cyilb" +0xce48: "cyils" +0xce49: "cyilt" +0xce4a: "cyilp" +0xce4b: "cyilh" +0xce4c: "cyim" +0xce4d: "cyib" +0xce4e: "cyibs" +0xce4f: "cyis" +0xce50: "cyiss" +0xce51: "cying" +0xce52: "cyij" +0xce53: "cyic" +0xce54: "cyik" +0xce55: "cyit" +0xce56: "cyip" +0xce57: "cyih" +0xce58: "ci" +0xce59: "cig" +0xce5a: "cigg" +0xce5b: "cigs" +0xce5c: "cin" +0xce5d: "cinj" +0xce5e: "cinh" +0xce5f: "cid" +0xce60: "cil" +0xce61: "cilg" +0xce62: "cilm" +0xce63: "cilb" +0xce64: "cils" +0xce65: "cilt" +0xce66: "cilp" +0xce67: "cilh" +0xce68: "cim" +0xce69: "cib" +0xce6a: "cibs" +0xce6b: "cis" +0xce6c: "ciss" +0xce6d: "cing" +0xce6e: "cij" +0xce6f: "cic" +0xce70: "cik" +0xce71: "cit" +0xce72: "cip" +0xce73: "cih" +0xce74: "ka" +0xce75: "kag" +0xce76: "kagg" +0xce77: "kags" +0xce78: "kan" +0xce79: "kanj" +0xce7a: "kanh" +0xce7b: "kad" +0xce7c: "kal" +0xce7d: "kalg" +0xce7e: "kalm" +0xce7f: "kalb" +0xce80: "kals" +0xce81: "kalt" +0xce82: "kalp" +0xce83: "kalh" +0xce84: "kam" +0xce85: "kab" +0xce86: "kabs" +0xce87: "kas" +0xce88: "kass" +0xce89: "kang" +0xce8a: "kaj" +0xce8b: "kac" +0xce8c: "kak" +0xce8d: "kat" +0xce8e: "kap" +0xce8f: "kah" +0xce90: "kae" +0xce91: "kaeg" +0xce92: "kaegg" +0xce93: "kaegs" +0xce94: "kaen" +0xce95: "kaenj" +0xce96: "kaenh" +0xce97: "kaed" +0xce98: "kael" +0xce99: "kaelg" +0xce9a: "kaelm" +0xce9b: "kaelb" +0xce9c: "kaels" +0xce9d: "kaelt" +0xce9e: "kaelp" +0xce9f: "kaelh" +0xcea0: "kaem" +0xcea1: "kaeb" +0xcea2: "kaebs" +0xcea3: "kaes" +0xcea4: "kaess" +0xcea5: "kaeng" +0xcea6: "kaej" +0xcea7: "kaec" +0xcea8: "kaek" +0xcea9: "kaet" +0xceaa: "kaep" +0xceab: "kaeh" +0xceac: "kya" +0xcead: "kyag" +0xceae: "kyagg" +0xceaf: "kyags" +0xceb0: "kyan" +0xceb1: "kyanj" +0xceb2: "kyanh" +0xceb3: "kyad" +0xceb4: "kyal" +0xceb5: "kyalg" +0xceb6: "kyalm" +0xceb7: "kyalb" +0xceb8: "kyals" +0xceb9: "kyalt" +0xceba: "kyalp" +0xcebb: "kyalh" +0xcebc: "kyam" +0xcebd: "kyab" +0xcebe: "kyabs" +0xcebf: "kyas" +0xcec0: "kyass" +0xcec1: "kyang" +0xcec2: "kyaj" +0xcec3: "kyac" +0xcec4: "kyak" +0xcec5: "kyat" +0xcec6: "kyap" +0xcec7: "kyah" +0xcec8: "kyae" +0xcec9: "kyaeg" +0xceca: "kyaegg" +0xcecb: "kyaegs" +0xcecc: "kyaen" +0xcecd: "kyaenj" +0xcece: "kyaenh" +0xcecf: "kyaed" +0xced0: "kyael" +0xced1: "kyaelg" +0xced2: "kyaelm" +0xced3: "kyaelb" +0xced4: "kyaels" +0xced5: "kyaelt" +0xced6: "kyaelp" +0xced7: "kyaelh" +0xced8: "kyaem" +0xced9: "kyaeb" +0xceda: "kyaebs" +0xcedb: "kyaes" +0xcedc: "kyaess" +0xcedd: "kyaeng" +0xcede: "kyaej" +0xcedf: "kyaec" +0xcee0: "kyaek" +0xcee1: "kyaet" +0xcee2: "kyaep" +0xcee3: "kyaeh" +0xcee4: "keo" +0xcee5: "keog" +0xcee6: "keogg" +0xcee7: "keogs" +0xcee8: "keon" +0xcee9: "keonj" +0xceea: "keonh" +0xceeb: "keod" +0xceec: "keol" +0xceed: "keolg" +0xceee: "keolm" +0xceef: "keolb" +0xcef0: "keols" +0xcef1: "keolt" +0xcef2: "keolp" +0xcef3: "keolh" +0xcef4: "keom" +0xcef5: "keob" +0xcef6: "keobs" +0xcef7: "keos" +0xcef8: "keoss" +0xcef9: "keong" +0xcefa: "keoj" +0xcefb: "keoc" +0xcefc: "keok" +0xcefd: "keot" +0xcefe: "keop" +0xceff: "keoh" +/* x0cf */ +0xcf00: "ke" +0xcf01: "keg" +0xcf02: "kegg" +0xcf03: "kegs" +0xcf04: "ken" +0xcf05: "kenj" +0xcf06: "kenh" +0xcf07: "ked" +0xcf08: "kel" +0xcf09: "kelg" +0xcf0a: "kelm" +0xcf0b: "kelb" +0xcf0c: "kels" +0xcf0d: "kelt" +0xcf0e: "kelp" +0xcf0f: "kelh" +0xcf10: "kem" +0xcf11: "keb" +0xcf12: "kebs" +0xcf13: "kes" +0xcf14: "kess" +0xcf15: "keng" +0xcf16: "kej" +0xcf17: "kec" +0xcf18: "kek" +0xcf19: "ket" +0xcf1a: "kep" +0xcf1b: "keh" +0xcf1c: "kyeo" +0xcf1d: "kyeog" +0xcf1e: "kyeogg" +0xcf1f: "kyeogs" +0xcf20: "kyeon" +0xcf21: "kyeonj" +0xcf22: "kyeonh" +0xcf23: "kyeod" +0xcf24: "kyeol" +0xcf25: "kyeolg" +0xcf26: "kyeolm" +0xcf27: "kyeolb" +0xcf28: "kyeols" +0xcf29: "kyeolt" +0xcf2a: "kyeolp" +0xcf2b: "kyeolh" +0xcf2c: "kyeom" +0xcf2d: "kyeob" +0xcf2e: "kyeobs" +0xcf2f: "kyeos" +0xcf30: "kyeoss" +0xcf31: "kyeong" +0xcf32: "kyeoj" +0xcf33: "kyeoc" +0xcf34: "kyeok" +0xcf35: "kyeot" +0xcf36: "kyeop" +0xcf37: "kyeoh" +0xcf38: "kye" +0xcf39: "kyeg" +0xcf3a: "kyegg" +0xcf3b: "kyegs" +0xcf3c: "kyen" +0xcf3d: "kyenj" +0xcf3e: "kyenh" +0xcf3f: "kyed" +0xcf40: "kyel" +0xcf41: "kyelg" +0xcf42: "kyelm" +0xcf43: "kyelb" +0xcf44: "kyels" +0xcf45: "kyelt" +0xcf46: "kyelp" +0xcf47: "kyelh" +0xcf48: "kyem" +0xcf49: "kyeb" +0xcf4a: "kyebs" +0xcf4b: "kyes" +0xcf4c: "kyess" +0xcf4d: "kyeng" +0xcf4e: "kyej" +0xcf4f: "kyec" +0xcf50: "kyek" +0xcf51: "kyet" +0xcf52: "kyep" +0xcf53: "kyeh" +0xcf54: "ko" +0xcf55: "kog" +0xcf56: "kogg" +0xcf57: "kogs" +0xcf58: "kon" +0xcf59: "konj" +0xcf5a: "konh" +0xcf5b: "kod" +0xcf5c: "kol" +0xcf5d: "kolg" +0xcf5e: "kolm" +0xcf5f: "kolb" +0xcf60: "kols" +0xcf61: "kolt" +0xcf62: "kolp" +0xcf63: "kolh" +0xcf64: "kom" +0xcf65: "kob" +0xcf66: "kobs" +0xcf67: "kos" +0xcf68: "koss" +0xcf69: "kong" +0xcf6a: "koj" +0xcf6b: "koc" +0xcf6c: "kok" +0xcf6d: "kot" +0xcf6e: "kop" +0xcf6f: "koh" +0xcf70: "kwa" +0xcf71: "kwag" +0xcf72: "kwagg" +0xcf73: "kwags" +0xcf74: "kwan" +0xcf75: "kwanj" +0xcf76: "kwanh" +0xcf77: "kwad" +0xcf78: "kwal" +0xcf79: "kwalg" +0xcf7a: "kwalm" +0xcf7b: "kwalb" +0xcf7c: "kwals" +0xcf7d: "kwalt" +0xcf7e: "kwalp" +0xcf7f: "kwalh" +0xcf80: "kwam" +0xcf81: "kwab" +0xcf82: "kwabs" +0xcf83: "kwas" +0xcf84: "kwass" +0xcf85: "kwang" +0xcf86: "kwaj" +0xcf87: "kwac" +0xcf88: "kwak" +0xcf89: "kwat" +0xcf8a: "kwap" +0xcf8b: "kwah" +0xcf8c: "kwae" +0xcf8d: "kwaeg" +0xcf8e: "kwaegg" +0xcf8f: "kwaegs" +0xcf90: "kwaen" +0xcf91: "kwaenj" +0xcf92: "kwaenh" +0xcf93: "kwaed" +0xcf94: "kwael" +0xcf95: "kwaelg" +0xcf96: "kwaelm" +0xcf97: "kwaelb" +0xcf98: "kwaels" +0xcf99: "kwaelt" +0xcf9a: "kwaelp" +0xcf9b: "kwaelh" +0xcf9c: "kwaem" +0xcf9d: "kwaeb" +0xcf9e: "kwaebs" +0xcf9f: "kwaes" +0xcfa0: "kwaess" +0xcfa1: "kwaeng" +0xcfa2: "kwaej" +0xcfa3: "kwaec" +0xcfa4: "kwaek" +0xcfa5: "kwaet" +0xcfa6: "kwaep" +0xcfa7: "kwaeh" +0xcfa8: "koe" +0xcfa9: "koeg" +0xcfaa: "koegg" +0xcfab: "koegs" +0xcfac: "koen" +0xcfad: "koenj" +0xcfae: "koenh" +0xcfaf: "koed" +0xcfb0: "koel" +0xcfb1: "koelg" +0xcfb2: "koelm" +0xcfb3: "koelb" +0xcfb4: "koels" +0xcfb5: "koelt" +0xcfb6: "koelp" +0xcfb7: "koelh" +0xcfb8: "koem" +0xcfb9: "koeb" +0xcfba: "koebs" +0xcfbb: "koes" +0xcfbc: "koess" +0xcfbd: "koeng" +0xcfbe: "koej" +0xcfbf: "koec" +0xcfc0: "koek" +0xcfc1: "koet" +0xcfc2: "koep" +0xcfc3: "koeh" +0xcfc4: "kyo" +0xcfc5: "kyog" +0xcfc6: "kyogg" +0xcfc7: "kyogs" +0xcfc8: "kyon" +0xcfc9: "kyonj" +0xcfca: "kyonh" +0xcfcb: "kyod" +0xcfcc: "kyol" +0xcfcd: "kyolg" +0xcfce: "kyolm" +0xcfcf: "kyolb" +0xcfd0: "kyols" +0xcfd1: "kyolt" +0xcfd2: "kyolp" +0xcfd3: "kyolh" +0xcfd4: "kyom" +0xcfd5: "kyob" +0xcfd6: "kyobs" +0xcfd7: "kyos" +0xcfd8: "kyoss" +0xcfd9: "kyong" +0xcfda: "kyoj" +0xcfdb: "kyoc" +0xcfdc: "kyok" +0xcfdd: "kyot" +0xcfde: "kyop" +0xcfdf: "kyoh" +0xcfe0: "ku" +0xcfe1: "kug" +0xcfe2: "kugg" +0xcfe3: "kugs" +0xcfe4: "kun" +0xcfe5: "kunj" +0xcfe6: "kunh" +0xcfe7: "kud" +0xcfe8: "kul" +0xcfe9: "kulg" +0xcfea: "kulm" +0xcfeb: "kulb" +0xcfec: "kuls" +0xcfed: "kult" +0xcfee: "kulp" +0xcfef: "kulh" +0xcff0: "kum" +0xcff1: "kub" +0xcff2: "kubs" +0xcff3: "kus" +0xcff4: "kuss" +0xcff5: "kung" +0xcff6: "kuj" +0xcff7: "kuc" +0xcff8: "kuk" +0xcff9: "kut" +0xcffa: "kup" +0xcffb: "kuh" +0xcffc: "kweo" +0xcffd: "kweog" +0xcffe: "kweogg" +0xcfff: "kweogs" +/* x0d0 */ +0xd000: "kweon" +0xd001: "kweonj" +0xd002: "kweonh" +0xd003: "kweod" +0xd004: "kweol" +0xd005: "kweolg" +0xd006: "kweolm" +0xd007: "kweolb" +0xd008: "kweols" +0xd009: "kweolt" +0xd00a: "kweolp" +0xd00b: "kweolh" +0xd00c: "kweom" +0xd00d: "kweob" +0xd00e: "kweobs" +0xd00f: "kweos" +0xd010: "kweoss" +0xd011: "kweong" +0xd012: "kweoj" +0xd013: "kweoc" +0xd014: "kweok" +0xd015: "kweot" +0xd016: "kweop" +0xd017: "kweoh" +0xd018: "kwe" +0xd019: "kweg" +0xd01a: "kwegg" +0xd01b: "kwegs" +0xd01c: "kwen" +0xd01d: "kwenj" +0xd01e: "kwenh" +0xd01f: "kwed" +0xd020: "kwel" +0xd021: "kwelg" +0xd022: "kwelm" +0xd023: "kwelb" +0xd024: "kwels" +0xd025: "kwelt" +0xd026: "kwelp" +0xd027: "kwelh" +0xd028: "kwem" +0xd029: "kweb" +0xd02a: "kwebs" +0xd02b: "kwes" +0xd02c: "kwess" +0xd02d: "kweng" +0xd02e: "kwej" +0xd02f: "kwec" +0xd030: "kwek" +0xd031: "kwet" +0xd032: "kwep" +0xd033: "kweh" +0xd034: "kwi" +0xd035: "kwig" +0xd036: "kwigg" +0xd037: "kwigs" +0xd038: "kwin" +0xd039: "kwinj" +0xd03a: "kwinh" +0xd03b: "kwid" +0xd03c: "kwil" +0xd03d: "kwilg" +0xd03e: "kwilm" +0xd03f: "kwilb" +0xd040: "kwils" +0xd041: "kwilt" +0xd042: "kwilp" +0xd043: "kwilh" +0xd044: "kwim" +0xd045: "kwib" +0xd046: "kwibs" +0xd047: "kwis" +0xd048: "kwiss" +0xd049: "kwing" +0xd04a: "kwij" +0xd04b: "kwic" +0xd04c: "kwik" +0xd04d: "kwit" +0xd04e: "kwip" +0xd04f: "kwih" +0xd050: "kyu" +0xd051: "kyug" +0xd052: "kyugg" +0xd053: "kyugs" +0xd054: "kyun" +0xd055: "kyunj" +0xd056: "kyunh" +0xd057: "kyud" +0xd058: "kyul" +0xd059: "kyulg" +0xd05a: "kyulm" +0xd05b: "kyulb" +0xd05c: "kyuls" +0xd05d: "kyult" +0xd05e: "kyulp" +0xd05f: "kyulh" +0xd060: "kyum" +0xd061: "kyub" +0xd062: "kyubs" +0xd063: "kyus" +0xd064: "kyuss" +0xd065: "kyung" +0xd066: "kyuj" +0xd067: "kyuc" +0xd068: "kyuk" +0xd069: "kyut" +0xd06a: "kyup" +0xd06b: "kyuh" +0xd06c: "keu" +0xd06d: "keug" +0xd06e: "keugg" +0xd06f: "keugs" +0xd070: "keun" +0xd071: "keunj" +0xd072: "keunh" +0xd073: "keud" +0xd074: "keul" +0xd075: "keulg" +0xd076: "keulm" +0xd077: "keulb" +0xd078: "keuls" +0xd079: "keult" +0xd07a: "keulp" +0xd07b: "keulh" +0xd07c: "keum" +0xd07d: "keub" +0xd07e: "keubs" +0xd07f: "keus" +0xd080: "keuss" +0xd081: "keung" +0xd082: "keuj" +0xd083: "keuc" +0xd084: "keuk" +0xd085: "keut" +0xd086: "keup" +0xd087: "keuh" +0xd088: "kyi" +0xd089: "kyig" +0xd08a: "kyigg" +0xd08b: "kyigs" +0xd08c: "kyin" +0xd08d: "kyinj" +0xd08e: "kyinh" +0xd08f: "kyid" +0xd090: "kyil" +0xd091: "kyilg" +0xd092: "kyilm" +0xd093: "kyilb" +0xd094: "kyils" +0xd095: "kyilt" +0xd096: "kyilp" +0xd097: "kyilh" +0xd098: "kyim" +0xd099: "kyib" +0xd09a: "kyibs" +0xd09b: "kyis" +0xd09c: "kyiss" +0xd09d: "kying" +0xd09e: "kyij" +0xd09f: "kyic" +0xd0a0: "kyik" +0xd0a1: "kyit" +0xd0a2: "kyip" +0xd0a3: "kyih" +0xd0a4: "ki" +0xd0a5: "kig" +0xd0a6: "kigg" +0xd0a7: "kigs" +0xd0a8: "kin" +0xd0a9: "kinj" +0xd0aa: "kinh" +0xd0ab: "kid" +0xd0ac: "kil" +0xd0ad: "kilg" +0xd0ae: "kilm" +0xd0af: "kilb" +0xd0b0: "kils" +0xd0b1: "kilt" +0xd0b2: "kilp" +0xd0b3: "kilh" +0xd0b4: "kim" +0xd0b5: "kib" +0xd0b6: "kibs" +0xd0b7: "kis" +0xd0b8: "kiss" +0xd0b9: "king" +0xd0ba: "kij" +0xd0bb: "kic" +0xd0bc: "kik" +0xd0bd: "kit" +0xd0be: "kip" +0xd0bf: "kih" +0xd0c0: "ta" +0xd0c1: "tag" +0xd0c2: "tagg" +0xd0c3: "tags" +0xd0c4: "tan" +0xd0c5: "tanj" +0xd0c6: "tanh" +0xd0c7: "tad" +0xd0c8: "tal" +0xd0c9: "talg" +0xd0ca: "talm" +0xd0cb: "talb" +0xd0cc: "tals" +0xd0cd: "talt" +0xd0ce: "talp" +0xd0cf: "talh" +0xd0d0: "tam" +0xd0d1: "tab" +0xd0d2: "tabs" +0xd0d3: "tas" +0xd0d4: "tass" +0xd0d5: "tang" +0xd0d6: "taj" +0xd0d7: "tac" +0xd0d8: "tak" +0xd0d9: "tat" +0xd0da: "tap" +0xd0db: "tah" +0xd0dc: "tae" +0xd0dd: "taeg" +0xd0de: "taegg" +0xd0df: "taegs" +0xd0e0: "taen" +0xd0e1: "taenj" +0xd0e2: "taenh" +0xd0e3: "taed" +0xd0e4: "tael" +0xd0e5: "taelg" +0xd0e6: "taelm" +0xd0e7: "taelb" +0xd0e8: "taels" +0xd0e9: "taelt" +0xd0ea: "taelp" +0xd0eb: "taelh" +0xd0ec: "taem" +0xd0ed: "taeb" +0xd0ee: "taebs" +0xd0ef: "taes" +0xd0f0: "taess" +0xd0f1: "taeng" +0xd0f2: "taej" +0xd0f3: "taec" +0xd0f4: "taek" +0xd0f5: "taet" +0xd0f6: "taep" +0xd0f7: "taeh" +0xd0f8: "tya" +0xd0f9: "tyag" +0xd0fa: "tyagg" +0xd0fb: "tyags" +0xd0fc: "tyan" +0xd0fd: "tyanj" +0xd0fe: "tyanh" +0xd0ff: "tyad" +/* x0d1 */ +0xd100: "tyal" +0xd101: "tyalg" +0xd102: "tyalm" +0xd103: "tyalb" +0xd104: "tyals" +0xd105: "tyalt" +0xd106: "tyalp" +0xd107: "tyalh" +0xd108: "tyam" +0xd109: "tyab" +0xd10a: "tyabs" +0xd10b: "tyas" +0xd10c: "tyass" +0xd10d: "tyang" +0xd10e: "tyaj" +0xd10f: "tyac" +0xd110: "tyak" +0xd111: "tyat" +0xd112: "tyap" +0xd113: "tyah" +0xd114: "tyae" +0xd115: "tyaeg" +0xd116: "tyaegg" +0xd117: "tyaegs" +0xd118: "tyaen" +0xd119: "tyaenj" +0xd11a: "tyaenh" +0xd11b: "tyaed" +0xd11c: "tyael" +0xd11d: "tyaelg" +0xd11e: "tyaelm" +0xd11f: "tyaelb" +0xd120: "tyaels" +0xd121: "tyaelt" +0xd122: "tyaelp" +0xd123: "tyaelh" +0xd124: "tyaem" +0xd125: "tyaeb" +0xd126: "tyaebs" +0xd127: "tyaes" +0xd128: "tyaess" +0xd129: "tyaeng" +0xd12a: "tyaej" +0xd12b: "tyaec" +0xd12c: "tyaek" +0xd12d: "tyaet" +0xd12e: "tyaep" +0xd12f: "tyaeh" +0xd130: "teo" +0xd131: "teog" +0xd132: "teogg" +0xd133: "teogs" +0xd134: "teon" +0xd135: "teonj" +0xd136: "teonh" +0xd137: "teod" +0xd138: "teol" +0xd139: "teolg" +0xd13a: "teolm" +0xd13b: "teolb" +0xd13c: "teols" +0xd13d: "teolt" +0xd13e: "teolp" +0xd13f: "teolh" +0xd140: "teom" +0xd141: "teob" +0xd142: "teobs" +0xd143: "teos" +0xd144: "teoss" +0xd145: "teong" +0xd146: "teoj" +0xd147: "teoc" +0xd148: "teok" +0xd149: "teot" +0xd14a: "teop" +0xd14b: "teoh" +0xd14c: "te" +0xd14d: "teg" +0xd14e: "tegg" +0xd14f: "tegs" +0xd150: "ten" +0xd151: "tenj" +0xd152: "tenh" +0xd153: "ted" +0xd154: "tel" +0xd155: "telg" +0xd156: "telm" +0xd157: "telb" +0xd158: "tels" +0xd159: "telt" +0xd15a: "telp" +0xd15b: "telh" +0xd15c: "tem" +0xd15d: "teb" +0xd15e: "tebs" +0xd15f: "tes" +0xd160: "tess" +0xd161: "teng" +0xd162: "tej" +0xd163: "tec" +0xd164: "tek" +0xd165: "tet" +0xd166: "tep" +0xd167: "teh" +0xd168: "tyeo" +0xd169: "tyeog" +0xd16a: "tyeogg" +0xd16b: "tyeogs" +0xd16c: "tyeon" +0xd16d: "tyeonj" +0xd16e: "tyeonh" +0xd16f: "tyeod" +0xd170: "tyeol" +0xd171: "tyeolg" +0xd172: "tyeolm" +0xd173: "tyeolb" +0xd174: "tyeols" +0xd175: "tyeolt" +0xd176: "tyeolp" +0xd177: "tyeolh" +0xd178: "tyeom" +0xd179: "tyeob" +0xd17a: "tyeobs" +0xd17b: "tyeos" +0xd17c: "tyeoss" +0xd17d: "tyeong" +0xd17e: "tyeoj" +0xd17f: "tyeoc" +0xd180: "tyeok" +0xd181: "tyeot" +0xd182: "tyeop" +0xd183: "tyeoh" +0xd184: "tye" +0xd185: "tyeg" +0xd186: "tyegg" +0xd187: "tyegs" +0xd188: "tyen" +0xd189: "tyenj" +0xd18a: "tyenh" +0xd18b: "tyed" +0xd18c: "tyel" +0xd18d: "tyelg" +0xd18e: "tyelm" +0xd18f: "tyelb" +0xd190: "tyels" +0xd191: "tyelt" +0xd192: "tyelp" +0xd193: "tyelh" +0xd194: "tyem" +0xd195: "tyeb" +0xd196: "tyebs" +0xd197: "tyes" +0xd198: "tyess" +0xd199: "tyeng" +0xd19a: "tyej" +0xd19b: "tyec" +0xd19c: "tyek" +0xd19d: "tyet" +0xd19e: "tyep" +0xd19f: "tyeh" +0xd1a0: "to" +0xd1a1: "tog" +0xd1a2: "togg" +0xd1a3: "togs" +0xd1a4: "ton" +0xd1a5: "tonj" +0xd1a6: "tonh" +0xd1a7: "tod" +0xd1a8: "tol" +0xd1a9: "tolg" +0xd1aa: "tolm" +0xd1ab: "tolb" +0xd1ac: "tols" +0xd1ad: "tolt" +0xd1ae: "tolp" +0xd1af: "tolh" +0xd1b0: "tom" +0xd1b1: "tob" +0xd1b2: "tobs" +0xd1b3: "tos" +0xd1b4: "toss" +0xd1b5: "tong" +0xd1b6: "toj" +0xd1b7: "toc" +0xd1b8: "tok" +0xd1b9: "tot" +0xd1ba: "top" +0xd1bb: "toh" +0xd1bc: "twa" +0xd1bd: "twag" +0xd1be: "twagg" +0xd1bf: "twags" +0xd1c0: "twan" +0xd1c1: "twanj" +0xd1c2: "twanh" +0xd1c3: "twad" +0xd1c4: "twal" +0xd1c5: "twalg" +0xd1c6: "twalm" +0xd1c7: "twalb" +0xd1c8: "twals" +0xd1c9: "twalt" +0xd1ca: "twalp" +0xd1cb: "twalh" +0xd1cc: "twam" +0xd1cd: "twab" +0xd1ce: "twabs" +0xd1cf: "twas" +0xd1d0: "twass" +0xd1d1: "twang" +0xd1d2: "twaj" +0xd1d3: "twac" +0xd1d4: "twak" +0xd1d5: "twat" +0xd1d6: "twap" +0xd1d7: "twah" +0xd1d8: "twae" +0xd1d9: "twaeg" +0xd1da: "twaegg" +0xd1db: "twaegs" +0xd1dc: "twaen" +0xd1dd: "twaenj" +0xd1de: "twaenh" +0xd1df: "twaed" +0xd1e0: "twael" +0xd1e1: "twaelg" +0xd1e2: "twaelm" +0xd1e3: "twaelb" +0xd1e4: "twaels" +0xd1e5: "twaelt" +0xd1e6: "twaelp" +0xd1e7: "twaelh" +0xd1e8: "twaem" +0xd1e9: "twaeb" +0xd1ea: "twaebs" +0xd1eb: "twaes" +0xd1ec: "twaess" +0xd1ed: "twaeng" +0xd1ee: "twaej" +0xd1ef: "twaec" +0xd1f0: "twaek" +0xd1f1: "twaet" +0xd1f2: "twaep" +0xd1f3: "twaeh" +0xd1f4: "toe" +0xd1f5: "toeg" +0xd1f6: "toegg" +0xd1f7: "toegs" +0xd1f8: "toen" +0xd1f9: "toenj" +0xd1fa: "toenh" +0xd1fb: "toed" +0xd1fc: "toel" +0xd1fd: "toelg" +0xd1fe: "toelm" +0xd1ff: "toelb" +/* x0d2 */ +0xd200: "toels" +0xd201: "toelt" +0xd202: "toelp" +0xd203: "toelh" +0xd204: "toem" +0xd205: "toeb" +0xd206: "toebs" +0xd207: "toes" +0xd208: "toess" +0xd209: "toeng" +0xd20a: "toej" +0xd20b: "toec" +0xd20c: "toek" +0xd20d: "toet" +0xd20e: "toep" +0xd20f: "toeh" +0xd210: "tyo" +0xd211: "tyog" +0xd212: "tyogg" +0xd213: "tyogs" +0xd214: "tyon" +0xd215: "tyonj" +0xd216: "tyonh" +0xd217: "tyod" +0xd218: "tyol" +0xd219: "tyolg" +0xd21a: "tyolm" +0xd21b: "tyolb" +0xd21c: "tyols" +0xd21d: "tyolt" +0xd21e: "tyolp" +0xd21f: "tyolh" +0xd220: "tyom" +0xd221: "tyob" +0xd222: "tyobs" +0xd223: "tyos" +0xd224: "tyoss" +0xd225: "tyong" +0xd226: "tyoj" +0xd227: "tyoc" +0xd228: "tyok" +0xd229: "tyot" +0xd22a: "tyop" +0xd22b: "tyoh" +0xd22c: "tu" +0xd22d: "tug" +0xd22e: "tugg" +0xd22f: "tugs" +0xd230: "tun" +0xd231: "tunj" +0xd232: "tunh" +0xd233: "tud" +0xd234: "tul" +0xd235: "tulg" +0xd236: "tulm" +0xd237: "tulb" +0xd238: "tuls" +0xd239: "tult" +0xd23a: "tulp" +0xd23b: "tulh" +0xd23c: "tum" +0xd23d: "tub" +0xd23e: "tubs" +0xd23f: "tus" +0xd240: "tuss" +0xd241: "tung" +0xd242: "tuj" +0xd243: "tuc" +0xd244: "tuk" +0xd245: "tut" +0xd246: "tup" +0xd247: "tuh" +0xd248: "tweo" +0xd249: "tweog" +0xd24a: "tweogg" +0xd24b: "tweogs" +0xd24c: "tweon" +0xd24d: "tweonj" +0xd24e: "tweonh" +0xd24f: "tweod" +0xd250: "tweol" +0xd251: "tweolg" +0xd252: "tweolm" +0xd253: "tweolb" +0xd254: "tweols" +0xd255: "tweolt" +0xd256: "tweolp" +0xd257: "tweolh" +0xd258: "tweom" +0xd259: "tweob" +0xd25a: "tweobs" +0xd25b: "tweos" +0xd25c: "tweoss" +0xd25d: "tweong" +0xd25e: "tweoj" +0xd25f: "tweoc" +0xd260: "tweok" +0xd261: "tweot" +0xd262: "tweop" +0xd263: "tweoh" +0xd264: "twe" +0xd265: "tweg" +0xd266: "twegg" +0xd267: "twegs" +0xd268: "twen" +0xd269: "twenj" +0xd26a: "twenh" +0xd26b: "twed" +0xd26c: "twel" +0xd26d: "twelg" +0xd26e: "twelm" +0xd26f: "twelb" +0xd270: "twels" +0xd271: "twelt" +0xd272: "twelp" +0xd273: "twelh" +0xd274: "twem" +0xd275: "tweb" +0xd276: "twebs" +0xd277: "twes" +0xd278: "twess" +0xd279: "tweng" +0xd27a: "twej" +0xd27b: "twec" +0xd27c: "twek" +0xd27d: "twet" +0xd27e: "twep" +0xd27f: "tweh" +0xd280: "twi" +0xd281: "twig" +0xd282: "twigg" +0xd283: "twigs" +0xd284: "twin" +0xd285: "twinj" +0xd286: "twinh" +0xd287: "twid" +0xd288: "twil" +0xd289: "twilg" +0xd28a: "twilm" +0xd28b: "twilb" +0xd28c: "twils" +0xd28d: "twilt" +0xd28e: "twilp" +0xd28f: "twilh" +0xd290: "twim" +0xd291: "twib" +0xd292: "twibs" +0xd293: "twis" +0xd294: "twiss" +0xd295: "twing" +0xd296: "twij" +0xd297: "twic" +0xd298: "twik" +0xd299: "twit" +0xd29a: "twip" +0xd29b: "twih" +0xd29c: "tyu" +0xd29d: "tyug" +0xd29e: "tyugg" +0xd29f: "tyugs" +0xd2a0: "tyun" +0xd2a1: "tyunj" +0xd2a2: "tyunh" +0xd2a3: "tyud" +0xd2a4: "tyul" +0xd2a5: "tyulg" +0xd2a6: "tyulm" +0xd2a7: "tyulb" +0xd2a8: "tyuls" +0xd2a9: "tyult" +0xd2aa: "tyulp" +0xd2ab: "tyulh" +0xd2ac: "tyum" +0xd2ad: "tyub" +0xd2ae: "tyubs" +0xd2af: "tyus" +0xd2b0: "tyuss" +0xd2b1: "tyung" +0xd2b2: "tyuj" +0xd2b3: "tyuc" +0xd2b4: "tyuk" +0xd2b5: "tyut" +0xd2b6: "tyup" +0xd2b7: "tyuh" +0xd2b8: "teu" +0xd2b9: "teug" +0xd2ba: "teugg" +0xd2bb: "teugs" +0xd2bc: "teun" +0xd2bd: "teunj" +0xd2be: "teunh" +0xd2bf: "teud" +0xd2c0: "teul" +0xd2c1: "teulg" +0xd2c2: "teulm" +0xd2c3: "teulb" +0xd2c4: "teuls" +0xd2c5: "teult" +0xd2c6: "teulp" +0xd2c7: "teulh" +0xd2c8: "teum" +0xd2c9: "teub" +0xd2ca: "teubs" +0xd2cb: "teus" +0xd2cc: "teuss" +0xd2cd: "teung" +0xd2ce: "teuj" +0xd2cf: "teuc" +0xd2d0: "teuk" +0xd2d1: "teut" +0xd2d2: "teup" +0xd2d3: "teuh" +0xd2d4: "tyi" +0xd2d5: "tyig" +0xd2d6: "tyigg" +0xd2d7: "tyigs" +0xd2d8: "tyin" +0xd2d9: "tyinj" +0xd2da: "tyinh" +0xd2db: "tyid" +0xd2dc: "tyil" +0xd2dd: "tyilg" +0xd2de: "tyilm" +0xd2df: "tyilb" +0xd2e0: "tyils" +0xd2e1: "tyilt" +0xd2e2: "tyilp" +0xd2e3: "tyilh" +0xd2e4: "tyim" +0xd2e5: "tyib" +0xd2e6: "tyibs" +0xd2e7: "tyis" +0xd2e8: "tyiss" +0xd2e9: "tying" +0xd2ea: "tyij" +0xd2eb: "tyic" +0xd2ec: "tyik" +0xd2ed: "tyit" +0xd2ee: "tyip" +0xd2ef: "tyih" +0xd2f0: "ti" +0xd2f1: "tig" +0xd2f2: "tigg" +0xd2f3: "tigs" +0xd2f4: "tin" +0xd2f5: "tinj" +0xd2f6: "tinh" +0xd2f7: "tid" +0xd2f8: "til" +0xd2f9: "tilg" +0xd2fa: "tilm" +0xd2fb: "tilb" +0xd2fc: "tils" +0xd2fd: "tilt" +0xd2fe: "tilp" +0xd2ff: "tilh" +/* x0d3 */ +0xd300: "tim" +0xd301: "tib" +0xd302: "tibs" +0xd303: "tis" +0xd304: "tiss" +0xd305: "ting" +0xd306: "tij" +0xd307: "tic" +0xd308: "tik" +0xd309: "tit" +0xd30a: "tip" +0xd30b: "tih" +0xd30c: "pa" +0xd30d: "pag" +0xd30e: "pagg" +0xd30f: "pags" +0xd310: "pan" +0xd311: "panj" +0xd312: "panh" +0xd313: "pad" +0xd314: "pal" +0xd315: "palg" +0xd316: "palm" +0xd317: "palb" +0xd318: "pals" +0xd319: "palt" +0xd31a: "palp" +0xd31b: "palh" +0xd31c: "pam" +0xd31d: "pab" +0xd31e: "pabs" +0xd31f: "pas" +0xd320: "pass" +0xd321: "pang" +0xd322: "paj" +0xd323: "pac" +0xd324: "pak" +0xd325: "pat" +0xd326: "pap" +0xd327: "pah" +0xd328: "pae" +0xd329: "paeg" +0xd32a: "paegg" +0xd32b: "paegs" +0xd32c: "paen" +0xd32d: "paenj" +0xd32e: "paenh" +0xd32f: "paed" +0xd330: "pael" +0xd331: "paelg" +0xd332: "paelm" +0xd333: "paelb" +0xd334: "paels" +0xd335: "paelt" +0xd336: "paelp" +0xd337: "paelh" +0xd338: "paem" +0xd339: "paeb" +0xd33a: "paebs" +0xd33b: "paes" +0xd33c: "paess" +0xd33d: "paeng" +0xd33e: "paej" +0xd33f: "paec" +0xd340: "paek" +0xd341: "paet" +0xd342: "paep" +0xd343: "paeh" +0xd344: "pya" +0xd345: "pyag" +0xd346: "pyagg" +0xd347: "pyags" +0xd348: "pyan" +0xd349: "pyanj" +0xd34a: "pyanh" +0xd34b: "pyad" +0xd34c: "pyal" +0xd34d: "pyalg" +0xd34e: "pyalm" +0xd34f: "pyalb" +0xd350: "pyals" +0xd351: "pyalt" +0xd352: "pyalp" +0xd353: "pyalh" +0xd354: "pyam" +0xd355: "pyab" +0xd356: "pyabs" +0xd357: "pyas" +0xd358: "pyass" +0xd359: "pyang" +0xd35a: "pyaj" +0xd35b: "pyac" +0xd35c: "pyak" +0xd35d: "pyat" +0xd35e: "pyap" +0xd35f: "pyah" +0xd360: "pyae" +0xd361: "pyaeg" +0xd362: "pyaegg" +0xd363: "pyaegs" +0xd364: "pyaen" +0xd365: "pyaenj" +0xd366: "pyaenh" +0xd367: "pyaed" +0xd368: "pyael" +0xd369: "pyaelg" +0xd36a: "pyaelm" +0xd36b: "pyaelb" +0xd36c: "pyaels" +0xd36d: "pyaelt" +0xd36e: "pyaelp" +0xd36f: "pyaelh" +0xd370: "pyaem" +0xd371: "pyaeb" +0xd372: "pyaebs" +0xd373: "pyaes" +0xd374: "pyaess" +0xd375: "pyaeng" +0xd376: "pyaej" +0xd377: "pyaec" +0xd378: "pyaek" +0xd379: "pyaet" +0xd37a: "pyaep" +0xd37b: "pyaeh" +0xd37c: "peo" +0xd37d: "peog" +0xd37e: "peogg" +0xd37f: "peogs" +0xd380: "peon" +0xd381: "peonj" +0xd382: "peonh" +0xd383: "peod" +0xd384: "peol" +0xd385: "peolg" +0xd386: "peolm" +0xd387: "peolb" +0xd388: "peols" +0xd389: "peolt" +0xd38a: "peolp" +0xd38b: "peolh" +0xd38c: "peom" +0xd38d: "peob" +0xd38e: "peobs" +0xd38f: "peos" +0xd390: "peoss" +0xd391: "peong" +0xd392: "peoj" +0xd393: "peoc" +0xd394: "peok" +0xd395: "peot" +0xd396: "peop" +0xd397: "peoh" +0xd398: "pe" +0xd399: "peg" +0xd39a: "pegg" +0xd39b: "pegs" +0xd39c: "pen" +0xd39d: "penj" +0xd39e: "penh" +0xd39f: "ped" +0xd3a0: "pel" +0xd3a1: "pelg" +0xd3a2: "pelm" +0xd3a3: "pelb" +0xd3a4: "pels" +0xd3a5: "pelt" +0xd3a6: "pelp" +0xd3a7: "pelh" +0xd3a8: "pem" +0xd3a9: "peb" +0xd3aa: "pebs" +0xd3ab: "pes" +0xd3ac: "pess" +0xd3ad: "peng" +0xd3ae: "pej" +0xd3af: "pec" +0xd3b0: "pek" +0xd3b1: "pet" +0xd3b2: "pep" +0xd3b3: "peh" +0xd3b4: "pyeo" +0xd3b5: "pyeog" +0xd3b6: "pyeogg" +0xd3b7: "pyeogs" +0xd3b8: "pyeon" +0xd3b9: "pyeonj" +0xd3ba: "pyeonh" +0xd3bb: "pyeod" +0xd3bc: "pyeol" +0xd3bd: "pyeolg" +0xd3be: "pyeolm" +0xd3bf: "pyeolb" +0xd3c0: "pyeols" +0xd3c1: "pyeolt" +0xd3c2: "pyeolp" +0xd3c3: "pyeolh" +0xd3c4: "pyeom" +0xd3c5: "pyeob" +0xd3c6: "pyeobs" +0xd3c7: "pyeos" +0xd3c8: "pyeoss" +0xd3c9: "pyeong" +0xd3ca: "pyeoj" +0xd3cb: "pyeoc" +0xd3cc: "pyeok" +0xd3cd: "pyeot" +0xd3ce: "pyeop" +0xd3cf: "pyeoh" +0xd3d0: "pye" +0xd3d1: "pyeg" +0xd3d2: "pyegg" +0xd3d3: "pyegs" +0xd3d4: "pyen" +0xd3d5: "pyenj" +0xd3d6: "pyenh" +0xd3d7: "pyed" +0xd3d8: "pyel" +0xd3d9: "pyelg" +0xd3da: "pyelm" +0xd3db: "pyelb" +0xd3dc: "pyels" +0xd3dd: "pyelt" +0xd3de: "pyelp" +0xd3df: "pyelh" +0xd3e0: "pyem" +0xd3e1: "pyeb" +0xd3e2: "pyebs" +0xd3e3: "pyes" +0xd3e4: "pyess" +0xd3e5: "pyeng" +0xd3e6: "pyej" +0xd3e7: "pyec" +0xd3e8: "pyek" +0xd3e9: "pyet" +0xd3ea: "pyep" +0xd3eb: "pyeh" +0xd3ec: "po" +0xd3ed: "pog" +0xd3ee: "pogg" +0xd3ef: "pogs" +0xd3f0: "pon" +0xd3f1: "ponj" +0xd3f2: "ponh" +0xd3f3: "pod" +0xd3f4: "pol" +0xd3f5: "polg" +0xd3f6: "polm" +0xd3f7: "polb" +0xd3f8: "pols" +0xd3f9: "polt" +0xd3fa: "polp" +0xd3fb: "polh" +0xd3fc: "pom" +0xd3fd: "pob" +0xd3fe: "pobs" +0xd3ff: "pos" +/* x0d4 */ +0xd400: "poss" +0xd401: "pong" +0xd402: "poj" +0xd403: "poc" +0xd404: "pok" +0xd405: "pot" +0xd406: "pop" +0xd407: "poh" +0xd408: "pwa" +0xd409: "pwag" +0xd40a: "pwagg" +0xd40b: "pwags" +0xd40c: "pwan" +0xd40d: "pwanj" +0xd40e: "pwanh" +0xd40f: "pwad" +0xd410: "pwal" +0xd411: "pwalg" +0xd412: "pwalm" +0xd413: "pwalb" +0xd414: "pwals" +0xd415: "pwalt" +0xd416: "pwalp" +0xd417: "pwalh" +0xd418: "pwam" +0xd419: "pwab" +0xd41a: "pwabs" +0xd41b: "pwas" +0xd41c: "pwass" +0xd41d: "pwang" +0xd41e: "pwaj" +0xd41f: "pwac" +0xd420: "pwak" +0xd421: "pwat" +0xd422: "pwap" +0xd423: "pwah" +0xd424: "pwae" +0xd425: "pwaeg" +0xd426: "pwaegg" +0xd427: "pwaegs" +0xd428: "pwaen" +0xd429: "pwaenj" +0xd42a: "pwaenh" +0xd42b: "pwaed" +0xd42c: "pwael" +0xd42d: "pwaelg" +0xd42e: "pwaelm" +0xd42f: "pwaelb" +0xd430: "pwaels" +0xd431: "pwaelt" +0xd432: "pwaelp" +0xd433: "pwaelh" +0xd434: "pwaem" +0xd435: "pwaeb" +0xd436: "pwaebs" +0xd437: "pwaes" +0xd438: "pwaess" +0xd439: "pwaeng" +0xd43a: "pwaej" +0xd43b: "pwaec" +0xd43c: "pwaek" +0xd43d: "pwaet" +0xd43e: "pwaep" +0xd43f: "pwaeh" +0xd440: "poe" +0xd441: "poeg" +0xd442: "poegg" +0xd443: "poegs" +0xd444: "poen" +0xd445: "poenj" +0xd446: "poenh" +0xd447: "poed" +0xd448: "poel" +0xd449: "poelg" +0xd44a: "poelm" +0xd44b: "poelb" +0xd44c: "poels" +0xd44d: "poelt" +0xd44e: "poelp" +0xd44f: "poelh" +0xd450: "poem" +0xd451: "poeb" +0xd452: "poebs" +0xd453: "poes" +0xd454: "poess" +0xd455: "poeng" +0xd456: "poej" +0xd457: "poec" +0xd458: "poek" +0xd459: "poet" +0xd45a: "poep" +0xd45b: "poeh" +0xd45c: "pyo" +0xd45d: "pyog" +0xd45e: "pyogg" +0xd45f: "pyogs" +0xd460: "pyon" +0xd461: "pyonj" +0xd462: "pyonh" +0xd463: "pyod" +0xd464: "pyol" +0xd465: "pyolg" +0xd466: "pyolm" +0xd467: "pyolb" +0xd468: "pyols" +0xd469: "pyolt" +0xd46a: "pyolp" +0xd46b: "pyolh" +0xd46c: "pyom" +0xd46d: "pyob" +0xd46e: "pyobs" +0xd46f: "pyos" +0xd470: "pyoss" +0xd471: "pyong" +0xd472: "pyoj" +0xd473: "pyoc" +0xd474: "pyok" +0xd475: "pyot" +0xd476: "pyop" +0xd477: "pyoh" +0xd478: "pu" +0xd479: "pug" +0xd47a: "pugg" +0xd47b: "pugs" +0xd47c: "pun" +0xd47d: "punj" +0xd47e: "punh" +0xd47f: "pud" +0xd480: "pul" +0xd481: "pulg" +0xd482: "pulm" +0xd483: "pulb" +0xd484: "puls" +0xd485: "pult" +0xd486: "pulp" +0xd487: "pulh" +0xd488: "pum" +0xd489: "pub" +0xd48a: "pubs" +0xd48b: "pus" +0xd48c: "puss" +0xd48d: "pung" +0xd48e: "puj" +0xd48f: "puc" +0xd490: "puk" +0xd491: "put" +0xd492: "pup" +0xd493: "puh" +0xd494: "pweo" +0xd495: "pweog" +0xd496: "pweogg" +0xd497: "pweogs" +0xd498: "pweon" +0xd499: "pweonj" +0xd49a: "pweonh" +0xd49b: "pweod" +0xd49c: "pweol" +0xd49d: "pweolg" +0xd49e: "pweolm" +0xd49f: "pweolb" +0xd4a0: "pweols" +0xd4a1: "pweolt" +0xd4a2: "pweolp" +0xd4a3: "pweolh" +0xd4a4: "pweom" +0xd4a5: "pweob" +0xd4a6: "pweobs" +0xd4a7: "pweos" +0xd4a8: "pweoss" +0xd4a9: "pweong" +0xd4aa: "pweoj" +0xd4ab: "pweoc" +0xd4ac: "pweok" +0xd4ad: "pweot" +0xd4ae: "pweop" +0xd4af: "pweoh" +0xd4b0: "pwe" +0xd4b1: "pweg" +0xd4b2: "pwegg" +0xd4b3: "pwegs" +0xd4b4: "pwen" +0xd4b5: "pwenj" +0xd4b6: "pwenh" +0xd4b7: "pwed" +0xd4b8: "pwel" +0xd4b9: "pwelg" +0xd4ba: "pwelm" +0xd4bb: "pwelb" +0xd4bc: "pwels" +0xd4bd: "pwelt" +0xd4be: "pwelp" +0xd4bf: "pwelh" +0xd4c0: "pwem" +0xd4c1: "pweb" +0xd4c2: "pwebs" +0xd4c3: "pwes" +0xd4c4: "pwess" +0xd4c5: "pweng" +0xd4c6: "pwej" +0xd4c7: "pwec" +0xd4c8: "pwek" +0xd4c9: "pwet" +0xd4ca: "pwep" +0xd4cb: "pweh" +0xd4cc: "pwi" +0xd4cd: "pwig" +0xd4ce: "pwigg" +0xd4cf: "pwigs" +0xd4d0: "pwin" +0xd4d1: "pwinj" +0xd4d2: "pwinh" +0xd4d3: "pwid" +0xd4d4: "pwil" +0xd4d5: "pwilg" +0xd4d6: "pwilm" +0xd4d7: "pwilb" +0xd4d8: "pwils" +0xd4d9: "pwilt" +0xd4da: "pwilp" +0xd4db: "pwilh" +0xd4dc: "pwim" +0xd4dd: "pwib" +0xd4de: "pwibs" +0xd4df: "pwis" +0xd4e0: "pwiss" +0xd4e1: "pwing" +0xd4e2: "pwij" +0xd4e3: "pwic" +0xd4e4: "pwik" +0xd4e5: "pwit" +0xd4e6: "pwip" +0xd4e7: "pwih" +0xd4e8: "pyu" +0xd4e9: "pyug" +0xd4ea: "pyugg" +0xd4eb: "pyugs" +0xd4ec: "pyun" +0xd4ed: "pyunj" +0xd4ee: "pyunh" +0xd4ef: "pyud" +0xd4f0: "pyul" +0xd4f1: "pyulg" +0xd4f2: "pyulm" +0xd4f3: "pyulb" +0xd4f4: "pyuls" +0xd4f5: "pyult" +0xd4f6: "pyulp" +0xd4f7: "pyulh" +0xd4f8: "pyum" +0xd4f9: "pyub" +0xd4fa: "pyubs" +0xd4fb: "pyus" +0xd4fc: "pyuss" +0xd4fd: "pyung" +0xd4fe: "pyuj" +0xd4ff: "pyuc" +/* x0d5 */ +0xd500: "pyuk" +0xd501: "pyut" +0xd502: "pyup" +0xd503: "pyuh" +0xd504: "peu" +0xd505: "peug" +0xd506: "peugg" +0xd507: "peugs" +0xd508: "peun" +0xd509: "peunj" +0xd50a: "peunh" +0xd50b: "peud" +0xd50c: "peul" +0xd50d: "peulg" +0xd50e: "peulm" +0xd50f: "peulb" +0xd510: "peuls" +0xd511: "peult" +0xd512: "peulp" +0xd513: "peulh" +0xd514: "peum" +0xd515: "peub" +0xd516: "peubs" +0xd517: "peus" +0xd518: "peuss" +0xd519: "peung" +0xd51a: "peuj" +0xd51b: "peuc" +0xd51c: "peuk" +0xd51d: "peut" +0xd51e: "peup" +0xd51f: "peuh" +0xd520: "pyi" +0xd521: "pyig" +0xd522: "pyigg" +0xd523: "pyigs" +0xd524: "pyin" +0xd525: "pyinj" +0xd526: "pyinh" +0xd527: "pyid" +0xd528: "pyil" +0xd529: "pyilg" +0xd52a: "pyilm" +0xd52b: "pyilb" +0xd52c: "pyils" +0xd52d: "pyilt" +0xd52e: "pyilp" +0xd52f: "pyilh" +0xd530: "pyim" +0xd531: "pyib" +0xd532: "pyibs" +0xd533: "pyis" +0xd534: "pyiss" +0xd535: "pying" +0xd536: "pyij" +0xd537: "pyic" +0xd538: "pyik" +0xd539: "pyit" +0xd53a: "pyip" +0xd53b: "pyih" +0xd53c: "pi" +0xd53d: "pig" +0xd53e: "pigg" +0xd53f: "pigs" +0xd540: "pin" +0xd541: "pinj" +0xd542: "pinh" +0xd543: "pid" +0xd544: "pil" +0xd545: "pilg" +0xd546: "pilm" +0xd547: "pilb" +0xd548: "pils" +0xd549: "pilt" +0xd54a: "pilp" +0xd54b: "pilh" +0xd54c: "pim" +0xd54d: "pib" +0xd54e: "pibs" +0xd54f: "pis" +0xd550: "piss" +0xd551: "ping" +0xd552: "pij" +0xd553: "pic" +0xd554: "pik" +0xd555: "pit" +0xd556: "pip" +0xd557: "pih" +0xd558: "ha" +0xd559: "hag" +0xd55a: "hagg" +0xd55b: "hags" +0xd55c: "han" +0xd55d: "hanj" +0xd55e: "hanh" +0xd55f: "had" +0xd560: "hal" +0xd561: "halg" +0xd562: "halm" +0xd563: "halb" +0xd564: "hals" +0xd565: "halt" +0xd566: "halp" +0xd567: "halh" +0xd568: "ham" +0xd569: "hab" +0xd56a: "habs" +0xd56b: "has" +0xd56c: "hass" +0xd56d: "hang" +0xd56e: "haj" +0xd56f: "hac" +0xd570: "hak" +0xd571: "hat" +0xd572: "hap" +0xd573: "hah" +0xd574: "hae" +0xd575: "haeg" +0xd576: "haegg" +0xd577: "haegs" +0xd578: "haen" +0xd579: "haenj" +0xd57a: "haenh" +0xd57b: "haed" +0xd57c: "hael" +0xd57d: "haelg" +0xd57e: "haelm" +0xd57f: "haelb" +0xd580: "haels" +0xd581: "haelt" +0xd582: "haelp" +0xd583: "haelh" +0xd584: "haem" +0xd585: "haeb" +0xd586: "haebs" +0xd587: "haes" +0xd588: "haess" +0xd589: "haeng" +0xd58a: "haej" +0xd58b: "haec" +0xd58c: "haek" +0xd58d: "haet" +0xd58e: "haep" +0xd58f: "haeh" +0xd590: "hya" +0xd591: "hyag" +0xd592: "hyagg" +0xd593: "hyags" +0xd594: "hyan" +0xd595: "hyanj" +0xd596: "hyanh" +0xd597: "hyad" +0xd598: "hyal" +0xd599: "hyalg" +0xd59a: "hyalm" +0xd59b: "hyalb" +0xd59c: "hyals" +0xd59d: "hyalt" +0xd59e: "hyalp" +0xd59f: "hyalh" +0xd5a0: "hyam" +0xd5a1: "hyab" +0xd5a2: "hyabs" +0xd5a3: "hyas" +0xd5a4: "hyass" +0xd5a5: "hyang" +0xd5a6: "hyaj" +0xd5a7: "hyac" +0xd5a8: "hyak" +0xd5a9: "hyat" +0xd5aa: "hyap" +0xd5ab: "hyah" +0xd5ac: "hyae" +0xd5ad: "hyaeg" +0xd5ae: "hyaegg" +0xd5af: "hyaegs" +0xd5b0: "hyaen" +0xd5b1: "hyaenj" +0xd5b2: "hyaenh" +0xd5b3: "hyaed" +0xd5b4: "hyael" +0xd5b5: "hyaelg" +0xd5b6: "hyaelm" +0xd5b7: "hyaelb" +0xd5b8: "hyaels" +0xd5b9: "hyaelt" +0xd5ba: "hyaelp" +0xd5bb: "hyaelh" +0xd5bc: "hyaem" +0xd5bd: "hyaeb" +0xd5be: "hyaebs" +0xd5bf: "hyaes" +0xd5c0: "hyaess" +0xd5c1: "hyaeng" +0xd5c2: "hyaej" +0xd5c3: "hyaec" +0xd5c4: "hyaek" +0xd5c5: "hyaet" +0xd5c6: "hyaep" +0xd5c7: "hyaeh" +0xd5c8: "heo" +0xd5c9: "heog" +0xd5ca: "heogg" +0xd5cb: "heogs" +0xd5cc: "heon" +0xd5cd: "heonj" +0xd5ce: "heonh" +0xd5cf: "heod" +0xd5d0: "heol" +0xd5d1: "heolg" +0xd5d2: "heolm" +0xd5d3: "heolb" +0xd5d4: "heols" +0xd5d5: "heolt" +0xd5d6: "heolp" +0xd5d7: "heolh" +0xd5d8: "heom" +0xd5d9: "heob" +0xd5da: "heobs" +0xd5db: "heos" +0xd5dc: "heoss" +0xd5dd: "heong" +0xd5de: "heoj" +0xd5df: "heoc" +0xd5e0: "heok" +0xd5e1: "heot" +0xd5e2: "heop" +0xd5e3: "heoh" +0xd5e4: "he" +0xd5e5: "heg" +0xd5e6: "hegg" +0xd5e7: "hegs" +0xd5e8: "hen" +0xd5e9: "henj" +0xd5ea: "henh" +0xd5eb: "hed" +0xd5ec: "hel" +0xd5ed: "helg" +0xd5ee: "helm" +0xd5ef: "helb" +0xd5f0: "hels" +0xd5f1: "helt" +0xd5f2: "help" +0xd5f3: "helh" +0xd5f4: "hem" +0xd5f5: "heb" +0xd5f6: "hebs" +0xd5f7: "hes" +0xd5f8: "hess" +0xd5f9: "heng" +0xd5fa: "hej" +0xd5fb: "hec" +0xd5fc: "hek" +0xd5fd: "het" +0xd5fe: "hep" +0xd5ff: "heh" +/* x0d6 */ +0xd600: "hyeo" +0xd601: "hyeog" +0xd602: "hyeogg" +0xd603: "hyeogs" +0xd604: "hyeon" +0xd605: "hyeonj" +0xd606: "hyeonh" +0xd607: "hyeod" +0xd608: "hyeol" +0xd609: "hyeolg" +0xd60a: "hyeolm" +0xd60b: "hyeolb" +0xd60c: "hyeols" +0xd60d: "hyeolt" +0xd60e: "hyeolp" +0xd60f: "hyeolh" +0xd610: "hyeom" +0xd611: "hyeob" +0xd612: "hyeobs" +0xd613: "hyeos" +0xd614: "hyeoss" +0xd615: "hyeong" +0xd616: "hyeoj" +0xd617: "hyeoc" +0xd618: "hyeok" +0xd619: "hyeot" +0xd61a: "hyeop" +0xd61b: "hyeoh" +0xd61c: "hye" +0xd61d: "hyeg" +0xd61e: "hyegg" +0xd61f: "hyegs" +0xd620: "hyen" +0xd621: "hyenj" +0xd622: "hyenh" +0xd623: "hyed" +0xd624: "hyel" +0xd625: "hyelg" +0xd626: "hyelm" +0xd627: "hyelb" +0xd628: "hyels" +0xd629: "hyelt" +0xd62a: "hyelp" +0xd62b: "hyelh" +0xd62c: "hyem" +0xd62d: "hyeb" +0xd62e: "hyebs" +0xd62f: "hyes" +0xd630: "hyess" +0xd631: "hyeng" +0xd632: "hyej" +0xd633: "hyec" +0xd634: "hyek" +0xd635: "hyet" +0xd636: "hyep" +0xd637: "hyeh" +0xd638: "ho" +0xd639: "hog" +0xd63a: "hogg" +0xd63b: "hogs" +0xd63c: "hon" +0xd63d: "honj" +0xd63e: "honh" +0xd63f: "hod" +0xd640: "hol" +0xd641: "holg" +0xd642: "holm" +0xd643: "holb" +0xd644: "hols" +0xd645: "holt" +0xd646: "holp" +0xd647: "holh" +0xd648: "hom" +0xd649: "hob" +0xd64a: "hobs" +0xd64b: "hos" +0xd64c: "hoss" +0xd64d: "hong" +0xd64e: "hoj" +0xd64f: "hoc" +0xd650: "hok" +0xd651: "hot" +0xd652: "hop" +0xd653: "hoh" +0xd654: "hwa" +0xd655: "hwag" +0xd656: "hwagg" +0xd657: "hwags" +0xd658: "hwan" +0xd659: "hwanj" +0xd65a: "hwanh" +0xd65b: "hwad" +0xd65c: "hwal" +0xd65d: "hwalg" +0xd65e: "hwalm" +0xd65f: "hwalb" +0xd660: "hwals" +0xd661: "hwalt" +0xd662: "hwalp" +0xd663: "hwalh" +0xd664: "hwam" +0xd665: "hwab" +0xd666: "hwabs" +0xd667: "hwas" +0xd668: "hwass" +0xd669: "hwang" +0xd66a: "hwaj" +0xd66b: "hwac" +0xd66c: "hwak" +0xd66d: "hwat" +0xd66e: "hwap" +0xd66f: "hwah" +0xd670: "hwae" +0xd671: "hwaeg" +0xd672: "hwaegg" +0xd673: "hwaegs" +0xd674: "hwaen" +0xd675: "hwaenj" +0xd676: "hwaenh" +0xd677: "hwaed" +0xd678: "hwael" +0xd679: "hwaelg" +0xd67a: "hwaelm" +0xd67b: "hwaelb" +0xd67c: "hwaels" +0xd67d: "hwaelt" +0xd67e: "hwaelp" +0xd67f: "hwaelh" +0xd680: "hwaem" +0xd681: "hwaeb" +0xd682: "hwaebs" +0xd683: "hwaes" +0xd684: "hwaess" +0xd685: "hwaeng" +0xd686: "hwaej" +0xd687: "hwaec" +0xd688: "hwaek" +0xd689: "hwaet" +0xd68a: "hwaep" +0xd68b: "hwaeh" +0xd68c: "hoe" +0xd68d: "hoeg" +0xd68e: "hoegg" +0xd68f: "hoegs" +0xd690: "hoen" +0xd691: "hoenj" +0xd692: "hoenh" +0xd693: "hoed" +0xd694: "hoel" +0xd695: "hoelg" +0xd696: "hoelm" +0xd697: "hoelb" +0xd698: "hoels" +0xd699: "hoelt" +0xd69a: "hoelp" +0xd69b: "hoelh" +0xd69c: "hoem" +0xd69d: "hoeb" +0xd69e: "hoebs" +0xd69f: "hoes" +0xd6a0: "hoess" +0xd6a1: "hoeng" +0xd6a2: "hoej" +0xd6a3: "hoec" +0xd6a4: "hoek" +0xd6a5: "hoet" +0xd6a6: "hoep" +0xd6a7: "hoeh" +0xd6a8: "hyo" +0xd6a9: "hyog" +0xd6aa: "hyogg" +0xd6ab: "hyogs" +0xd6ac: "hyon" +0xd6ad: "hyonj" +0xd6ae: "hyonh" +0xd6af: "hyod" +0xd6b0: "hyol" +0xd6b1: "hyolg" +0xd6b2: "hyolm" +0xd6b3: "hyolb" +0xd6b4: "hyols" +0xd6b5: "hyolt" +0xd6b6: "hyolp" +0xd6b7: "hyolh" +0xd6b8: "hyom" +0xd6b9: "hyob" +0xd6ba: "hyobs" +0xd6bb: "hyos" +0xd6bc: "hyoss" +0xd6bd: "hyong" +0xd6be: "hyoj" +0xd6bf: "hyoc" +0xd6c0: "hyok" +0xd6c1: "hyot" +0xd6c2: "hyop" +0xd6c3: "hyoh" +0xd6c4: "hu" +0xd6c5: "hug" +0xd6c6: "hugg" +0xd6c7: "hugs" +0xd6c8: "hun" +0xd6c9: "hunj" +0xd6ca: "hunh" +0xd6cb: "hud" +0xd6cc: "hul" +0xd6cd: "hulg" +0xd6ce: "hulm" +0xd6cf: "hulb" +0xd6d0: "huls" +0xd6d1: "hult" +0xd6d2: "hulp" +0xd6d3: "hulh" +0xd6d4: "hum" +0xd6d5: "hub" +0xd6d6: "hubs" +0xd6d7: "hus" +0xd6d8: "huss" +0xd6d9: "hung" +0xd6da: "huj" +0xd6db: "huc" +0xd6dc: "huk" +0xd6dd: "hut" +0xd6de: "hup" +0xd6df: "huh" +0xd6e0: "hweo" +0xd6e1: "hweog" +0xd6e2: "hweogg" +0xd6e3: "hweogs" +0xd6e4: "hweon" +0xd6e5: "hweonj" +0xd6e6: "hweonh" +0xd6e7: "hweod" +0xd6e8: "hweol" +0xd6e9: "hweolg" +0xd6ea: "hweolm" +0xd6eb: "hweolb" +0xd6ec: "hweols" +0xd6ed: "hweolt" +0xd6ee: "hweolp" +0xd6ef: "hweolh" +0xd6f0: "hweom" +0xd6f1: "hweob" +0xd6f2: "hweobs" +0xd6f3: "hweos" +0xd6f4: "hweoss" +0xd6f5: "hweong" +0xd6f6: "hweoj" +0xd6f7: "hweoc" +0xd6f8: "hweok" +0xd6f9: "hweot" +0xd6fa: "hweop" +0xd6fb: "hweoh" +0xd6fc: "hwe" +0xd6fd: "hweg" +0xd6fe: "hwegg" +0xd6ff: "hwegs" +/* x0d7 */ +0xd700: "hwen" +0xd701: "hwenj" +0xd702: "hwenh" +0xd703: "hwed" +0xd704: "hwel" +0xd705: "hwelg" +0xd706: "hwelm" +0xd707: "hwelb" +0xd708: "hwels" +0xd709: "hwelt" +0xd70a: "hwelp" +0xd70b: "hwelh" +0xd70c: "hwem" +0xd70d: "hweb" +0xd70e: "hwebs" +0xd70f: "hwes" +0xd710: "hwess" +0xd711: "hweng" +0xd712: "hwej" +0xd713: "hwec" +0xd714: "hwek" +0xd715: "hwet" +0xd716: "hwep" +0xd717: "hweh" +0xd718: "hwi" +0xd719: "hwig" +0xd71a: "hwigg" +0xd71b: "hwigs" +0xd71c: "hwin" +0xd71d: "hwinj" +0xd71e: "hwinh" +0xd71f: "hwid" +0xd720: "hwil" +0xd721: "hwilg" +0xd722: "hwilm" +0xd723: "hwilb" +0xd724: "hwils" +0xd725: "hwilt" +0xd726: "hwilp" +0xd727: "hwilh" +0xd728: "hwim" +0xd729: "hwib" +0xd72a: "hwibs" +0xd72b: "hwis" +0xd72c: "hwiss" +0xd72d: "hwing" +0xd72e: "hwij" +0xd72f: "hwic" +0xd730: "hwik" +0xd731: "hwit" +0xd732: "hwip" +0xd733: "hwih" +0xd734: "hyu" +0xd735: "hyug" +0xd736: "hyugg" +0xd737: "hyugs" +0xd738: "hyun" +0xd739: "hyunj" +0xd73a: "hyunh" +0xd73b: "hyud" +0xd73c: "hyul" +0xd73d: "hyulg" +0xd73e: "hyulm" +0xd73f: "hyulb" +0xd740: "hyuls" +0xd741: "hyult" +0xd742: "hyulp" +0xd743: "hyulh" +0xd744: "hyum" +0xd745: "hyub" +0xd746: "hyubs" +0xd747: "hyus" +0xd748: "hyuss" +0xd749: "hyung" +0xd74a: "hyuj" +0xd74b: "hyuc" +0xd74c: "hyuk" +0xd74d: "hyut" +0xd74e: "hyup" +0xd74f: "hyuh" +0xd750: "heu" +0xd751: "heug" +0xd752: "heugg" +0xd753: "heugs" +0xd754: "heun" +0xd755: "heunj" +0xd756: "heunh" +0xd757: "heud" +0xd758: "heul" +0xd759: "heulg" +0xd75a: "heulm" +0xd75b: "heulb" +0xd75c: "heuls" +0xd75d: "heult" +0xd75e: "heulp" +0xd75f: "heulh" +0xd760: "heum" +0xd761: "heub" +0xd762: "heubs" +0xd763: "heus" +0xd764: "heuss" +0xd765: "heung" +0xd766: "heuj" +0xd767: "heuc" +0xd768: "heuk" +0xd769: "heut" +0xd76a: "heup" +0xd76b: "heuh" +0xd76c: "hyi" +0xd76d: "hyig" +0xd76e: "hyigg" +0xd76f: "hyigs" +0xd770: "hyin" +0xd771: "hyinj" +0xd772: "hyinh" +0xd773: "hyid" +0xd774: "hyil" +0xd775: "hyilg" +0xd776: "hyilm" +0xd777: "hyilb" +0xd778: "hyils" +0xd779: "hyilt" +0xd77a: "hyilp" +0xd77b: "hyilh" +0xd77c: "hyim" +0xd77d: "hyib" +0xd77e: "hyibs" +0xd77f: "hyis" +0xd780: "hyiss" +0xd781: "hying" +0xd782: "hyij" +0xd783: "hyic" +0xd784: "hyik" +0xd785: "hyit" +0xd786: "hyip" +0xd787: "hyih" +0xd788: "hi" +0xd789: "hig" +0xd78a: "higg" +0xd78b: "higs" +0xd78c: "hin" +0xd78d: "hinj" +0xd78e: "hinh" +0xd78f: "hid" +0xd790: "hil" +0xd791: "hilg" +0xd792: "hilm" +0xd793: "hilb" +0xd794: "hils" +0xd795: "hilt" +0xd796: "hilp" +0xd797: "hilh" +0xd798: "him" +0xd799: "hib" +0xd79a: "hibs" +0xd79b: "his" +0xd79c: "hiss" +0xd79d: "hing" +0xd79e: "hij" +0xd79f: "hic" +0xd7a0: "hik" +0xd7a1: "hit" +0xd7a2: "hip" +0xd7a3: "hih" +0xd7a4: "[?]" +0xd7a5: "[?]" +0xd7a6: "[?]" +0xd7a7: "[?]" +0xd7a8: "[?]" +0xd7a9: "[?]" +0xd7aa: "[?]" +0xd7ab: "[?]" +0xd7ac: "[?]" +0xd7ad: "[?]" +0xd7ae: "[?]" +0xd7af: "[?]" +0xd7b0: "[?]" +0xd7b1: "[?]" +0xd7b2: "[?]" +0xd7b3: "[?]" +0xd7b4: "[?]" +0xd7b5: "[?]" +0xd7b6: "[?]" +0xd7b7: "[?]" +0xd7b8: "[?]" +0xd7b9: "[?]" +0xd7ba: "[?]" +0xd7bb: "[?]" +0xd7bc: "[?]" +0xd7bd: "[?]" +0xd7be: "[?]" +0xd7bf: "[?]" +0xd7c0: "[?]" +0xd7c1: "[?]" +0xd7c2: "[?]" +0xd7c3: "[?]" +0xd7c4: "[?]" +0xd7c5: "[?]" +0xd7c6: "[?]" +0xd7c7: "[?]" +0xd7c8: "[?]" +0xd7c9: "[?]" +0xd7ca: "[?]" +0xd7cb: "[?]" +0xd7cc: "[?]" +0xd7cd: "[?]" +0xd7ce: "[?]" +0xd7cf: "[?]" +0xd7d0: "[?]" +0xd7d1: "[?]" +0xd7d2: "[?]" +0xd7d3: "[?]" +0xd7d4: "[?]" +0xd7d5: "[?]" +0xd7d6: "[?]" +0xd7d7: "[?]" +0xd7d8: "[?]" +0xd7d9: "[?]" +0xd7da: "[?]" +0xd7db: "[?]" +0xd7dc: "[?]" +0xd7dd: "[?]" +0xd7de: "[?]" +0xd7df: "[?]" +0xd7e0: "[?]" +0xd7e1: "[?]" +0xd7e2: "[?]" +0xd7e3: "[?]" +0xd7e4: "[?]" +0xd7e5: "[?]" +0xd7e6: "[?]" +0xd7e7: "[?]" +0xd7e8: "[?]" +0xd7e9: "[?]" +0xd7ea: "[?]" +0xd7eb: "[?]" +0xd7ec: "[?]" +0xd7ed: "[?]" +0xd7ee: "[?]" +0xd7ef: "[?]" +0xd7f0: "[?]" +0xd7f1: "[?]" +0xd7f2: "[?]" +0xd7f3: "[?]" +0xd7f4: "[?]" +0xd7f5: "[?]" +0xd7f6: "[?]" +0xd7f7: "[?]" +0xd7f8: "[?]" +0xd7f9: "[?]" +0xd7fa: "[?]" +0xd7fb: "[?]" +0xd7fc: "[?]" +0xd7fd: "[?]" +0xd7fe: "[?]" +/* x0f9 */ +0xf900: "Kay " +0xf901: "Kayng " +0xf902: "Ke " +0xf903: "Ko " +0xf904: "Kol " +0xf905: "Koc " +0xf906: "Kwi " +0xf907: "Kwi " +0xf908: "Kyun " +0xf909: "Kul " +0xf90a: "Kum " +0xf90b: "Na " +0xf90c: "Na " +0xf90d: "Na " +0xf90e: "La " +0xf90f: "Na " +0xf910: "Na " +0xf911: "Na " +0xf912: "Na " +0xf913: "Na " +0xf914: "Nak " +0xf915: "Nak " +0xf916: "Nak " +0xf917: "Nak " +0xf918: "Nak " +0xf919: "Nak " +0xf91a: "Nak " +0xf91b: "Nan " +0xf91c: "Nan " +0xf91d: "Nan " +0xf91e: "Nan " +0xf91f: "Nan " +0xf920: "Nan " +0xf921: "Nam " +0xf922: "Nam " +0xf923: "Nam " +0xf924: "Nam " +0xf925: "Nap " +0xf926: "Nap " +0xf927: "Nap " +0xf928: "Nang " +0xf929: "Nang " +0xf92a: "Nang " +0xf92b: "Nang " +0xf92c: "Nang " +0xf92d: "Nay " +0xf92e: "Nayng " +0xf92f: "No " +0xf930: "No " +0xf931: "No " +0xf932: "No " +0xf933: "No " +0xf934: "No " +0xf935: "No " +0xf936: "No " +0xf937: "No " +0xf938: "No " +0xf939: "No " +0xf93a: "No " +0xf93b: "Nok " +0xf93c: "Nok " +0xf93d: "Nok " +0xf93e: "Nok " +0xf93f: "Nok " +0xf940: "Nok " +0xf941: "Non " +0xf942: "Nong " +0xf943: "Nong " +0xf944: "Nong " +0xf945: "Nong " +0xf946: "Noy " +0xf947: "Noy " +0xf948: "Noy " +0xf949: "Noy " +0xf94a: "Nwu " +0xf94b: "Nwu " +0xf94c: "Nwu " +0xf94d: "Nwu " +0xf94e: "Nwu " +0xf94f: "Nwu " +0xf950: "Nwu " +0xf951: "Nwu " +0xf952: "Nuk " +0xf953: "Nuk " +0xf954: "Num " +0xf955: "Nung " +0xf956: "Nung " +0xf957: "Nung " +0xf958: "Nung " +0xf959: "Nung " +0xf95a: "Twu " +0xf95b: "La " +0xf95c: "Lak " +0xf95d: "Lak " +0xf95e: "Lan " +0xf95f: "Lyeng " +0xf960: "Lo " +0xf961: "Lyul " +0xf962: "Li " +0xf963: "Pey " +0xf964: "Pen " +0xf965: "Pyen " +0xf966: "Pwu " +0xf967: "Pwul " +0xf968: "Pi " +0xf969: "Sak " +0xf96a: "Sak " +0xf96b: "Sam " +0xf96c: "Sayk " +0xf96d: "Sayng " +0xf96e: "Sep " +0xf96f: "Sey " +0xf970: "Sway " +0xf971: "Sin " +0xf972: "Sim " +0xf973: "Sip " +0xf974: "Ya " +0xf975: "Yak " +0xf976: "Yak " +0xf977: "Yang " +0xf978: "Yang " +0xf979: "Yang " +0xf97a: "Yang " +0xf97b: "Yang " +0xf97c: "Yang " +0xf97d: "Yang " +0xf97e: "Yang " +0xf97f: "Ye " +0xf980: "Ye " +0xf981: "Ye " +0xf982: "Ye " +0xf983: "Ye " +0xf984: "Ye " +0xf985: "Ye " +0xf986: "Ye " +0xf987: "Ye " +0xf988: "Ye " +0xf989: "Ye " +0xf98a: "Yek " +0xf98b: "Yek " +0xf98c: "Yek " +0xf98d: "Yek " +0xf98e: "Yen " +0xf98f: "Yen " +0xf990: "Yen " +0xf991: "Yen " +0xf992: "Yen " +0xf993: "Yen " +0xf994: "Yen " +0xf995: "Yen " +0xf996: "Yen " +0xf997: "Yen " +0xf998: "Yen " +0xf999: "Yen " +0xf99a: "Yen " +0xf99b: "Yen " +0xf99c: "Yel " +0xf99d: "Yel " +0xf99e: "Yel " +0xf99f: "Yel " +0xf9a0: "Yel " +0xf9a1: "Yel " +0xf9a2: "Yem " +0xf9a3: "Yem " +0xf9a4: "Yem " +0xf9a5: "Yem " +0xf9a6: "Yem " +0xf9a7: "Yep " +0xf9a8: "Yeng " +0xf9a9: "Yeng " +0xf9aa: "Yeng " +0xf9ab: "Yeng " +0xf9ac: "Yeng " +0xf9ad: "Yeng " +0xf9ae: "Yeng " +0xf9af: "Yeng " +0xf9b0: "Yeng " +0xf9b1: "Yeng " +0xf9b2: "Yeng " +0xf9b3: "Yeng " +0xf9b4: "Yeng " +0xf9b5: "Yey " +0xf9b6: "Yey " +0xf9b7: "Yey " +0xf9b8: "Yey " +0xf9b9: "O " +0xf9ba: "Yo " +0xf9bb: "Yo " +0xf9bc: "Yo " +0xf9bd: "Yo " +0xf9be: "Yo " +0xf9bf: "Yo " +0xf9c0: "Yo " +0xf9c1: "Yo " +0xf9c2: "Yo " +0xf9c3: "Yo " +0xf9c4: "Yong " +0xf9c5: "Wun " +0xf9c6: "Wen " +0xf9c7: "Yu " +0xf9c8: "Yu " +0xf9c9: "Yu " +0xf9ca: "Yu " +0xf9cb: "Yu " +0xf9cc: "Yu " +0xf9cd: "Yu " +0xf9ce: "Yu " +0xf9cf: "Yu " +0xf9d0: "Yu " +0xf9d1: "Yuk " +0xf9d2: "Yuk " +0xf9d3: "Yuk " +0xf9d4: "Yun " +0xf9d5: "Yun " +0xf9d6: "Yun " +0xf9d7: "Yun " +0xf9d8: "Yul " +0xf9d9: "Yul " +0xf9da: "Yul " +0xf9db: "Yul " +0xf9dc: "Yung " +0xf9dd: "I " +0xf9de: "I " +0xf9df: "I " +0xf9e0: "I " +0xf9e1: "I " +0xf9e2: "I " +0xf9e3: "I " +0xf9e4: "I " +0xf9e5: "I " +0xf9e6: "I " +0xf9e7: "I " +0xf9e8: "I " +0xf9e9: "I " +0xf9ea: "I " +0xf9eb: "Ik " +0xf9ec: "Ik " +0xf9ed: "In " +0xf9ee: "In " +0xf9ef: "In " +0xf9f0: "In " +0xf9f1: "In " +0xf9f2: "In " +0xf9f3: "In " +0xf9f4: "Im " +0xf9f5: "Im " +0xf9f6: "Im " +0xf9f7: "Ip " +0xf9f8: "Ip " +0xf9f9: "Ip " +0xf9fa: "Cang " +0xf9fb: "Cek " +0xf9fc: "Ci " +0xf9fd: "Cip " +0xf9fe: "Cha " +0xf9ff: "Chek " +/* x0fa */ +0xfa00: "Chey " +0xfa01: "Thak " +0xfa02: "Thak " +0xfa03: "Thang " +0xfa04: "Thayk " +0xfa05: "Thong " +0xfa06: "Pho " +0xfa07: "Phok " +0xfa08: "Hang " +0xfa09: "Hang " +0xfa0a: "Hyen " +0xfa0b: "Hwak " +0xfa0c: "Wu " +0xfa0d: "Huo " +0xfa0e: "[?] " +0xfa0f: "[?] " +0xfa10: "Zhong " +0xfa11: "[?] " +0xfa12: "Qing " +0xfa13: "[?] " +0xfa14: "[?] " +0xfa15: "Xi " +0xfa16: "Zhu " +0xfa17: "Yi " +0xfa18: "Li " +0xfa19: "Shen " +0xfa1a: "Xiang " +0xfa1b: "Fu " +0xfa1c: "Jing " +0xfa1d: "Jing " +0xfa1e: "Yu " +0xfa1f: "[?] " +0xfa20: "Hagi " +0xfa21: "[?] " +0xfa22: "Zhu " +0xfa23: "[?] " +0xfa24: "[?] " +0xfa25: "Yi " +0xfa26: "Du " +0xfa27: "[?] " +0xfa28: "[?] " +0xfa29: "[?] " +0xfa2a: "Fan " +0xfa2b: "Si " +0xfa2c: "Guan " +0xfa2d: "[?]" +0xfa2e: "[?]" +0xfa2f: "[?]" +0xfa30: "[?]" +0xfa31: "[?]" +0xfa32: "[?]" +0xfa33: "[?]" +0xfa34: "[?]" +0xfa35: "[?]" +0xfa36: "[?]" +0xfa37: "[?]" +0xfa38: "[?]" +0xfa39: "[?]" +0xfa3a: "[?]" +0xfa3b: "[?]" +0xfa3c: "[?]" +0xfa3d: "[?]" +0xfa3e: "[?]" +0xfa3f: "[?]" +0xfa40: "[?]" +0xfa41: "[?]" +0xfa42: "[?]" +0xfa43: "[?]" +0xfa44: "[?]" +0xfa45: "[?]" +0xfa46: "[?]" +0xfa47: "[?]" +0xfa48: "[?]" +0xfa49: "[?]" +0xfa4a: "[?]" +0xfa4b: "[?]" +0xfa4c: "[?]" +0xfa4d: "[?]" +0xfa4e: "[?]" +0xfa4f: "[?]" +0xfa50: "[?]" +0xfa51: "[?]" +0xfa52: "[?]" +0xfa53: "[?]" +0xfa54: "[?]" +0xfa55: "[?]" +0xfa56: "[?]" +0xfa57: "[?]" +0xfa58: "[?]" +0xfa59: "[?]" +0xfa5a: "[?]" +0xfa5b: "[?]" +0xfa5c: "[?]" +0xfa5d: "[?]" +0xfa5e: "[?]" +0xfa5f: "[?]" +0xfa60: "[?]" +0xfa61: "[?]" +0xfa62: "[?]" +0xfa63: "[?]" +0xfa64: "[?]" +0xfa65: "[?]" +0xfa66: "[?]" +0xfa67: "[?]" +0xfa68: "[?]" +0xfa69: "[?]" +0xfa6a: "[?]" +0xfa6b: "[?]" +0xfa6c: "[?]" +0xfa6d: "[?]" +0xfa6e: "[?]" +0xfa6f: "[?]" +0xfa70: "[?]" +0xfa71: "[?]" +0xfa72: "[?]" +0xfa73: "[?]" +0xfa74: "[?]" +0xfa75: "[?]" +0xfa76: "[?]" +0xfa77: "[?]" +0xfa78: "[?]" +0xfa79: "[?]" +0xfa7a: "[?]" +0xfa7b: "[?]" +0xfa7c: "[?]" +0xfa7d: "[?]" +0xfa7e: "[?]" +0xfa7f: "[?]" +0xfa80: "[?]" +0xfa81: "[?]" +0xfa82: "[?]" +0xfa83: "[?]" +0xfa84: "[?]" +0xfa85: "[?]" +0xfa86: "[?]" +0xfa87: "[?]" +0xfa88: "[?]" +0xfa89: "[?]" +0xfa8a: "[?]" +0xfa8b: "[?]" +0xfa8c: "[?]" +0xfa8d: "[?]" +0xfa8e: "[?]" +0xfa8f: "[?]" +0xfa90: "[?]" +0xfa91: "[?]" +0xfa92: "[?]" +0xfa93: "[?]" +0xfa94: "[?]" +0xfa95: "[?]" +0xfa96: "[?]" +0xfa97: "[?]" +0xfa98: "[?]" +0xfa99: "[?]" +0xfa9a: "[?]" +0xfa9b: "[?]" +0xfa9c: "[?]" +0xfa9d: "[?]" +0xfa9e: "[?]" +0xfa9f: "[?]" +0xfaa0: "[?]" +0xfaa1: "[?]" +0xfaa2: "[?]" +0xfaa3: "[?]" +0xfaa4: "[?]" +0xfaa5: "[?]" +0xfaa6: "[?]" +0xfaa7: "[?]" +0xfaa8: "[?]" +0xfaa9: "[?]" +0xfaaa: "[?]" +0xfaab: "[?]" +0xfaac: "[?]" +0xfaad: "[?]" +0xfaae: "[?]" +0xfaaf: "[?]" +0xfab0: "[?]" +0xfab1: "[?]" +0xfab2: "[?]" +0xfab3: "[?]" +0xfab4: "[?]" +0xfab5: "[?]" +0xfab6: "[?]" +0xfab7: "[?]" +0xfab8: "[?]" +0xfab9: "[?]" +0xfaba: "[?]" +0xfabb: "[?]" +0xfabc: "[?]" +0xfabd: "[?]" +0xfabe: "[?]" +0xfabf: "[?]" +0xfac0: "[?]" +0xfac1: "[?]" +0xfac2: "[?]" +0xfac3: "[?]" +0xfac4: "[?]" +0xfac5: "[?]" +0xfac6: "[?]" +0xfac7: "[?]" +0xfac8: "[?]" +0xfac9: "[?]" +0xfaca: "[?]" +0xfacb: "[?]" +0xfacc: "[?]" +0xfacd: "[?]" +0xface: "[?]" +0xfacf: "[?]" +0xfad0: "[?]" +0xfad1: "[?]" +0xfad2: "[?]" +0xfad3: "[?]" +0xfad4: "[?]" +0xfad5: "[?]" +0xfad6: "[?]" +0xfad7: "[?]" +0xfad8: "[?]" +0xfad9: "[?]" +0xfada: "[?]" +0xfadb: "[?]" +0xfadc: "[?]" +0xfadd: "[?]" +0xfade: "[?]" +0xfadf: "[?]" +0xfae0: "[?]" +0xfae1: "[?]" +0xfae2: "[?]" +0xfae3: "[?]" +0xfae4: "[?]" +0xfae5: "[?]" +0xfae6: "[?]" +0xfae7: "[?]" +0xfae8: "[?]" +0xfae9: "[?]" +0xfaea: "[?]" +0xfaeb: "[?]" +0xfaec: "[?]" +0xfaed: "[?]" +0xfaee: "[?]" +0xfaef: "[?]" +0xfaf0: "[?]" +0xfaf1: "[?]" +0xfaf2: "[?]" +0xfaf3: "[?]" +0xfaf4: "[?]" +0xfaf5: "[?]" +0xfaf6: "[?]" +0xfaf7: "[?]" +0xfaf8: "[?]" +0xfaf9: "[?]" +0xfafa: "[?]" +0xfafb: "[?]" +0xfafc: "[?]" +0xfafd: "[?]" +0xfafe: "[?]" +/* x0fb */ +0xfb00: "ff" +0xfb01: "fi" +0xfb02: "fl" +0xfb03: "ffi" +0xfb04: "ffl" +0xfb05: "st" +0xfb06: "st" +0xfb07: "[?]" +0xfb08: "[?]" +0xfb09: "[?]" +0xfb0a: "[?]" +0xfb0b: "[?]" +0xfb0c: "[?]" +0xfb0d: "[?]" +0xfb0e: "[?]" +0xfb0f: "[?]" +0xfb10: "[?]" +0xfb11: "[?]" +0xfb12: "[?]" +0xfb13: "mn" +0xfb14: "me" +0xfb15: "mi" +0xfb16: "vn" +0xfb17: "mkh" +0xfb18: "[?]" +0xfb19: "[?]" +0xfb1a: "[?]" +0xfb1b: "[?]" +0xfb1c: "[?]" +0xfb1d: "yi" +0xfb1e: "" +0xfb1f: "ay" +0xfb20: "`" +0xfb21: "" +0xfb22: "d" +0xfb23: "h" +0xfb24: "k" +0xfb25: "l" +0xfb26: "m" +0xfb27: "m" +0xfb28: "t" +0xfb29: "+" +0xfb2a: "sh" +0xfb2b: "s" +0xfb2c: "sh" +0xfb2d: "s" +0xfb2e: "a" +0xfb2f: "a" +0xfb30: "" +0xfb31: "b" +0xfb32: "g" +0xfb33: "d" +0xfb34: "h" +0xfb35: "v" +0xfb36: "z" +0xfb37: "[?]" +0xfb38: "t" +0xfb39: "y" +0xfb3a: "k" +0xfb3b: "k" +0xfb3c: "l" +0xfb3d: "[?]" +0xfb3e: "l" +0xfb3f: "[?]" +0xfb40: "n" +0xfb41: "n" +0xfb42: "[?]" +0xfb43: "p" +0xfb44: "p" +0xfb45: "[?]" +0xfb46: "ts" +0xfb47: "ts" +0xfb48: "r" +0xfb49: "sh" +0xfb4a: "t" +0xfb4b: "vo" +0xfb4c: "b" +0xfb4d: "k" +0xfb4e: "p" +0xfb4f: "l" +0xfb50: "" +0xfb51: "" +0xfb52: "" +0xfb53: "" +0xfb54: "" +0xfb55: "" +0xfb56: "" +0xfb57: "" +0xfb58: "" +0xfb59: "" +0xfb5a: "" +0xfb5b: "" +0xfb5c: "" +0xfb5d: "" +0xfb5e: "" +0xfb5f: "" +0xfb60: "" +0xfb61: "" +0xfb62: "" +0xfb63: "" +0xfb64: "" +0xfb65: "" +0xfb66: "" +0xfb67: "" +0xfb68: "" +0xfb69: "" +0xfb6a: "" +0xfb6b: "" +0xfb6c: "" +0xfb6d: "" +0xfb6e: "" +0xfb6f: "" +0xfb70: "" +0xfb71: "" +0xfb72: "" +0xfb73: "" +0xfb74: "" +0xfb75: "" +0xfb76: "" +0xfb77: "" +0xfb78: "" +0xfb79: "" +0xfb7a: "" +0xfb7b: "" +0xfb7c: "" +0xfb7d: "" +0xfb7e: "" +0xfb7f: "" +0xfb80: "" +0xfb81: "" +0xfb82: "" +0xfb83: "" +0xfb84: "" +0xfb85: "" +0xfb86: "" +0xfb87: "" +0xfb88: "" +0xfb89: "" +0xfb8a: "" +0xfb8b: "" +0xfb8c: "" +0xfb8d: "" +0xfb8e: "" +0xfb8f: "" +0xfb90: "" +0xfb91: "" +0xfb92: "" +0xfb93: "" +0xfb94: "" +0xfb95: "" +0xfb96: "" +0xfb97: "" +0xfb98: "" +0xfb99: "" +0xfb9a: "" +0xfb9b: "" +0xfb9c: "" +0xfb9d: "" +0xfb9e: "" +0xfb9f: "" +0xfba0: "" +0xfba1: "" +0xfba2: "" +0xfba3: "" +0xfba4: "" +0xfba5: "" +0xfba6: "" +0xfba7: "" +0xfba8: "" +0xfba9: "" +0xfbaa: "" +0xfbab: "" +0xfbac: "" +0xfbad: "" +0xfbae: "" +0xfbaf: "" +0xfbb0: "" +0xfbb1: "" +0xfbb2: "[?]" +0xfbb3: "[?]" +0xfbb4: "[?]" +0xfbb5: "[?]" +0xfbb6: "[?]" +0xfbb7: "[?]" +0xfbb8: "[?]" +0xfbb9: "[?]" +0xfbba: "[?]" +0xfbbb: "[?]" +0xfbbc: "[?]" +0xfbbd: "[?]" +0xfbbe: "[?]" +0xfbbf: "[?]" +0xfbc0: "[?]" +0xfbc1: "[?]" +0xfbc2: "[?]" +0xfbc3: "[?]" +0xfbc4: "[?]" +0xfbc5: "[?]" +0xfbc6: "[?]" +0xfbc7: "[?]" +0xfbc8: "[?]" +0xfbc9: "[?]" +0xfbca: "[?]" +0xfbcb: "[?]" +0xfbcc: "[?]" +0xfbcd: "[?]" +0xfbce: "[?]" +0xfbcf: "[?]" +0xfbd0: "[?]" +0xfbd1: "[?]" +0xfbd2: "[?]" +0xfbd3: "" +0xfbd4: "" +0xfbd5: "" +0xfbd6: "" +0xfbd7: "" +0xfbd8: "" +0xfbd9: "" +0xfbda: "" +0xfbdb: "" +0xfbdc: "" +0xfbdd: "" +0xfbde: "" +0xfbdf: "" +0xfbe0: "" +0xfbe1: "" +0xfbe2: "" +0xfbe3: "" +0xfbe4: "" +0xfbe5: "" +0xfbe6: "" +0xfbe7: "" +0xfbe8: "" +0xfbe9: "" +0xfbea: "" +0xfbeb: "" +0xfbec: "" +0xfbed: "" +0xfbee: "" +0xfbef: "" +0xfbf0: "" +0xfbf1: "" +0xfbf2: "" +0xfbf3: "" +0xfbf4: "" +0xfbf5: "" +0xfbf6: "" +0xfbf7: "" +0xfbf8: "" +0xfbf9: "" +0xfbfa: "" +0xfbfb: "" +0xfbfc: "" +0xfbfd: "" +0xfbfe: "" +0xfbff: "" +/* x0fc */ +0xfc00: "" +0xfc01: "" +0xfc02: "" +0xfc03: "" +0xfc04: "" +0xfc05: "" +0xfc06: "" +0xfc07: "" +0xfc08: "" +0xfc09: "" +0xfc0a: "" +0xfc0b: "" +0xfc0c: "" +0xfc0d: "" +0xfc0e: "" +0xfc0f: "" +0xfc10: "" +0xfc11: "" +0xfc12: "" +0xfc13: "" +0xfc14: "" +0xfc15: "" +0xfc16: "" +0xfc17: "" +0xfc18: "" +0xfc19: "" +0xfc1a: "" +0xfc1b: "" +0xfc1c: "" +0xfc1d: "" +0xfc1e: "" +0xfc1f: "" +0xfc20: "" +0xfc21: "" +0xfc22: "" +0xfc23: "" +0xfc24: "" +0xfc25: "" +0xfc26: "" +0xfc27: "" +0xfc28: "" +0xfc29: "" +0xfc2a: "" +0xfc2b: "" +0xfc2c: "" +0xfc2d: "" +0xfc2e: "" +0xfc2f: "" +0xfc30: "" +0xfc31: "" +0xfc32: "" +0xfc33: "" +0xfc34: "" +0xfc35: "" +0xfc36: "" +0xfc37: "" +0xfc38: "" +0xfc39: "" +0xfc3a: "" +0xfc3b: "" +0xfc3c: "" +0xfc3d: "" +0xfc3e: "" +0xfc3f: "" +0xfc40: "" +0xfc41: "" +0xfc42: "" +0xfc43: "" +0xfc44: "" +0xfc45: "" +0xfc46: "" +0xfc47: "" +0xfc48: "" +0xfc49: "" +0xfc4a: "" +0xfc4b: "" +0xfc4c: "" +0xfc4d: "" +0xfc4e: "" +0xfc4f: "" +0xfc50: "" +0xfc51: "" +0xfc52: "" +0xfc53: "" +0xfc54: "" +0xfc55: "" +0xfc56: "" +0xfc57: "" +0xfc58: "" +0xfc59: "" +0xfc5a: "" +0xfc5b: "" +0xfc5c: "" +0xfc5d: "" +0xfc5e: "" +0xfc5f: "" +0xfc60: "" +0xfc61: "" +0xfc62: "" +0xfc63: "" +0xfc64: "" +0xfc65: "" +0xfc66: "" +0xfc67: "" +0xfc68: "" +0xfc69: "" +0xfc6a: "" +0xfc6b: "" +0xfc6c: "" +0xfc6d: "" +0xfc6e: "" +0xfc6f: "" +0xfc70: "" +0xfc71: "" +0xfc72: "" +0xfc73: "" +0xfc74: "" +0xfc75: "" +0xfc76: "" +0xfc77: "" +0xfc78: "" +0xfc79: "" +0xfc7a: "" +0xfc7b: "" +0xfc7c: "" +0xfc7d: "" +0xfc7e: "" +0xfc7f: "" +0xfc80: "" +0xfc81: "" +0xfc82: "" +0xfc83: "" +0xfc84: "" +0xfc85: "" +0xfc86: "" +0xfc87: "" +0xfc88: "" +0xfc89: "" +0xfc8a: "" +0xfc8b: "" +0xfc8c: "" +0xfc8d: "" +0xfc8e: "" +0xfc8f: "" +0xfc90: "" +0xfc91: "" +0xfc92: "" +0xfc93: "" +0xfc94: "" +0xfc95: "" +0xfc96: "" +0xfc97: "" +0xfc98: "" +0xfc99: "" +0xfc9a: "" +0xfc9b: "" +0xfc9c: "" +0xfc9d: "" +0xfc9e: "" +0xfc9f: "" +0xfca0: "" +0xfca1: "" +0xfca2: "" +0xfca3: "" +0xfca4: "" +0xfca5: "" +0xfca6: "" +0xfca7: "" +0xfca8: "" +0xfca9: "" +0xfcaa: "" +0xfcab: "" +0xfcac: "" +0xfcad: "" +0xfcae: "" +0xfcaf: "" +0xfcb0: "" +0xfcb1: "" +0xfcb2: "" +0xfcb3: "" +0xfcb4: "" +0xfcb5: "" +0xfcb6: "" +0xfcb7: "" +0xfcb8: "" +0xfcb9: "" +0xfcba: "" +0xfcbb: "" +0xfcbc: "" +0xfcbd: "" +0xfcbe: "" +0xfcbf: "" +0xfcc0: "" +0xfcc1: "" +0xfcc2: "" +0xfcc3: "" +0xfcc4: "" +0xfcc5: "" +0xfcc6: "" +0xfcc7: "" +0xfcc8: "" +0xfcc9: "" +0xfcca: "" +0xfccb: "" +0xfccc: "" +0xfccd: "" +0xfcce: "" +0xfccf: "" +0xfcd0: "" +0xfcd1: "" +0xfcd2: "" +0xfcd3: "" +0xfcd4: "" +0xfcd5: "" +0xfcd6: "" +0xfcd7: "" +0xfcd8: "" +0xfcd9: "" +0xfcda: "" +0xfcdb: "" +0xfcdc: "" +0xfcdd: "" +0xfcde: "" +0xfcdf: "" +0xfce0: "" +0xfce1: "" +0xfce2: "" +0xfce3: "" +0xfce4: "" +0xfce5: "" +0xfce6: "" +0xfce7: "" +0xfce8: "" +0xfce9: "" +0xfcea: "" +0xfceb: "" +0xfcec: "" +0xfced: "" +0xfcee: "" +0xfcef: "" +0xfcf0: "" +0xfcf1: "" +0xfcf2: "" +0xfcf3: "" +0xfcf4: "" +0xfcf5: "" +0xfcf6: "" +0xfcf7: "" +0xfcf8: "" +0xfcf9: "" +0xfcfa: "" +0xfcfb: "" +0xfcfc: "" +0xfcfd: "" +0xfcfe: "" +0xfcff: "" +/* x0fd */ +0xfd00: "" +0xfd01: "" +0xfd02: "" +0xfd03: "" +0xfd04: "" +0xfd05: "" +0xfd06: "" +0xfd07: "" +0xfd08: "" +0xfd09: "" +0xfd0a: "" +0xfd0b: "" +0xfd0c: "" +0xfd0d: "" +0xfd0e: "" +0xfd0f: "" +0xfd10: "" +0xfd11: "" +0xfd12: "" +0xfd13: "" +0xfd14: "" +0xfd15: "" +0xfd16: "" +0xfd17: "" +0xfd18: "" +0xfd19: "" +0xfd1a: "" +0xfd1b: "" +0xfd1c: "" +0xfd1d: "" +0xfd1e: "" +0xfd1f: "" +0xfd20: "" +0xfd21: "" +0xfd22: "" +0xfd23: "" +0xfd24: "" +0xfd25: "" +0xfd26: "" +0xfd27: "" +0xfd28: "" +0xfd29: "" +0xfd2a: "" +0xfd2b: "" +0xfd2c: "" +0xfd2d: "" +0xfd2e: "" +0xfd2f: "" +0xfd30: "" +0xfd31: "" +0xfd32: "" +0xfd33: "" +0xfd34: "" +0xfd35: "" +0xfd36: "" +0xfd37: "" +0xfd38: "" +0xfd39: "" +0xfd3a: "" +0xfd3b: "" +0xfd3c: "" +0xfd3d: "" +0xfd3e: "" +0xfd3f: "" +0xfd40: "[?]" +0xfd41: "[?]" +0xfd42: "[?]" +0xfd43: "[?]" +0xfd44: "[?]" +0xfd45: "[?]" +0xfd46: "[?]" +0xfd47: "[?]" +0xfd48: "[?]" +0xfd49: "[?]" +0xfd4a: "[?]" +0xfd4b: "[?]" +0xfd4c: "[?]" +0xfd4d: "[?]" +0xfd4e: "[?]" +0xfd4f: "[?]" +0xfd50: "" +0xfd51: "" +0xfd52: "" +0xfd53: "" +0xfd54: "" +0xfd55: "" +0xfd56: "" +0xfd57: "" +0xfd58: "" +0xfd59: "" +0xfd5a: "" +0xfd5b: "" +0xfd5c: "" +0xfd5d: "" +0xfd5e: "" +0xfd5f: "" +0xfd60: "" +0xfd61: "" +0xfd62: "" +0xfd63: "" +0xfd64: "" +0xfd65: "" +0xfd66: "" +0xfd67: "" +0xfd68: "" +0xfd69: "" +0xfd6a: "" +0xfd6b: "" +0xfd6c: "" +0xfd6d: "" +0xfd6e: "" +0xfd6f: "" +0xfd70: "" +0xfd71: "" +0xfd72: "" +0xfd73: "" +0xfd74: "" +0xfd75: "" +0xfd76: "" +0xfd77: "" +0xfd78: "" +0xfd79: "" +0xfd7a: "" +0xfd7b: "" +0xfd7c: "" +0xfd7d: "" +0xfd7e: "" +0xfd7f: "" +0xfd80: "" +0xfd81: "" +0xfd82: "" +0xfd83: "" +0xfd84: "" +0xfd85: "" +0xfd86: "" +0xfd87: "" +0xfd88: "" +0xfd89: "" +0xfd8a: "" +0xfd8b: "" +0xfd8c: "" +0xfd8d: "" +0xfd8e: "" +0xfd8f: "" +0xfd90: "[?]" +0xfd91: "[?]" +0xfd92: "" +0xfd93: "" +0xfd94: "" +0xfd95: "" +0xfd96: "" +0xfd97: "" +0xfd98: "" +0xfd99: "" +0xfd9a: "" +0xfd9b: "" +0xfd9c: "" +0xfd9d: "" +0xfd9e: "" +0xfd9f: "" +0xfda0: "" +0xfda1: "" +0xfda2: "" +0xfda3: "" +0xfda4: "" +0xfda5: "" +0xfda6: "" +0xfda7: "" +0xfda8: "" +0xfda9: "" +0xfdaa: "" +0xfdab: "" +0xfdac: "" +0xfdad: "" +0xfdae: "" +0xfdaf: "" +0xfdb0: "" +0xfdb1: "" +0xfdb2: "" +0xfdb3: "" +0xfdb4: "" +0xfdb5: "" +0xfdb6: "" +0xfdb7: "" +0xfdb8: "" +0xfdb9: "" +0xfdba: "" +0xfdbb: "" +0xfdbc: "" +0xfdbd: "" +0xfdbe: "" +0xfdbf: "" +0xfdc0: "" +0xfdc1: "" +0xfdc2: "" +0xfdc3: "" +0xfdc4: "" +0xfdc5: "" +0xfdc6: "" +0xfdc7: "" +0xfdc8: "[?]" +0xfdc9: "[?]" +0xfdca: "[?]" +0xfdcb: "[?]" +0xfdcc: "[?]" +0xfdcd: "[?]" +0xfdce: "[?]" +0xfdcf: "[?]" +0xfdd0: "[?]" +0xfdd1: "[?]" +0xfdd2: "[?]" +0xfdd3: "[?]" +0xfdd4: "[?]" +0xfdd5: "[?]" +0xfdd6: "[?]" +0xfdd7: "[?]" +0xfdd8: "[?]" +0xfdd9: "[?]" +0xfdda: "[?]" +0xfddb: "[?]" +0xfddc: "[?]" +0xfddd: "[?]" +0xfdde: "[?]" +0xfddf: "[?]" +0xfde0: "[?]" +0xfde1: "[?]" +0xfde2: "[?]" +0xfde3: "[?]" +0xfde4: "[?]" +0xfde5: "[?]" +0xfde6: "[?]" +0xfde7: "[?]" +0xfde8: "[?]" +0xfde9: "[?]" +0xfdea: "[?]" +0xfdeb: "[?]" +0xfdec: "[?]" +0xfded: "[?]" +0xfdee: "[?]" +0xfdef: "[?]" +0xfdf0: "" +0xfdf1: "" +0xfdf2: "" +0xfdf3: "" +0xfdf4: "" +0xfdf5: "" +0xfdf6: "" +0xfdf7: "" +0xfdf8: "" +0xfdf9: "" +0xfdfa: "" +0xfdfb: "" +0xfdfc: "[?]" +0xfdfd: "[?]" +0xfdfe: "[?]" +/* x0fe */ +0xfe00: "[?]" +0xfe01: "[?]" +0xfe02: "[?]" +0xfe03: "[?]" +0xfe04: "[?]" +0xfe05: "[?]" +0xfe06: "[?]" +0xfe07: "[?]" +0xfe08: "[?]" +0xfe09: "[?]" +0xfe0a: "[?]" +0xfe0b: "[?]" +0xfe0c: "[?]" +0xfe0d: "[?]" +0xfe0e: "[?]" +0xfe0f: "[?]" +0xfe10: "[?]" +0xfe11: "[?]" +0xfe12: "[?]" +0xfe13: "[?]" +0xfe14: "[?]" +0xfe15: "[?]" +0xfe16: "[?]" +0xfe17: "[?]" +0xfe18: "[?]" +0xfe19: "[?]" +0xfe1a: "[?]" +0xfe1b: "[?]" +0xfe1c: "[?]" +0xfe1d: "[?]" +0xfe1e: "[?]" +0xfe1f: "[?]" +0xfe20: "" +0xfe21: "" +0xfe22: "" +0xfe23: "~" +0xfe24: "[?]" +0xfe25: "[?]" +0xfe26: "[?]" +0xfe27: "[?]" +0xfe28: "[?]" +0xfe29: "[?]" +0xfe2a: "[?]" +0xfe2b: "[?]" +0xfe2c: "[?]" +0xfe2d: "[?]" +0xfe2e: "[?]" +0xfe2f: "[?]" +0xfe30: ".." +0xfe31: "--" +0xfe32: "-" +0xfe33: "_" +0xfe34: "_" +0xfe35: "(" +0xfe36: ") " +0xfe37: "{" +0xfe38: "} " +0xfe39: "[" +0xfe3a: "] " +0xfe3b: "[(" +0xfe3c: ")] " +0xfe3d: "<<" +0xfe3e: ">> " +0xfe3f: "<" +0xfe40: "> " +0xfe41: "[" +0xfe42: "] " +0xfe43: "{" +0xfe44: "}" +0xfe45: "[?]" +0xfe46: "[?]" +0xfe47: "[?]" +0xfe48: "[?]" +0xfe49: "" +0xfe4a: "" +0xfe4b: "" +0xfe4c: "" +0xfe4d: "" +0xfe4e: "" +0xfe4f: "" +0xfe50: "," +0xfe51: "," +0xfe52: "." +0xfe53: "" +0xfe54: ";" +0xfe55: ":" +0xfe56: "?" +0xfe57: "!" +0xfe58: "-" +0xfe59: "(" +0xfe5a: ")" +0xfe5b: "{" +0xfe5c: "}" +0xfe5d: "{" +0xfe5e: "}" +0xfe5f: "#" +0xfe60: "&" +0xfe61: "*" +0xfe62: "+" +0xfe63: "-" +0xfe64: "<" +0xfe65: ">" +0xfe66: "=" +0xfe67: "" +0xfe68: "\\" +0xfe69: "$" +0xfe6a: "%" +0xfe6b: "@" +0xfe6c: "[?]" +0xfe6d: "[?]" +0xfe6e: "[?]" +0xfe6f: "[?]" +0xfe70: "" +0xfe71: "" +0xfe72: "" +0xfe73: "[?]" +0xfe74: "" +0xfe75: "[?]" +0xfe76: "" +0xfe77: "" +0xfe78: "" +0xfe79: "" +0xfe7a: "" +0xfe7b: "" +0xfe7c: "" +0xfe7d: "" +0xfe7e: "" +0xfe7f: "" +0xfe80: "" +0xfe81: "" +0xfe82: "" +0xfe83: "" +0xfe84: "" +0xfe85: "" +0xfe86: "" +0xfe87: "" +0xfe88: "" +0xfe89: "" +0xfe8a: "" +0xfe8b: "" +0xfe8c: "" +0xfe8d: "" +0xfe8e: "" +0xfe8f: "" +0xfe90: "" +0xfe91: "" +0xfe92: "" +0xfe93: "" +0xfe94: "" +0xfe95: "" +0xfe96: "" +0xfe97: "" +0xfe98: "" +0xfe99: "" +0xfe9a: "" +0xfe9b: "" +0xfe9c: "" +0xfe9d: "" +0xfe9e: "" +0xfe9f: "" +0xfea0: "" +0xfea1: "" +0xfea2: "" +0xfea3: "" +0xfea4: "" +0xfea5: "" +0xfea6: "" +0xfea7: "" +0xfea8: "" +0xfea9: "" +0xfeaa: "" +0xfeab: "" +0xfeac: "" +0xfead: "" +0xfeae: "" +0xfeaf: "" +0xfeb0: "" +0xfeb1: "" +0xfeb2: "" +0xfeb3: "" +0xfeb4: "" +0xfeb5: "" +0xfeb6: "" +0xfeb7: "" +0xfeb8: "" +0xfeb9: "" +0xfeba: "" +0xfebb: "" +0xfebc: "" +0xfebd: "" +0xfebe: "" +0xfebf: "" +0xfec0: "" +0xfec1: "" +0xfec2: "" +0xfec3: "" +0xfec4: "" +0xfec5: "" +0xfec6: "" +0xfec7: "" +0xfec8: "" +0xfec9: "" +0xfeca: "" +0xfecb: "" +0xfecc: "" +0xfecd: "" +0xfece: "" +0xfecf: "" +0xfed0: "" +0xfed1: "" +0xfed2: "" +0xfed3: "" +0xfed4: "" +0xfed5: "" +0xfed6: "" +0xfed7: "" +0xfed8: "" +0xfed9: "" +0xfeda: "" +0xfedb: "" +0xfedc: "" +0xfedd: "" +0xfede: "" +0xfedf: "" +0xfee0: "" +0xfee1: "" +0xfee2: "" +0xfee3: "" +0xfee4: "" +0xfee5: "" +0xfee6: "" +0xfee7: "" +0xfee8: "" +0xfee9: "" +0xfeea: "" +0xfeeb: "" +0xfeec: "" +0xfeed: "" +0xfeee: "" +0xfeef: "" +0xfef0: "" +0xfef1: "" +0xfef2: "" +0xfef3: "" +0xfef4: "" +0xfef5: "" +0xfef6: "" +0xfef7: "" +0xfef8: "" +0xfef9: "" +0xfefa: "" +0xfefb: "" +0xfefc: "" +0xfefd: "[?]" +0xfefe: "[?]" +0xfeff: "" +/* x0ff */ +0xff00: "[?]" +0xff01: "!" +0xff02: "\"" +0xff03: "#" +0xff04: "$" +0xff05: "%" +0xff06: "&" +0xff07: "'" +0xff08: "(" +0xff09: ")" +0xff0a: "*" +0xff0b: "+" +0xff0c: "," +0xff0d: "-" +0xff0e: "." +0xff0f: "/" +0xff10: "0" +0xff11: "1" +0xff12: "2" +0xff13: "3" +0xff14: "4" +0xff15: "5" +0xff16: "6" +0xff17: "7" +0xff18: "8" +0xff19: "9" +0xff1a: ":" +0xff1b: ";" +0xff1c: "<" +0xff1d: "=" +0xff1e: ">" +0xff1f: "?" +0xff20: "@" +0xff21: "A" +0xff22: "B" +0xff23: "C" +0xff24: "D" +0xff25: "E" +0xff26: "F" +0xff27: "G" +0xff28: "H" +0xff29: "I" +0xff2a: "J" +0xff2b: "K" +0xff2c: "L" +0xff2d: "M" +0xff2e: "N" +0xff2f: "O" +0xff30: "P" +0xff31: "Q" +0xff32: "R" +0xff33: "S" +0xff34: "T" +0xff35: "U" +0xff36: "V" +0xff37: "W" +0xff38: "X" +0xff39: "Y" +0xff3a: "Z" +0xff3b: "[" +0xff3c: "\\" +0xff3d: "]" +0xff3e: "^" +0xff3f: "_" +0xff40: "`" +0xff41: "a" +0xff42: "b" +0xff43: "c" +0xff44: "d" +0xff45: "e" +0xff46: "f" +0xff47: "g" +0xff48: "h" +0xff49: "i" +0xff4a: "j" +0xff4b: "k" +0xff4c: "l" +0xff4d: "m" +0xff4e: "n" +0xff4f: "o" +0xff50: "p" +0xff51: "q" +0xff52: "r" +0xff53: "s" +0xff54: "t" +0xff55: "u" +0xff56: "v" +0xff57: "w" +0xff58: "x" +0xff59: "y" +0xff5a: "z" +0xff5b: "{" +0xff5c: "|" +0xff5d: "}" +0xff5e: "~" +0xff5f: "[?]" +0xff60: "[?]" +0xff61: "." +0xff62: "[" +0xff63: "]" +0xff64: "," +0xff65: "*" +0xff66: "wo" +0xff67: "a" +0xff68: "i" +0xff69: "u" +0xff6a: "e" +0xff6b: "o" +0xff6c: "ya" +0xff6d: "yu" +0xff6e: "yo" +0xff6f: "tu" +0xff70: "+" +0xff71: "a" +0xff72: "i" +0xff73: "u" +0xff74: "e" +0xff75: "o" +0xff76: "ka" +0xff77: "ki" +0xff78: "ku" +0xff79: "ke" +0xff7a: "ko" +0xff7b: "sa" +0xff7c: "si" +0xff7d: "su" +0xff7e: "se" +0xff7f: "so" +0xff80: "ta" +0xff81: "ti" +0xff82: "tu" +0xff83: "te" +0xff84: "to" +0xff85: "na" +0xff86: "ni" +0xff87: "nu" +0xff88: "ne" +0xff89: "no" +0xff8a: "ha" +0xff8b: "hi" +0xff8c: "hu" +0xff8d: "he" +0xff8e: "ho" +0xff8f: "ma" +0xff90: "mi" +0xff91: "mu" +0xff92: "me" +0xff93: "mo" +0xff94: "ya" +0xff95: "yu" +0xff96: "yo" +0xff97: "ra" +0xff98: "ri" +0xff99: "ru" +0xff9a: "re" +0xff9b: "ro" +0xff9c: "wa" +0xff9d: "n" +0xff9e: ":" +0xff9f: ";" +0xffa0: "" +0xffa1: "g" +0xffa2: "gg" +0xffa3: "gs" +0xffa4: "n" +0xffa5: "nj" +0xffa6: "nh" +0xffa7: "d" +0xffa8: "dd" +0xffa9: "r" +0xffaa: "lg" +0xffab: "lm" +0xffac: "lb" +0xffad: "ls" +0xffae: "lt" +0xffaf: "lp" +0xffb0: "rh" +0xffb1: "m" +0xffb2: "b" +0xffb3: "bb" +0xffb4: "bs" +0xffb5: "s" +0xffb6: "ss" +0xffb7: "" +0xffb8: "j" +0xffb9: "jj" +0xffba: "c" +0xffbb: "k" +0xffbc: "t" +0xffbd: "p" +0xffbe: "h" +0xffbf: "[?]" +0xffc0: "[?]" +0xffc1: "[?]" +0xffc2: "a" +0xffc3: "ae" +0xffc4: "ya" +0xffc5: "yae" +0xffc6: "eo" +0xffc7: "e" +0xffc8: "[?]" +0xffc9: "[?]" +0xffca: "yeo" +0xffcb: "ye" +0xffcc: "o" +0xffcd: "wa" +0xffce: "wae" +0xffcf: "oe" +0xffd0: "[?]" +0xffd1: "[?]" +0xffd2: "yo" +0xffd3: "u" +0xffd4: "weo" +0xffd5: "we" +0xffd6: "wi" +0xffd7: "yu" +0xffd8: "[?]" +0xffd9: "[?]" +0xffda: "eu" +0xffdb: "yi" +0xffdc: "i" +0xffdd: "[?]" +0xffde: "[?]" +0xffdf: "[?]" +0xffe0: "/C" +0xffe1: "PS" +0xffe2: "!" +0xffe3: "-" +0xffe4: "|" +0xffe5: "Y=" +0xffe6: "W=" +0xffe7: "[?]" +0xffe8: "|" +0xffe9: "-" +0xffea: "|" +0xffeb: "-" +0xffec: "|" +0xffed: "#" +0xffee: "O" +0xffef: "[?]" +0xfff0: "[?]" +0xfff1: "[?]" +0xfff2: "[?]" +0xfff3: "[?]" +0xfff4: "[?]" +0xfff5: "[?]" +0xfff6: "[?]" +0xfff7: "[?]" +0xfff8: "[?]" +0xfff9: "{" +0xfffa: "|" +0xfffb: "}" +0xfffc: "" +0xfffd: "" +0xfffe: "" +0xffff: "" diff --git a/vendor/github.com/rainycape/unidecode/unidecode.go b/vendor/github.com/rainycape/unidecode/unidecode.go new file mode 100644 index 000000000000..16281da4bb93 --- /dev/null +++ b/vendor/github.com/rainycape/unidecode/unidecode.go @@ -0,0 +1,58 @@ +// Package unidecode implements a unicode transliterator +// which replaces non-ASCII characters with their ASCII +// approximations. +package unidecode + +//go:generate go run make_table.go + +import ( + "sync" + "unicode" +) + +const pooledCapacity = 64 + +var ( + slicePool sync.Pool + decodingOnce sync.Once +) + +// Unidecode implements a unicode transliterator, which +// replaces non-ASCII characters with their ASCII +// counterparts. +// Given an unicode encoded string, returns +// another string with non-ASCII characters replaced +// with their closest ASCII counterparts. +// e.g. Unicode("áéíóú") => "aeiou" +func Unidecode(s string) string { + decodingOnce.Do(decodeTransliterations) + l := len(s) + var r []rune + if l > pooledCapacity { + r = make([]rune, 0, len(s)) + } else { + if x := slicePool.Get(); x != nil { + r = x.([]rune)[:0] + } else { + r = make([]rune, 0, pooledCapacity) + } + } + for _, c := range s { + if c <= unicode.MaxASCII { + r = append(r, c) + continue + } + if c > unicode.MaxRune || c > transCount { + /* Ignore reserved chars */ + continue + } + if d := transliterations[c]; d != nil { + r = append(r, d...) + } + } + res := string(r) + if l <= pooledCapacity { + slicePool.Put(r) + } + return res +} diff --git a/vendor/gopkg.in/ini.v1/.gitignore b/vendor/gopkg.in/ini.v1/.gitignore new file mode 100644 index 000000000000..7adca9439c55 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/.gitignore @@ -0,0 +1,4 @@ +testdata/conf_out.ini +ini.sublime-project +ini.sublime-workspace +testdata/conf_reflect.ini diff --git a/vendor/gopkg.in/ini.v1/LICENSE b/vendor/gopkg.in/ini.v1/LICENSE new file mode 100644 index 000000000000..37ec93a14fdc --- /dev/null +++ b/vendor/gopkg.in/ini.v1/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/ini.v1/README.md b/vendor/gopkg.in/ini.v1/README.md new file mode 100644 index 000000000000..8ac1e384c53f --- /dev/null +++ b/vendor/gopkg.in/ini.v1/README.md @@ -0,0 +1,578 @@ +ini [![Build Status](https://drone.io/github.com/go-ini/ini/status.png)](https://drone.io/github.com/go-ini/ini/latest) [![](http://gocover.io/_badge/github.com/go-ini/ini)](http://gocover.io/github.com/go-ini/ini) +=== + +![](https://avatars0.githubusercontent.com/u/10216035?v=3&s=200) + +Package ini provides INI file read and write functionality in Go. + +[简体中文](README_ZH.md) + +## Feature + +- Load multiple data sources(`[]byte` or file) with overwrites. +- Read with recursion values. +- Read with parent-child sections. +- Read with auto-increment key names. +- Read with multiple-line values. +- Read with tons of helper methods. +- Read and convert values to Go types. +- Read and **WRITE** comments of sections and keys. +- Manipulate sections, keys and comments with ease. +- Keep sections and keys in order as you parse and save. + +## Installation + + go get gopkg.in/ini.v1 + +## Getting Started + +### Loading from data sources + +A **Data Source** is either raw data in type `[]byte` or a file name with type `string` and you can load **as many as** data sources you want. Passing other types will simply return an error. + +```go +cfg, err := ini.Load([]byte("raw data"), "filename") +``` + +Or start with an empty object: + +```go +cfg := ini.Empty() +``` + +When you cannot decide how many data sources to load at the beginning, you still able to **Append()** them later. + +```go +err := cfg.Append("other file", []byte("other raw data")) +``` + +### Working with sections + +To get a section, you would need to: + +```go +section, err := cfg.GetSection("section name") +``` + +For a shortcut for default section, just give an empty string as name: + +```go +section, err := cfg.GetSection("") +``` + +When you're pretty sure the section exists, following code could make your life easier: + +```go +section := cfg.Section("") +``` + +What happens when the section somehow does not exist? Don't panic, it automatically creates and returns a new section to you. + +To create a new section: + +```go +err := cfg.NewSection("new section") +``` + +To get a list of sections or section names: + +```go +sections := cfg.Sections() +names := cfg.SectionStrings() +``` + +### Working with keys + +To get a key under a section: + +```go +key, err := cfg.Section("").GetKey("key name") +``` + +Same rule applies to key operations: + +```go +key := cfg.Section("").Key("key name") +``` + +To check if a key exists: + +```go +yes := cfg.Section("").HasKey("key name") +``` + +To create a new key: + +```go +err := cfg.Section("").NewKey("name", "value") +``` + +To get a list of keys or key names: + +```go +keys := cfg.Section("").Keys() +names := cfg.Section("").KeyStrings() +``` + +To get a clone hash of keys and corresponding values: + +```go +hash := cfg.GetSection("").KeysHash() +``` + +### Working with values + +To get a string value: + +```go +val := cfg.Section("").Key("key name").String() +``` + +To validate key value on the fly: + +```go +val := cfg.Section("").Key("key name").Validate(func(in string) string { + if len(in) == 0 { + return "default" + } + return in +}) +``` + +If you do not want any auto-transformation (such as recursive read) for the values, you can get raw value directly (this way you get much better performance): + +```go +val := cfg.Section("").Key("key name").Value() +``` + +To check if raw value exists: + +```go +yes := cfg.Section("").HasValue("test value") +``` + +To get value with types: + +```go +// For boolean values: +// true when value is: 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On +// false when value is: 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off +v, err = cfg.Section("").Key("BOOL").Bool() +v, err = cfg.Section("").Key("FLOAT64").Float64() +v, err = cfg.Section("").Key("INT").Int() +v, err = cfg.Section("").Key("INT64").Int64() +v, err = cfg.Section("").Key("UINT").Uint() +v, err = cfg.Section("").Key("UINT64").Uint64() +v, err = cfg.Section("").Key("TIME").TimeFormat(time.RFC3339) +v, err = cfg.Section("").Key("TIME").Time() // RFC3339 + +v = cfg.Section("").Key("BOOL").MustBool() +v = cfg.Section("").Key("FLOAT64").MustFloat64() +v = cfg.Section("").Key("INT").MustInt() +v = cfg.Section("").Key("INT64").MustInt64() +v = cfg.Section("").Key("UINT").MustUint() +v = cfg.Section("").Key("UINT64").MustUint64() +v = cfg.Section("").Key("TIME").MustTimeFormat(time.RFC3339) +v = cfg.Section("").Key("TIME").MustTime() // RFC3339 + +// Methods start with Must also accept one argument for default value +// when key not found or fail to parse value to given type. +// Except method MustString, which you have to pass a default value. + +v = cfg.Section("").Key("String").MustString("default") +v = cfg.Section("").Key("BOOL").MustBool(true) +v = cfg.Section("").Key("FLOAT64").MustFloat64(1.25) +v = cfg.Section("").Key("INT").MustInt(10) +v = cfg.Section("").Key("INT64").MustInt64(99) +v = cfg.Section("").Key("UINT").MustUint(3) +v = cfg.Section("").Key("UINT64").MustUint64(6) +v = cfg.Section("").Key("TIME").MustTimeFormat(time.RFC3339, time.Now()) +v = cfg.Section("").Key("TIME").MustTime(time.Now()) // RFC3339 +``` + +What if my value is three-line long? + +```ini +[advance] +ADDRESS = """404 road, +NotFound, State, 5000 +Earth""" +``` + +Not a problem! + +```go +cfg.Section("advance").Key("ADDRESS").String() + +/* --- start --- +404 road, +NotFound, State, 5000 +Earth +------ end --- */ +``` + +That's cool, how about continuation lines? + +```ini +[advance] +two_lines = how about \ + continuation lines? +lots_of_lines = 1 \ + 2 \ + 3 \ + 4 +``` + +Piece of cake! + +```go +cfg.Section("advance").Key("two_lines").String() // how about continuation lines? +cfg.Section("advance").Key("lots_of_lines").String() // 1 2 3 4 +``` + +Note that single quotes around values will be stripped: + +```ini +foo = "some value" // foo: some value +bar = 'some value' // bar: some value +``` + +That's all? Hmm, no. + +#### Helper methods of working with values + +To get value with given candidates: + +```go +v = cfg.Section("").Key("STRING").In("default", []string{"str", "arr", "types"}) +v = cfg.Section("").Key("FLOAT64").InFloat64(1.1, []float64{1.25, 2.5, 3.75}) +v = cfg.Section("").Key("INT").InInt(5, []int{10, 20, 30}) +v = cfg.Section("").Key("INT64").InInt64(10, []int64{10, 20, 30}) +v = cfg.Section("").Key("UINT").InUint(4, []int{3, 6, 9}) +v = cfg.Section("").Key("UINT64").InUint64(8, []int64{3, 6, 9}) +v = cfg.Section("").Key("TIME").InTimeFormat(time.RFC3339, time.Now(), []time.Time{time1, time2, time3}) +v = cfg.Section("").Key("TIME").InTime(time.Now(), []time.Time{time1, time2, time3}) // RFC3339 +``` + +Default value will be presented if value of key is not in candidates you given, and default value does not need be one of candidates. + +To validate value in a given range: + +```go +vals = cfg.Section("").Key("FLOAT64").RangeFloat64(0.0, 1.1, 2.2) +vals = cfg.Section("").Key("INT").RangeInt(0, 10, 20) +vals = cfg.Section("").Key("INT64").RangeInt64(0, 10, 20) +vals = cfg.Section("").Key("UINT").RangeUint(0, 3, 9) +vals = cfg.Section("").Key("UINT64").RangeUint64(0, 3, 9) +vals = cfg.Section("").Key("TIME").RangeTimeFormat(time.RFC3339, time.Now(), minTime, maxTime) +vals = cfg.Section("").Key("TIME").RangeTime(time.Now(), minTime, maxTime) // RFC3339 +``` + +To auto-split value into slice: + +```go +vals = cfg.Section("").Key("STRINGS").Strings(",") +vals = cfg.Section("").Key("FLOAT64S").Float64s(",") +vals = cfg.Section("").Key("INTS").Ints(",") +vals = cfg.Section("").Key("INT64S").Int64s(",") +vals = cfg.Section("").Key("UINTS").Uints(",") +vals = cfg.Section("").Key("UINT64S").Uint64s(",") +vals = cfg.Section("").Key("TIMES").Times(",") +``` + +### Save your configuration + +Finally, it's time to save your configuration to somewhere. + +A typical way to save configuration is writing it to a file: + +```go +// ... +err = cfg.SaveTo("my.ini") +err = cfg.SaveToIndent("my.ini", "\t") +``` + +Another way to save is writing to a `io.Writer` interface: + +```go +// ... +cfg.WriteTo(writer) +cfg.WriteToIndent(writer, "\t") +``` + +## Advanced Usage + +### Recursive Values + +For all value of keys, there is a special syntax `%()s`, where `` is the key name in same section or default section, and `%()s` will be replaced by corresponding value(empty string if key not found). You can use this syntax at most 99 level of recursions. + +```ini +NAME = ini + +[author] +NAME = Unknwon +GITHUB = https://github.com/%(NAME)s + +[package] +FULL_NAME = github.com/go-ini/%(NAME)s +``` + +```go +cfg.Section("author").Key("GITHUB").String() // https://github.com/Unknwon +cfg.Section("package").Key("FULL_NAME").String() // github.com/go-ini/ini +``` + +### Parent-child Sections + +You can use `.` in section name to indicate parent-child relationship between two or more sections. If the key not found in the child section, library will try again on its parent section until there is no parent section. + +```ini +NAME = ini +VERSION = v1 +IMPORT_PATH = gopkg.in/%(NAME)s.%(VERSION)s + +[package] +CLONE_URL = https://%(IMPORT_PATH)s + +[package.sub] +``` + +```go +cfg.Section("package.sub").Key("CLONE_URL").String() // https://gopkg.in/ini.v1 +``` + +### Auto-increment Key Names + +If key name is `-` in data source, then it would be seen as special syntax for auto-increment key name start from 1, and every section is independent on counter. + +```ini +[features] +-: Support read/write comments of keys and sections +-: Support auto-increment of key names +-: Support load multiple files to overwrite key values +``` + +```go +cfg.Section("features").KeyStrings() // []{"#1", "#2", "#3"} +``` + +### Map To Struct + +Want more objective way to play with INI? Cool. + +```ini +Name = Unknwon +age = 21 +Male = true +Born = 1993-01-01T20:17:05Z + +[Note] +Content = Hi is a good man! +Cities = HangZhou, Boston +``` + +```go +type Note struct { + Content string + Cities []string +} + +type Person struct { + Name string + Age int `ini:"age"` + Male bool + Born time.Time + Note + Created time.Time `ini:"-"` +} + +func main() { + cfg, err := ini.Load("path/to/ini") + // ... + p := new(Person) + err = cfg.MapTo(p) + // ... + + // Things can be simpler. + err = ini.MapTo(p, "path/to/ini") + // ... + + // Just map a section? Fine. + n := new(Note) + err = cfg.Section("Note").MapTo(n) + // ... +} +``` + +Can I have default value for field? Absolutely. + +Assign it before you map to struct. It will keep the value as it is if the key is not presented or got wrong type. + +```go +// ... +p := &Person{ + Name: "Joe", +} +// ... +``` + +It's really cool, but what's the point if you can't give me my file back from struct? + +### Reflect From Struct + +Why not? + +```go +type Embeded struct { + Dates []time.Time `delim:"|"` + Places []string + None []int +} + +type Author struct { + Name string `ini:"NAME"` + Male bool + Age int + GPA float64 + NeverMind string `ini:"-"` + *Embeded +} + +func main() { + a := &Author{"Unknwon", true, 21, 2.8, "", + &Embeded{ + []time.Time{time.Now(), time.Now()}, + []string{"HangZhou", "Boston"}, + []int{}, + }} + cfg := ini.Empty() + err = ini.ReflectFrom(cfg, a) + // ... +} +``` + +So, what do I get? + +```ini +NAME = Unknwon +Male = true +Age = 21 +GPA = 2.8 + +[Embeded] +Dates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00 +Places = HangZhou,Boston +None = +``` + +#### Name Mapper + +To save your time and make your code cleaner, this library supports [`NameMapper`](https://gowalker.org/gopkg.in/ini.v1#NameMapper) between struct field and actual section and key name. + +There are 2 built-in name mappers: + +- `AllCapsUnderscore`: it converts to format `ALL_CAPS_UNDERSCORE` then match section or key. +- `TitleUnderscore`: it converts to format `title_underscore` then match section or key. + +To use them: + +```go +type Info struct { + PackageName string +} + +func main() { + err = ini.MapToWithMapper(&Info{}, ini.TitleUnderscore, []byte("package_name=ini")) + // ... + + cfg, err := ini.Load([]byte("PACKAGE_NAME=ini")) + // ... + info := new(Info) + cfg.NameMapper = ini.AllCapsUnderscore + err = cfg.MapTo(info) + // ... +} +``` + +Same rules of name mapper apply to `ini.ReflectFromWithMapper` function. + +#### Other Notes On Map/Reflect + +Any embedded struct is treated as a section by default, and there is no automatic parent-child relations in map/reflect feature: + +```go +type Child struct { + Age string +} + +type Parent struct { + Name string + Child +} + +type Config struct { + City string + Parent +} +``` + +Example configuration: + +```ini +City = Boston + +[Parent] +Name = Unknwon + +[Child] +Age = 21 +``` + +What if, yes, I'm paranoid, I want embedded struct to be in the same section. Well, all roads lead to Rome. + +```go +type Child struct { + Age string +} + +type Parent struct { + Name string + Child `ini:"Parent"` +} + +type Config struct { + City string + Parent +} +``` + +Example configuration: + +```ini +City = Boston + +[Parent] +Name = Unknwon +Age = 21 +``` + +## Getting Help + +- [API Documentation](https://gowalker.org/gopkg.in/ini.v1) +- [File An Issue](https://github.com/go-ini/ini/issues/new) + +## FAQs + +### What does `BlockMode` field do? + +By default, library lets you read and write values so we need a locker to make sure your data is safe. But in cases that you are very sure about only reading data through the library, you can set `cfg.BlockMode = false` to speed up read operations about **50-70%** faster. + +### Why another INI library? + +Many people are using my another INI library [goconfig](https://github.com/Unknwon/goconfig), so the reason for this one is I would like to make more Go style code. Also when you set `cfg.BlockMode = false`, this one is about **10-30%** faster. + +To make those changes I have to confirm API broken, so it's safer to keep it in another place and start using `gopkg.in` to version my package at this time.(PS: shorter import path) + +## License + +This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. diff --git a/vendor/gopkg.in/ini.v1/README_ZH.md b/vendor/gopkg.in/ini.v1/README_ZH.md new file mode 100644 index 000000000000..bfa15421094a --- /dev/null +++ b/vendor/gopkg.in/ini.v1/README_ZH.md @@ -0,0 +1,565 @@ +本包提供了 Go 语言中读写 INI 文件的功能。 + +## 功能特性 + +- 支持覆盖加载多个数据源(`[]byte` 或文件) +- 支持递归读取键值 +- 支持读取父子分区 +- 支持读取自增键名 +- 支持读取多行的键值 +- 支持大量辅助方法 +- 支持在读取时直接转换为 Go 语言类型 +- 支持读取和 **写入** 分区和键的注释 +- 轻松操作分区、键值和注释 +- 在保存文件时分区和键值会保持原有的顺序 + +## 下载安装 + + go get gopkg.in/ini.v1 + +## 开始使用 + +### 从数据源加载 + +一个 **数据源** 可以是 `[]byte` 类型的原始数据,或 `string` 类型的文件路径。您可以加载 **任意多个** 数据源。如果您传递其它类型的数据源,则会直接返回错误。 + +```go +cfg, err := ini.Load([]byte("raw data"), "filename") +``` + +或者从一个空白的文件开始: + +```go +cfg := ini.Empty() +``` + +当您在一开始无法决定需要加载哪些数据源时,仍可以使用 **Append()** 在需要的时候加载它们。 + +```go +err := cfg.Append("other file", []byte("other raw data")) +``` + +### 操作分区(Section) + +获取指定分区: + +```go +section, err := cfg.GetSection("section name") +``` + +如果您想要获取默认分区,则可以用空字符串代替分区名: + +```go +section, err := cfg.GetSection("") +``` + +当您非常确定某个分区是存在的,可以使用以下简便方法: + +```go +section := cfg.Section("") +``` + +如果不小心判断错了,要获取的分区其实是不存在的,那会发生什么呢?没事的,它会自动创建并返回一个对应的分区对象给您。 + +创建一个分区: + +```go +err := cfg.NewSection("new section") +``` + +获取所有分区对象或名称: + +```go +sections := cfg.Sections() +names := cfg.SectionStrings() +``` + +### 操作键(Key) + +获取某个分区下的键: + +```go +key, err := cfg.Section("").GetKey("key name") +``` + +和分区一样,您也可以直接获取键而忽略错误处理: + +```go +key := cfg.Section("").Key("key name") +``` + +判断某个键是否存在: + +```go +yes := cfg.Section("").HasKey("key name") +``` + +创建一个新的键: + +```go +err := cfg.Section("").NewKey("name", "value") +``` + +获取分区下的所有键或键名: + +```go +keys := cfg.Section("").Keys() +names := cfg.Section("").KeyStrings() +``` + +获取分区下的所有键值对的克隆: + +```go +hash := cfg.GetSection("").KeysHash() +``` + +### 操作键值(Value) + +获取一个类型为字符串(string)的值: + +```go +val := cfg.Section("").Key("key name").String() +``` + +获取值的同时通过自定义函数进行处理验证: + +```go +val := cfg.Section("").Key("key name").Validate(func(in string) string { + if len(in) == 0 { + return "default" + } + return in +}) +``` + +如果您不需要任何对值的自动转变功能(例如递归读取),可以直接获取原值(这种方式性能最佳): + +```go +val := cfg.Section("").Key("key name").Value() +``` + +判断某个原值是否存在: + +```go +yes := cfg.Section("").HasValue("test value") +``` + +获取其它类型的值: + +```go +// 布尔值的规则: +// true 当值为:1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On +// false 当值为:0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off +v, err = cfg.Section("").Key("BOOL").Bool() +v, err = cfg.Section("").Key("FLOAT64").Float64() +v, err = cfg.Section("").Key("INT").Int() +v, err = cfg.Section("").Key("INT64").Int64() +v, err = cfg.Section("").Key("UINT").Uint() +v, err = cfg.Section("").Key("UINT64").Uint64() +v, err = cfg.Section("").Key("TIME").TimeFormat(time.RFC3339) +v, err = cfg.Section("").Key("TIME").Time() // RFC3339 + +v = cfg.Section("").Key("BOOL").MustBool() +v = cfg.Section("").Key("FLOAT64").MustFloat64() +v = cfg.Section("").Key("INT").MustInt() +v = cfg.Section("").Key("INT64").MustInt64() +v = cfg.Section("").Key("UINT").MustUint() +v = cfg.Section("").Key("UINT64").MustUint64() +v = cfg.Section("").Key("TIME").MustTimeFormat(time.RFC3339) +v = cfg.Section("").Key("TIME").MustTime() // RFC3339 + +// 由 Must 开头的方法名允许接收一个相同类型的参数来作为默认值, +// 当键不存在或者转换失败时,则会直接返回该默认值。 +// 但是,MustString 方法必须传递一个默认值。 + +v = cfg.Seciont("").Key("String").MustString("default") +v = cfg.Section("").Key("BOOL").MustBool(true) +v = cfg.Section("").Key("FLOAT64").MustFloat64(1.25) +v = cfg.Section("").Key("INT").MustInt(10) +v = cfg.Section("").Key("INT64").MustInt64(99) +v = cfg.Section("").Key("UINT").MustUint(3) +v = cfg.Section("").Key("UINT64").MustUint64(6) +v = cfg.Section("").Key("TIME").MustTimeFormat(time.RFC3339, time.Now()) +v = cfg.Section("").Key("TIME").MustTime(time.Now()) // RFC3339 +``` + +如果我的值有好多行怎么办? + +```ini +[advance] +ADDRESS = """404 road, +NotFound, State, 5000 +Earth""" +``` + +嗯哼?小 case! + +```go +cfg.Section("advance").Key("ADDRESS").String() + +/* --- start --- +404 road, +NotFound, State, 5000 +Earth +------ end --- */ +``` + +赞爆了!那要是我属于一行的内容写不下想要写到第二行怎么办? + +```ini +[advance] +two_lines = how about \ + continuation lines? +lots_of_lines = 1 \ + 2 \ + 3 \ + 4 +``` + +简直是小菜一碟! + +```go +cfg.Section("advance").Key("two_lines").String() // how about continuation lines? +cfg.Section("advance").Key("lots_of_lines").String() // 1 2 3 4 +``` + +需要注意的是,值两侧的单引号会被自动剔除: + +```ini +foo = "some value" // foo: some value +bar = 'some value' // bar: some value +``` + +这就是全部了?哈哈,当然不是。 + +#### 操作键值的辅助方法 + +获取键值时设定候选值: + +```go +v = cfg.Section("").Key("STRING").In("default", []string{"str", "arr", "types"}) +v = cfg.Section("").Key("FLOAT64").InFloat64(1.1, []float64{1.25, 2.5, 3.75}) +v = cfg.Section("").Key("INT").InInt(5, []int{10, 20, 30}) +v = cfg.Section("").Key("INT64").InInt64(10, []int64{10, 20, 30}) +v = cfg.Section("").Key("UINT").InUint(4, []int{3, 6, 9}) +v = cfg.Section("").Key("UINT64").InUint64(8, []int64{3, 6, 9}) +v = cfg.Section("").Key("TIME").InTimeFormat(time.RFC3339, time.Now(), []time.Time{time1, time2, time3}) +v = cfg.Section("").Key("TIME").InTime(time.Now(), []time.Time{time1, time2, time3}) // RFC3339 +``` + +如果获取到的值不是候选值的任意一个,则会返回默认值,而默认值不需要是候选值中的一员。 + +验证获取的值是否在指定范围内: + +```go +vals = cfg.Section("").Key("FLOAT64").RangeFloat64(0.0, 1.1, 2.2) +vals = cfg.Section("").Key("INT").RangeInt(0, 10, 20) +vals = cfg.Section("").Key("INT64").RangeInt64(0, 10, 20) +vals = cfg.Section("").Key("UINT").RangeUint(0, 3, 9) +vals = cfg.Section("").Key("UINT64").RangeUint64(0, 3, 9) +vals = cfg.Section("").Key("TIME").RangeTimeFormat(time.RFC3339, time.Now(), minTime, maxTime) +vals = cfg.Section("").Key("TIME").RangeTime(time.Now(), minTime, maxTime) // RFC3339 +``` + +自动分割键值为切片(slice): + +```go +vals = cfg.Section("").Key("STRINGS").Strings(",") +vals = cfg.Section("").Key("FLOAT64S").Float64s(",") +vals = cfg.Section("").Key("INTS").Ints(",") +vals = cfg.Section("").Key("INT64S").Int64s(",") +vals = cfg.Section("").Key("UINTS").Uints(",") +vals = cfg.Section("").Key("UINT64S").Uint64s(",") +vals = cfg.Section("").Key("TIMES").Times(",") +``` + +### 保存配置 + +终于到了这个时刻,是时候保存一下配置了。 + +比较原始的做法是输出配置到某个文件: + +```go +// ... +err = cfg.SaveTo("my.ini") +err = cfg.SaveToIndent("my.ini", "\t") +``` + +另一个比较高级的做法是写入到任何实现 `io.Writer` 接口的对象中: + +```go +// ... +cfg.WriteTo(writer) +cfg.WriteToIndent(writer, "\t") +``` + +### 高级用法 + +#### 递归读取键值 + +在获取所有键值的过程中,特殊语法 `%()s` 会被应用,其中 `` 可以是相同分区或者默认分区下的键名。字符串 `%()s` 会被相应的键值所替代,如果指定的键不存在,则会用空字符串替代。您可以最多使用 99 层的递归嵌套。 + +```ini +NAME = ini + +[author] +NAME = Unknwon +GITHUB = https://github.com/%(NAME)s + +[package] +FULL_NAME = github.com/go-ini/%(NAME)s +``` + +```go +cfg.Section("author").Key("GITHUB").String() // https://github.com/Unknwon +cfg.Section("package").Key("FULL_NAME").String() // github.com/go-ini/ini +``` + +#### 读取父子分区 + +您可以在分区名称中使用 `.` 来表示两个或多个分区之间的父子关系。如果某个键在子分区中不存在,则会去它的父分区中再次寻找,直到没有父分区为止。 + +```ini +NAME = ini +VERSION = v1 +IMPORT_PATH = gopkg.in/%(NAME)s.%(VERSION)s + +[package] +CLONE_URL = https://%(IMPORT_PATH)s + +[package.sub] +``` + +```go +cfg.Section("package.sub").Key("CLONE_URL").String() // https://gopkg.in/ini.v1 +``` + +#### 读取自增键名 + +如果数据源中的键名为 `-`,则认为该键使用了自增键名的特殊语法。计数器从 1 开始,并且分区之间是相互独立的。 + +```ini +[features] +-: Support read/write comments of keys and sections +-: Support auto-increment of key names +-: Support load multiple files to overwrite key values +``` + +```go +cfg.Section("features").KeyStrings() // []{"#1", "#2", "#3"} +``` + +### 映射到结构 + +想要使用更加面向对象的方式玩转 INI 吗?好主意。 + +```ini +Name = Unknwon +age = 21 +Male = true +Born = 1993-01-01T20:17:05Z + +[Note] +Content = Hi is a good man! +Cities = HangZhou, Boston +``` + +```go +type Note struct { + Content string + Cities []string +} + +type Person struct { + Name string + Age int `ini:"age"` + Male bool + Born time.Time + Note + Created time.Time `ini:"-"` +} + +func main() { + cfg, err := ini.Load("path/to/ini") + // ... + p := new(Person) + err = cfg.MapTo(p) + // ... + + // 一切竟可以如此的简单。 + err = ini.MapTo(p, "path/to/ini") + // ... + + // 嗯哼?只需要映射一个分区吗? + n := new(Note) + err = cfg.Section("Note").MapTo(n) + // ... +} +``` + +结构的字段怎么设置默认值呢?很简单,只要在映射之前对指定字段进行赋值就可以了。如果键未找到或者类型错误,该值不会发生改变。 + +```go +// ... +p := &Person{ + Name: "Joe", +} +// ... +``` + +这样玩 INI 真的好酷啊!然而,如果不能还给我原来的配置文件,有什么卵用? + +### 从结构反射 + +可是,我有说不能吗? + +```go +type Embeded struct { + Dates []time.Time `delim:"|"` + Places []string + None []int +} + +type Author struct { + Name string `ini:"NAME"` + Male bool + Age int + GPA float64 + NeverMind string `ini:"-"` + *Embeded +} + +func main() { + a := &Author{"Unknwon", true, 21, 2.8, "", + &Embeded{ + []time.Time{time.Now(), time.Now()}, + []string{"HangZhou", "Boston"}, + []int{}, + }} + cfg := ini.Empty() + err = ini.ReflectFrom(cfg, a) + // ... +} +``` + +瞧瞧,奇迹发生了。 + +```ini +NAME = Unknwon +Male = true +Age = 21 +GPA = 2.8 + +[Embeded] +Dates = 2015-08-07T22:14:22+08:00|2015-08-07T22:14:22+08:00 +Places = HangZhou,Boston +None = +``` + +#### 名称映射器(Name Mapper) + +为了节省您的时间并简化代码,本库支持类型为 [`NameMapper`](https://gowalker.org/gopkg.in/ini.v1#NameMapper) 的名称映射器,该映射器负责结构字段名与分区名和键名之间的映射。 + +目前有 2 款内置的映射器: + +- `AllCapsUnderscore`:该映射器将字段名转换至格式 `ALL_CAPS_UNDERSCORE` 后再去匹配分区名和键名。 +- `TitleUnderscore`:该映射器将字段名转换至格式 `title_underscore` 后再去匹配分区名和键名。 + +使用方法: + +```go +type Info struct{ + PackageName string +} + +func main() { + err = ini.MapToWithMapper(&Info{}, ini.TitleUnderscore, []byte("package_name=ini")) + // ... + + cfg, err := ini.Load([]byte("PACKAGE_NAME=ini")) + // ... + info := new(Info) + cfg.NameMapper = ini.AllCapsUnderscore + err = cfg.MapTo(info) + // ... +} +``` + +使用函数 `ini.ReflectFromWithMapper` 时也可应用相同的规则。 + +#### 映射/反射的其它说明 + +任何嵌入的结构都会被默认认作一个不同的分区,并且不会自动产生所谓的父子分区关联: + +```go +type Child struct { + Age string +} + +type Parent struct { + Name string + Child +} + +type Config struct { + City string + Parent +} +``` + +示例配置文件: + +```ini +City = Boston + +[Parent] +Name = Unknwon + +[Child] +Age = 21 +``` + +很好,但是,我就是要嵌入结构也在同一个分区。好吧,你爹是李刚! + +```go +type Child struct { + Age string +} + +type Parent struct { + Name string + Child `ini:"Parent"` +} + +type Config struct { + City string + Parent +} +``` + +示例配置文件: + +```ini +City = Boston + +[Parent] +Name = Unknwon +Age = 21 +``` + +## 获取帮助 + +- [API 文档](https://gowalker.org/gopkg.in/ini.v1) +- [创建工单](https://github.com/go-ini/ini/issues/new) + +## 常见问题 + +### 字段 `BlockMode` 是什么? + +默认情况下,本库会在您进行读写操作时采用锁机制来确保数据时间。但在某些情况下,您非常确定只进行读操作。此时,您可以通过设置 `cfg.BlockMode = false` 来将读操作提升大约 **50-70%** 的性能。 + +### 为什么要写另一个 INI 解析库? + +许多人都在使用我的 [goconfig](https://github.com/Unknwon/goconfig) 来完成对 INI 文件的操作,但我希望使用更加 Go 风格的代码。并且当您设置 `cfg.BlockMode = false` 时,会有大约 **10-30%** 的性能提升。 + +为了做出这些改变,我必须对 API 进行破坏,所以新开一个仓库是最安全的做法。除此之外,本库直接使用 `gopkg.in` 来进行版本化发布。(其实真相是导入路径更短了) diff --git a/vendor/gopkg.in/ini.v1/ini.go b/vendor/gopkg.in/ini.v1/ini.go new file mode 100644 index 000000000000..5a13dc48959f --- /dev/null +++ b/vendor/gopkg.in/ini.v1/ini.go @@ -0,0 +1,1027 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +// Package ini provides INI file read and write functionality in Go. +package ini + +import ( + "bytes" + "errors" + "fmt" + "io" + "os" + "regexp" + "runtime" + "strconv" + "strings" + "sync" + "time" +) + +const ( + DEFAULT_SECTION = "DEFAULT" + // Maximum allowed depth when recursively substituing variable names. + _DEPTH_VALUES = 99 + + _VERSION = "1.8.5" +) + +func Version() string { + return _VERSION +} + +var ( + LineBreak = "\n" + + // Variable regexp pattern: %(variable)s + varPattern = regexp.MustCompile(`%\(([^\)]+)\)s`) + + // Write spaces around "=" to look better. + PrettyFormat = true +) + +func init() { + if runtime.GOOS == "windows" { + LineBreak = "\r\n" + } +} + +func inSlice(str string, s []string) bool { + for _, v := range s { + if str == v { + return true + } + } + return false +} + +// dataSource is a interface that returns file content. +type dataSource interface { + ReadCloser() (io.ReadCloser, error) +} + +type sourceFile struct { + name string +} + +func (s sourceFile) ReadCloser() (_ io.ReadCloser, err error) { + return os.Open(s.name) +} + +type bytesReadCloser struct { + reader io.Reader +} + +func (rc *bytesReadCloser) Read(p []byte) (n int, err error) { + return rc.reader.Read(p) +} + +func (rc *bytesReadCloser) Close() error { + return nil +} + +type sourceData struct { + data []byte +} + +func (s *sourceData) ReadCloser() (io.ReadCloser, error) { + return &bytesReadCloser{bytes.NewReader(s.data)}, nil +} + +// ____ __. +// | |/ _|____ ___.__. +// | <_/ __ < | | +// | | \ ___/\___ | +// |____|__ \___ > ____| +// \/ \/\/ + +// Key represents a key under a section. +type Key struct { + s *Section + Comment string + name string + value string + isAutoIncr bool +} + +// Name returns name of key. +func (k *Key) Name() string { + return k.name +} + +// Value returns raw value of key for performance purpose. +func (k *Key) Value() string { + return k.value +} + +// String returns string representation of value. +func (k *Key) String() string { + val := k.value + if strings.Index(val, "%") == -1 { + return val + } + + for i := 0; i < _DEPTH_VALUES; i++ { + vr := varPattern.FindString(val) + if len(vr) == 0 { + break + } + + // Take off leading '%(' and trailing ')s'. + noption := strings.TrimLeft(vr, "%(") + noption = strings.TrimRight(noption, ")s") + + // Search in the same section. + nk, err := k.s.GetKey(noption) + if err != nil { + // Search again in default section. + nk, _ = k.s.f.Section("").GetKey(noption) + } + + // Substitute by new value and take off leading '%(' and trailing ')s'. + val = strings.Replace(val, vr, nk.value, -1) + } + return val +} + +// Validate accepts a validate function which can +// return modifed result as key value. +func (k *Key) Validate(fn func(string) string) string { + return fn(k.String()) +} + +// parseBool returns the boolean value represented by the string. +// +// It accepts 1, t, T, TRUE, true, True, YES, yes, Yes, y, ON, on, On, +// 0, f, F, FALSE, false, False, NO, no, No, n, OFF, off, Off. +// Any other value returns an error. +func parseBool(str string) (value bool, err error) { + switch str { + case "1", "t", "T", "true", "TRUE", "True", "YES", "yes", "Yes", "y", "ON", "on", "On": + return true, nil + case "0", "f", "F", "false", "FALSE", "False", "NO", "no", "No", "n", "OFF", "off", "Off": + return false, nil + } + return false, fmt.Errorf("parsing \"%s\": invalid syntax", str) +} + +// Bool returns bool type value. +func (k *Key) Bool() (bool, error) { + return parseBool(k.String()) +} + +// Float64 returns float64 type value. +func (k *Key) Float64() (float64, error) { + return strconv.ParseFloat(k.String(), 64) +} + +// Int returns int type value. +func (k *Key) Int() (int, error) { + return strconv.Atoi(k.String()) +} + +// Int64 returns int64 type value. +func (k *Key) Int64() (int64, error) { + return strconv.ParseInt(k.String(), 10, 64) +} + +// Uint returns uint type valued. +func (k *Key) Uint() (uint, error) { + u, e := strconv.ParseUint(k.String(), 10, 64) + return uint(u), e +} + +// Uint64 returns uint64 type value. +func (k *Key) Uint64() (uint64, error) { + return strconv.ParseUint(k.String(), 10, 64) +} + +// Duration returns time.Duration type value. +func (k *Key) Duration() (time.Duration, error) { + return time.ParseDuration(k.String()) +} + +// TimeFormat parses with given format and returns time.Time type value. +func (k *Key) TimeFormat(format string) (time.Time, error) { + return time.Parse(format, k.String()) +} + +// Time parses with RFC3339 format and returns time.Time type value. +func (k *Key) Time() (time.Time, error) { + return k.TimeFormat(time.RFC3339) +} + +// MustString returns default value if key value is empty. +func (k *Key) MustString(defaultVal string) string { + val := k.String() + if len(val) == 0 { + return defaultVal + } + return val +} + +// MustBool always returns value without error, +// it returns false if error occurs. +func (k *Key) MustBool(defaultVal ...bool) bool { + val, err := k.Bool() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustFloat64 always returns value without error, +// it returns 0.0 if error occurs. +func (k *Key) MustFloat64(defaultVal ...float64) float64 { + val, err := k.Float64() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustInt always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustInt(defaultVal ...int) int { + val, err := k.Int() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustInt64 always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustInt64(defaultVal ...int64) int64 { + val, err := k.Int64() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustUint always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustUint(defaultVal ...uint) uint { + val, err := k.Uint() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustUint64 always returns value without error, +// it returns 0 if error occurs. +func (k *Key) MustUint64(defaultVal ...uint64) uint64 { + val, err := k.Uint64() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustDuration always returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustDuration(defaultVal ...time.Duration) time.Duration { + val, err := k.Duration() + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustTimeFormat always parses with given format and returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustTimeFormat(format string, defaultVal ...time.Time) time.Time { + val, err := k.TimeFormat(format) + if len(defaultVal) > 0 && err != nil { + return defaultVal[0] + } + return val +} + +// MustTime always parses with RFC3339 format and returns value without error, +// it returns zero value if error occurs. +func (k *Key) MustTime(defaultVal ...time.Time) time.Time { + return k.MustTimeFormat(time.RFC3339, defaultVal...) +} + +// In always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) In(defaultVal string, candidates []string) string { + val := k.String() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InFloat64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InFloat64(defaultVal float64, candidates []float64) float64 { + val := k.MustFloat64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InInt always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InInt(defaultVal int, candidates []int) int { + val := k.MustInt() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InInt64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InInt64(defaultVal int64, candidates []int64) int64 { + val := k.MustInt64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InUint always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InUint(defaultVal uint, candidates []uint) uint { + val := k.MustUint() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InUint64 always returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InUint64(defaultVal uint64, candidates []uint64) uint64 { + val := k.MustUint64() + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InTimeFormat always parses with given format and returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InTimeFormat(format string, defaultVal time.Time, candidates []time.Time) time.Time { + val := k.MustTimeFormat(format) + for _, cand := range candidates { + if val == cand { + return val + } + } + return defaultVal +} + +// InTime always parses with RFC3339 format and returns value without error, +// it returns default value if error occurs or doesn't fit into candidates. +func (k *Key) InTime(defaultVal time.Time, candidates []time.Time) time.Time { + return k.InTimeFormat(time.RFC3339, defaultVal, candidates) +} + +// RangeFloat64 checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeFloat64(defaultVal, min, max float64) float64 { + val := k.MustFloat64() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeInt checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeInt(defaultVal, min, max int) int { + val := k.MustInt() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeInt64 checks if value is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeInt64(defaultVal, min, max int64) int64 { + val := k.MustInt64() + if val < min || val > max { + return defaultVal + } + return val +} + +// RangeTimeFormat checks if value with given format is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeTimeFormat(format string, defaultVal, min, max time.Time) time.Time { + val := k.MustTimeFormat(format) + if val.Unix() < min.Unix() || val.Unix() > max.Unix() { + return defaultVal + } + return val +} + +// RangeTime checks if value with RFC3339 format is in given range inclusively, +// and returns default value if it's not. +func (k *Key) RangeTime(defaultVal, min, max time.Time) time.Time { + return k.RangeTimeFormat(time.RFC3339, defaultVal, min, max) +} + +// Strings returns list of string devide by given delimiter. +func (k *Key) Strings(delim string) []string { + str := k.String() + if len(str) == 0 { + return []string{} + } + + vals := strings.Split(str, delim) + for i := range vals { + vals[i] = strings.TrimSpace(vals[i]) + } + return vals +} + +// Float64s returns list of float64 devide by given delimiter. +func (k *Key) Float64s(delim string) []float64 { + strs := k.Strings(delim) + vals := make([]float64, len(strs)) + for i := range strs { + vals[i], _ = strconv.ParseFloat(strs[i], 64) + } + return vals +} + +// Ints returns list of int devide by given delimiter. +func (k *Key) Ints(delim string) []int { + strs := k.Strings(delim) + vals := make([]int, len(strs)) + for i := range strs { + vals[i], _ = strconv.Atoi(strs[i]) + } + return vals +} + +// Int64s returns list of int64 devide by given delimiter. +func (k *Key) Int64s(delim string) []int64 { + strs := k.Strings(delim) + vals := make([]int64, len(strs)) + for i := range strs { + vals[i], _ = strconv.ParseInt(strs[i], 10, 64) + } + return vals +} + +// Uints returns list of uint devide by given delimiter. +func (k *Key) Uints(delim string) []uint { + strs := k.Strings(delim) + vals := make([]uint, len(strs)) + for i := range strs { + u, _ := strconv.ParseUint(strs[i], 10, 64) + vals[i] = uint(u) + } + return vals +} + +// Uint64s returns list of uint64 devide by given delimiter. +func (k *Key) Uint64s(delim string) []uint64 { + strs := k.Strings(delim) + vals := make([]uint64, len(strs)) + for i := range strs { + vals[i], _ = strconv.ParseUint(strs[i], 10, 64) + } + return vals +} + +// TimesFormat parses with given format and returns list of time.Time devide by given delimiter. +func (k *Key) TimesFormat(format, delim string) []time.Time { + strs := k.Strings(delim) + vals := make([]time.Time, len(strs)) + for i := range strs { + vals[i], _ = time.Parse(format, strs[i]) + } + return vals +} + +// Times parses with RFC3339 format and returns list of time.Time devide by given delimiter. +func (k *Key) Times(delim string) []time.Time { + return k.TimesFormat(time.RFC3339, delim) +} + +// SetValue changes key value. +func (k *Key) SetValue(v string) { + if k.s.f.BlockMode { + k.s.f.lock.Lock() + defer k.s.f.lock.Unlock() + } + + k.value = v + k.s.keysHash[k.name] = v +} + +// _________ __ .__ +// / _____/ ____ _____/ |_|__| ____ ____ +// \_____ \_/ __ \_/ ___\ __\ |/ _ \ / \ +// / \ ___/\ \___| | | ( <_> ) | \ +// /_______ /\___ >\___ >__| |__|\____/|___| / +// \/ \/ \/ \/ + +// Section represents a config section. +type Section struct { + f *File + Comment string + name string + keys map[string]*Key + keyList []string + keysHash map[string]string +} + +func newSection(f *File, name string) *Section { + return &Section{f, "", name, make(map[string]*Key), make([]string, 0, 10), make(map[string]string)} +} + +// Name returns name of Section. +func (s *Section) Name() string { + return s.name +} + +// NewKey creates a new key to given section. +func (s *Section) NewKey(name, val string) (*Key, error) { + if len(name) == 0 { + return nil, errors.New("error creating new key: empty key name") + } + + if s.f.BlockMode { + s.f.lock.Lock() + defer s.f.lock.Unlock() + } + + if inSlice(name, s.keyList) { + s.keys[name].value = val + return s.keys[name], nil + } + + s.keyList = append(s.keyList, name) + s.keys[name] = &Key{s, "", name, val, false} + s.keysHash[name] = val + return s.keys[name], nil +} + +// GetKey returns key in section by given name. +func (s *Section) GetKey(name string) (*Key, error) { + // FIXME: change to section level lock? + if s.f.BlockMode { + s.f.lock.RLock() + } + key := s.keys[name] + if s.f.BlockMode { + s.f.lock.RUnlock() + } + + if key == nil { + // Check if it is a child-section. + sname := s.name + for { + if i := strings.LastIndex(sname, "."); i > -1 { + sname = sname[:i] + sec, err := s.f.GetSection(sname) + if err != nil { + continue + } + return sec.GetKey(name) + } else { + break + } + } + return nil, fmt.Errorf("error when getting key of section '%s': key '%s' not exists", s.name, name) + } + return key, nil +} + +// HasKey returns true if section contains a key with given name. +func (s *Section) HasKey(name string) bool { + key, _ := s.GetKey(name) + return key != nil +} + +// Haskey is a backwards-compatible name for HasKey. +func (s *Section) Haskey(name string) bool { + return s.HasKey(name) +} + +// HasValue returns true if section contains given raw value. +func (s *Section) HasValue(value string) bool { + if s.f.BlockMode { + s.f.lock.RLock() + defer s.f.lock.RUnlock() + } + + for _, k := range s.keys { + if value == k.value { + return true + } + } + return false +} + +// Key assumes named Key exists in section and returns a zero-value when not. +func (s *Section) Key(name string) *Key { + key, err := s.GetKey(name) + if err != nil { + // It's OK here because the only possible error is empty key name, + // but if it's empty, this piece of code won't be executed. + key, _ = s.NewKey(name, "") + return key + } + return key +} + +// Keys returns list of keys of section. +func (s *Section) Keys() []*Key { + keys := make([]*Key, len(s.keyList)) + for i := range s.keyList { + keys[i] = s.Key(s.keyList[i]) + } + return keys +} + +// KeyStrings returns list of key names of section. +func (s *Section) KeyStrings() []string { + list := make([]string, len(s.keyList)) + copy(list, s.keyList) + return list +} + +// KeysHash returns keys hash consisting of names and values. +func (s *Section) KeysHash() map[string]string { + if s.f.BlockMode { + s.f.lock.RLock() + defer s.f.lock.RUnlock() + } + + hash := map[string]string{} + for key, value := range s.keysHash { + hash[key] = value + } + return hash +} + +// DeleteKey deletes a key from section. +func (s *Section) DeleteKey(name string) { + if s.f.BlockMode { + s.f.lock.Lock() + defer s.f.lock.Unlock() + } + + for i, k := range s.keyList { + if k == name { + s.keyList = append(s.keyList[:i], s.keyList[i+1:]...) + delete(s.keys, name) + return + } + } +} + +// ___________.__.__ +// \_ _____/|__| | ____ +// | __) | | | _/ __ \ +// | \ | | |_\ ___/ +// \___ / |__|____/\___ > +// \/ \/ + +// File represents a combination of a or more INI file(s) in memory. +type File struct { + // Should make things safe, but sometimes doesn't matter. + BlockMode bool + // Make sure data is safe in multiple goroutines. + lock sync.RWMutex + + // Allow combination of multiple data sources. + dataSources []dataSource + // Actual data is stored here. + sections map[string]*Section + + // To keep data in order. + sectionList []string + + NameMapper +} + +// newFile initializes File object with given data sources. +func newFile(dataSources []dataSource) *File { + return &File{ + BlockMode: true, + dataSources: dataSources, + sections: make(map[string]*Section), + sectionList: make([]string, 0, 10), + } +} + +func parseDataSource(source interface{}) (dataSource, error) { + switch s := source.(type) { + case string: + return sourceFile{s}, nil + case []byte: + return &sourceData{s}, nil + default: + return nil, fmt.Errorf("error parsing data source: unknown type '%s'", s) + } +} + +// Load loads and parses from INI data sources. +// Arguments can be mixed of file name with string type, or raw data in []byte. +func Load(source interface{}, others ...interface{}) (_ *File, err error) { + sources := make([]dataSource, len(others)+1) + sources[0], err = parseDataSource(source) + if err != nil { + return nil, err + } + for i := range others { + sources[i+1], err = parseDataSource(others[i]) + if err != nil { + return nil, err + } + } + f := newFile(sources) + if err = f.Reload(); err != nil { + return nil, err + } + return f, nil +} + +// Empty returns an empty file object. +func Empty() *File { + // Ignore error here, we sure our data is good. + f, _ := Load([]byte("")) + return f +} + +// NewSection creates a new section. +func (f *File) NewSection(name string) (*Section, error) { + if len(name) == 0 { + return nil, errors.New("error creating new section: empty section name") + } + + if f.BlockMode { + f.lock.Lock() + defer f.lock.Unlock() + } + + if inSlice(name, f.sectionList) { + return f.sections[name], nil + } + + f.sectionList = append(f.sectionList, name) + f.sections[name] = newSection(f, name) + return f.sections[name], nil +} + +// NewSections creates a list of sections. +func (f *File) NewSections(names ...string) (err error) { + for _, name := range names { + if _, err = f.NewSection(name); err != nil { + return err + } + } + return nil +} + +// GetSection returns section by given name. +func (f *File) GetSection(name string) (*Section, error) { + if len(name) == 0 { + name = DEFAULT_SECTION + } + + if f.BlockMode { + f.lock.RLock() + defer f.lock.RUnlock() + } + + sec := f.sections[name] + if sec == nil { + return nil, fmt.Errorf("error when getting section: section '%s' not exists", name) + } + return sec, nil +} + +// Section assumes named section exists and returns a zero-value when not. +func (f *File) Section(name string) *Section { + sec, err := f.GetSection(name) + if err != nil { + // Note: It's OK here because the only possible error is empty section name, + // but if it's empty, this piece of code won't be executed. + sec, _ = f.NewSection(name) + return sec + } + return sec +} + +// Section returns list of Section. +func (f *File) Sections() []*Section { + sections := make([]*Section, len(f.sectionList)) + for i := range f.sectionList { + sections[i] = f.Section(f.sectionList[i]) + } + return sections +} + +// SectionStrings returns list of section names. +func (f *File) SectionStrings() []string { + list := make([]string, len(f.sectionList)) + copy(list, f.sectionList) + return list +} + +// DeleteSection deletes a section. +func (f *File) DeleteSection(name string) { + if f.BlockMode { + f.lock.Lock() + defer f.lock.Unlock() + } + + if len(name) == 0 { + name = DEFAULT_SECTION + } + + for i, s := range f.sectionList { + if s == name { + f.sectionList = append(f.sectionList[:i], f.sectionList[i+1:]...) + delete(f.sections, name) + return + } + } +} + +func (f *File) reload(s dataSource) error { + r, err := s.ReadCloser() + if err != nil { + return err + } + defer r.Close() + + return f.parse(r) +} + +// Reload reloads and parses all data sources. +func (f *File) Reload() (err error) { + for _, s := range f.dataSources { + if err = f.reload(s); err != nil { + return err + } + } + return nil +} + +// Append appends one or more data sources and reloads automatically. +func (f *File) Append(source interface{}, others ...interface{}) error { + ds, err := parseDataSource(source) + if err != nil { + return err + } + f.dataSources = append(f.dataSources, ds) + for _, s := range others { + ds, err = parseDataSource(s) + if err != nil { + return err + } + f.dataSources = append(f.dataSources, ds) + } + return f.Reload() +} + +// WriteToIndent writes file content into io.Writer with given value indention. +func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error) { + equalSign := "=" + if PrettyFormat { + equalSign = " = " + } + + // Use buffer to make sure target is safe until finish encoding. + buf := bytes.NewBuffer(nil) + for i, sname := range f.sectionList { + sec := f.Section(sname) + if len(sec.Comment) > 0 { + if sec.Comment[0] != '#' && sec.Comment[0] != ';' { + sec.Comment = "; " + sec.Comment + } + if _, err = buf.WriteString(sec.Comment + LineBreak); err != nil { + return 0, err + } + } + + if i > 0 { + if _, err = buf.WriteString("[" + sname + "]" + LineBreak); err != nil { + return 0, err + } + } else { + // Write nothing if default section is empty. + if len(sec.keyList) == 0 { + continue + } + } + + for _, kname := range sec.keyList { + key := sec.Key(kname) + if len(key.Comment) > 0 { + if len(indent) > 0 && sname != DEFAULT_SECTION { + buf.WriteString(indent) + } + if key.Comment[0] != '#' && key.Comment[0] != ';' { + key.Comment = "; " + key.Comment + } + if _, err = buf.WriteString(key.Comment + LineBreak); err != nil { + return 0, err + } + } + + if len(indent) > 0 && sname != DEFAULT_SECTION { + buf.WriteString(indent) + } + + switch { + case key.isAutoIncr: + kname = "-" + case strings.ContainsAny(kname, "\"=:"): + kname = "`" + kname + "`" + case strings.Contains(kname, "`"): + kname = `"""` + kname + `"""` + } + + val := key.value + // In case key value contains "\n", "`", "\"", "#" or ";". + if strings.ContainsAny(val, "\n`") { + val = `"""` + val + `"""` + } else if strings.ContainsAny(val, "#;") { + val = "`" + val + "`" + } + if _, err = buf.WriteString(kname + equalSign + val + LineBreak); err != nil { + return 0, err + } + } + + // Put a line between sections. + if _, err = buf.WriteString(LineBreak); err != nil { + return 0, err + } + } + + return buf.WriteTo(w) +} + +// WriteTo writes file content into io.Writer. +func (f *File) WriteTo(w io.Writer) (int64, error) { + return f.WriteToIndent(w, "") +} + +// SaveToIndent writes content to file system with given value indention. +func (f *File) SaveToIndent(filename, indent string) error { + // Note: Because we are truncating with os.Create, + // so it's safer to save to a temporary file location and rename afte done. + tmpPath := filename + "." + strconv.Itoa(time.Now().Nanosecond()) + ".tmp" + defer os.Remove(tmpPath) + + fw, err := os.Create(tmpPath) + if err != nil { + return err + } + + if _, err = f.WriteToIndent(fw, indent); err != nil { + fw.Close() + return err + } + fw.Close() + + // Remove old file and rename the new one. + os.Remove(filename) + return os.Rename(tmpPath, filename) +} + +// SaveTo writes content to file system. +func (f *File) SaveTo(filename string) error { + return f.SaveToIndent(filename, "") +} diff --git a/vendor/gopkg.in/ini.v1/parser.go b/vendor/gopkg.in/ini.v1/parser.go new file mode 100644 index 000000000000..1c1bf91f0e7d --- /dev/null +++ b/vendor/gopkg.in/ini.v1/parser.go @@ -0,0 +1,312 @@ +// Copyright 2015 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bufio" + "bytes" + "fmt" + "io" + "strconv" + "strings" + "unicode" +) + +type tokenType int + +const ( + _TOKEN_INVALID tokenType = iota + _TOKEN_COMMENT + _TOKEN_SECTION + _TOKEN_KEY +) + +type parser struct { + buf *bufio.Reader + isEOF bool + count int + comment *bytes.Buffer +} + +func newParser(r io.Reader) *parser { + return &parser{ + buf: bufio.NewReader(r), + count: 1, + comment: &bytes.Buffer{}, + } +} + +// BOM handles header of BOM-UTF8 format. +// http://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding +func (p *parser) BOM() error { + mask, err := p.buf.Peek(3) + if err != nil && err != io.EOF { + return err + } else if len(mask) < 3 { + return nil + } else if mask[0] == 239 && mask[1] == 187 && mask[2] == 191 { + p.buf.Read(mask) + } + return nil +} + +func (p *parser) readUntil(delim byte) ([]byte, error) { + data, err := p.buf.ReadBytes(delim) + if err != nil { + if err == io.EOF { + p.isEOF = true + } else { + return nil, err + } + } + return data, nil +} + +func cleanComment(in []byte) ([]byte, bool) { + i := bytes.IndexAny(in, "#;") + if i == -1 { + return nil, false + } + return in[i:], true +} + +func readKeyName(in []byte) (string, int, error) { + line := string(in) + + // Check if key name surrounded by quotes. + var keyQuote string + if line[0] == '"' { + if len(line) > 6 && string(line[0:3]) == `"""` { + keyQuote = `"""` + } else { + keyQuote = `"` + } + } else if line[0] == '`' { + keyQuote = "`" + } + + // Get out key name + endIdx := -1 + if len(keyQuote) > 0 { + startIdx := len(keyQuote) + // FIXME: fail case -> """"""name"""=value + pos := strings.Index(line[startIdx:], keyQuote) + if pos == -1 { + return "", -1, fmt.Errorf("missing closing key quote: %s", line) + } + pos += startIdx + + // Find key-value delimiter + i := strings.IndexAny(line[pos+startIdx:], "=:") + if i < 0 { + return "", -1, fmt.Errorf("key-value delimiter not found: %s", line) + } + endIdx = pos + i + return strings.TrimSpace(line[startIdx:pos]), endIdx + startIdx + 1, nil + } + + endIdx = strings.IndexAny(line, "=:") + if endIdx < 0 { + return "", -1, fmt.Errorf("key-value delimiter not found: %s", line) + } + return strings.TrimSpace(line[0:endIdx]), endIdx + 1, nil +} + +func (p *parser) readMultilines(line, val, valQuote string) (string, error) { + for { + data, err := p.readUntil('\n') + if err != nil { + return "", err + } + next := string(data) + + pos := strings.LastIndex(next, valQuote) + if pos > -1 { + val += next[:pos] + + comment, has := cleanComment([]byte(next[pos:])) + if has { + p.comment.Write(bytes.TrimSpace(comment)) + } + break + } + val += next + if p.isEOF { + return "", fmt.Errorf("missing closing key quote from '%s' to '%s'", line, next) + } + } + return val, nil +} + +func (p *parser) readContinuationLines(val string) (string, error) { + for { + data, err := p.readUntil('\n') + if err != nil { + return "", err + } + next := strings.TrimSpace(string(data)) + + if len(next) == 0 { + break + } + val += next + if val[len(val)-1] != '\\' { + break + } + val = val[:len(val)-1] + } + return val, nil +} + +// hasSurroundedQuote check if and only if the first and last characters +// are quotes \" or \'. +// It returns false if any other parts also contain same kind of quotes. +func hasSurroundedQuote(in string, quote byte) bool { + return len(in) > 2 && in[0] == quote && in[len(in)-1] == quote && + strings.IndexByte(in[1:], quote) == len(in)-2 +} + +func (p *parser) readValue(in []byte) (string, error) { + line := strings.TrimLeftFunc(string(in), unicode.IsSpace) + if len(line) == 0 { + return "", nil + } + + var valQuote string + if len(line) > 3 && string(line[0:3]) == `"""` { + valQuote = `"""` + } else if line[0] == '`' { + valQuote = "`" + } + + if len(valQuote) > 0 { + startIdx := len(valQuote) + pos := strings.LastIndex(line[startIdx:], valQuote) + // Check for multi-line value + if pos == -1 { + return p.readMultilines(line, line[startIdx:], valQuote) + } + + return line[startIdx : pos+startIdx], nil + } + + // Won't be able to reach here if value only contains whitespace. + line = strings.TrimSpace(line) + + // Check continuation lines + if line[len(line)-1] == '\\' { + return p.readContinuationLines(line[:len(line)-1]) + } + + i := strings.IndexAny(line, "#;") + if i > -1 { + p.comment.WriteString(line[i:]) + line = strings.TrimSpace(line[:i]) + } + + // Trim single quotes + if hasSurroundedQuote(line, '\'') || + hasSurroundedQuote(line, '"') { + line = line[1 : len(line)-1] + } + return line, nil +} + +// parse parses data through an io.Reader. +func (f *File) parse(reader io.Reader) (err error) { + p := newParser(reader) + if err = p.BOM(); err != nil { + return fmt.Errorf("BOM: %v", err) + } + + // Ignore error because default section name is never empty string. + section, _ := f.NewSection(DEFAULT_SECTION) + + var line []byte + for !p.isEOF { + line, err = p.readUntil('\n') + if err != nil { + return err + } + + line = bytes.TrimLeftFunc(line, unicode.IsSpace) + if len(line) == 0 { + continue + } + + // Comments + if line[0] == '#' || line[0] == ';' { + // Note: we do not care ending line break, + // it is needed for adding second line, + // so just clean it once at the end when set to value. + p.comment.Write(line) + continue + } + + // Section + if line[0] == '[' { + // Read to the next ']' (TODO: support quoted strings) + closeIdx := bytes.IndexByte(line, ']') + if closeIdx == -1 { + return fmt.Errorf("unclosed section: %s", line) + } + + section, err = f.NewSection(string(line[1:closeIdx])) + if err != nil { + return err + } + + comment, has := cleanComment(line[closeIdx+1:]) + if has { + p.comment.Write(comment) + } + + section.Comment = strings.TrimSpace(p.comment.String()) + + // Reset aotu-counter and comments + p.comment.Reset() + p.count = 1 + continue + } + + kname, offset, err := readKeyName(line) + if err != nil { + return err + } + + // Auto increment. + isAutoIncr := false + if kname == "-" { + isAutoIncr = true + kname = "#" + strconv.Itoa(p.count) + p.count++ + } + + key, err := section.NewKey(kname, "") + if err != nil { + return err + } + key.isAutoIncr = isAutoIncr + + value, err := p.readValue(line[offset:]) + if err != nil { + return err + } + key.SetValue(value) + key.Comment = strings.TrimSpace(p.comment.String()) + p.comment.Reset() + } + return nil +} diff --git a/vendor/gopkg.in/ini.v1/struct.go b/vendor/gopkg.in/ini.v1/struct.go new file mode 100644 index 000000000000..3fb92c39622a --- /dev/null +++ b/vendor/gopkg.in/ini.v1/struct.go @@ -0,0 +1,351 @@ +// Copyright 2014 Unknwon +// +// Licensed under the Apache License, Version 2.0 (the "License"): you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +package ini + +import ( + "bytes" + "errors" + "fmt" + "reflect" + "time" + "unicode" +) + +// NameMapper represents a ini tag name mapper. +type NameMapper func(string) string + +// Built-in name getters. +var ( + // AllCapsUnderscore converts to format ALL_CAPS_UNDERSCORE. + AllCapsUnderscore NameMapper = func(raw string) string { + newstr := make([]rune, 0, len(raw)) + for i, chr := range raw { + if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { + if i > 0 { + newstr = append(newstr, '_') + } + } + newstr = append(newstr, unicode.ToUpper(chr)) + } + return string(newstr) + } + // TitleUnderscore converts to format title_underscore. + TitleUnderscore NameMapper = func(raw string) string { + newstr := make([]rune, 0, len(raw)) + for i, chr := range raw { + if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { + if i > 0 { + newstr = append(newstr, '_') + } + chr -= ('A' - 'a') + } + newstr = append(newstr, chr) + } + return string(newstr) + } +) + +func (s *Section) parseFieldName(raw, actual string) string { + if len(actual) > 0 { + return actual + } + if s.f.NameMapper != nil { + return s.f.NameMapper(raw) + } + return raw +} + +func parseDelim(actual string) string { + if len(actual) > 0 { + return actual + } + return "," +} + +var reflectTime = reflect.TypeOf(time.Now()).Kind() + +// setWithProperType sets proper value to field based on its type, +// but it does not return error for failing parsing, +// because we want to use default value that is already assigned to strcut. +func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string) error { + switch t.Kind() { + case reflect.String: + if len(key.String()) == 0 { + return nil + } + field.SetString(key.String()) + case reflect.Bool: + boolVal, err := key.Bool() + if err != nil { + return nil + } + field.SetBool(boolVal) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + durationVal, err := key.Duration() + // Skip zero value + if err == nil && int(durationVal) > 0 { + field.Set(reflect.ValueOf(durationVal)) + return nil + } + + intVal, err := key.Int64() + if err != nil || intVal == 0 { + return nil + } + field.SetInt(intVal) + // byte is an alias for uint8, so supporting uint8 breaks support for byte + case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: + durationVal, err := key.Duration() + if err == nil { + field.Set(reflect.ValueOf(durationVal)) + return nil + } + + uintVal, err := key.Uint64() + if err != nil { + return nil + } + field.SetUint(uintVal) + + case reflect.Float64: + floatVal, err := key.Float64() + if err != nil { + return nil + } + field.SetFloat(floatVal) + case reflectTime: + timeVal, err := key.Time() + if err != nil { + return nil + } + field.Set(reflect.ValueOf(timeVal)) + case reflect.Slice: + vals := key.Strings(delim) + numVals := len(vals) + if numVals == 0 { + return nil + } + + sliceOf := field.Type().Elem().Kind() + + var times []time.Time + if sliceOf == reflectTime { + times = key.Times(delim) + } + + slice := reflect.MakeSlice(field.Type(), numVals, numVals) + for i := 0; i < numVals; i++ { + switch sliceOf { + case reflectTime: + slice.Index(i).Set(reflect.ValueOf(times[i])) + default: + slice.Index(i).Set(reflect.ValueOf(vals[i])) + } + } + field.Set(slice) + default: + return fmt.Errorf("unsupported type '%s'", t) + } + return nil +} + +func (s *Section) mapTo(val reflect.Value) error { + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + typ := val.Type() + + for i := 0; i < typ.NumField(); i++ { + field := val.Field(i) + tpField := typ.Field(i) + + tag := tpField.Tag.Get("ini") + if tag == "-" { + continue + } + + fieldName := s.parseFieldName(tpField.Name, tag) + if len(fieldName) == 0 || !field.CanSet() { + continue + } + + isAnonymous := tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous + isStruct := tpField.Type.Kind() == reflect.Struct + if isAnonymous { + field.Set(reflect.New(tpField.Type.Elem())) + } + + if isAnonymous || isStruct { + if sec, err := s.f.GetSection(fieldName); err == nil { + if err = sec.mapTo(field); err != nil { + return fmt.Errorf("error mapping field(%s): %v", fieldName, err) + } + continue + } + } + + if key, err := s.GetKey(fieldName); err == nil { + if err = setWithProperType(tpField.Type, key, field, parseDelim(tpField.Tag.Get("delim"))); err != nil { + return fmt.Errorf("error mapping field(%s): %v", fieldName, err) + } + } + } + return nil +} + +// MapTo maps section to given struct. +func (s *Section) MapTo(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot map to non-pointer struct") + } + + return s.mapTo(val) +} + +// MapTo maps file to given struct. +func (f *File) MapTo(v interface{}) error { + return f.Section("").MapTo(v) +} + +// MapTo maps data sources to given struct with name mapper. +func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error { + cfg, err := Load(source, others...) + if err != nil { + return err + } + cfg.NameMapper = mapper + return cfg.MapTo(v) +} + +// MapTo maps data sources to given struct. +func MapTo(v, source interface{}, others ...interface{}) error { + return MapToWithMapper(v, nil, source, others...) +} + +// reflectWithProperType does the opposite thing with setWithProperType. +func reflectWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string) error { + switch t.Kind() { + case reflect.String: + key.SetValue(field.String()) + case reflect.Bool, + reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, + reflect.Float64, + reflectTime: + key.SetValue(fmt.Sprint(field)) + case reflect.Slice: + vals := field.Slice(0, field.Len()) + if field.Len() == 0 { + return nil + } + + var buf bytes.Buffer + isTime := fmt.Sprint(field.Type()) == "[]time.Time" + for i := 0; i < field.Len(); i++ { + if isTime { + buf.WriteString(vals.Index(i).Interface().(time.Time).Format(time.RFC3339)) + } else { + buf.WriteString(fmt.Sprint(vals.Index(i))) + } + buf.WriteString(delim) + } + key.SetValue(buf.String()[:buf.Len()-1]) + default: + return fmt.Errorf("unsupported type '%s'", t) + } + return nil +} + +func (s *Section) reflectFrom(val reflect.Value) error { + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + typ := val.Type() + + for i := 0; i < typ.NumField(); i++ { + field := val.Field(i) + tpField := typ.Field(i) + + tag := tpField.Tag.Get("ini") + if tag == "-" { + continue + } + + fieldName := s.parseFieldName(tpField.Name, tag) + if len(fieldName) == 0 || !field.CanSet() { + continue + } + + if (tpField.Type.Kind() == reflect.Ptr && tpField.Anonymous) || + (tpField.Type.Kind() == reflect.Struct) { + // Note: The only error here is section doesn't exist. + sec, err := s.f.GetSection(fieldName) + if err != nil { + // Note: fieldName can never be empty here, ignore error. + sec, _ = s.f.NewSection(fieldName) + } + if err = sec.reflectFrom(field); err != nil { + return fmt.Errorf("error reflecting field(%s): %v", fieldName, err) + } + continue + } + + // Note: Same reason as secion. + key, err := s.GetKey(fieldName) + if err != nil { + key, _ = s.NewKey(fieldName, "") + } + if err = reflectWithProperType(tpField.Type, key, field, parseDelim(tpField.Tag.Get("delim"))); err != nil { + return fmt.Errorf("error reflecting field(%s): %v", fieldName, err) + } + + } + return nil +} + +// ReflectFrom reflects secion from given struct. +func (s *Section) ReflectFrom(v interface{}) error { + typ := reflect.TypeOf(v) + val := reflect.ValueOf(v) + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } else { + return errors.New("cannot reflect from non-pointer struct") + } + + return s.reflectFrom(val) +} + +// ReflectFrom reflects file from given struct. +func (f *File) ReflectFrom(v interface{}) error { + return f.Section("").ReflectFrom(v) +} + +// ReflectFrom reflects data sources from given struct with name mapper. +func ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error { + cfg.NameMapper = mapper + return cfg.ReflectFrom(v) +} + +// ReflectFrom reflects data sources from given struct. +func ReflectFrom(cfg *File, v interface{}) error { + return ReflectFromWithMapper(cfg, v, nil) +} diff --git a/website/source/assets/stylesheets/_docs.scss b/website/source/assets/stylesheets/_docs.scss index 9c7afec524e4..4a1a6319f506 100755 --- a/website/source/assets/stylesheets/_docs.scss +++ b/website/source/assets/stylesheets/_docs.scss @@ -24,6 +24,7 @@ body.layout-dnsimple, body.layout-docker, body.layout-dyn, body.layout-github, +body.layout-grafana, body.layout-fastly, body.layout-google, body.layout-heroku, diff --git a/website/source/docs/providers/grafana/index.html.markdown b/website/source/docs/providers/grafana/index.html.markdown new file mode 100644 index 000000000000..09d4d0cd2999 --- /dev/null +++ b/website/source/docs/providers/grafana/index.html.markdown @@ -0,0 +1,38 @@ +--- +layout: "grafana" +page_title: "Provider: Grafana" +sidebar_current: "docs-grafana-index" +description: |- + The Grafana provider configures data sources and dashboards in Grafana. +--- + +# Grafana Provider + +The Grafana provider configures data sources and dashboards in +[Grafana](http://grafana.org/), which is a web application for creating, +viewing and sharing metrics dashboards. + +The provider configuration block accepts the following arguments: + +* ``url`` - (Required) The root URL of a Grafana server. May alternatively be + set via the ``GRAFANA_URL`` environment variable. + +* ``auth`` - (Required) The API token or username/password to use to + authenticate to the Grafana server. If username/password is used, they + are provided in a single string and separated by a colon. May alternatively + be set via the ``GRAFANA_AUTH`` environment variable. + +Use the navigation to the left to read about the available resources. + +## Example Usage + +``` +provider "grafana" { + url = "http://grafana.example.com/" + auth = "1234abcd" +} + +resource "grafana_dashboard" "metrics" { + config_json = "${file("grafana-dashboard.json")}" +} +``` diff --git a/website/source/docs/providers/grafana/r/dashboard.html.md b/website/source/docs/providers/grafana/r/dashboard.html.md new file mode 100644 index 000000000000..d00fc17f8ea7 --- /dev/null +++ b/website/source/docs/providers/grafana/r/dashboard.html.md @@ -0,0 +1,47 @@ +--- +layout: "grafana" +page_title: "Grafana: grafana_dashboard" +sidebar_current: "docs-influxdb-resource-dashboard" +description: |- + The grafana_dashboard resource allows a Grafana dashboard to be created. +--- + +# grafana\_dashboard + +The dashboard resource allows a dashboard to created on a Grafana server. + +## Example Usage + +``` +resource "grafana_dashboard" "metrics" { + config_json = "${file("grafana-dashboard.json")}" +} +``` + +Dashboards can be exported from Grafana's web UI in JSON format and provided +via the `config_json` argument. + +The exported JSON will include references to Grafana data sources, but the +data source configuration is not exported in this way. In order to fully +manage a dashboard with Terraform, necessary data sources can be created +using the `grafana_data_source` resource. In order to ensure that a data +source is created before a dashboard that refers to it, use the `depends_on` +meta-parameter: + +``` + depends_on = ["grafana_data_source.metrics"] +``` + +## Argument Reference + +The following arguments are supported: + +* `config_json` - (Required) The JSON configuration for the dashboard. + +## Attributes Reference + +The resource exports the following attributes: + +* `slug` - A URL "slug" for this dashboard, generated by Grafana by removing + certain characters from the dashboard name given as part of the `config_json` + argument. This can be used to generate the URL for a dashboard. diff --git a/website/source/docs/providers/grafana/r/data_source.html.md b/website/source/docs/providers/grafana/r/data_source.html.md new file mode 100644 index 000000000000..182e5690e732 --- /dev/null +++ b/website/source/docs/providers/grafana/r/data_source.html.md @@ -0,0 +1,77 @@ +--- +layout: "grafana" +page_title: "Grafana: grafana_data_source" +sidebar_current: "docs-influxdb-resource-data-source" +description: |- + The grafana_data_source resource allows a Grafana data source to be created. +--- + +# grafana\_data\_source + +The data source resource allows a data source to created on a Grafana server. + +## Example Usage + +The required arguments for this resource vary depending on the type of data +source selected (via the `type` argument). The following example is for +InfluxDB. See +[Grafana's *Data Sources Guides*](http://docs.grafana.org/#data-sources-guides) +for more details on the supported data source types and the arguments they use. + +``` +resource "grafana_data_source" "metrics" { + type = "influxdb" + name = "myapp-metrics" + url = "http://influxdb.example.net:8086/" + username = "myapp" + password = "foobarbaz" + database_name = "${influxdb_database.metrics.name}" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `type` - (Required) The data source type. Must be one of the data source + keywords supported by the Grafana server. + +* `name` - (Required) A unique name for the data source within the Grafana + server. + +* `url` - (Required) The URL for the data source. The type of URL required + varies depending on the chosen data source type. + +* `is_default` - (Optional) If true, the dashboard will be shown as the + root page on the Grafana server. Only one dashboard on a server can be + the default. + +* `basic_auth_enabled` - (Optional) - If true, HTTP basic authentication will + be used to make requests. + +* `basic_auth_username` - (Required if `basic_auth_enabled` is true) The + username to use for basic auth. + +* `basic_auth_password` - (Required if `basic_auth_enabled` is true) The + password to use for basic auth. + +* `username` - (Required by some data source types) The username to use to + authenticate to the data source. + +* `password` - (Required by some data source types) The password to use to + authenticate to the data source. + +* `database_name` - (Required by some data source types) The name of the + database to use on the selected data source server. + +* `access_mode` - (Optional) The method by which the browser-based Grafana + application will access the data source. The default is "proxy", which means + that the application will make requests via a proxy endpoint on the Grafana + server. + +## Attributes Reference + +The resource exports the following attributes: + +* `id` - The opaque unique id assigned to the data source by the Grafana + server. diff --git a/website/source/layouts/docs.erb b/website/source/layouts/docs.erb index 0c629bbf64be..93dac5b79571 100644 --- a/website/source/layouts/docs.erb +++ b/website/source/layouts/docs.erb @@ -238,6 +238,10 @@
Google Cloud + > + Grafana + + > Heroku diff --git a/website/source/layouts/grafana.erb b/website/source/layouts/grafana.erb new file mode 100644 index 000000000000..3aa7dc59b1a5 --- /dev/null +++ b/website/source/layouts/grafana.erb @@ -0,0 +1,29 @@ +<% wrap_layout :inner do %> + <% content_for :sidebar do %> + + <% end %> + + <%= yield %> +<% end %>